Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'extraplugins/qompass/codegen')
-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
878 files changed, 177056 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;
+ }
+}

Back to the top