Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcdumoulin2011-09-05 20:25:04 -0400
committercdumoulin2011-09-05 20:25:04 -0400
commitbbcbb9d79123ee571fc1ae0683876a75474e2a52 (patch)
treeeb5c2e75601e2d85dee69c70369500eb5d5eb88b
parentd0b24e34b661ec44eba04012d1ff03165bfed908 (diff)
downloadorg.eclipse.papyrus-bbcbb9d79123ee571fc1ae0683876a75474e2a52.tar.gz
org.eclipse.papyrus-bbcbb9d79123ee571fc1ae0683876a75474e2a52.tar.xz
org.eclipse.papyrus-bbcbb9d79123ee571fc1ae0683876a75474e2a52.zip
ASSIGNED - bug 347978: [java] Papyrus shall provide a Java code generator
Java code generator implemented by Nicolas Deblock (nico.deblock@gmail.com) and Manuel Giles (giles.manu@live.fr), based on an idea from Cedric Dumoulin (cedric.dumoulin@lifl.fr)
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java-updatesite/.project17
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java-updatesite/site.xml26
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.feature/.project17
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.feature/build.properties1
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.feature/feature.xml108
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.classpath7
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.project28
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/META-INF/MANIFEST.MF19
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/build.properties14
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/generate.psdbin0 -> 182989 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/generation.pngbin0 -> 3683 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/sample.gifbin0 -> 983 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/plugin.properties18
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/plugin.xml5
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/GeneratorPreference.java64
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java196
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTCommentable.java159
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTCompilationUnit.java90
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTField.java146
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTGetterSetter.java167
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTJavaModel.java71
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTJavaProject.java138
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTMethod.java265
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTPackageFragment.java106
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTPackageFragmentRoot.java117
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTType.java359
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchTools.java209
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.classpath7
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.project28
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/META-INF/MANIFEST.MF16
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/build.properties22
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTClass.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTEnum.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTInterface.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTType.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTJavaModel_javaProject_JDTJavaProject.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTJavaProject_packageFragmentRoots_JDTPackageFragmentRoot.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMember_typeParameters_JDTTypeParameter.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_parameters_JDTParameter.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_returnType_JDTParameter.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragmentRoot_packageFragments_JDTPackageFragment.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragment_compilationUnits_JDTCompilationUnit.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragment_packageFragments_JDTPackageFragment.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_fields_JDTField.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_methods_JDTMethod.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTClass.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTEnum.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTInterface.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTType.gifbin0 -> 223 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTClass.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTCompilationUnit.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTEnum.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTException.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTField.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTImportContainer.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTImportDeclaration.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTInterface.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaElement.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaModel.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaProject.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTMethod.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTPackageFragment.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTPackageFragmentRoot.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTParameter.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTTypeParameter.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.properties137
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.xml25
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTClassItemProvider.java130
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTCompilationUnitItemProvider.java240
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTEnumItemProvider.java130
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTExceptionItemProvider.java139
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTFieldItemProvider.java330
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTImportContainerItemProvider.java130
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTImportDeclarationItemProvider.java130
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTInterfaceItemProvider.java130
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaElementItemProvider.java261
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaModelItemProvider.java176
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaProjectItemProvider.java230
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMemberItemProvider.java193
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMethodItemProvider.java353
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTPackageFragmentItemProvider.java230
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTPackageFragmentRootItemProvider.java230
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParameterItemProvider.java210
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParentItemProvider.java187
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParentJavaElementItemProvider.java175
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeItemProvider.java497
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeParameterItemProvider.java130
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeRootItemProvider.java119
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JdtmmEditPlugin.java109
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JdtmmItemProviderAdapterFactory.java555
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.classpath7
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.project28
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/META-INF/MANIFEST.MF18
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/build.properties22
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/icons/full/obj16/JdtmmModelFile.gifbin0 -> 346 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/icons/full/wizban/NewJdtmm.gifbin0 -> 2462 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.properties69
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.xml39
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmActionBarContributor.java443
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmEditor.java1832
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmEditorPlugin.java111
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmModelWizard.java647
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.classpath7
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.project28
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/META-INF/MANIFEST.MF23
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/build.properties22
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.di53
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.ecore225
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.genmodel178
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.notation2849
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.uml446
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/reverse/reverseJDT.di29
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/reverse/reverseJDT.notation1614
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/reverse/reverseJDT.uml20911
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/plugin.properties19
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/plugin.xml20
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTClass.java37
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTCompilationUnit.java109
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTEnum.java37
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTException.java38
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTField.java328
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTImportContainer.java37
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTImportDeclaration.java37
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTInterface.java37
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTJavaElement.java211
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTJavaModel.java64
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTJavaProject.java104
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTMember.java97
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTMethod.java305
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTPackageFragment.java109
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTPackageFragmentRoot.java109
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTParameter.java201
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTParent.java115
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTParentJavaElement.java37
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTType.java459
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTTypeParameter.java76
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JDTTypeRoot.java37
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JdtmmFactory.java207
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/JdtmmPackage.java4907
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/TrueFalseDefault.java275
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/VisibilityKind.java275
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTClassImpl.java62
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTCompilationUnitImpl.java365
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTEnumImpl.java62
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTExceptionImpl.java64
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTFieldImpl.java720
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTImportContainerImpl.java62
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTImportDeclarationImpl.java62
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTInterfaceImpl.java62
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTJavaElementImpl.java439
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTJavaModelImpl.java192
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTJavaProjectImpl.java328
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTMemberImpl.java264
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTMethodImpl.java705
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTPackageFragmentImpl.java366
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTPackageFragmentRootImpl.java365
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTParameterImpl.java487
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTParentImpl.java249
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTParentJavaElementImpl.java293
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTTypeImpl.java1068
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTTypeParameterImpl.java230
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JDTTypeRootImpl.java62
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JdtmmFactoryImpl.java511
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/impl/JdtmmPackageImpl.java1684
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/util/JdtmmAdapterFactory.java550
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/util/JdtmmPreference.java50
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/util/JdtmmSwitch.java746
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/visitor/JDTVisitor.java39
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/visitor/JDTVisitorException.java42
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/utils/DerivedNotifyingEList.java428
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.classpath7
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/.project38
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/META-INF/MANIFEST.MF10
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/build.properties15
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/plugin.properties19
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/src/org/eclipse/papyrus/java/generator/transfo/umltojdt/UmltojdtActivator.java67
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/algo.txt167
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/stereotypeUtil.qvto80
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/uml2jdt2.qvto1057
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/.classpath7
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/.project28
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/META-INF/MANIFEST.MF20
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/build.properties14
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/icons/generate.psdbin0 -> 182989 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/icons/generation.pngbin0 -> 3683 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/icons/sample.gifbin0 -> 983 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/plugin.properties19
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/plugin.xml88
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/Activator.java68
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/handlers/GenerateJavaCodeHandler.java245
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/GeneratorPreferenceImpl.java82
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/GenericClassFieldEditor.java69
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PackageListEditor.java81
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceConstants.java35
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceInitializer.java44
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferencePage.java95
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/.classpath7
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/.project28
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/META-INF/MANIFEST.MF20
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/build.properties22
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaClass.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaMethod.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaPackage_.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaParameter.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaProject.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaProperty.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/JavaSrcFolder.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/icons/full/obj16/PrimitiveType.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/plugin.properties79
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/plugin.xml25
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaClassItemProvider.java218
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaEditPlugin.java99
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaGenItemProvider.java160
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaItemProviderAdapterFactory.java371
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaMethodItemProvider.java290
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaNamedElementItemProvider.java246
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaPackage_ItemProvider.java170
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaParameterItemProvider.java170
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaProjectItemProvider.java139
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaPropertyItemProvider.java290
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/JavaSrcFolderItemProvider.java139
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.edit/src/org/eclipse/papyrus/java/profile/java/provider/PrimitiveTypeItemProvider.java170
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.editor/.classpath7
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.editor/.project28
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.editor/META-INF/MANIFEST.MF20
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.editor/build.properties23
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.editor/icons/full/obj16/JavaModelFile.gifbin0 -> 346 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.editor/icons/full/wizban/NewJava.gifbin0 -> 2462 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.editor/plugin.properties65
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.editor/plugin.xml39
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaActionBarContributor.java427
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaEditor.java1822
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaEditorPlugin.java101
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.editor/src/org/eclipse/papyrus/java/profile/java/presentation/JavaModelWizard.java632
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.feature/.project17
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.feature/build.properties4
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile.feature/feature.xml72
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/.classpath7
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/.project28
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/META-INF/MANIFEST.MF17
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/build.properties24
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/icons/javaprofile.gifbin0 -> 983 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/models/java.ecore98
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/models/java.profile.di29
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/models/java.profile.genmodel95
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/models/java.profile.notation738
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/models/java.profile.uml3184
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/plugin.properties16
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/plugin.xml50
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaClass.java135
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaFactory.java109
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaGen.java80
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaMethod.java216
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaNamedElement.java163
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaPackage.java1927
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaPackage_.java80
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaParameter.java81
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaProject.java53
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaProperty.java224
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/JavaSrcFolder.java53
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/PrimitiveType.java80
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/TrueFalseDefault.java239
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaClassImpl.java337
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaFactoryImpl.java227
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaGenImpl.java220
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaMethodImpl.java499
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaNamedElementImpl.java383
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaPackageImpl.java767
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaPackage_Impl.java227
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaParameterImpl.java229
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaProjectImpl.java159
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaPropertyImpl.java500
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/JavaSrcFolderImpl.java159
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/impl/PrimitiveTypeImpl.java227
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaAdapterFactory.java286
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaResourceFactoryImpl.java56
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaResourceImpl.java32
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaSwitch.java317
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.profile/src/org/eclipse/papyrus/java/profile/java/util/JavaXMLProcessor.java54
279 files changed, 76701 insertions, 0 deletions
diff --git a/extraplugins/java/org.eclipse.papyrus.java-updatesite/.project b/extraplugins/java/org.eclipse.papyrus.java-updatesite/.project
new file mode 100644
index 00000000000..0cc00efb223
--- /dev/null
+++ b/extraplugins/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/java/org.eclipse.papyrus.java-updatesite/site.xml b/extraplugins/java/org.eclipse.papyrus.java-updatesite/site.xml
new file mode 100644
index 00000000000..52e0d5ef313
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java-updatesite/site.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+ <feature url="features/org.eclipse.papyrus.java.generator.feature_0.8.0.201109060101.jar" id="org.eclipse.papyrus.java.generator.feature" version="0.8.0.201109060101">
+ <category name="org.eclipse.papyrus.java.generator"/>
+ <category name="org.eclipse.papyrus.java"/>
+ </feature>
+ <feature url="features/org.eclipse.papyrus.java.profile.feature_0.8.0.201109060101.jar" id="org.eclipse.papyrus.java.profile.feature" version="0.8.0.201109060101">
+ <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 Ppyrus">
+ <description>
+ Tools related to the Java language.
+ </description>
+ </category-def>
+</site>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.feature/.project b/extraplugins/java/org.eclipse.papyrus.java.generator.feature/.project
new file mode 100644
index 00000000000..a7d8e3cc5bf
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.java.generator.feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.feature/build.properties b/extraplugins/java/org.eclipse.papyrus.java.generator.feature/build.properties
new file mode 100644
index 00000000000..82ab19c62d1
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.feature/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.feature/feature.xml b/extraplugins/java/org.eclipse.papyrus.java.generator.feature/feature.xml
new file mode 100644
index 00000000000..88c190e35dd
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.feature/feature.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.papyrus.java.generator.feature"
+ label="Java classes Generator for Papyrus"
+ version="0.8.0.qualifier">
+
+ <description url="http://www.example.com/description">
+ This feature allows to generate Java classes and packages from
+a UML model.
+It also allows to generate projects, with the help of the Java
+profile.
+ </description>
+
+ <copyright>
+ #################################################################################
+# Copyright (c) 2011 Nicolas Deblock &amp; 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 &amp; help for the conception
+#
+#################################################################################
+ </copyright>
+
+ <license url="http://www.example.com/license">
+ [Enter License Description here.]
+ </license>
+
+ <requires>
+ <import plugin="org.eclipse.emf.common"/>
+ <import plugin="org.eclipse.uml2.uml"/>
+ <import plugin="org.eclipse.m2m.qvt.oml"/>
+ <import plugin="org.eclipse.core.runtime"/>
+ <import plugin="org.eclipse.papyrus.java.generator.transfo.umltojdt" version="0.8.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.jdt.core"/>
+ <import plugin="org.eclipse.jface.text"/>
+ <import plugin="org.eclipse.core.resources"/>
+ <import plugin="org.eclipse.jdt.launching"/>
+ <import plugin="org.eclipse.emf.ecore"/>
+ <import plugin="org.eclipse.uml2.common" version="1.5.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.jdt.core" version="3.6.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.emf.common" version="2.6.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.emf.query"/>
+ <import plugin="org.eclipse.emf.edit"/>
+ <import plugin="org.eclipse.uml2.common.edit"/>
+ <import plugin="org.eclipse.emf.ecore.xmi"/>
+ <import plugin="org.eclipse.emf.edit.ui"/>
+ <import plugin="org.eclipse.ui.ide"/>
+ <import plugin="org.eclipse.ui"/>
+ <import plugin="org.eclipse.core.resources" version="3.6.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.papyrus.java.generator.metamodel.jdt" version="0.8.0" match="greaterOrEqual"/>
+ <import plugin="org.eclipse.jdt.ui"/>
+ <import plugin="org.eclipse.papyrus.java.generator.jdtsynchronizer" version="0.8.0" match="greaterOrEqual"/>
+ <import feature="org.eclipse.papyrus.java.profile.feature" version="0.8.0.qualifier"/>
+ </requires>
+
+ <plugin
+ id="org.eclipse.papyrus.java.generator.jdtsynchronizer"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.papyrus.java.generator.metamodel.jdt"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.papyrus.java.generator.metamodel.jdt.edit"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.papyrus.java.generator.metamodel.jdt.editor"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.papyrus.java.generator.transfo.umltojdt"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.papyrus.java.generator.ui"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+</feature>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.classpath b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.classpath
new file mode 100644
index 00000000000..8a8f1668cdc
--- /dev/null
+++ b/extraplugins/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/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.project b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/.project
new file mode 100644
index 00000000000..189ce3e8668
--- /dev/null
+++ b/extraplugins/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/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/META-INF/MANIFEST.MF b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..09525296e2e
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.java.generator.jdtsynchronizer;singleton:=true
+Bundle-Version: 0.8.0.qualifier
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.papyrus.java.generator.jdtsynchronizer
+Bundle-Vendor: %providerName
+Require-Bundle: org.eclipse.emf.common,
+ org.eclipse.uml2.uml,
+ org.eclipse.m2m.qvt.oml,
+ org.eclipse.papyrus.java.generator.metamodel.jdt,
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.java.generator.transfo.umltojdt;bundle-version="0.8.0",
+ org.eclipse.jdt.core,
+ org.eclipse.jface.text,
+ org.eclipse.core.resources,
+ org.eclipse.jdt.launching
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/build.properties b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/build.properties
new file mode 100644
index 00000000000..3fee1f7b82a
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/build.properties
@@ -0,0 +1,14 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/
+src.includes = .classpath,\
+ .project,\
+ META-INF/,\
+ build.properties,\
+ icons/,\
+ plugin.properties,\
+ plugin.xml,\
+ src/
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/generate.psd b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/generate.psd
new file mode 100644
index 00000000000..9a555a938e1
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/generate.psd
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/generation.png b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/generation.png
new file mode 100644
index 00000000000..6a55c438352
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/generation.png
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/sample.gif b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/sample.gif
new file mode 100644
index 00000000000..34fb3c9d8cb
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/icons/sample.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/plugin.properties b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/plugin.properties
new file mode 100644
index 00000000000..64145482e48
--- /dev/null
+++ b/extraplugins/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
+providerName = Nicolas Deblock and Manuel Giles
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/plugin.xml b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/plugin.xml
new file mode 100644
index 00000000000..b60f62ae57e
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/plugin.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+</plugin>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/GeneratorPreference.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/GeneratorPreference.java
new file mode 100644
index 00000000000..a08d4b2858e
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/GeneratorPreference.java
@@ -0,0 +1,64 @@
+/*****************************************************************************
+ * 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();
+
+}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java
new file mode 100644
index 00000000000..a502f62b8bc
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java
@@ -0,0 +1,196 @@
+/*****************************************************************************
+ * 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.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.ExecutionContext;
+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.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 {
+ // 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);
+
+ 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 one root");
+ for(EObject el : outObjects)
+ System.err.println(((JDTJavaElement)el).getElementName());
+ }
+
+ //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);
+ }
+
+ }
+ }
+ }
+
+ /**
+ * Run QVTo transformation using the scriptUri and the inObjects model
+ *
+ * @param scriptUri
+ * The script QVTo
+ * @param inObjects
+ * The entry model
+ * @return The output model
+ */
+ private List<EObject> runTransformation(URI scriptUri, EList<EObject> inObjects) {
+ // initialise 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)JdtmmPackage.eINSTANCE;
+ registry.put(mm1.getNsURI(), mm1);
+
+ // class which allow to execute the transformation
+ TransformationExecutor t = new TransformationExecutor(scriptUri, registry);
+ ExecutionContext executionContext = new ExecutionContextImpl();
+
+ // allow to contains the model uml
+ ModelExtent input = new BasicModelExtent(inObjects);
+ ModelExtent output = new BasicModelExtent();
+ // make the transformation
+ ExecutionDiagnostic executionDiagnostic = t.execute(executionContext, input, 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/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTCommentable.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTCommentable.java
new file mode 100644
index 00000000000..2d97c46aa3a
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTCommentable.java
@@ -0,0 +1,159 @@
+/*****************************************************************************
+ * 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/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTCompilationUnit.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTCompilationUnit.java
new file mode 100644
index 00000000000..bbf82143dec
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTCompilationUnit.java
@@ -0,0 +1,90 @@
+/*****************************************************************************
+ * 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;
+ }
+
+ 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/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTField.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTField.java
new file mode 100644
index 00000000000..2823428f7d6
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTField.java
@@ -0,0 +1,146 @@
+/*****************************************************************************
+ * 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.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;
+ }
+
+ public void visit(JDTJavaElement element) throws JDTVisitorException {
+ // if element can't be generated, we stop all
+ if(!element.isGenerated())
+ return;
+
+ field = (JDTField)element;
+
+ 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());
+
+ StringBuffer buffer = new StringBuffer();
+
+ // 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("Attention gerer le type null");
+
+
+
+ } 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
+ 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;
+ }
+}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTGetterSetter.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTGetterSetter.java
new file mode 100644
index 00000000000..74f1b14fe9b
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTGetterSetter.java
@@ -0,0 +1,167 @@
+/*****************************************************************************
+ * 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/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTJavaModel.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTJavaModel.java
new file mode 100644
index 00000000000..96413de28fa
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTJavaModel.java
@@ -0,0 +1,71 @@
+/*****************************************************************************
+ * 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;
+ }
+
+ 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/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTJavaProject.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTJavaProject.java
new file mode 100644
index 00000000000..83174f1a61f
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTJavaProject.java
@@ -0,0 +1,138 @@
+/*****************************************************************************
+ * 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;
+ }
+
+
+ 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());
+
+ // if ijavaProjet don't exist, create this!
+ if(!ijavaProjet.exists()) {
+ // System.out.println("create the project " + project.getElementName());
+ IProject proj = iroot.getProject(project.getElementName());
+
+ try {
+ proj.create(null);
+ 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) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ 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/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTMethod.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTMethod.java
new file mode 100644
index 00000000000..16f426217af
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTMethod.java
@@ -0,0 +1,265 @@
+/*****************************************************************************
+ * 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.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;
+ }
+
+
+
+ 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()) // for a interface, there are only public method!
+ 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)
+ methodStr.append(method.getReturnType().getType().getElementName() + " ");
+ 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) {
+ type = null;
+ if(p.isMultiValued())
+ type = SynchTools.getMultiValued(itype, p.getType().getElementName(), preference);
+ else
+ type = p.getType().getElementName();
+ // 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++;
+ }
+ }
+
+
+ // the type of the compilation unit
+ if(itype.isInterface() || Flags.isAbstract(method.getFlags()))
+ methodStr.append(";");
+ else {
+ methodStr.append(" {\n\t// TODO Auto-generated method\n");
+ if(method.getReturnType() != null)
+ methodStr.append("\treturn " + SynchTools.defaultReturn(method.getReturnType().getType().getElementName()) + ";\n");
+ methodStr.append("}");
+ }
+
+ // create the method
+ imethod = itype.createMethod(methodStr.toString(), null, true, null);
+ }
+
+ // add javadoc to method
+ createJavaDocFor(imethod, imethod.getCompilationUnit(), method.getComment(), "");
+ } catch (JavaModelException e) {
+ e.printStackTrace();
+ throw new JDTVisitorException(e.getMessage(), e.getCause());
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new JDTVisitorException(e.getMessage(), e.getCause());
+ }
+
+
+ }
+
+
+
+
+ /** *************** methods override by SynchJDTCommentable ************** */
+
+
+ @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
+ 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;
+ }
+
+}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTPackageFragment.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTPackageFragment.java
new file mode 100644
index 00000000000..0a7834c4617
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTPackageFragment.java
@@ -0,0 +1,106 @@
+/*****************************************************************************
+ * 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;
+ }
+
+
+ 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/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTPackageFragmentRoot.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTPackageFragmentRoot.java
new file mode 100644
index 00000000000..b7537445c1b
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTPackageFragmentRoot.java
@@ -0,0 +1,117 @@
+/*****************************************************************************
+ * 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;
+ }
+
+
+
+ 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/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTType.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTType.java
new file mode 100644
index 00000000000..9c07f42c92f
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTType.java
@@ -0,0 +1,359 @@
+/*****************************************************************************
+ * 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;
+ }
+
+
+
+ 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);
+ }
+ } catch (JavaModelException e) {
+ e.printStackTrace();
+ throw new JDTVisitorException(e.getMessage(), e.getCause());
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new JDTVisitorException(e.getMessage(), e.getCause());
+ }
+
+
+ }
+
+ /**
+ * 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()) {
+ // 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);
+ }
+ }
+}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchTools.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchTools.java
new file mode 100644
index 00000000000..fe65953b2a8
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchTools.java
@@ -0,0 +1,209 @@
+/*****************************************************************************
+ * 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;
+ }
+
+ /**
+ * 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;
+
+ String _import = importType.getQualifiedName();
+ if(!SynchTools.isPrimiveType(_import) && _import.contains("."))
+ itype.getCompilationUnit().createImport(_import, null, null);
+ }
+
+ 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) + ">";
+ }
+
+}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.classpath b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.classpath
new file mode 100644
index 00000000000..ed2bc1287f0
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.project b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/.project
new file mode 100644
index 00000000000..0288cbb8ed8
--- /dev/null
+++ b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/META-INF/MANIFEST.MF b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..7b5bda05f7c
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.java.generator.metamodel.jdt.edit;singleton:=true
+Bundle-Version: 0.8.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider.JdtmmEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.papyrus.java.generator.metamodel.jdt;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport,
+ org.eclipse.uml2.common.edit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/build.properties b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/build.properties
new file mode 100644
index 00000000000..853cc7bb5e4
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/build.properties
@@ -0,0 +1,22 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = .classpath,\
+ .project,\
+ META-INF/,\
+ build.properties,\
+ icons/,\
+ plugin.properties,\
+ plugin.xml,\
+ src/
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTClass.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTClass.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTEnum.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTEnum.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTInterface.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTInterface.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTType.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTCompilationUnit_types_JDTType.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTJavaModel_javaProject_JDTJavaProject.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTJavaModel_javaProject_JDTJavaProject.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTJavaProject_packageFragmentRoots_JDTPackageFragmentRoot.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTJavaProject_packageFragmentRoots_JDTPackageFragmentRoot.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMember_typeParameters_JDTTypeParameter.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMember_typeParameters_JDTTypeParameter.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_parameters_JDTParameter.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_parameters_JDTParameter.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_returnType_JDTParameter.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTMethod_returnType_JDTParameter.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragmentRoot_packageFragments_JDTPackageFragment.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragmentRoot_packageFragments_JDTPackageFragment.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragment_compilationUnits_JDTCompilationUnit.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragment_compilationUnits_JDTCompilationUnit.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragment_packageFragments_JDTPackageFragment.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTPackageFragment_packageFragments_JDTPackageFragment.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_fields_JDTField.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_fields_JDTField.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_methods_JDTMethod.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_methods_JDTMethod.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTClass.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTClass.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTEnum.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTEnum.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTInterface.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTInterface.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTType.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/ctool16/CreateJDTType_types_JDTType.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTClass.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTClass.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTCompilationUnit.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTCompilationUnit.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTEnum.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTEnum.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTException.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTException.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTField.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTField.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTImportContainer.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTImportContainer.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTImportDeclaration.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTImportDeclaration.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTInterface.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTInterface.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaElement.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaElement.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaModel.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaModel.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaProject.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTJavaProject.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTMethod.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTMethod.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTPackageFragment.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTPackageFragment.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTPackageFragmentRoot.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTPackageFragmentRoot.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTParameter.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTParameter.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTTypeParameter.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/JDTTypeParameter.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.properties b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.properties
new file mode 100644
index 00000000000..3065b3ff93c
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.properties
@@ -0,0 +1,137 @@
+#################################################################################
+# 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 edit
+providerName = Nicolas Deblock and Manuel Giles
+
+
+
+_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_JDTJavaElement_type = JDT Java Element
+_UI_JDTParent_type = JDT Parent
+_UI_JDTMember_type = JDT Member
+_UI_JDTField_type = JDT Field
+_UI_JDTType_type = JDT Type
+_UI_JDTMethod_type = JDT Method
+_UI_JDTClass_type = JDT Class
+_UI_JDTInterface_type = JDT Interface
+_UI_JDTEnum_type = JDT Enum
+_UI_JDTTypeRoot_type = JDT Type Root
+_UI_JDTCompilationUnit_type = JDT Compilation Unit
+_UI_JDTImportDeclaration_type = JDT Import Declaration
+_UI_JDTImportContainer_type = JDT Import Container
+_UI_JDTParameter_type = JDT Parameter
+_UI_JDTPackageFragment_type = JDT Package Fragment
+_UI_JDTPackageFragmentRoot_type = JDT Package Fragment Root
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_JDTJavaElement_parent_feature = Parent
+_UI_JDTParent_children_feature = Children
+_UI_JDTField_owner_feature = Owner
+_UI_JDTType_methods_feature = Methods
+_UI_JDTType_fields_feature = Fields
+_UI_JDTMethod_owner_feature = Owner
+_UI_Unknown_feature = Unspecified
+
+_UI_JDTType_compilationUnit_feature = Compilation Unit
+_UI_JDTCompilationUnit_packageFragment_feature = Package Fragment
+_UI_JDTCompilationUnit_types_feature = Types
+_UI_JDTPackageFragment_packageFragmentRoot_feature = Package Fragment Root
+_UI_JDTPackageFragment_compilationUnits_feature = Compilation Units
+_UI_JDTPackageFragmentRoot_packageFragments_feature = Package Fragments
+_UI_JDTJavaElement_elementName_feature = Element Name
+_UI_JDTJavaElement_elementType_feature = Element Type
+_UI_JDTJavaElement_comment_feature = Comment
+_UI_JDTParent_flag_feature = Flag
+_UI_JDTType_class_feature = Class
+_UI_JDTType_interface_feature = Interface
+_UI_JDTType_enum_feature = Enum
+_UI_boolean_true_literal = true
+_UI_boolean_false_literal = false
+_UI_JDTType_abstract_feature = Abstract
+_UI_JDTType_final_feature = Final
+_UI_JDTParent_flags_feature = Flags
+_UI_JDTType_static_feature = Static
+_UI_JDTType_types_feature = Types
+_UI_JDTType_owner_feature = Owner
+_UI_JDTParentJavaElement_type = JDT Parent Java Element
+_UI_JDTJavaProject_type = JDT Java Project
+_UI_JDTJavaModel_type = JDT Java Model
+_UI_JDTPackageFragmentRoot_javaProject_feature = Java Project
+_UI_JDTJavaProject_packageFragmentRoots_feature = Package Fragment Roots
+_UI_JDTJavaProject_javaModel_feature = Java Model
+_UI_JDTJavaModel_javaProject_feature = Java Project
+<<<<<<< .mine
+_UI_JDTTypeParameter_type = JDT Type Parameter
+_UI_JDTException_type = JDT Exception
+_UI_JDTMember_typeParameters_feature = Type Parameters
+_UI_JDTTypeParameter_declaringMember_feature = Declaring Member
+_UI_JDTType_superInterfaces_feature = Super Interfaces
+_UI_JDTType_superClass_feature = Super Class
+_UI_JDTType_superInterfaceNames_feature = Super Interface Names
+_UI_JDTType_superClassName_feature = Super Class Name
+_UI_JDTMethod_returnType_feature = Return Type
+_UI_JDTMethod_parameters_feature = Parameters
+_UI_JDTMethod_exceptions_feature = Exceptions
+_UI_JDTParameter_parameterOwner_feature = Parameter Owner
+_UI_JDTParameter_types_feature = Types
+_UI_JDTParameter_returnOwner_feature = Return Owner
+_UI_JDTField_type_feature = Type
+_UI_JDTField_abstract_feature = Abstract
+_UI_JDTField_final_feature = Final
+_UI_JDTField_static_feature = Static
+_UI_JDTField_isMultiValued_feature = Is Multi Valued
+_UI_JDTMethod_abstract_feature = Abstract
+_UI_JDTMethod_final_feature = Final
+_UI_JDTMethod_static_feature = Static
+_UI_JDTParameter_final_feature = Final
+_UI_JDTParameter_isMultiValued_feature = Is Multi Valued
+_UI_JDTParameter_type_feature = Type
+_UI_JDTType_method_feature = Method
+=======
+_UI_JDTJavaElement_generated_feature = Generated
+_UI_JDTType_superClass_feature = Super Class
+_UI_JDTType_superInterfaces_feature = Super Interfaces
+_UI_JDTField_type_feature = Type
+_UI_JDTMethod_parameters_feature = Parameters
+_UI_JDTMethod_returnType_feature = Return Type
+_UI_JDTMethod_exceptions_feature = Exceptions
+_UI_JDTParameter_type_feature = Type
+_UI_JDTParameter_owner_feature = Owner
+_UI_JDTPackageFragment_packageFragment_feature = Package Fragment
+_UI_JDTPackageFragment_packageFragments_feature = Package Fragments
+>>>>>>> .r233
+_UI_JDTMember_visibility_feature = Visibility
+_UI_VisibilityKind_public_literal = public
+_UI_VisibilityKind_protected_literal = protected
+_UI_VisibilityKind_private_literal = private
+_UI_JDTField_value_feature = Value
+_UI_JDTField_generateGetter_feature = Generate Getter
+_UI_JDTField_generateSetter_feature = Generate Setter
+_UI_TrueFalseDefault_true_literal = true
+_UI_TrueFalseDefault_false_literal = false
+_UI_TrueFalseDefault_default_literal = default
+_UI_JDTMethod_synchronized_feature = Synchronized
+_UI_JDTMethod_constructor_feature = Constructor
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.xml b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.xml
new file mode 100644
index 00000000000..0e0303f5d21
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.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:///jdtmm.ecore"
+ class="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider.JdtmmItemProviderAdapterFactory"
+ 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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTClassItemProvider.java b/extraplugins/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..f20f9c2cd9f
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTClassItemProvider.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.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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTCompilationUnitItemProvider.java b/extraplugins/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..e0efcbdc918
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTCompilationUnitItemProvider.java
@@ -0,0 +1,240 @@
+/*****************************************************************************
+ * 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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTEnumItemProvider.java b/extraplugins/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..1f79dbb50b2
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTEnumItemProvider.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.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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTExceptionItemProvider.java b/extraplugins/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..d295b7b2b44
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTExceptionItemProvider.java
@@ -0,0 +1,139 @@
+/*****************************************************************************
+ * 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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTFieldItemProvider.java b/extraplugins/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..7a6eb509636
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTFieldItemProvider.java
@@ -0,0 +1,330 @@
+/*****************************************************************************
+ * 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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTImportContainerItemProvider.java b/extraplugins/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..3629e3b33cd
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTImportContainerItemProvider.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.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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTImportDeclarationItemProvider.java b/extraplugins/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..e1b1f373c9a
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTImportDeclarationItemProvider.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.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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTInterfaceItemProvider.java b/extraplugins/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..acad6ed567b
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTInterfaceItemProvider.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.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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaElementItemProvider.java b/extraplugins/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..03c76f9a455
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaElementItemProvider.java
@@ -0,0 +1,261 @@
+/*****************************************************************************
+ * 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);
+
+ addParentPropertyDescriptor(object);
+ addElementNamePropertyDescriptor(object);
+ addElementTypePropertyDescriptor(object);
+ addCommentPropertyDescriptor(object);
+ addGeneratedPropertyDescriptor(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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaModelItemProvider.java b/extraplugins/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..ec33b95819a
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaModelItemProvider.java
@@ -0,0 +1,176 @@
+/*****************************************************************************
+ * 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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaProjectItemProvider.java b/extraplugins/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..8f6bad36aeb
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTJavaProjectItemProvider.java
@@ -0,0 +1,230 @@
+/*****************************************************************************
+ * 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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMemberItemProvider.java b/extraplugins/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..fdc6ef0a02a
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMemberItemProvider.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.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);
+ }
+ 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 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:
+ 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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMethodItemProvider.java b/extraplugins/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..c58d9fc5ba7
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTMethodItemProvider.java
@@ -0,0 +1,353 @@
+/*****************************************************************************
+ * 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);
+ }
+ 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:
+ 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()));
+ }
+
+ /**
+ * 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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTPackageFragmentItemProvider.java b/extraplugins/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..37be66bcf48
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTPackageFragmentItemProvider.java
@@ -0,0 +1,230 @@
+/*****************************************************************************
+ * 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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTPackageFragmentRootItemProvider.java b/extraplugins/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..e3ac061d6d9
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTPackageFragmentRootItemProvider.java
@@ -0,0 +1,230 @@
+/*****************************************************************************
+ * 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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParameterItemProvider.java b/extraplugins/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..7569e1dc539
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParameterItemProvider.java
@@ -0,0 +1,210 @@
+/*****************************************************************************
+ * 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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParentItemProvider.java b/extraplugins/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..a68a7c95455
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParentItemProvider.java
@@ -0,0 +1,187 @@
+/*****************************************************************************
+ * 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);
+
+ addFlagsPropertyDescriptor(object);
+ addChildrenPropertyDescriptor(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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParentJavaElementItemProvider.java b/extraplugins/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..0e9e01abbcd
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTParentJavaElementItemProvider.java
@@ -0,0 +1,175 @@
+/*****************************************************************************
+ * 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);
+
+ addFlagsPropertyDescriptor(object);
+ addChildrenPropertyDescriptor(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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeItemProvider.java b/extraplugins/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..55bc5ca2865
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeItemProvider.java
@@ -0,0 +1,497 @@
+/*****************************************************************************
+ * 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__TYPES);
+ childrenFeatures.add(JdtmmPackage.Literals.JDT_TYPE__FIELDS);
+ }
+ 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__TYPES:
+ case JdtmmPackage.JDT_TYPE__FIELDS:
+ 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__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()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (JdtmmPackage.Literals.JDT_TYPE__FIELDS,
+ JdtmmFactory.eINSTANCE.createJDTField()));
+ }
+
+ /**
+ * @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__TYPES) {
+ 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);
+ }
+ 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__TYPES, JdtmmPackage.Literals.JDT_TYPE__FIELDS}, 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__TYPES) {
+ 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_PARENT__CHILDREN) {
+ return new SubsetSupersetReplaceCommand(domain, owner, feature, null, new EStructuralFeature[] {JdtmmPackage.Literals.JDT_TYPE__METHODS, JdtmmPackage.Literals.JDT_TYPE__TYPES, JdtmmPackage.Literals.JDT_TYPE__FIELDS}, value, collection);
+ }
+ return super.createReplaceCommand(domain, owner, feature, value, collection);
+ }
+
+}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeParameterItemProvider.java b/extraplugins/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..e9d717326e0
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeParameterItemProvider.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.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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeRootItemProvider.java b/extraplugins/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..81408a415c1
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JDTTypeRootItemProvider.java
@@ -0,0 +1,119 @@
+/*****************************************************************************
+ * 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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JdtmmEditPlugin.java b/extraplugins/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..593ed20d447
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JdtmmEditPlugin.java
@@ -0,0 +1,109 @@
+/*****************************************************************************
+ * 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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JdtmmItemProviderAdapterFactory.java b/extraplugins/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..0b66f087960
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/provider/JdtmmItemProviderAdapterFactory.java
@@ -0,0 +1,555 @@
+/*****************************************************************************
+ * 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 returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ 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
+ */
+ 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
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ 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
+ */
+ public void dispose() {
+ if (jdtTypeParameterItemProvider != null) jdtTypeParameterItemProvider.dispose();
+ if (jdtFieldItemProvider != null) jdtFieldItemProvider.dispose();
+ if (jdtMethodItemProvider != null) jdtMethodItemProvider.dispose();
+ if (jdtParameterItemProvider != null) jdtParameterItemProvider.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 (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();
+ }
+
+}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.classpath b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.classpath
new file mode 100644
index 00000000000..ed2bc1287f0
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.project b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/.project
new file mode 100644
index 00000000000..3d0615d9665
--- /dev/null
+++ b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/META-INF/MANIFEST.MF b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..f7c02296e54
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.java.generator.metamodel.jdt.editor;singleton:=true
+Bundle-Version: 0.8.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.presentation.JdtmmEditorPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.presentation
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources;visibility:=reexport,
+ org.eclipse.papyrus.java.generator.metamodel.jdt.edit;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.emf.edit.ui;visibility:=reexport,
+ org.eclipse.ui.ide;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/build.properties b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/build.properties
new file mode 100644
index 00000000000..80c2f5ca665
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/build.properties
@@ -0,0 +1,22 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin
+src.includes = .classpath,\
+ .project,\
+ META-INF/,\
+ build.properties,\
+ icons/,\
+ plugin.properties,\
+ plugin.xml,\
+ src/
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/icons/full/obj16/JdtmmModelFile.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/icons/full/obj16/JdtmmModelFile.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/icons/full/wizban/NewJdtmm.gif b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/icons/full/wizban/NewJdtmm.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.properties b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.properties
new file mode 100644
index 00000000000..e959edc704d
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.properties
@@ -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
+#
+#################################################################################
+
+
+pluginName = Jdt metamodel editor
+providerName = Nicolas Deblock and Manuel Giles
+
+
+_UI_JdtmmEditor_menu = &Jdtmm 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_JdtmmModelWizard_label = Jdtmm Model
+_UI_JdtmmModelWizard_description = Create a new Jdtmm model
+
+_UI_JdtmmEditor_label = Jdtmm Model Editor
+
+_UI_JdtmmEditorFilenameDefaultBase = My
+_UI_JdtmmEditorFilenameExtensions = jdtmm
+
+_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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.xml b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.xml
new file mode 100644
index 00000000000..cbca0602c74
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.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.generator.metamodel.jdt.jdtmm.presentation.JdtmmModelWizardID"
+ name="%_UI_JdtmmModelWizard_label"
+ class="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.presentation.JdtmmModelWizard"
+ category="org.eclipse.emf.ecore.Wizard.category.ID"
+ icon="icons/full/obj16/JdtmmModelFile.gif">
+ <description>%_UI_JdtmmModelWizard_description</description>
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors">
+ <editor
+ id="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.presentation.JdtmmEditorID"
+ name="%_UI_JdtmmEditor_label"
+ icon="icons/full/obj16/JdtmmModelFile.gif"
+ extensions="jdtmm"
+ class="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.presentation.JdtmmEditor"
+ contributorClass="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.presentation.JdtmmActionBarContributor">
+ </editor>
+ </extension>
+
+</plugin>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmActionBarContributor.java b/extraplugins/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..d8eb452b6c6
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmActionBarContributor.java
@@ -0,0 +1,443 @@
+/*****************************************************************************
+ * 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() {
+ 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
+ */
+ 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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmEditor.java b/extraplugins/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..a3184186a42
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmEditor.java
@@ -0,0 +1,1832 @@
+/*****************************************************************************
+ * 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.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.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.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.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.papyrus.java.generator.metamodel.jdt.jdtmm.provider.JdtmmItemProviderAdapterFactory;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+
+/**
+ * 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() {
+ 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();
+ }
+ }
+ public void partBroughtToTop(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partClosed(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partDeactivated(IWorkbenchPart p) {
+ // Ignore.
+ }
+ 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() {
+ 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() {
+ 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>();
+
+ 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() {
+ 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() {
+ 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() {
+ public void commandStackChanged(final EventObject event) {
+ getContainer().getDisplay().asyncExec
+ (new Runnable() {
+ 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() {
+ 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
+ */
+ 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.
+ //
+ 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
+ */
+ 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() {
+ 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() {
+ 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.
+ //
+ 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
+ */
+ 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
+ */
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.add(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ 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
+ */
+ 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
+ */
+ 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
+ */
+ 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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmEditorPlugin.java b/extraplugins/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..7ee8c683a33
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmEditorPlugin.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.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/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmModelWizard.java b/extraplugins/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..6fb33f7d1b7
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/jdtmm/presentation/JdtmmModelWizard.java
@@ -0,0 +1,647 @@
+/*****************************************************************************
+ * 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.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.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+
+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.jface.dialogs.MessageDialog;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.ModifyEvent;
+
+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.actions.WorkspaceModifyOperation;
+
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+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.core.runtime.Path;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+
+
+/**
+ * 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
+ */
+ 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() {
+ 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
+ */
+ 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() {
+ 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/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.classpath b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.classpath
new file mode 100644
index 00000000000..ed2bc1287f0
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.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/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.project b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/.project
new file mode 100644
index 00000000000..6da221b42e4
--- /dev/null
+++ b/extraplugins/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/java/org.eclipse.papyrus.java.generator.metamodel.jdt/META-INF/MANIFEST.MF b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..7a593823f77
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/META-INF/MANIFEST.MF
@@ -0,0 +1,23 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.java.generator.metamodel.jdt;singleton:=true
+Bundle-Version: 0.8.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: 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
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.uml2.common;bundle-version="1.5.0",
+ org.eclipse.jdt.core;bundle-version="3.6.0",
+ org.eclipse.emf.common;bundle-version="2.6.0",
+ org.eclipse.jface.text,
+ org.eclipse.core.resources,
+ org.eclipse.jdt.launching,
+ org.eclipse.emf.query
+Bundle-ActivationPolicy: lazy
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/build.properties b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/build.properties
new file mode 100644
index 00000000000..02547f77c37
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/build.properties
@@ -0,0 +1,22 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = .classpath,\
+ .project,\
+ META-INF/,\
+ build.properties,\
+ model/,\
+ plugin.properties,\
+ plugin.xml,\
+ src/
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.di b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.di
new file mode 100644
index 00000000000..3e099e69fad
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.di
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="ASCII"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <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/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.ecore b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.ecore
new file mode 100644
index 00000000000..c4bbef03acf
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.ecore
@@ -0,0 +1,225 @@
+<?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="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:EReference" name="parent" ordered="false"
+ eType="#//JDTParent" changeable="false" transient="true" eOpposite="#//JDTParent/children"/>
+ <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"/>
+ </eClassifiers>
+ <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:EAttribute" name="flags" ordered="false"
+ unique="false" lowerBound="1" eType="#//int"/>
+ <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>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="int" instanceClassName="int"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="boolean" instanceClassName="boolean"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="String" instanceClassName="java.lang.String"/>
+ <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="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"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTParentJavaElement" abstract="true"
+ eSuperTypes="#//JDTJavaElement #//JDTParent"/>
+ <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="JDTField" eSuperTypes="#//JDTMember">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owner" ordered="false"
+ lowerBound="1" eType="#//JDTType" eOpposite="#//JDTType/fields">
+ <eAnnotations source="redefines" references="#//JDTJavaElement/parent"/>
+ </eStructuralFeatures>
+ <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"/>
+ </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="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"/>
+ <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>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JDTMethod" eSuperTypes="#//JDTMember">
+ <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="owner" ordered="false"
+ lowerBound="1" eType="#//JDTType" eOpposite="#//JDTType/methods">
+ <eAnnotations source="redefines" references="#//JDTJavaElement/parent"/>
+ </eStructuralFeatures>
+ </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="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:EEnum" name="TrueFalseDefault">
+ <eLiterals name="true"/>
+ <eLiterals name="false" value="1"/>
+ <eLiterals name="default" value="2"/>
+ </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"/>
+</ecore:EPackage>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.genmodel b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.genmodel
new file mode 100644
index 00000000000..dc64ca91e81
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.genmodel
@@ -0,0 +1,178 @@
+<?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#//int"/>
+ <genDataTypes xsi:type="genmodel:GenDataType" ecoreDataType="jdtmm.ecore#//boolean"/>
+ <genDataTypes xsi:type="genmodel:GenDataType" ecoreDataType="jdtmm.ecore#//String"/>
+ <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#//JDTJavaElement">
+ <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+ createChild="false" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTJavaElement/parent"/>
+ <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"/>
+ <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" image="false" ecoreClass="jdtmm.ecore#//JDTParent">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute jdtmm.ecore#//JDTParent/flags"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" notify="false"
+ createChild="false" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTParent/children"/>
+ <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#//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"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="jdtmm.ecore#//JDTParentJavaElement"/>
+ <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" ecoreClass="jdtmm.ecore#//JDTField">
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" notify="false" createChild="false"
+ ecoreFeature="ecore:EReference jdtmm.ecore#//JDTField/owner"/>
+ <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"/>
+ </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" 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"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="None" children="true"
+ createChild="true" ecoreFeature="ecore:EReference jdtmm.ecore#//JDTType/fields"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="jdtmm.ecore#//JDTMethod">
+ <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" notify="false" createChild="false"
+ ecoreFeature="ecore:EReference jdtmm.ecore#//JDTMethod/owner"/>
+ </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#//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#//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"/>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.notation b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.notation
new file mode 100644
index 00000000000..3eb24ced2da
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.notation
@@ -0,0 +1,2849 @@
+<?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="_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">