diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/.classpath b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/.classpath
index c22d3b3..c72d35a 100644
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/.classpath
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/.classpath
@@ -3,6 +3,5 @@
 	<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="src" path="src-gen"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/.project b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/.project
index dd4b7fd..55f9664 100644
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/.project
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/.project
@@ -28,7 +28,7 @@
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/META-INF/MANIFEST.MF b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/META-INF/MANIFEST.MF
index 854259e..c1ab57a 100644
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/META-INF/MANIFEST.MF
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/META-INF/MANIFEST.MF
@@ -1,18 +1,17 @@
 Manifest-Version: 1.0
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.emf.ecore;visibility:=reexport,
- org.eclipse.uml2.types;visibility:=reexport,
- org.eclipse.uml2.uml;bundle-version="5.0.0";visibility:=reexport
-Export-Package: org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava,
- org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl,
- org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.util
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.uml2.uml;visibility:=reexport
+Export-Package: org.eclipse.papyrus.designer.languages.java.profile.java,
+ org.eclipse.papyrus.designer.languages.java.profile.java.impl,
+ org.eclipse.papyrus.designer.languages.java.profile.java.util
 Bundle-Vendor: %providerName
 Bundle-ActivationPolicy: lazy
 Bundle-ClassPath: .
-Bundle-Version: 0.7.1.qualifier
+Bundle-Version: 0.7.0.qualifier
 Bundle-Localization: plugin
 Bundle-Name: %pluginName
-Bundle-Activator: org.eclipse.papyrus.designer.languages.java.profile.Activator
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.papyrus.designer.languages.java.profile;singleton:=true
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/about.html b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/about.html
index dd3c089..d35d5ae 100644
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/about.html
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/about.html
@@ -8,7 +8,7 @@
 <body lang="EN-US">
 <h2>About This Content</h2>
  
-<p>November 14, 2008</p>	
+<p>June 5, 2007</p>	
 <h3>License</h3>
 
 <p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
@@ -22,7 +22,7 @@
 apply to your use of any object code in the Content.  Check the Redistributor's license that was 
 provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
 indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
 
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/build.properties b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/build.properties
index 9fe4b1c..34f054a 100644
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/build.properties
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/build.properties
@@ -1,10 +1,17 @@
-source.. = src/,\
-           src-gen/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+               models/,\
+               META-INF/,\
                plugin.xml,\
-               profiles/,\
-               about.html,\
-               plugin.properties
+               plugin.properties,\
+               icons/,\
+               about.html
+jars.compile.order = .
+source.. = src/
+output.. = bin/
 src.includes = about.html
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/icons/javaprofile.gif b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/icons/javaprofile.gif
new file mode 100644
index 0000000..34fb3c9
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/icons/javaprofile.gif
Binary files differ
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/models/java.ecore b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/models/java.ecore
new file mode 100644
index 0000000..f94b75b
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/models/java.ecore
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="java"
+    nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+  <eClassifiers xsi:type="ecore:EClass" name="JavaClass" eSuperTypes="#//JavaGen">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Classifier" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isFinal" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="explicitPlainTextRequiredImports"
+        ordered="false" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="explicitRequiredImports"
+        ordered="false" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="JavaGen" abstract="true" eSuperTypes="#//JavaNamedElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="srcName" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="projectName" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="JavaNamedElement" abstract="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="author" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="comment" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isGenerated" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="JavaPackage_" eSuperTypes="#//JavaGen">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="JavaMethod" eSuperTypes="#//JavaNamedElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isFinal" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isNative" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSynchronized" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isConstructor" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Operation" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="explicitPlainTextRequiredImports"
+        ordered="false" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="explicitRequiredImports"
+        ordered="false" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="JavaParameter" eSuperTypes="#//JavaNamedElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isFinal" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Parameter" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="JavaProperty" eSuperTypes="#//JavaNamedElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isFinal" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isTransient" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="generateGetter" ordered="false"
+        lowerBound="1" eType="#//TrueFalseDefault" defaultValueLiteral="default"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="generateSetter" ordered="false"
+        lowerBound="1" eType="#//TrueFalseDefault" defaultValueLiteral="default"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="explicitPlainTextRequiredImports"
+        ordered="false" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="explicitRequiredImports"
+        ordered="false" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="TrueFalseDefault">
+    <eLiterals name="true"/>
+    <eLiterals name="false" value="1"/>
+    <eLiterals name="default" value="2"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType" eSuperTypes="#//JavaGen">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="implementationClass" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_PrimitiveType" ordered="false"
+        unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//PrimitiveType"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="collectionImplementationClass"
+        ordered="false" unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="JavaProject" eSuperTypes="#//JavaGen">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+        lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="JavaSrcFolder" eSuperTypes="#//JavaGen">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+        lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/models/java.profile.di b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/models/java.profile.di
new file mode 100644
index 0000000..dd2152a
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/models/java.profile.di
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ASCII"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+  <pageList>
+    <availablePage>
+      <emfPageIdentifier href="java.profile.notation#_G11WsPfZEd-PNYpgO1g6_g"/>
+    </availablePage>
+    <availablePage>
+      <emfPageIdentifier href="java.profile.notation#_uqGAEGXkEeCx-IU0sjGPKA"/>
+    </availablePage>
+    <availablePage>
+      <emfPageIdentifier href="java.profile.notation#_uBztsIXFEeCQsIB6sI2lFg"/>
+    </availablePage>
+  </pageList>
+  <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+    <windows>
+      <children xsi:type="di:TabFolder">
+        <children>
+          <emfPageIdentifier href="java.profile.notation#_G11WsPfZEd-PNYpgO1g6_g"/>
+        </children>
+        <children>
+          <emfPageIdentifier href="java.profile.notation#_uqGAEGXkEeCx-IU0sjGPKA"/>
+        </children>
+        <children>
+          <emfPageIdentifier href="java.profile.notation#_uBztsIXFEeCQsIB6sI2lFg"/>
+        </children>
+      </children>
+    </windows>
+  </sashModel>
+</di:SashWindowsMngr>
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/models/java.profile.genmodel b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/models/java.profile.genmodel
new file mode 100644
index 0000000..a2c5fa0
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/models/java.profile.genmodel
@@ -0,0 +1,109 @@
+<?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.designer.languages.java.profile/src"
+    editDirectory="/org.eclipse.papyrus.designer.languages.java.profile.edit/src"
+    editorDirectory="/org.eclipse.papyrus.designer.languages.java.profile.editor/src"
+    modelPluginID="org.eclipse.papyrus.designer.languages.java.profile" modelName="Java"
+    importerID="org.eclipse.uml2.uml.ecore.importer" complianceLevel="6.0" copyrightFields="false"
+    editPluginID="org.eclipse.papyrus.designer.languages.java.profile.edit" editorPluginID="org.eclipse.papyrus.designer.languages.java.profile.editor"
+    usedGenPackages="platform:/plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore platform:/plugin/org.eclipse.uml2.types/model/Types.genmodel#//types">
+  <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
+    <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
+    <details key="UNION_PROPERTIES" value="REPORT"/>
+    <details key="DUPLICATE_FEATURES" value="DISCARD"/>
+    <details key="SUBSETTING_PROPERTIES" value="REPORT"/>
+    <details key="COMMENTS" value="PROCESS"/>
+    <details key="DUPLICATE_FEATURE_INHERITANCE" value="DISCARD"/>
+    <details key="DUPLICATE_OPERATIONS" value="DISCARD"/>
+    <details key="INVARIANT_CONSTRAINTS" value="PROCESS"/>
+    <details key="REDEFINING_PROPERTIES" value="REPORT"/>
+    <details key="ANNOTATION_DETAILS" value="PROCESS"/>
+    <details key="DUPLICATE_OPERATION_INHERITANCE" value="DISCARD"/>
+    <details key="REDEFINING_OPERATIONS" value="REPORT"/>
+    <details key="DERIVED_FEATURES" value="PROCESS"/>
+    <details key="OPERATION_BODIES" value="IGNORE"/>
+    <details key="CAMEL_CASE_NAMES" value="IGNORE"/>
+    <details key="SUPER_CLASS_ORDER" value="PROCESS"/>
+  </genAnnotations>
+  <foreignModel>java.profile.uml</foreignModel>
+  <genPackages xsi:type="genmodel:GenPackage" prefix="Java" basePackage="org.eclipse.papyrus.designer.languages.java.profile"
+      resource="XML" disposableProviderFactory="true" ecorePackage="java.ecore#/">
+    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="java.ecore#//TrueFalseDefault">
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="java.ecore#//TrueFalseDefault/true"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="java.ecore#//TrueFalseDefault/false"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="java.ecore#//TrueFalseDefault/default"/>
+    </genEnums>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="java.ecore#//JavaClass">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaClass/base_Classifier"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaClass/isFinal"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaClass/isAbstract"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaClass/isStatic"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaClass/explicitPlainTextRequiredImports"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaClass/explicitRequiredImports"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="java.ecore#//JavaGen">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaGen/srcName"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaGen/projectName"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="java.ecore#//JavaNamedElement">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaNamedElement/name"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaNamedElement/author"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaNamedElement/version"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaNamedElement/comment"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaNamedElement/isGenerated"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="java.ecore#//JavaPackage_">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaPackage_/packageName"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaPackage_/base_Package"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="java.ecore#//JavaMethod">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaMethod/isStatic"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaMethod/isFinal"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaMethod/isAbstract"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaMethod/isNative"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaMethod/isSynchronized"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaMethod/isConstructor"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaMethod/base_Operation"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaMethod/explicitPlainTextRequiredImports"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaMethod/explicitRequiredImports"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="java.ecore#//JavaParameter">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaParameter/isFinal"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaParameter/base_Parameter"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="java.ecore#//JavaProperty">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaProperty/isAbstract"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaProperty/isFinal"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaProperty/base_Property"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaProperty/isTransient"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaProperty/generateGetter"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaProperty/generateSetter"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaProperty/isStatic"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//JavaProperty/explicitPlainTextRequiredImports"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaProperty/explicitRequiredImports"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="java.ecore#//PrimitiveType">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//PrimitiveType/implementationClass"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//PrimitiveType/base_PrimitiveType"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute java.ecore#//PrimitiveType/collectionImplementationClass"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="java.ecore#//JavaProject">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaProject/base_Package"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="java.ecore#//JavaSrcFolder">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference java.ecore#//JavaSrcFolder/base_Package"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/models/java.profile.notation b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/models/java.profile.notation
new file mode 100644
index 0000000..cb1cb74
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/models/java.profile.notation
@@ -0,0 +1,821 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML">
+  <notation:Diagram xmi:id="_G11WsPfZEd-PNYpgO1g6_g" type="PapyrusUMLProfileDiagram" name="overview" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_I5t6APfZEd-PNYpgO1g6_g" type="1026" fontHeight="8" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I5t6AvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I5t6A_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I53D8PfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I53D8ffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I53D8vfZEd-PNYpgO1g6_g" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I53D8_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_I53D9PfZEd-PNYpgO1g6_g" type="1034"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_I53D9ffZEd-PNYpgO1g6_g" type="1071">
+        <children xmi:type="notation:Shape" xmi:id="_qnGaoPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_1YjagN0zEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qnGaoffZEd-PNYpgO1g6_g" x="54" y="23"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_qn2BgPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_GlqexN2MEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qn2BgffZEd-PNYpgO1g6_g" x="54" y="23"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_qn_ygPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_GlqewN2MEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qn_ygffZEd-PNYpgO1g6_g" x="54" y="23"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_PvSTcGnDEeCLCLVVSfvYsw" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_GlqexN2MEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_PvSTcWnDEeCLCLVVSfvYsw" x="60" y="43"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="__vPLsIAeEeGqdId9TXdXhQ" type="3002" fontName="Segoe UI" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_YAcWgIADEeGqdId9TXdXhQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="__vPLsYAeEeGqdId9TXdXhQ" x="115" y="67"/>
+        </children>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_I53D9vfZEd-PNYpgO1g6_g"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_I53D9_fZEd-PNYpgO1g6_g"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I53D-PfZEd-PNYpgO1g6_g"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_I53D-ffZEd-PNYpgO1g6_g" type="1019">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_I53D-vfZEd-PNYpgO1g6_g"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_I53D-_fZEd-PNYpgO1g6_g"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I53D_PfZEd-PNYpgO1g6_g"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="java.profile.uml#_zW6S4N0zEd6P1qtlpBOZyg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I5t6AffZEd-PNYpgO1g6_g" x="44" y="414" width="178" height="157"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_I8PpkPfZEd-PNYpgO1g6_g" type="1026" fontHeight="8" transparency="0" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I8PpkvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I8Ppk_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I8PplPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I8PplffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I8PplvfZEd-PNYpgO1g6_g" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I8Ppl_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_I8PpmPfZEd-PNYpgO1g6_g" type="1034"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_I8PpmffZEd-PNYpgO1g6_g" type="1071">
+        <children xmi:type="notation:Shape" xmi:id="_xbaAAPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_k58VkN2MEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_xbaAAffZEd-PNYpgO1g6_g" x="127" y="19"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_xcJm4PfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_gi_jcN2MEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_xcJm4ffZEd-PNYpgO1g6_g" x="127" y="19"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_xcdI4PfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_iuBQkN2MEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_xcdI4ffZEd-PNYpgO1g6_g" x="127" y="19"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_rQZI0PiVEd-PA5X9eH0eag" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_rOwKEPiVEd-PA5X9eH0eag"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_rQZI0fiVEd-PA5X9eH0eag"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="__LU6YPfeEd-Ui7vEO4yc0g" type="3002" fontHeight="8" lineColor="0">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b8Eh4PffEd-Ui7vEO4yc0g" source="CustomAppearance_Annotation">
+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cEkWkPffEd-Ui7vEO4yc0g" key="CustomAppearance_MaskValue" value="62"/>
+          </eAnnotations>
+          <element xmi:type="uml:Property" href="java.profile.uml#__JixsPfeEd-Ui7vEO4yc0g"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="__LU6YffeEd-Ui7vEO4yc0g"/>
+        </children>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_I8PpmvfZEd-PNYpgO1g6_g"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_I8Ppm_fZEd-PNYpgO1g6_g"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I8PpnPfZEd-PNYpgO1g6_g"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_I8PpnffZEd-PNYpgO1g6_g" type="1019">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_I8PpnvfZEd-PNYpgO1g6_g"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_I8Ppn_fZEd-PNYpgO1g6_g"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I8PpoPfZEd-PNYpgO1g6_g"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="java.profile.uml#_eGOmEN2MEd6P1qtlpBOZyg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I8PpkffZEd-PNYpgO1g6_g" x="732" y="36" width="277" height="151"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_OnYncPfZEd-PNYpgO1g6_g" type="1031" fontHeight="8" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OnYncvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OnYnc_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OnYndPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OnYndffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OnYndvfZEd-PNYpgO1g6_g" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OnYnd_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_OnYnePfZEd-PNYpgO1g6_g" type="1084"/>
+      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OnYncffZEd-PNYpgO1g6_g" x="84" y="642"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_Q1_NAPfZEd-PNYpgO1g6_g" type="1026" fontHeight="8" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q1_NAvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Q1_NA_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q1_NBPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Q1_NBffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q1_NBvfZEd-PNYpgO1g6_g" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Q1_NB_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_Q1_NCPfZEd-PNYpgO1g6_g" type="1034"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_Q1_NCffZEd-PNYpgO1g6_g" type="1071">
+        <children xmi:type="notation:Shape" xmi:id="_sXdlAPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_c7P2IN2LEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_sXdlAffZEd-PNYpgO1g6_g" x="35" y="16"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_sYDa4PfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_XbSNgN2LEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_sYDa4ffZEd-PNYpgO1g6_g" x="35" y="16"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_sYzBwPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_c7P2JN2LEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_sYzBwffZEd-PNYpgO1g6_g" x="35" y="16"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_sZPtsPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_d-mJgN2LEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_sZPtsffZEd-PNYpgO1g6_g" x="35" y="16"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_sZiooPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_XaPEoN2LEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_sZiooffZEd-PNYpgO1g6_g" x="35" y="16"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_sZ_UkPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_d-mJhN2LEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_sZ_UkffZEd-PNYpgO1g6_g" x="35" y="16"/>
+        </children>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_Q1_NCvfZEd-PNYpgO1g6_g"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_Q1_NC_fZEd-PNYpgO1g6_g"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q1_NDPfZEd-PNYpgO1g6_g"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_Q1_NDffZEd-PNYpgO1g6_g" type="1019">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_Q1_NDvfZEd-PNYpgO1g6_g"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_Q1_ND_fZEd-PNYpgO1g6_g"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q1_NEPfZEd-PNYpgO1g6_g"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="java.profile.uml#_TWN1kN2LEd6P1qtlpBOZyg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q1_NAffZEd-PNYpgO1g6_g" x="930" y="414" width="196" height="175"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_SDeT0PfZEd-PNYpgO1g6_g" type="1026" fontHeight="8" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SDeT0vfZEd-PNYpgO1g6_g" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SDeT0_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SDeT1PfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SDeT1ffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SDeT1vfZEd-PNYpgO1g6_g" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SDeT1_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_SDeT2PfZEd-PNYpgO1g6_g" type="1034"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_SDeT2ffZEd-PNYpgO1g6_g" type="1071">
+        <children xmi:type="notation:Shape" xmi:id="_0WkJkPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_Hb_KwN00Ed6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_0WkJkffZEd-PNYpgO1g6_g" x="46" y="18"/>
+        </children>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_SDeT2vfZEd-PNYpgO1g6_g"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_SDeT2_fZEd-PNYpgO1g6_g"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SDeT3PfZEd-PNYpgO1g6_g"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_SDeT3ffZEd-PNYpgO1g6_g" type="1019">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_SDeT3vfZEd-PNYpgO1g6_g"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_SDeT3_fZEd-PNYpgO1g6_g"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SDeT4PfZEd-PNYpgO1g6_g"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="java.profile.uml#_DPxB8N00Ed6P1qtlpBOZyg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SDeT0ffZEd-PNYpgO1g6_g" x="732" y="414" width="187" height="115"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_TFCegPfZEd-PNYpgO1g6_g" type="1026" fontHeight="8" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TFCegvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TFCeg_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TFCehPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TFCehffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TFCehvfZEd-PNYpgO1g6_g" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TFCeh_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_TFCeiPfZEd-PNYpgO1g6_g" type="1034"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_TFCeiffZEd-PNYpgO1g6_g" type="1071">
+        <children xmi:type="notation:Shape" xmi:id="_46fAsPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_3dFWEN2LEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_46fAsffZEd-PNYpgO1g6_g" x="33" y="10"/>
+        </children>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_TFCeivfZEd-PNYpgO1g6_g"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_TFCei_fZEd-PNYpgO1g6_g"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TFCejPfZEd-PNYpgO1g6_g"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_TFCejffZEd-PNYpgO1g6_g" type="1019">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_TFCejvfZEd-PNYpgO1g6_g"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_TFCej_fZEd-PNYpgO1g6_g"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TFCekPfZEd-PNYpgO1g6_g"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="java.profile.uml#_03FkMN2LEd6P1qtlpBOZyg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TFCegffZEd-PNYpgO1g6_g" x="1350" y="414" width="139"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_UHW3IPfZEd-PNYpgO1g6_g" type="1026" fontHeight="8" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UHW3IvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UHW3I_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UHW3JPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UHW3JffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UHW3JvfZEd-PNYpgO1g6_g" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UHW3J_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_UHW3KPfZEd-PNYpgO1g6_g" type="1034"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_UHW3KffZEd-PNYpgO1g6_g" type="1071">
+        <children xmi:type="notation:Shape" xmi:id="_7SxGsPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_BHVN0N2MEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_7SxGsffZEd-PNYpgO1g6_g" x="34" y="8"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_7TXjoPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_BHVN1N2MEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_7TXjoffZEd-PNYpgO1g6_g" x="34" y="8"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_7TqekPfZEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_ru_vkN2REd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_7TqekffZEd-PNYpgO1g6_g" x="34" y="8"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_GgDasIXFEeCQsIB6sI2lFg" type="3002" fontName="Segoe UI" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_Gf5psIXFEeCQsIB6sI2lFg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GgDasYXFEeCQsIB6sI2lFg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_IoefwIXFEeCQsIB6sI2lFg" type="3002" fontName="Segoe UI" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_IoLk0IXFEeCQsIB6sI2lFg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_IoefwYXFEeCQsIB6sI2lFg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_DCp_YIXIEeCQsIB6sI2lFg" type="3002" fontName="Segoe UI" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_DCg1cIXIEeCQsIB6sI2lFg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_DCp_YYXIEeCQsIB6sI2lFg"/>
+        </children>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_UHW3KvfZEd-PNYpgO1g6_g"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_UHW3K_fZEd-PNYpgO1g6_g"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UHW3LPfZEd-PNYpgO1g6_g"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_UHW3LffZEd-PNYpgO1g6_g" type="1019">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_UHW3LvfZEd-PNYpgO1g6_g"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_UHW3L_fZEd-PNYpgO1g6_g"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UHW3MPfZEd-PNYpgO1g6_g"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="java.profile.uml#_8_lVUN2LEd6P1qtlpBOZyg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UHW3IffZEd-PNYpgO1g6_g" x="1140" y="414" width="181" height="175"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_WbLT4PfZEd-PNYpgO1g6_g" type="1031" fontHeight="8" transparency="0" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WbLT4vfZEd-PNYpgO1g6_g" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WbLT4_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WbLT5PfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WbLT5ffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WbLT5vfZEd-PNYpgO1g6_g" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WbLT5_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_WbLT6PfZEd-PNYpgO1g6_g" type="1084"/>
+      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WbLT4ffZEd-PNYpgO1g6_g" x="990" y="630"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_XMDXMPfZEd-PNYpgO1g6_g" type="1031" fontHeight="8" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XMDXMvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XMDXM_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XMDXNPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XMDXNffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XMDXNvfZEd-PNYpgO1g6_g" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XMDXN_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_XMDXOPfZEd-PNYpgO1g6_g" type="1084"/>
+      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XMDXMffZEd-PNYpgO1g6_g" x="660" y="588"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_X3Q3YPfZEd-PNYpgO1g6_g" type="1031" fontHeight="8" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X3Q3YvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X3Q3Y_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X3Q3ZPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X3Q3ZffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X3Q3ZvfZEd-PNYpgO1g6_g" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X3Q3Z_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_X3Q3aPfZEd-PNYpgO1g6_g" type="1084"/>
+      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X3Q3YffZEd-PNYpgO1g6_g" x="1374" y="630"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_YqE0YPfZEd-PNYpgO1g6_g" type="1031" fontHeight="8" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YqE0YvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YqE0Y_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YqE0ZPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YqE0ZffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YqE0ZvfZEd-PNYpgO1g6_g" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YqE0Z_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_YqE0aPfZEd-PNYpgO1g6_g" type="1084"/>
+      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YqE0YffZEd-PNYpgO1g6_g" x="1194" y="630"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_aUd5oPfZEd-PNYpgO1g6_g" type="1026" fontHeight="8" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aUd5ovfZEd-PNYpgO1g6_g" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aUd5o_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aUd5pPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aUd5pffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aUd5pvfZEd-PNYpgO1g6_g" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aUd5p_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_aUd5qPfZEd-PNYpgO1g6_g" type="1034"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_aUd5qffZEd-PNYpgO1g6_g" type="1071">
+        <children xmi:type="notation:Shape" xmi:id="_KtrVgPfaEd-PNYpgO1g6_g" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_tw0n8N2SEd6P1qtlpBOZyg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_KtrVgffaEd-PNYpgO1g6_g" x="33" y="19"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_lPtMMHpoEeG6sMpxGcut-Q" type="3002" fontName="Segoe UI" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#__K6mcHpnEeG6sMpxGcut-Q"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_lPtMMXpoEeG6sMpxGcut-Q" x="106" y="19"/>
+        </children>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_aUd5qvfZEd-PNYpgO1g6_g"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_aUd5q_fZEd-PNYpgO1g6_g"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aUd5rPfZEd-PNYpgO1g6_g"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_aUd5rffZEd-PNYpgO1g6_g" type="1019">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_aUd5rvfZEd-PNYpgO1g6_g"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_aUd5r_fZEd-PNYpgO1g6_g"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aUd5sPfZEd-PNYpgO1g6_g"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="java.profile.uml#_q2aFQN2SEd6P1qtlpBOZyg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aUd5offZEd-PNYpgO1g6_g" x="252" y="414" width="217" height="115"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_eAzBcPfZEd-PNYpgO1g6_g" type="1031" fontHeight="8" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eAzBcvfZEd-PNYpgO1g6_g" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eAzBc_fZEd-PNYpgO1g6_g" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eAzBdPfZEd-PNYpgO1g6_g" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eAzBdffZEd-PNYpgO1g6_g" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eAzBdvfZEd-PNYpgO1g6_g" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eAzBd_fZEd-PNYpgO1g6_g" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_eAzBePfZEd-PNYpgO1g6_g" type="1084"/>
+      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eAzBcffZEd-PNYpgO1g6_g" x="306" y="588"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_t_c9EGXjEeCHc7Sujzc1_A" type="1026" fontHeight="8" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t_c9EmXjEeCHc7Sujzc1_A" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t_c9E2XjEeCHc7Sujzc1_A" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t_c9FGXjEeCHc7Sujzc1_A" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t_c9FWXjEeCHc7Sujzc1_A" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t_c9FmXjEeCHc7Sujzc1_A" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t_c9F2XjEeCHc7Sujzc1_A" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_t_c9GGXjEeCHc7Sujzc1_A" type="1034"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_t_c9GWXjEeCHc7Sujzc1_A" type="1071">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_t_c9GmXjEeCHc7Sujzc1_A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_t_c9G2XjEeCHc7Sujzc1_A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t_c9HGXjEeCHc7Sujzc1_A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_t_c9HWXjEeCHc7Sujzc1_A" type="1019">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_t_c9HmXjEeCHc7Sujzc1_A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_t_c9H2XjEeCHc7Sujzc1_A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t_c9IGXjEeCHc7Sujzc1_A"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="java.profile.uml#_t-QqQGXjEeCHc7Sujzc1_A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t_c9EWXjEeCHc7Sujzc1_A" x="486" y="414" height="49"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_10uQMGXjEeCHc7Sujzc1_A" type="1026" fontHeight="8" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_10uQMmXjEeCHc7Sujzc1_A" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_10uQM2XjEeCHc7Sujzc1_A" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_10uQNGXjEeCHc7Sujzc1_A" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_10uQNWXjEeCHc7Sujzc1_A" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_10uQNmXjEeCHc7Sujzc1_A" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_10uQN2XjEeCHc7Sujzc1_A" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_10uQOGXjEeCHc7Sujzc1_A" type="1034"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_10uQOWXjEeCHc7Sujzc1_A" type="1071">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_10uQOmXjEeCHc7Sujzc1_A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_10uQO2XjEeCHc7Sujzc1_A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_10uQPGXjEeCHc7Sujzc1_A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_10uQPWXjEeCHc7Sujzc1_A" type="1019">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_10uQPmXjEeCHc7Sujzc1_A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_10uQP2XjEeCHc7Sujzc1_A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_10uQQGXjEeCHc7Sujzc1_A"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="java.profile.uml#_10lGQGXjEeCHc7Sujzc1_A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_10uQMWXjEeCHc7Sujzc1_A" x="618" y="414" height="49"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_4QcEsWXjEeCHc7Sujzc1_A" type="1026" fontHeight="8" transparency="0" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4Ql1sGXjEeCHc7Sujzc1_A" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4Ql1sWXjEeCHc7Sujzc1_A" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4Ql1smXjEeCHc7Sujzc1_A" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4Ql1s2XjEeCHc7Sujzc1_A" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4Ql1tGXjEeCHc7Sujzc1_A" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4Ql1tWXjEeCHc7Sujzc1_A" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_4Ql1tmXjEeCHc7Sujzc1_A" type="1034"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_4Ql1t2XjEeCHc7Sujzc1_A" type="1071">
+        <children xmi:type="notation:Shape" xmi:id="_YL1kIHSnEeCRC6drc39K0A" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_7jn3QGXkEeCx-IU0sjGPKA"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_YL1kIXSnEeCRC6drc39K0A" x="61" y="6"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_YL-uEHSnEeCRC6drc39K0A" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_--Xf0GXkEeCx-IU0sjGPKA"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_YL-uEXSnEeCRC6drc39K0A" x="61" y="6"/>
+        </children>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_4Ql1uGXjEeCHc7Sujzc1_A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_4Ql1uWXjEeCHc7Sujzc1_A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Ql1umXjEeCHc7Sujzc1_A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_4Ql1u2XjEeCHc7Sujzc1_A" type="1019">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_4Ql1vGXjEeCHc7Sujzc1_A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_4Ql1vWXjEeCHc7Sujzc1_A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Ql1vmXjEeCHc7Sujzc1_A"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="java.profile.uml#_4QcEsGXjEeCHc7Sujzc1_A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4QcEsmXjEeCHc7Sujzc1_A" x="408" y="234" width="211" height="115"/>
+    </children>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_G11WsffZEd-PNYpgO1g6_g"/>
+    <element xmi:type="uml:Profile" href="java.profile.uml#_6TYLMN0yEd6P1qtlpBOZyg"/>
+    <edges xmi:type="notation:Connector" xmi:id="_I-oPMPfZEd-PNYpgO1g6_g" type="4002" source="_I5t6APfZEd-PNYpgO1g6_g" target="_4QcEsWXjEeCHc7Sujzc1_A" routing="Tree" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_I-yAMPfZEd-PNYpgO1g6_g" visible="false" type="6007">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_I-yAMffZEd-PNYpgO1g6_g" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_I-oPMffZEd-PNYpgO1g6_g" fontHeight="8"/>
+      <element xmi:type="uml:Generalization" href="java.profile.uml#_q6PrIN2MEd6P1qtlpBOZyg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_I-oPMvfZEd-PNYpgO1g6_g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B6j6EPfaEd-PNYpgO1g6_g" id="(0.4550561797752809,0.06086956521739131)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J1UxkHSnEeCRC6drc39K0A" id="(0.54,0.8)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_OourQPfZEd-PNYpgO1g6_g" type="1013" source="_I5t6APfZEd-PNYpgO1g6_g" target="_OnYncPfZEd-PNYpgO1g6_g" lineColor="0">
+      <styles xmi:type="notation:FontStyle" xmi:id="_OourQffZEd-PNYpgO1g6_g" fontHeight="8"/>
+      <element xmi:type="uml:Extension" href="java.profile.uml#_3_5QMN0zEd6P1qtlpBOZyg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OourQvfZEd-PNYpgO1g6_g" points="[-46, -50, 280, 312]$[-326, -362, 0, 0]"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_Q2I-APfZEd-PNYpgO1g6_g" type="4002" source="_Q1_NAPfZEd-PNYpgO1g6_g" target="_I8PpkPfZEd-PNYpgO1g6_g" routing="Tree" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_Q2I-A_fZEd-PNYpgO1g6_g" visible="false" type="6007">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Q2I-BPfZEd-PNYpgO1g6_g" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_Q2I-AffZEd-PNYpgO1g6_g" fontHeight="8"/>
+      <element xmi:type="uml:Generalization" href="java.profile.uml#_tWjVgN2MEd6P1qtlpBOZyg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Q2I-AvfZEd-PNYpgO1g6_g" points="[0, 0, -506, -152]$[450, 135, -56, -17]"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_SD6_wPfZEd-PNYpgO1g6_g" type="4002" source="_SDeT0PfZEd-PNYpgO1g6_g" target="_4QcEsWXjEeCHc7Sujzc1_A" routing="Tree" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_SD6_w_fZEd-PNYpgO1g6_g" visible="false" type="6007">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_SD6_xPfZEd-PNYpgO1g6_g" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_SD6_wffZEd-PNYpgO1g6_g" fontHeight="8"/>
+      <element xmi:type="uml:Generalization" href="java.profile.uml#_t2JbkN2MEd6P1qtlpBOZyg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SD6_wvfZEd-PNYpgO1g6_g" points="[0, 3, 0, 3]$[0, 3, 0, 3]"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sXzDEHWXEeCZk9SoruwsTQ" id="(0.5639810426540285,0.9739130434782609)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_TFo7cPfZEd-PNYpgO1g6_g" type="4002" source="_TFCegPfZEd-PNYpgO1g6_g" target="_I8PpkPfZEd-PNYpgO1g6_g" routing="Tree" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_TFo7c_fZEd-PNYpgO1g6_g" visible="false" type="6007">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_TFo7dPfZEd-PNYpgO1g6_g" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_TFo7cffZEd-PNYpgO1g6_g" fontHeight="8"/>
+      <element xmi:type="uml:Generalization" href="java.profile.uml#_rvlXsN2MEd6P1qtlpBOZyg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TFo7cvfZEd-PNYpgO1g6_g" points="[0, 0, -506, -152]$[450, 135, -56, -17]"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_UHy8APfZEd-PNYpgO1g6_g" type="4002" source="_UHW3IPfZEd-PNYpgO1g6_g" target="_I8PpkPfZEd-PNYpgO1g6_g" routing="Tree" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_UHy8A_fZEd-PNYpgO1g6_g" visible="false" type="6007">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_UHy8BPfZEd-PNYpgO1g6_g" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_UHy8AffZEd-PNYpgO1g6_g" fontHeight="8"/>
+      <element xmi:type="uml:Generalization" href="java.profile.uml#_snKf8N2MEd6P1qtlpBOZyg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UHy8AvfZEd-PNYpgO1g6_g" points="[0, 0, -506, -152]$[450, 135, -56, -17]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_emO0UPfaEd-PNYpgO1g6_g" id="(0.20441988950276244,0.043478260869565216)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_WbxJwPfZEd-PNYpgO1g6_g" type="1013" source="_Q1_NAPfZEd-PNYpgO1g6_g" target="_WbLT4PfZEd-PNYpgO1g6_g" lineColor="0">
+      <styles xmi:type="notation:FontStyle" xmi:id="_WbxJwffZEd-PNYpgO1g6_g" fontHeight="8"/>
+      <element xmi:type="uml:Extension" href="java.profile.uml#_9iVnoN2MEd6P1qtlpBOZyg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WbxJwvfZEd-PNYpgO1g6_g" points="[-50, -36, 462, 332]$[-512, -368, 0, 0]"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_XMMhIPfZEd-PNYpgO1g6_g" type="1013" source="_SDeT0PfZEd-PNYpgO1g6_g" target="_XMDXMPfZEd-PNYpgO1g6_g" lineColor="0">
+      <styles xmi:type="notation:FontStyle" xmi:id="_XMMhIffZEd-PNYpgO1g6_g" fontHeight="8"/>
+      <element xmi:type="uml:Extension" href="java.profile.uml#_KM3W8N00Ed6P1qtlpBOZyg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XMMhIvfZEd-PNYpgO1g6_g" points="[94, -2, -181, 3]$[225, -5, -50, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_V_ox8PfaEd-PNYpgO1g6_g" id="(0.9518716577540107,0.44047619047619047)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_X4AeQPfZEd-PNYpgO1g6_g" type="1013" source="_TFCegPfZEd-PNYpgO1g6_g" target="_X3Q3YPfZEd-PNYpgO1g6_g" lineColor="0">
+      <styles xmi:type="notation:FontStyle" xmi:id="_X4AeQffZEd-PNYpgO1g6_g" fontHeight="8"/>
+      <element xmi:type="uml:Extension" href="java.profile.uml#_GLUPoN2NEd6P1qtlpBOZyg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_X4AeQvfZEd-PNYpgO1g6_g" points="[-50, -22, 822, 358]$[-872, -380, 0, 0]"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_YqXvUPfZEd-PNYpgO1g6_g" type="1013" source="_UHW3IPfZEd-PNYpgO1g6_g" target="_YqE0YPfZEd-PNYpgO1g6_g" lineColor="0">
+      <styles xmi:type="notation:FontStyle" xmi:id="_YqXvUffZEd-PNYpgO1g6_g" fontHeight="8"/>
+      <element xmi:type="uml:Extension" href="java.profile.uml#_-3uGMN2MEd6P1qtlpBOZyg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YqXvUvfZEd-PNYpgO1g6_g" points="[-50, -18, 1002, 356]$[-1052, -374, 0, 0]"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_aU6lkPfZEd-PNYpgO1g6_g" type="4002" source="_aUd5oPfZEd-PNYpgO1g6_g" target="_4QcEsWXjEeCHc7Sujzc1_A" routing="Tree" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_aU6lk_fZEd-PNYpgO1g6_g" visible="false" type="6007">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_aU6llPfZEd-PNYpgO1g6_g" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_aU6lkffZEd-PNYpgO1g6_g" fontHeight="8"/>
+      <element xmi:type="uml:Generalization" href="java.profile.uml#_05iXEN2SEd6P1qtlpBOZyg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aU6lkvfZEd-PNYpgO1g6_g" points="[0, 0, -588, -122]$[450, 93, -138, -29]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ck4CYPfaEd-PNYpgO1g6_g" id="(0.018433179723502304,0.2976190476190476)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RGtUIPfaEd-PNYpgO1g6_g" id="(0.48292682926829267,0.8823529411764706)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_eA8ycPfZEd-PNYpgO1g6_g" type="1013" source="_aUd5oPfZEd-PNYpgO1g6_g" target="_eAzBcPfZEd-PNYpgO1g6_g" lineColor="0">
+      <styles xmi:type="notation:FontStyle" xmi:id="_eA8ycffZEd-PNYpgO1g6_g" fontHeight="8"/>
+      <element xmi:type="uml:Extension" href="java.profile.uml#_8_DssN2SEd6P1qtlpBOZyg"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eA8ycvfZEd-PNYpgO1g6_g" points="[-50, -17, 1110, 363]$[-1160, -380, 0, 0]"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_g3DuAGXkEeCx-IU0sjGPKA" type="1013" source="_t_c9EGXjEeCHc7Sujzc1_A" target="_XMDXMPfZEd-PNYpgO1g6_g" lineColor="0">
+      <styles xmi:type="notation:FontStyle" xmi:id="_g3DuAWXkEeCx-IU0sjGPKA" fontHeight="8"/>
+      <element xmi:type="uml:Extension" href="java.profile.uml#_g2wMAWXkEeCx-IU0sjGPKA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_g3DuAmXkEeCx-IU0sjGPKA" points="[17, -27, -33, 50]$[123, -115, 73, -38]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g3M38GXkEeCx-IU0sjGPKA" id="(0.83,0.31)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g3M38WXkEeCx-IU0sjGPKA" id="(0.25,0.76)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_haqxY2XkEeCx-IU0sjGPKA" type="1013" source="_10uQMGXjEeCHc7Sujzc1_A" target="_XMDXMPfZEd-PNYpgO1g6_g" lineColor="0">
+      <styles xmi:type="notation:FontStyle" xmi:id="_haqxZGXkEeCx-IU0sjGPKA" fontHeight="8"/>
+      <element xmi:type="uml:Extension" href="java.profile.uml#_haqxYWXkEeCx-IU0sjGPKA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_haqxZWXkEeCx-IU0sjGPKA" points="[13, -39, -55, 163]$[78, -243, 10, -41]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ha0iYGXkEeCx-IU0sjGPKA" id="(0.86,0.39)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ha0iYWXkEeCx-IU0sjGPKA" id="(0.46,0.82)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_je1okWXkEeCx-IU0sjGPKA" type="4002" source="_4QcEsWXjEeCHc7Sujzc1_A" target="_I8PpkPfZEd-PNYpgO1g6_g" routing="Tree" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_je1olGXkEeCx-IU0sjGPKA" type="6007">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_je1olWXkEeCx-IU0sjGPKA" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_je1okmXkEeCx-IU0sjGPKA" fontHeight="8"/>
+      <element xmi:type="uml:Generalization" href="java.profile.uml#_je1okGXkEeCx-IU0sjGPKA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_je1ok2XkEeCx-IU0sjGPKA" points="[-5, -6, 276, 302]$[-545, -448, -264, -140]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_je_ZkGXkEeCx-IU0sjGPKA" id="(0.44,0.03636363636363636)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_je_ZkWXkEeCx-IU0sjGPKA" id="(0.36101083032490977,0.9470198675496688)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_t4UesHSnEeCRC6drc39K0A" type="4002" source="_10uQMGXjEeCHc7Sujzc1_A" target="_4QcEsWXjEeCHc7Sujzc1_A" routing="Tree" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_t4Ues3SnEeCRC6drc39K0A" visible="false" type="6007">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_t4UetHSnEeCRC6drc39K0A" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_t4UesXSnEeCRC6drc39K0A" fontHeight="8"/>
+      <element xmi:type="uml:Generalization" href="java.profile.uml#_0yceYGXkEeCx-IU0sjGPKA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t4UesnSnEeCRC6drc39K0A" points="[-26, -24, 126, 123]$[-108, -104, 44, 43]"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NaY-UHSoEeCRC6drc39K0A" id="(0.6926829268292682,0.9647058823529412)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_xC-c0HSnEeCRC6drc39K0A" type="4002" source="_t_c9EGXjEeCHc7Sujzc1_A" target="_4QcEsWXjEeCHc7Sujzc1_A" routing="Tree" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_xC-c03SnEeCRC6drc39K0A" visible="false" type="6007">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_xC-c1HSnEeCRC6drc39K0A" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_xC-c0XSnEeCRC6drc39K0A" fontHeight="8"/>
+      <element xmi:type="uml:Generalization" href="java.profile.uml#_0Rz2gGXkEeCx-IU0sjGPKA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xC-c0nSnEeCRC6drc39K0A" points="[-4, -24, 16, 126]$[-14, -107, 6, 43]"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M_t0gHSoEeCRC6drc39K0A" id="(0.44390243902439025,0.8588235294117647)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_m5JasIAEEeGqdId9TXdXhQ" type="4001" source="_I5t6APfZEd-PNYpgO1g6_g" target="_OnYncPfZEd-PNYpgO1g6_g" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_m5KBwIAEEeGqdId9TXdXhQ" visible="false" type="6001">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_m5KBwYAEEeGqdId9TXdXhQ" y="60"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_m5Ko0IAEEeGqdId9TXdXhQ" visible="false" type="6002">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_m5Ko0YAEEeGqdId9TXdXhQ" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_m5Ko0oAEEeGqdId9TXdXhQ" visible="false" type="6003">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_m5Ko04AEEeGqdId9TXdXhQ" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_m5Ko1IAEEeGqdId9TXdXhQ" visible="false" type="6005">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_m5Ko1YAEEeGqdId9TXdXhQ" y="-20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_m5Ko1oAEEeGqdId9TXdXhQ" visible="false" type="6033">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_m5Ko14AEEeGqdId9TXdXhQ" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_m5Ko2IAEEeGqdId9TXdXhQ" visible="false" type="6034">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_m5Ko2YAEEeGqdId9TXdXhQ" y="-20"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_m5JasYAEEeGqdId9TXdXhQ" fontName="Segoe UI"/>
+      <element xmi:type="uml:Association" href="java.profile.uml#_uZHBoIADEeGqdId9TXdXhQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_m5JasoAEEeGqdId9TXdXhQ" points="[1, 64, 0, -72]$[0, 111, -1, -25]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pAVwsIAEEeGqdId9TXdXhQ" id="(0.33146067415730335,0.9921259842519685)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pXE1sIAEEeGqdId9TXdXhQ" id="(0.25,0.16)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_XjtvoIDyEeGqdId9TXdXhQ" type="4001" source="_Q1_NAPfZEd-PNYpgO1g6_g" target="_OnYncPfZEd-PNYpgO1g6_g" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_Xju9wIDyEeGqdId9TXdXhQ" visible="false" type="6001">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Xju9wYDyEeGqdId9TXdXhQ" y="60"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_Xju9woDyEeGqdId9TXdXhQ" visible="false" type="6002">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Xju9w4DyEeGqdId9TXdXhQ" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_Xju9xIDyEeGqdId9TXdXhQ" visible="false" type="6003">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Xju9xYDyEeGqdId9TXdXhQ" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_Xjvk0IDyEeGqdId9TXdXhQ" visible="false" type="6005">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Xjvk0YDyEeGqdId9TXdXhQ" y="-20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_Xjvk0oDyEeGqdId9TXdXhQ" visible="false" type="6033">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Xjvk04DyEeGqdId9TXdXhQ" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_Xjvk1IDyEeGqdId9TXdXhQ" visible="false" type="6034">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Xjvk1YDyEeGqdId9TXdXhQ" y="-20"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_XjtvoYDyEeGqdId9TXdXhQ" fontName="Segoe UI"/>
+      <element xmi:type="uml:Association" href="java.profile.uml#_XjHSsIDyEeGqdId9TXdXhQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XjtvooDyEeGqdId9TXdXhQ" points="[-8, 7, 781, -60]$[-8, 78, 781, 11]$[-778, 67, 11, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Xkhn8IDyEeGqdId9TXdXhQ" id="(0.16326530612244897,0.96)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Xkhn8YDyEeGqdId9TXdXhQ" id="(0.89,0.74)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_bwKh8IDyEeGqdId9TXdXhQ" type="4001" source="_UHW3IPfZEd-PNYpgO1g6_g" target="_OnYncPfZEd-PNYpgO1g6_g" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_bwLJAIDyEeGqdId9TXdXhQ" visible="false" type="6001">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_bwLJAYDyEeGqdId9TXdXhQ" y="60"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_bwLJAoDyEeGqdId9TXdXhQ" visible="false" type="6002">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_bwLJA4DyEeGqdId9TXdXhQ" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_bwLwEIDyEeGqdId9TXdXhQ" visible="false" type="6003">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_bwLwEYDyEeGqdId9TXdXhQ" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_bwLwEoDyEeGqdId9TXdXhQ" visible="false" type="6005">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_bwLwE4DyEeGqdId9TXdXhQ" y="-20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_bwLwFIDyEeGqdId9TXdXhQ" visible="false" type="6033">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_bwLwFYDyEeGqdId9TXdXhQ" y="20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_bwLwFoDyEeGqdId9TXdXhQ" visible="false" type="6034">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_bwLwF4DyEeGqdId9TXdXhQ" y="-20"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_bwKh8YDyEeGqdId9TXdXhQ" fontName="Segoe UI"/>
+      <element xmi:type="uml:Association" href="java.profile.uml#_bvnIUIDyEeGqdId9TXdXhQ"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bwKh8oDyEeGqdId9TXdXhQ" points="[0, 8, 994, -94]$[0, 109, 994, 7]$[-988, 109, 6, 7]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bxMcsIDyEeGqdId9TXdXhQ" id="(0.17679558011049723,0.9542857142857143)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bxMcsYDyEeGqdId9TXdXhQ" id="(0.94,0.82)"/>
+    </edges>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_uqGAEGXkEeCx-IU0sjGPKA" type="PapyrusUMLProfileDiagram" name="javagen hierarchy" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_v_CZwGXkEeCx-IU0sjGPKA" type="1026" fontHeight="8" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v_CZwmXkEeCx-IU0sjGPKA" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v_CZw2XkEeCx-IU0sjGPKA" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v_CZxGXkEeCx-IU0sjGPKA" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v_CZxWXkEeCx-IU0sjGPKA" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_v_CZxmXkEeCx-IU0sjGPKA" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_v_CZx2XkEeCx-IU0sjGPKA" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_v_CZyGXkEeCx-IU0sjGPKA" type="1034"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_v_CZyWXkEeCx-IU0sjGPKA" type="1071">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_v_CZymXkEeCx-IU0sjGPKA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_v_CZy2XkEeCx-IU0sjGPKA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v_CZzGXkEeCx-IU0sjGPKA"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_v_CZzWXkEeCx-IU0sjGPKA" type="1019">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_v_CZzmXkEeCx-IU0sjGPKA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_v_CZz2XkEeCx-IU0sjGPKA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v_CZ0GXkEeCx-IU0sjGPKA"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="java.profile.uml#_zW6S4N0zEd6P1qtlpBOZyg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v_CZwWXkEeCx-IU0sjGPKA" x="156" y="384"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_w5vugGXkEeCx-IU0sjGPKA" type="1026" fontHeight="8" transparency="0" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w5vugmXkEeCx-IU0sjGPKA" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w5vug2XkEeCx-IU0sjGPKA" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w5vuhGXkEeCx-IU0sjGPKA" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w5vuhWXkEeCx-IU0sjGPKA" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w5vuhmXkEeCx-IU0sjGPKA" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w5vuh2XkEeCx-IU0sjGPKA" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_w5vuiGXkEeCx-IU0sjGPKA" type="1034"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_w5vuiWXkEeCx-IU0sjGPKA" type="1071">
+        <children xmi:type="notation:Shape" xmi:id="_7j6yMGXkEeCx-IU0sjGPKA" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_7jn3QGXkEeCx-IU0sjGPKA"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_7j6yMWXkEeCx-IU0sjGPKA"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_--rB0GXkEeCx-IU0sjGPKA" type="3002" fontHeight="8" lineColor="0">
+          <element xmi:type="uml:Property" href="java.profile.uml#_--Xf0GXkEeCx-IU0sjGPKA"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_--rB0WXkEeCx-IU0sjGPKA"/>
+        </children>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_w5vuimXkEeCx-IU0sjGPKA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_w5vui2XkEeCx-IU0sjGPKA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w5vujGXkEeCx-IU0sjGPKA"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_w5vujWXkEeCx-IU0sjGPKA" type="1019">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_w5vujmXkEeCx-IU0sjGPKA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_w5vuj2XkEeCx-IU0sjGPKA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w5vukGXkEeCx-IU0sjGPKA"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="java.profile.uml#_4QcEsGXjEeCHc7Sujzc1_A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w5vugWXkEeCx-IU0sjGPKA" x="276" y="168" width="187"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_yHFEUGXkEeCx-IU0sjGPKA" type="1026" fontHeight="8" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yHFEUmXkEeCx-IU0sjGPKA" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yHFEU2XkEeCx-IU0sjGPKA" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yHFEVGXkEeCx-IU0sjGPKA" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yHFEVWXkEeCx-IU0sjGPKA" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yHFEVmXkEeCx-IU0sjGPKA" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yHFEV2XkEeCx-IU0sjGPKA" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_yHFEWGXkEeCx-IU0sjGPKA" type="1034"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_yHFEWWXkEeCx-IU0sjGPKA" type="1071">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_yHFEWmXkEeCx-IU0sjGPKA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_yHFEW2XkEeCx-IU0sjGPKA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yHFEXGXkEeCx-IU0sjGPKA"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_yHFEXWXkEeCx-IU0sjGPKA" type="1019">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_yHFEXmXkEeCx-IU0sjGPKA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_yHFEX2XkEeCx-IU0sjGPKA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yHFEYGXkEeCx-IU0sjGPKA"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="java.profile.uml#_t-QqQGXjEeCHc7Sujzc1_A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yHFEUWXkEeCx-IU0sjGPKA" x="306" y="384"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_yeoBoGXkEeCx-IU0sjGPKA" type="1026" fontHeight="8" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yeoBomXkEeCx-IU0sjGPKA" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yeoBo2XkEeCx-IU0sjGPKA" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yeoBpGXkEeCx-IU0sjGPKA" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yeoBpWXkEeCx-IU0sjGPKA" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yeoBpmXkEeCx-IU0sjGPKA" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yeoBp2XkEeCx-IU0sjGPKA" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_yeoBqGXkEeCx-IU0sjGPKA" type="1034"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_yeoBqWXkEeCx-IU0sjGPKA" type="1071">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_yeoBqmXkEeCx-IU0sjGPKA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_yeoBq2XkEeCx-IU0sjGPKA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yeoBrGXkEeCx-IU0sjGPKA"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_yeoBrWXkEeCx-IU0sjGPKA" type="1019">
+        <styles xmi:type="notation:SortingStyle" xmi:id="_yeoBrmXkEeCx-IU0sjGPKA"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_yeoBr2XkEeCx-IU0sjGPKA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yeoBsGXkEeCx-IU0sjGPKA"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="java.profile.uml#_10lGQGXjEeCHc7Sujzc1_A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yeoBoWXkEeCx-IU0sjGPKA" x="456" y="384"/>
+    </children>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_uqGAEWXkEeCx-IU0sjGPKA"/>
+    <element xmi:type="uml:Profile" href="java.profile.uml#_6TYLMN0yEd6P1qtlpBOZyg"/>
+    <edges xmi:type="notation:Connector" xmi:id="_zs2vUGXkEeCx-IU0sjGPKA" type="4002" source="_v_CZwGXkEeCx-IU0sjGPKA" target="_w5vugGXkEeCx-IU0sjGPKA" routing="Tree" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_zs2vU2XkEeCx-IU0sjGPKA" type="6007">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_zs2vVGXkEeCx-IU0sjGPKA" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_zs2vUWXkEeCx-IU0sjGPKA" fontHeight="8"/>
+      <element xmi:type="uml:Generalization" href="java.profile.uml#_zstlYGXkEeCx-IU0sjGPKA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zs2vUmXkEeCx-IU0sjGPKA" points="[8, -6, -115, 77]$[180, -174, 57, -91]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ztJqQGXkEeCx-IU0sjGPKA" id="(0.63,0.06)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ztJqQWXkEeCx-IU0sjGPKA" id="(0.24,0.91)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_0R9ngGXkEeCx-IU0sjGPKA" type="4002" source="_yHFEUGXkEeCx-IU0sjGPKA" target="_w5vugGXkEeCx-IU0sjGPKA" routing="Tree" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_0R9ng2XkEeCx-IU0sjGPKA" type="6007">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_0R9nhGXkEeCx-IU0sjGPKA" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_0R9ngWXkEeCx-IU0sjGPKA" fontHeight="8"/>
+      <element xmi:type="uml:Generalization" href="java.profile.uml#_0Rz2gGXkEeCx-IU0sjGPKA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0R9ngmXkEeCx-IU0sjGPKA" points="[1, -9, -12, 79]$[22, -177, 9, -89]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0SaTcGXkEeCx-IU0sjGPKA" id="(0.45,0.09)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0SaTcWXkEeCx-IU0sjGPKA" id="(0.46,0.89)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_0ymPYGXkEeCx-IU0sjGPKA" type="4002" source="_yeoBoGXkEeCx-IU0sjGPKA" target="_w5vugGXkEeCx-IU0sjGPKA" routing="Tree" lineColor="0">
+      <children xmi:type="notation:DecorationNode" xmi:id="_0ymPY2XkEeCx-IU0sjGPKA" type="6007">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_0ymPZGXkEeCx-IU0sjGPKA" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_0ymPYWXkEeCx-IU0sjGPKA" fontHeight="8"/>
+      <element xmi:type="uml:Generalization" href="java.profile.uml#_0yceYGXkEeCx-IU0sjGPKA"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0ymPYmXkEeCx-IU0sjGPKA" points="[-12, -10, 95, 82]$[-98, -78, 9, 14]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0y5KUGXkEeCx-IU0sjGPKA" id="(0.43,0.1)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0y5KUWXkEeCx-IU0sjGPKA" id="(0.74,0.86)"/>
+    </edges>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_uBztsIXFEeCQsIB6sI2lFg" type="PapyrusUMLProfileDiagram" name="dataType" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_xxBxcIXFEeCQsIB6sI2lFg" type="2006" fontName="Segoe UI" lineColor="0">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xxBxcoXFEeCQsIB6sI2lFg" source="ShadowFigure">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xxBxc4XFEeCQsIB6sI2lFg" key="ShadowFigure_Value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xxBxdIXFEeCQsIB6sI2lFg" source="displayNameLabelIcon">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xxBxdYXFEeCQsIB6sI2lFg" key="displayNameLabelIcon_value" value="false"/>
+      </eAnnotations>
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xxBxdoXFEeCQsIB6sI2lFg" source="QualifiedName">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xxBxd4XFEeCQsIB6sI2lFg" key="QualifiedNameDepth" value="1000"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_xxBxeIXFEeCQsIB6sI2lFg" type="5023"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xxLicIXFEeCQsIB6sI2lFg" type="1063">
+        <children xmi:type="notation:Shape" xmi:id="_29ZIoIXFEeCQsIB6sI2lFg" type="1037" fontName="Segoe UI" lineColor="0">
+          <element xmi:type="uml:EnumerationLiteral" href="java.profile.uml#_29GNsIXFEeCQsIB6sI2lFg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_29ZIoYXFEeCQsIB6sI2lFg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_4He9MIXFEeCQsIB6sI2lFg" type="1037" fontName="Segoe UI" lineColor="0">
+          <element xmi:type="uml:EnumerationLiteral" href="java.profile.uml#_4HMCQIXFEeCQsIB6sI2lFg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_4He9MYXFEeCQsIB6sI2lFg"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_469BgIXFEeCQsIB6sI2lFg" type="1037" fontName="Segoe UI" lineColor="0">
+          <element xmi:type="uml:EnumerationLiteral" href="java.profile.uml#_46qGkIXFEeCQsIB6sI2lFg"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_469BgYXFEeCQsIB6sI2lFg"/>
+        </children>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_xxLicYXFEeCQsIB6sI2lFg"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_xxLicoXFEeCQsIB6sI2lFg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xxLic4XFEeCQsIB6sI2lFg"/>
+      </children>
+      <element xmi:type="uml:Enumeration" href="java.profile.uml#_xwb7kIXFEeCQsIB6sI2lFg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xxBxcYXFEeCQsIB6sI2lFg" x="213" y="110"/>
+    </children>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_uBztsYXFEeCQsIB6sI2lFg"/>
+    <element xmi:type="uml:Profile" href="java.profile.uml#_6TYLMN0yEd6P1qtlpBOZyg"/>
+  </notation:Diagram>
+</xmi:XMI>
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/models/java.profile.uml b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/models/java.profile.uml
new file mode 100644
index 0000000..4eca01c
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/models/java.profile.uml
@@ -0,0 +1,5729 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+  <uml:Profile xmi:id="_6TYLMN0yEd6P1qtlpBOZyg" name="java" metaclassReference="_ayF5QN0zEd6P1qtlpBOZyg _a2aYkN0zEd6P1qtlpBOZyg _a4NIUN0zEd6P1qtlpBOZyg _a5PqIN0zEd6P1qtlpBOZyg _a6b88N0zEd6P1qtlpBOZyg _a77KsN0zEd6P1qtlpBOZyg _a80ikN0zEd6P1qtlpBOZyg _Bdek8N00Ed6P1qtlpBOZyg _CiHUUN2NEd6P1qtlpBOZyg _4wmIMN2SEd6P1qtlpBOZyg">
+    <eAnnotations xmi:id="_MzA50N00Ed6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+      <contents xmi:type="ecore:EPackage" xmi:id="_sJNM8IDyEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNM8YDyEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_sJNNBIDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sJNM8oDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_sJNM84DyEeGqdId9TXdXhQ" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_sJNM9IDyEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_sJNM9YDyEeGqdId9TXdXhQ" source="redefines" references="_sJNNDYDyEeGqdId9TXdXhQ"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNM94DyEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNM-YDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNM-4DyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNM_YDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNM_4DyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNAYDyEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNBIDyEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_sJNNC4DyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sJNNBYDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNBoDyEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNCIDyEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNC4DyEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_sJNNDIDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNDYDyEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNND4DyEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNEYDyEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNE4DyEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNFYDyEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNF4DyEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_sJNNBIDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sJNNGIDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNGYDyEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNG4DyEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNHoDyEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_sJNNC4DyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sJNNH4DyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNIIDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNIoDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNJIDyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNJoDyEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNKIDyEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNKoDyEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNLIDyEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNLoDyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNMIDyEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNM4DyEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_sJNNC4DyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sJNNNIDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNNYDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNN4DyEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNOoDyEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_sJNNC4DyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sJNNO4DyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNPIDyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNPoDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNQIDyEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNQoDyEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNRIDyEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNRoDyEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNSIDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNSoDyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNTIDyEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNT4DyEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_sJNNBIDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sJNNUIDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNUYDyEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNU4DyEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sJNNVYDyEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNWIDyEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_sJNNBIDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sJNNWYDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNWoDyEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sJNNXYDyEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_sJNNBIDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sJNNXoDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sJNNX4DyEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_sJNNYoDyEeGqdId9TXdXhQ" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_sJNNY4DyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_sJNNZIDyEeGqdId9TXdXhQ" name="true"/>
+          <eLiterals xmi:id="_sJNNZYDyEeGqdId9TXdXhQ" name="false" value="1"/>
+          <eLiterals xmi:id="_sJNNZoDyEeGqdId9TXdXhQ" name="default" value="2"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_oyehsIDyEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyehsYDyEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_oyehxIDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_oyehsoDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_oyehs4DyEeGqdId9TXdXhQ" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_oyehtIDyEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_oyehtYDyEeGqdId9TXdXhQ" source="redefines" references="_oyehzYDyEeGqdId9TXdXhQ"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeht4DyEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyehuYDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyehu4DyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyehvYDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyehv4DyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyehwYDyEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyehxIDyEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_oyehy4DyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_oyehxYDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyehxoDyEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyehyIDyEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyehy4DyEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_oyehzIDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyehzYDyEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyehz4DyEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh0YDyEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh04DyEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh1YDyEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyeh14DyEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_oyehxIDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_oyeh2IDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh2YDyEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeh24DyEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyeh3oDyEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_oyehy4DyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_oyeh34DyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh4IDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh4oDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh5IDyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh5oDyEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh6IDyEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh6oDyEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeh7IDyEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh7oDyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeh8IDyEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyeh84DyEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_oyehy4DyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_oyeh9IDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh9YDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeh94DyEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyeh-oDyEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_oyehy4DyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_oyeh-4DyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh_IDyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeh_oDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeiAIDyEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeiAoDyEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeiBIDyEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeiBoDyEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeiCIDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeiCoDyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeiDIDyEeGqdId9TXdXhQ" name="classifier" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyeiD4DyEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_oyehxIDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_oyeiEIDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeiEYDyEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeiE4DyEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_oyeiFYDyEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyeiGIDyEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_oyehxIDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_oyeiGYDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeiGoDyEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_oyeiHYDyEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_oyehxIDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_oyeiHoDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_oyeiH4DyEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_oyeiIoDyEeGqdId9TXdXhQ" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_oyeiI4DyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_oyeiJIDyEeGqdId9TXdXhQ" name="true"/>
+          <eLiterals xmi:id="_oyeiJYDyEeGqdId9TXdXhQ" name="false" value="1"/>
+          <eLiterals xmi:id="_oyeiJoDyEeGqdId9TXdXhQ" name="default" value="2"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_eJd7oIDyEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJd7oYDyEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_eJeitYDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_eJd7ooDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_eJd7o4DyEeGqdId9TXdXhQ" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_eJd7pIDyEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_eJd7pYDyEeGqdId9TXdXhQ" source="redefines" references="_eJeivoDyEeGqdId9TXdXhQ"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJd7p4DyEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJd7qYDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJd7q4DyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJd7rYDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeisIDyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJeisoDyEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJeitYDyEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_eJeivIDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_eJeitoDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeit4DyEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeiuYDyEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJeivIDyEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_eJeivYDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeivoDyEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeiwIDyEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeiwoDyEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeixIDyEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeixoDyEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJeiyIDyEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_eJeitYDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_eJeiyYDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJeiyoDyEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJeizIDyEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJeiz4DyEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_eJeivIDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_eJei0IDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei0YDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei04DyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei1YDyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei14DyEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei2YDyEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei24DyEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJei3YDyEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei34DyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJei4YDyEeGqdId9TXdXhQ" name="classifier" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJei5IDyEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_eJeivIDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_eJei5YDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei5oDyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJei6IDyEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJei64DyEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_eJeivIDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_eJei7IDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei7YDyEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei74DyEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJei8YDyEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei84DyEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei9YDyEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei94DyEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei-YDyEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJei-4DyEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJei_YDyEeGqdId9TXdXhQ" name="classifier" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJejAIDyEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_eJeitYDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_eJejAYDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJejAoDyEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJejBIDyEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_eJejBoDyEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJejCYDyEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_eJeitYDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_eJejCoDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJejC4DyEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_eJejDoDyEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_eJeitYDyEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_eJejD4DyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_eJejEIDyEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_eJejE4DyEeGqdId9TXdXhQ" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_eJejFIDyEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_eJejFYDyEeGqdId9TXdXhQ" name="true"/>
+          <eLiterals xmi:id="_eJejFoDyEeGqdId9TXdXhQ" name="false" value="1"/>
+          <eLiterals xmi:id="_eJejF4DyEeGqdId9TXdXhQ" name="default" value="2"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_VgeDYIAfEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDYYAfEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_VgeDdIAfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_VgeDYoAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_VgeDY4AfEeGqdId9TXdXhQ" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_VgeDZIAfEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_VgeDZYAfEeGqdId9TXdXhQ" source="redefines" references="_VgeDfYAfEeGqdId9TXdXhQ"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDZ4AfEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDaYAfEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDa4AfEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDbYAfEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDb4AfEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDcYAfEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDdIAfEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_VgeDe4AfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_VgeDdYAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDdoAfEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDeIAfEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDe4AfEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_VgeDfIAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDfYAfEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDf4AfEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDgYAfEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDg4AfEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDhYAfEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDh4AfEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_VgeDdIAfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_VgeDiIAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDiYAfEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDi4AfEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDjoAfEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_VgeDe4AfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_VgeDj4AfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDkIAfEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDkoAfEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDlIAfEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDloAfEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDmIAfEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDmoAfEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDnIAfEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDnoAfEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDoYAfEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_VgeDe4AfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_VgeDooAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDo4AfEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDpYAfEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDqIAfEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_VgeDe4AfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_VgeDqYAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDqoAfEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDrIAfEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDroAfEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDsIAfEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDsoAfEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDtIAfEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDtoAfEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDuIAfEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDu4AfEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_VgeDdIAfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_VgeDvIAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDvYAfEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDv4AfEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VgeDwYAfEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDxIAfEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_VgeDdIAfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_VgeDxYAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDxoAfEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VgeDyYAfEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_VgeDdIAfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_VgeDyoAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VgeDy4AfEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_VgeDzoAfEeGqdId9TXdXhQ" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_VgeDz4AfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_VgeD0IAfEeGqdId9TXdXhQ" name="true"/>
+          <eLiterals xmi:id="_VgeD0YAfEeGqdId9TXdXhQ" name="false" value="1"/>
+          <eLiterals xmi:id="_VgeD0oAfEeGqdId9TXdXhQ" name="default" value="2"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_MQshIIAfEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshIYAfEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_MQshNIAfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_MQshIoAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_MQshI4AfEeGqdId9TXdXhQ" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_MQshJIAfEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_MQshJYAfEeGqdId9TXdXhQ" source="redefines" references="_MQshPYAfEeGqdId9TXdXhQ"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshJ4AfEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshKYAfEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshK4AfEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshLYAfEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshL4AfEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshMYAfEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshNIAfEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_MQshO4AfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_MQshNYAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshNoAfEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshOIAfEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshO4AfEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_MQshPIAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshPYAfEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshP4AfEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshQYAfEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshQ4AfEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshRYAfEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshR4AfEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_MQshNIAfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_MQshSIAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshSYAfEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshS4AfEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshToAfEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_MQshO4AfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_MQshT4AfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshUIAfEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshUoAfEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshVIAfEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshVoAfEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshWIAfEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshWoAfEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshXIAfEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshX4AfEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_MQshO4AfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_MQshYIAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshYYAfEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshY4AfEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshZoAfEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_MQshO4AfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_MQshZ4AfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshaIAfEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshaoAfEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshbIAfEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshboAfEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshcIAfEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshcoAfEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshdIAfEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshdoAfEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQsheYAfEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_MQshNIAfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_MQsheoAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshe4AfEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshfYAfEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_MQshf4AfEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshgoAfEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_MQshNIAfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_MQshg4AfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshhIAfEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_MQshh4AfEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_MQshNIAfEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_MQshiIAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_MQshiYAfEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_MQshjIAfEeGqdId9TXdXhQ" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_MQshjYAfEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_MQshjoAfEeGqdId9TXdXhQ" name="true"/>
+          <eLiterals xmi:id="_MQshj4AfEeGqdId9TXdXhQ" name="false" value="1"/>
+          <eLiterals xmi:id="_MQshkIAfEeGqdId9TXdXhQ" name="default" value="2"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_sdbioIAEEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdbioYAEEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_sdcJt4AEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sdbiooAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_sdbio4AEEeGqdId9TXdXhQ" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_sdbipIAEEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_sdbipYAEEeGqdId9TXdXhQ" source="redefines" references="_sdcJwIAEEeGqdId9TXdXhQ"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdbip4AEEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdbiqYAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdbiq4AEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJsIAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJsoAEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcJtIAEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcJt4AEEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_sdcJvoAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sdcJuIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJuYAEEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJu4AEEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcJvoAEEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_sdcJv4AEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJwIAEEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJwoAEEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJxIAEEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJxoAEEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJyIAEEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcJyoAEEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_sdcJt4AEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sdcJy4AEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJzIAEEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcJzoAEEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcJ0YAEEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_sdcJvoAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sdcJ0oAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ04AEEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ1YAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ14AEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ2YAEEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ24AEEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ3YAEEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcJ34AEEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcJ4YAEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcJ5IAEEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_sdcJvoAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sdcJ5YAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ5oAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcJ6IAEEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcJ64AEEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_sdcJvoAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sdcJ7IAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ7YAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ74AEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcJ8YAEEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ84AEEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ9YAEEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ94AEEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ-YAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcJ-4AEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcJ_oAEEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_sdcJt4AEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sdcJ_4AEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcKAIAEEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcKAoAEEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sdcKBIAEEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcKB4AEEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_sdcJt4AEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sdcKCIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcKCYAEEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_sdcKDIAEEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_sdcJt4AEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_sdcKDYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sdcKDoAEEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_sdcKEYAEEeGqdId9TXdXhQ" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_sdcKEoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_sdcKE4AEEeGqdId9TXdXhQ" name="true"/>
+          <eLiterals xmi:id="_sdcKFIAEEeGqdId9TXdXhQ" name="false" value="1"/>
+          <eLiterals xmi:id="_sdcKFYAEEeGqdId9TXdXhQ" name="default" value="2"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_dPXdAIAEEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdAYAEEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_dPXdFIAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_dPXdAoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_dPXdA4AEEeGqdId9TXdXhQ" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_dPXdBIAEEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_dPXdBYAEEeGqdId9TXdXhQ" source="redefines" references="_dPXdHYAEEeGqdId9TXdXhQ"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdB4AEEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdCYAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdC4AEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdDYAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdD4AEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdEYAEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdFIAEEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_dPXdG4AEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_dPXdFYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdFoAEEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdGIAEEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdG4AEEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_dPXdHIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdHYAEEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdH4AEEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdIYAEEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdI4AEEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdJYAEEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdJ4AEEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_dPXdFIAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_dPXdKIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdKYAEEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdK4AEEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdLoAEEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_dPXdG4AEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_dPXdL4AEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdMIAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdMoAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdNIAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdNoAEEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdOIAEEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdOoAEEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdPIAEEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdPoAEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdQYAEEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_dPXdG4AEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_dPXdQoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdQ4AEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdRYAEEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdSIAEEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_dPXdG4AEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_dPXdSYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdSoAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdTIAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdToAEEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdUIAEEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdUoAEEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdVIAEEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdVoAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdWIAEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdW4AEEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_dPXdFIAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_dPXdXIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdXYAEEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdX4AEEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dPXdYYAEEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdZIAEEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_dPXdFIAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_dPXdZYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXdZoAEEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dPXdaYAEEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_dPXdFIAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_dPXdaoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dPXda4AEEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_dPXdboAEEeGqdId9TXdXhQ" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_dPXdb4AEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_dPXdcIAEEeGqdId9TXdXhQ" name="true"/>
+          <eLiterals xmi:id="_dPXdcYAEEeGqdId9TXdXhQ" name="false" value="1"/>
+          <eLiterals xmi:id="_dPXdcoAEEeGqdId9TXdXhQ" name="default" value="2"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_UnC8UIAEEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnC8UYAEEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_UnDjaYAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_UnC8UoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_UnC8U4AEEeGqdId9TXdXhQ" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_UnC8VIAEEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_UnC8VYAEEeGqdId9TXdXhQ" source="redefines" references="_UnDjcoAEEeGqdId9TXdXhQ"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnC8V4AEEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnC8WYAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjYIAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjYoAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjZIAEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjZoAEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjaYAEEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_UnDjcIAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_UnDjaoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDja4AEEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjbYAEEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjcIAEEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_UnDjcYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjcoAEEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjdIAEEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjdoAEEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjeIAEEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjeoAEEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjfIAEEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_UnDjaYAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_UnDjfYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjfoAEEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjgIAEEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjg4AEEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_UnDjcIAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_UnDjhIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjhYAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjh4AEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjiYAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDji4AEEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjjYAEEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjj4AEEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjkYAEEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjk4AEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjlYAEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjmIAEEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_UnDjcIAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_UnDjmYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjmoAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjnIAEEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjn4AEEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_UnDjcIAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_UnDjoIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjoYAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjo4AEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjpYAEEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjp4AEEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjqYAEEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjq4AEEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjrYAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjr4AEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjsYAEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjtIAEEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_UnDjaYAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_UnDjtYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjtoAEEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjuIAEEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_UnDjuoAEEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjvYAEEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_UnDjaYAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_UnDjvoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjv4AEEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_UnDjwoAEEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_UnDjaYAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_UnDjw4AEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_UnDjxIAEEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_UnDjx4AEEeGqdId9TXdXhQ" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_UnDjyIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_UnDjyYAEEeGqdId9TXdXhQ" name="true"/>
+          <eLiterals xmi:id="_UnDjyoAEEeGqdId9TXdXhQ" name="false" value="1"/>
+          <eLiterals xmi:id="_UnDjy4AEEeGqdId9TXdXhQ" name="default" value="2"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_RDFtYIAEEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDFtYYAEEeGqdId9TXdXhQ" name="JavaClass" eSuperTypes="_RDGUgYAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_RDFtYoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_RDGUcIAEEeGqdId9TXdXhQ" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_RDGUcYAEEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_RDGUcoAEEeGqdId9TXdXhQ" source="redefines" references="_RDGUioAEEeGqdId9TXdXhQ"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGUdIAEEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUdoAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUeIAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUeoAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUfIAEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGUfoAEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGUgYAEEeGqdId9TXdXhQ" name="JavaGen" abstract="true" eSuperTypes="_RDGUiIAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_RDGUgoAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUg4AEEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUhYAEEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGUiIAEEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_RDGUiYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUioAEEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUjIAEEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUjoAEEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUkIAEEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUkoAEEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGUlIAEEeGqdId9TXdXhQ" name="JavaPackage_" eSuperTypes="_RDGUgYAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_RDGUlYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUloAEEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGUmIAEEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGUm4AEEeGqdId9TXdXhQ" name="JavaMethod" eSuperTypes="_RDGUiIAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_RDGUnIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUnYAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUn4AEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUoYAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUo4AEEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUpYAEEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUp4AEEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGUqYAEEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGUq4AEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUrYAEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGUsIAEEeGqdId9TXdXhQ" name="JavaParameter" eSuperTypes="_RDGUiIAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_RDGUsYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUsoAEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGUtIAEEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGUt4AEEeGqdId9TXdXhQ" name="JavaProperty" eSuperTypes="_RDGUiIAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_RDGUuIAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUuYAEEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUu4AEEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGUvYAEEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUv4AEEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUwYAEEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUw4AEEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUxYAEEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUx4AEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGUyYAEEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGUzIAEEeGqdId9TXdXhQ" name="PrimitiveType" eSuperTypes="_RDGUgYAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_RDGUzYAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGUzoAEEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGU0IAEEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_RDGU0oAEEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGU1YAEEeGqdId9TXdXhQ" name="JavaProject" eSuperTypes="_RDGUgYAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_RDGU1oAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGU14AEEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_RDGU2oAEEeGqdId9TXdXhQ" name="JavaSrcFolder" eSuperTypes="_RDGUgYAEEeGqdId9TXdXhQ">
+          <eAnnotations xmi:id="_RDGU24AEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_RDGU3IAEEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_RDGU34AEEeGqdId9TXdXhQ" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_RDGU4IAEEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_RDGU4YAEEeGqdId9TXdXhQ" name="true"/>
+          <eLiterals xmi:id="_RDGU4oAEEeGqdId9TXdXhQ" name="false" value="1"/>
+          <eLiterals xmi:id="_RDGU44AEEeGqdId9TXdXhQ" name="default" value="2"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_-sB2gIADEeGqdId9TXdXhQ" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB2gYADEeGqdId9TXdXhQ" name="JavaClass">
+          <eAnnotations xmi:id="_-sB2goADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_-sB2g4ADEeGqdId9TXdXhQ" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_-sB2hIADEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_-sB2hYADEeGqdId9TXdXhQ" source="redefines"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB2h4ADEeGqdId9TXdXhQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2iYADEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2i4ADEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2jYADEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2j4ADEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" ordered="false" unique="false" upperBound="-1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB2kYADEeGqdId9TXdXhQ" name="explicitRequiredImports" ordered="false" upperBound="-1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB2lIADEeGqdId9TXdXhQ" name="JavaPackage_">
+          <eAnnotations xmi:id="_-sB2lYADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2loADEeGqdId9TXdXhQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB2mIADEeGqdId9TXdXhQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB2m4ADEeGqdId9TXdXhQ" name="JavaMethod">
+          <eAnnotations xmi:id="_-sB2nIADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2nYADEeGqdId9TXdXhQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2n4ADEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2oYADEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2o4ADEeGqdId9TXdXhQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2pYADEeGqdId9TXdXhQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2p4ADEeGqdId9TXdXhQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB2qYADEeGqdId9TXdXhQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB2rIADEeGqdId9TXdXhQ" name="JavaParameter">
+          <eAnnotations xmi:id="_-sB2rYADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2roADEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB2sIADEeGqdId9TXdXhQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB2s4ADEeGqdId9TXdXhQ" name="JavaProperty">
+          <eAnnotations xmi:id="_-sB2tIADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2tYADEeGqdId9TXdXhQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2t4ADEeGqdId9TXdXhQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB2uYADEeGqdId9TXdXhQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2u4ADEeGqdId9TXdXhQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2vYADEeGqdId9TXdXhQ" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2v4ADEeGqdId9TXdXhQ" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2wYADEeGqdId9TXdXhQ" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB2xIADEeGqdId9TXdXhQ" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_-sB2xYADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2xoADEeGqdId9TXdXhQ" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2yIADEeGqdId9TXdXhQ" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2yoADEeGqdId9TXdXhQ" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2zIADEeGqdId9TXdXhQ" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB2zoADEeGqdId9TXdXhQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB20IADEeGqdId9TXdXhQ" name="PrimitiveType">
+          <eAnnotations xmi:id="_-sB20YADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB20oADEeGqdId9TXdXhQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB21IADEeGqdId9TXdXhQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB21oADEeGqdId9TXdXhQ" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB22YADEeGqdId9TXdXhQ" name="JavaProject">
+          <eAnnotations xmi:id="_-sB22oADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB224ADEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB23oADEeGqdId9TXdXhQ" name="JavaSrcFolder">
+          <eAnnotations xmi:id="_-sB234ADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-sB24IADEeGqdId9TXdXhQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-sB244ADEeGqdId9TXdXhQ" name="JavaGen" abstract="true">
+          <eAnnotations xmi:id="_-sB25IADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB25YADEeGqdId9TXdXhQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-sB254ADEeGqdId9TXdXhQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_-sB26oADEeGqdId9TXdXhQ" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_-sB264ADEeGqdId9TXdXhQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_-sB27IADEeGqdId9TXdXhQ" name="true"/>
+          <eLiterals xmi:id="_-sB27YADEeGqdId9TXdXhQ" name="false" value="1"/>
+          <eLiterals xmi:id="_-sB27oADEeGqdId9TXdXhQ" name="default" value="2"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_m4y0cHppEeG6sMpxGcut-Q" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0cXppEeG6sMpxGcut-Q" name="JavaClass" eSuperTypes="_m4y0gHppEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_m4y0cnppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_m4y0c3ppEeG6sMpxGcut-Q" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_m4y0dHppEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_m4y0dXppEeG6sMpxGcut-Q" source="redefines" references="_m4y0iXppEeG6sMpxGcut-Q"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m4y0d3ppEeG6sMpxGcut-Q" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0eXppEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0e3ppEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0fXppEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0gHppEeG6sMpxGcut-Q" name="JavaGen" abstract="true" eSuperTypes="_m4y0h3ppEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_m4y0gXppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0gnppEeG6sMpxGcut-Q" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0hHppEeG6sMpxGcut-Q" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0h3ppEeG6sMpxGcut-Q" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_m4y0iHppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0iXppEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0i3ppEeG6sMpxGcut-Q" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0jXppEeG6sMpxGcut-Q" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0j3ppEeG6sMpxGcut-Q" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0kXppEeG6sMpxGcut-Q" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0k3ppEeG6sMpxGcut-Q" name="JavaPackage_" eSuperTypes="_m4y0gHppEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_m4y0lHppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0lXppEeG6sMpxGcut-Q" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m4y0l3ppEeG6sMpxGcut-Q" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0mnppEeG6sMpxGcut-Q" name="JavaMethod" eSuperTypes="_m4y0h3ppEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_m4y0m3ppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0nHppEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0nnppEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0oHppEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0onppEeG6sMpxGcut-Q" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0pHppEeG6sMpxGcut-Q" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0pnppEeG6sMpxGcut-Q" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m4y0qHppEeG6sMpxGcut-Q" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0q3ppEeG6sMpxGcut-Q" name="JavaParameter" eSuperTypes="_m4y0h3ppEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_m4y0rHppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0rXppEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m4y0r3ppEeG6sMpxGcut-Q" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0snppEeG6sMpxGcut-Q" name="JavaProperty" eSuperTypes="_m4y0h3ppEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_m4y0s3ppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0tHppEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0tnppEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m4y0uHppEeG6sMpxGcut-Q" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0unppEeG6sMpxGcut-Q" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0vHppEeG6sMpxGcut-Q" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0vnppEeG6sMpxGcut-Q" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0wHppEeG6sMpxGcut-Q" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0w3ppEeG6sMpxGcut-Q" name="PrimitiveType" eSuperTypes="_m4y0gHppEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_m4y0xHppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0xXppEeG6sMpxGcut-Q" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m4y0x3ppEeG6sMpxGcut-Q" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_m4y0yXppEeG6sMpxGcut-Q" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y0zHppEeG6sMpxGcut-Q" name="JavaProject" eSuperTypes="_m4y0gHppEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_m4y0zXppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m4y0znppEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_m4y00XppEeG6sMpxGcut-Q" name="JavaSrcFolder" eSuperTypes="_m4y0gHppEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_m4y00nppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_m4y003ppEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_m4y01nppEeG6sMpxGcut-Q" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_m4y013ppEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_m4y02HppEeG6sMpxGcut-Q" name="true"/>
+          <eLiterals xmi:id="_m4y02XppEeG6sMpxGcut-Q" name="false" value="1"/>
+          <eLiterals xmi:id="_m4y02nppEeG6sMpxGcut-Q" name="default" value="2"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_niTg8HpoEeG6sMpxGcut-Q" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_niTg8XpoEeG6sMpxGcut-Q" name="JavaClass" eSuperTypes="_niThAHpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_niTg8npoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_niTg83poEeG6sMpxGcut-Q" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_niTg9HpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_niTg9XpoEeG6sMpxGcut-Q" source="redefines" references="_niThCXpoEeG6sMpxGcut-Q"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_niTg93poEeG6sMpxGcut-Q" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niTg-XpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niTg-3poEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niTg_XpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_niThAHpoEeG6sMpxGcut-Q" name="JavaGen" abstract="true" eSuperTypes="_niThB3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_niThAXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niThAnpoEeG6sMpxGcut-Q" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niThBHpoEeG6sMpxGcut-Q" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_niThB3poEeG6sMpxGcut-Q" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_niThCHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niThCXpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niThC3poEeG6sMpxGcut-Q" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niThDXpoEeG6sMpxGcut-Q" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niThD3poEeG6sMpxGcut-Q" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIAXpoEeG6sMpxGcut-Q" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_niUIA3poEeG6sMpxGcut-Q" name="JavaPackage_" eSuperTypes="_niThAHpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_niUIBHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIBXpoEeG6sMpxGcut-Q" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_niUIB3poEeG6sMpxGcut-Q" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_niUICnpoEeG6sMpxGcut-Q" name="JavaMethod" eSuperTypes="_niThB3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_niUIC3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIDHpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIDnpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIEHpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIEnpoEeG6sMpxGcut-Q" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIFHpoEeG6sMpxGcut-Q" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIFnpoEeG6sMpxGcut-Q" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_niUIGHpoEeG6sMpxGcut-Q" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_niUIG3poEeG6sMpxGcut-Q" name="JavaParameter" eSuperTypes="_niThB3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_niUIHHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIHXpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_niUIH3poEeG6sMpxGcut-Q" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_niUIInpoEeG6sMpxGcut-Q" name="JavaProperty" eSuperTypes="_niThB3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_niUII3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIJHpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIJnpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_niUIKHpoEeG6sMpxGcut-Q" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIKnpoEeG6sMpxGcut-Q" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUILHpoEeG6sMpxGcut-Q" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUILnpoEeG6sMpxGcut-Q" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIMHpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_niUIM3poEeG6sMpxGcut-Q" name="PrimitiveType" eSuperTypes="_niThAHpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_niUINHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUINXpoEeG6sMpxGcut-Q" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_niUIN3poEeG6sMpxGcut-Q" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_niUIOXpoEeG6sMpxGcut-Q" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_niUIPHpoEeG6sMpxGcut-Q" name="JavaProject" eSuperTypes="_niThAHpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_niUIPXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_niUIPnpoEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_niUIQXpoEeG6sMpxGcut-Q" name="JavaSrcFolder" eSuperTypes="_niThAHpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_niUIQnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_niUIQ3poEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_niUIRnpoEeG6sMpxGcut-Q" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_niUIR3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_niUISHpoEeG6sMpxGcut-Q" name="true"/>
+          <eLiterals xmi:id="_niUISXpoEeG6sMpxGcut-Q" name="false" value="1"/>
+          <eLiterals xmi:id="_niUISnpoEeG6sMpxGcut-Q" name="default" value="2"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_fqWtQHpoEeG6sMpxGcut-Q" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqWtQXpoEeG6sMpxGcut-Q" name="JavaClass" eSuperTypes="_fqXUUHpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_fqWtQnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_fqWtQ3poEeG6sMpxGcut-Q" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_fqWtRHpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_fqWtRXpoEeG6sMpxGcut-Q" source="redefines" references="_fqXUWXpoEeG6sMpxGcut-Q"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_fqWtR3poEeG6sMpxGcut-Q" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqWtSXpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqWtS3poEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqWtTXpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUUHpoEeG6sMpxGcut-Q" name="JavaGen" abstract="true" eSuperTypes="_fqXUV3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_fqXUUXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUUnpoEeG6sMpxGcut-Q" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUVHpoEeG6sMpxGcut-Q" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUV3poEeG6sMpxGcut-Q" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_fqXUWHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUWXpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUW3poEeG6sMpxGcut-Q" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUXXpoEeG6sMpxGcut-Q" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUX3poEeG6sMpxGcut-Q" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUYXpoEeG6sMpxGcut-Q" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUY3poEeG6sMpxGcut-Q" name="JavaPackage_" eSuperTypes="_fqXUUHpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_fqXUZHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUZXpoEeG6sMpxGcut-Q" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_fqXUZ3poEeG6sMpxGcut-Q" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUanpoEeG6sMpxGcut-Q" name="JavaMethod" eSuperTypes="_fqXUV3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_fqXUa3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUbHpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUbnpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUcHpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUcnpoEeG6sMpxGcut-Q" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUdHpoEeG6sMpxGcut-Q" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUdnpoEeG6sMpxGcut-Q" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_fqXUeHpoEeG6sMpxGcut-Q" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUe3poEeG6sMpxGcut-Q" name="JavaParameter" eSuperTypes="_fqXUV3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_fqXUfHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUfXpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_fqXUf3poEeG6sMpxGcut-Q" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUgnpoEeG6sMpxGcut-Q" name="JavaProperty" eSuperTypes="_fqXUV3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_fqXUg3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUhHpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUhnpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_fqXUiHpoEeG6sMpxGcut-Q" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUinpoEeG6sMpxGcut-Q" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUjHpoEeG6sMpxGcut-Q" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUjnpoEeG6sMpxGcut-Q" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUkHpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUk3poEeG6sMpxGcut-Q" name="PrimitiveType" eSuperTypes="_fqXUUHpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_fqXUlHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUlXpoEeG6sMpxGcut-Q" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_fqXUl3poEeG6sMpxGcut-Q" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_fqXUmXpoEeG6sMpxGcut-Q" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUnHpoEeG6sMpxGcut-Q" name="JavaProject" eSuperTypes="_fqXUUHpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_fqXUnXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_fqXUnnpoEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_fqXUoXpoEeG6sMpxGcut-Q" name="JavaSrcFolder" eSuperTypes="_fqXUUHpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_fqXUonpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_fqXUo3poEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_fqXUpnpoEeG6sMpxGcut-Q" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_fqXUp3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_fqXUqHpoEeG6sMpxGcut-Q" name="true"/>
+          <eLiterals xmi:id="_fqXUqXpoEeG6sMpxGcut-Q" name="false" value="1"/>
+          <eLiterals xmi:id="_fqXUqnpoEeG6sMpxGcut-Q" name="default" value="2"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_d1IRAHpoEeG6sMpxGcut-Q" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1IRAXpoEeG6sMpxGcut-Q" name="JavaClass" eSuperTypes="_d1I4G3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_d1IRAnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_d1IRA3poEeG6sMpxGcut-Q" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_d1IRBHpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_d1I4EHpoEeG6sMpxGcut-Q" source="redefines" references="_d1I4JHpoEeG6sMpxGcut-Q"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_d1I4EnpoEeG6sMpxGcut-Q" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4FHpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4FnpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4GHpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4G3poEeG6sMpxGcut-Q" name="JavaGen" abstract="true" eSuperTypes="_d1I4InpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_d1I4HHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4HXpoEeG6sMpxGcut-Q" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4H3poEeG6sMpxGcut-Q" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4InpoEeG6sMpxGcut-Q" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_d1I4I3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4JHpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4JnpoEeG6sMpxGcut-Q" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4KHpoEeG6sMpxGcut-Q" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4KnpoEeG6sMpxGcut-Q" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4LHpoEeG6sMpxGcut-Q" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4LnpoEeG6sMpxGcut-Q" name="JavaPackage_" eSuperTypes="_d1I4G3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_d1I4L3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4MHpoEeG6sMpxGcut-Q" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_d1I4MnpoEeG6sMpxGcut-Q" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4NXpoEeG6sMpxGcut-Q" name="JavaMethod" eSuperTypes="_d1I4InpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_d1I4NnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4N3poEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4OXpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4O3poEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4PXpoEeG6sMpxGcut-Q" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4P3poEeG6sMpxGcut-Q" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4QXpoEeG6sMpxGcut-Q" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_d1I4Q3poEeG6sMpxGcut-Q" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4RnpoEeG6sMpxGcut-Q" name="JavaParameter" eSuperTypes="_d1I4InpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_d1I4R3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4SHpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_d1I4SnpoEeG6sMpxGcut-Q" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4TXpoEeG6sMpxGcut-Q" name="JavaProperty" eSuperTypes="_d1I4InpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_d1I4TnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4T3poEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4UXpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_d1I4U3poEeG6sMpxGcut-Q" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4VXpoEeG6sMpxGcut-Q" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4V3poEeG6sMpxGcut-Q" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4WXpoEeG6sMpxGcut-Q" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4W3poEeG6sMpxGcut-Q" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4XnpoEeG6sMpxGcut-Q" name="PrimitiveType" eSuperTypes="_d1I4G3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_d1I4X3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4YHpoEeG6sMpxGcut-Q" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_d1I4YnpoEeG6sMpxGcut-Q" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_d1I4ZHpoEeG6sMpxGcut-Q" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4Z3poEeG6sMpxGcut-Q" name="JavaProject" eSuperTypes="_d1I4G3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_d1I4aHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_d1I4aXpoEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_d1I4bHpoEeG6sMpxGcut-Q" name="JavaSrcFolder" eSuperTypes="_d1I4G3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_d1I4bXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_d1I4bnpoEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_d1I4cXpoEeG6sMpxGcut-Q" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_d1I4cnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_d1I4c3poEeG6sMpxGcut-Q" name="true"/>
+          <eLiterals xmi:id="_d1I4dHpoEeG6sMpxGcut-Q" name="false" value="1"/>
+          <eLiterals xmi:id="_d1I4dXpoEeG6sMpxGcut-Q" name="default" value="2"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_cFv-EHpoEeG6sMpxGcut-Q" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFv-EXpoEeG6sMpxGcut-Q" name="JavaClass" eSuperTypes="_cFv-IHpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_cFv-EnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_cFv-E3poEeG6sMpxGcut-Q" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_cFv-FHpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_cFv-FXpoEeG6sMpxGcut-Q" source="redefines" references="_cFv-KXpoEeG6sMpxGcut-Q"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_cFv-F3poEeG6sMpxGcut-Q" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-GXpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-G3poEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-HXpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFv-IHpoEeG6sMpxGcut-Q" name="JavaGen" abstract="true" eSuperTypes="_cFv-J3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_cFv-IXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-InpoEeG6sMpxGcut-Q" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-JHpoEeG6sMpxGcut-Q" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFv-J3poEeG6sMpxGcut-Q" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_cFv-KHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-KXpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-K3poEeG6sMpxGcut-Q" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-LXpoEeG6sMpxGcut-Q" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-L3poEeG6sMpxGcut-Q" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-MXpoEeG6sMpxGcut-Q" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFv-M3poEeG6sMpxGcut-Q" name="JavaPackage_" eSuperTypes="_cFv-IHpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_cFv-NHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-NXpoEeG6sMpxGcut-Q" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_cFv-N3poEeG6sMpxGcut-Q" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFv-OnpoEeG6sMpxGcut-Q" name="JavaMethod" eSuperTypes="_cFv-J3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_cFv-O3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-PHpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-PnpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-QHpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-QnpoEeG6sMpxGcut-Q" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-RHpoEeG6sMpxGcut-Q" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-RnpoEeG6sMpxGcut-Q" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_cFv-SHpoEeG6sMpxGcut-Q" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFv-S3poEeG6sMpxGcut-Q" name="JavaParameter" eSuperTypes="_cFv-J3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_cFv-THpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-TXpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_cFv-T3poEeG6sMpxGcut-Q" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFv-UnpoEeG6sMpxGcut-Q" name="JavaProperty" eSuperTypes="_cFv-J3poEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_cFv-U3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-VHpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-VnpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_cFv-WHpoEeG6sMpxGcut-Q" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFv-WnpoEeG6sMpxGcut-Q" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFwlIHpoEeG6sMpxGcut-Q" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFwlInpoEeG6sMpxGcut-Q" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFwlJHpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFwlJ3poEeG6sMpxGcut-Q" name="PrimitiveType" eSuperTypes="_cFv-IHpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_cFwlKHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFwlKXpoEeG6sMpxGcut-Q" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_cFwlK3poEeG6sMpxGcut-Q" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_cFwlLXpoEeG6sMpxGcut-Q" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFwlMHpoEeG6sMpxGcut-Q" name="JavaProject" eSuperTypes="_cFv-IHpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_cFwlMXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_cFwlMnpoEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_cFwlNXpoEeG6sMpxGcut-Q" name="JavaSrcFolder" eSuperTypes="_cFv-IHpoEeG6sMpxGcut-Q">
+          <eAnnotations xmi:id="_cFwlNnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_cFwlN3poEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_cFwlOnpoEeG6sMpxGcut-Q" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_cFwlO3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_cFwlPHpoEeG6sMpxGcut-Q" name="true"/>
+          <eLiterals xmi:id="_cFwlPXpoEeG6sMpxGcut-Q" name="false" value="1"/>
+          <eLiterals xmi:id="_cFwlPnpoEeG6sMpxGcut-Q" name="default" value="2"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_JLmBMHpoEeG6sMpxGcut-Q" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmBMXpoEeG6sMpxGcut-Q" name="JavaClass">
+          <eAnnotations xmi:id="_JLmBMnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_JLmBM3poEeG6sMpxGcut-Q" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_JLmBNHpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_JLmBNXpoEeG6sMpxGcut-Q" source="redefines"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JLmBN3poEeG6sMpxGcut-Q" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBOXpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBO3poEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBPXpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmBQHpoEeG6sMpxGcut-Q" name="JavaPackage_">
+          <eAnnotations xmi:id="_JLmBQXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBQnpoEeG6sMpxGcut-Q" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JLmBRHpoEeG6sMpxGcut-Q" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmBR3poEeG6sMpxGcut-Q" name="JavaMethod">
+          <eAnnotations xmi:id="_JLmBSHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBSXpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBS3poEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBTXpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBT3poEeG6sMpxGcut-Q" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBUXpoEeG6sMpxGcut-Q" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBU3poEeG6sMpxGcut-Q" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JLmBVXpoEeG6sMpxGcut-Q" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmBWHpoEeG6sMpxGcut-Q" name="JavaParameter">
+          <eAnnotations xmi:id="_JLmBWXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBWnpoEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JLmBXHpoEeG6sMpxGcut-Q" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmBX3poEeG6sMpxGcut-Q" name="JavaProperty">
+          <eAnnotations xmi:id="_JLmBYHpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBYXpoEeG6sMpxGcut-Q" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBY3poEeG6sMpxGcut-Q" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JLmBZXpoEeG6sMpxGcut-Q" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBZ3poEeG6sMpxGcut-Q" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBaXpoEeG6sMpxGcut-Q" name="generateGetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBa3poEeG6sMpxGcut-Q" name="generateSetter" ordered="false" lowerBound="1" defaultValueLiteral="default">
+            <eType xmi:type="ecore:EEnum" href="http://www.eclipse.org/papyrus/JAVA/1#//TrueFalseDefault"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBbXpoEeG6sMpxGcut-Q" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmBcHpoEeG6sMpxGcut-Q" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_JLmBcXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBcnpoEeG6sMpxGcut-Q" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBdHpoEeG6sMpxGcut-Q" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBdnpoEeG6sMpxGcut-Q" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBeHpoEeG6sMpxGcut-Q" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBenpoEeG6sMpxGcut-Q" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmBfHpoEeG6sMpxGcut-Q" name="PrimitiveType">
+          <eAnnotations xmi:id="_JLmBfXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmBfnpoEeG6sMpxGcut-Q" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JLmBgHpoEeG6sMpxGcut-Q" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmoQXpoEeG6sMpxGcut-Q" name="collectionImplementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmoRHpoEeG6sMpxGcut-Q" name="JavaProject">
+          <eAnnotations xmi:id="_JLmoRXpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JLmoRnpoEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmoSXpoEeG6sMpxGcut-Q" name="JavaSrcFolder">
+          <eAnnotations xmi:id="_JLmoSnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_JLmoS3poEeG6sMpxGcut-Q" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_JLmoTnpoEeG6sMpxGcut-Q" name="JavaGen" abstract="true">
+          <eAnnotations xmi:id="_JLmoT3poEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmoUHpoEeG6sMpxGcut-Q" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_JLmoUnpoEeG6sMpxGcut-Q" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_JLmoVXpoEeG6sMpxGcut-Q" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_JLmoVnpoEeG6sMpxGcut-Q" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_JLmoV3poEeG6sMpxGcut-Q" name="true"/>
+          <eLiterals xmi:id="_JLmoWHpoEeG6sMpxGcut-Q" name="false" value="1"/>
+          <eLiterals xmi:id="_JLmoWXpoEeG6sMpxGcut-Q" name="default" value="2"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_qULRoL4pEeCJ386_obsNkA" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eAnnotations xmi:id="_qUqZ0L4pEeCJ386_obsNkA" source="PapyrusVersion">
+          <details xmi:id="_qUqZ0b4pEeCJ386_obsNkA" key="Version" value="0.0.23"/>
+          <details xmi:id="_qUqZ0r4pEeCJ386_obsNkA" key="Comment" value=""/>
+          <details xmi:id="_qUqZ074pEeCJ386_obsNkA" key="Copyright" value=""/>
+          <details xmi:id="_qUqZ1L4pEeCJ386_obsNkA" key="Date" value="2011-08-04"/>
+          <details xmi:id="_qUqZ1b4pEeCJ386_obsNkA" key="Author" value=""/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULRob4pEeCJ386_obsNkA" name="JavaClass" eSuperTypes="_qULRsL4pEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_qULRor4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_qULRo74pEeCJ386_obsNkA" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_qULRpL4pEeCJ386_obsNkA" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_qULRpb4pEeCJ386_obsNkA" source="redefines" references="_qULRub4pEeCJ386_obsNkA"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_qULRp74pEeCJ386_obsNkA" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRqb4pEeCJ386_obsNkA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRq74pEeCJ386_obsNkA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRrb4pEeCJ386_obsNkA" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULRsL4pEeCJ386_obsNkA" name="JavaGen" abstract="true" eSuperTypes="_qULRt74pEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_qULRsb4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRsr4pEeCJ386_obsNkA" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRtL4pEeCJ386_obsNkA" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULRt74pEeCJ386_obsNkA" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_qULRuL4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRub4pEeCJ386_obsNkA" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRu74pEeCJ386_obsNkA" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRvb4pEeCJ386_obsNkA" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRv74pEeCJ386_obsNkA" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRwb4pEeCJ386_obsNkA" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULRw74pEeCJ386_obsNkA" name="JavaPackage_" eSuperTypes="_qULRsL4pEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_qULRxL4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRxb4pEeCJ386_obsNkA" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_qULRx74pEeCJ386_obsNkA" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULRyr4pEeCJ386_obsNkA" name="JavaMethod" eSuperTypes="_qULRt74pEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_qULRy74pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRzL4pEeCJ386_obsNkA" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULRzr4pEeCJ386_obsNkA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR0L4pEeCJ386_obsNkA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR0r4pEeCJ386_obsNkA" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR1L4pEeCJ386_obsNkA" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR1r4pEeCJ386_obsNkA" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_qULR2L4pEeCJ386_obsNkA" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULR274pEeCJ386_obsNkA" name="JavaParameter" eSuperTypes="_qULRt74pEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_qULR3L4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR3b4pEeCJ386_obsNkA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_qULR374pEeCJ386_obsNkA" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULR4r4pEeCJ386_obsNkA" name="JavaProperty" eSuperTypes="_qULRt74pEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_qULR474pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR5L4pEeCJ386_obsNkA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR5r4pEeCJ386_obsNkA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_qULR6L4pEeCJ386_obsNkA" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR6r4pEeCJ386_obsNkA" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR7L4pEeCJ386_obsNkA" name="generateGetter" ordered="false" lowerBound="1" eType="_qULR874pEeCJ386_obsNkA" defaultValueLiteral="default"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR7r4pEeCJ386_obsNkA" name="generateSetter" ordered="false" lowerBound="1" eType="_qULR874pEeCJ386_obsNkA" defaultValueLiteral="default"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR8L4pEeCJ386_obsNkA" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_qULR874pEeCJ386_obsNkA" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_qULR9L4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_qULR9b4pEeCJ386_obsNkA" name="true"/>
+          <eLiterals xmi:id="_qULR9r4pEeCJ386_obsNkA" name="false" value="1"/>
+          <eLiterals xmi:id="_qULR974pEeCJ386_obsNkA" name="default" value="2"/>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULR-L4pEeCJ386_obsNkA" name="PrimitiveType" eSuperTypes="_qULRsL4pEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_qULR-b4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_qULR-r4pEeCJ386_obsNkA" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_qULR_L4pEeCJ386_obsNkA" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULR_74pEeCJ386_obsNkA" name="JavaProject" eSuperTypes="_qULRsL4pEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_qULSAL4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_qULSAb4pEeCJ386_obsNkA" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_qULSBL4pEeCJ386_obsNkA" name="JavaSrcFolder" eSuperTypes="_qULRsL4pEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_qULSBb4pEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_qULSBr4pEeCJ386_obsNkA" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_lIeTsL4nEeCJ386_obsNkA" name="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" nsPrefix="java">
+        <eAnnotations xmi:id="_lJXrkL4nEeCJ386_obsNkA" source="PapyrusVersion">
+          <details xmi:id="_lJYSoL4nEeCJ386_obsNkA" key="Version" value="0.0.22"/>
+          <details xmi:id="_lJYSob4nEeCJ386_obsNkA" key="Comment" value=""/>
+          <details xmi:id="_lJYSor4nEeCJ386_obsNkA" key="Copyright" value=""/>
+          <details xmi:id="_lJYSo74nEeCJ386_obsNkA" key="Date" value="2011-08-04"/>
+          <details xmi:id="_lJYSpL4nEeCJ386_obsNkA" key="Author" value=""/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeTsb4nEeCJ386_obsNkA" name="JavaClass" eSuperTypes="_lIeTwL4nEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_lIeTsr4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_lIeTs74nEeCJ386_obsNkA" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_lIeTtL4nEeCJ386_obsNkA" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_lIeTtb4nEeCJ386_obsNkA" source="redefines" references="_lIeTyb4nEeCJ386_obsNkA"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lIeTt74nEeCJ386_obsNkA" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTub4nEeCJ386_obsNkA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTu74nEeCJ386_obsNkA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTvb4nEeCJ386_obsNkA" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeTwL4nEeCJ386_obsNkA" name="JavaGen" abstract="true" eSuperTypes="_lIeTx74nEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_lIeTwb4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTwr4nEeCJ386_obsNkA" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTxL4nEeCJ386_obsNkA" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeTx74nEeCJ386_obsNkA" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_lIeTyL4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTyb4nEeCJ386_obsNkA" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTy74nEeCJ386_obsNkA" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTzb4nEeCJ386_obsNkA" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeTz74nEeCJ386_obsNkA" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT0b4nEeCJ386_obsNkA" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeT074nEeCJ386_obsNkA" name="JavaPackage" eSuperTypes="_lIeTwL4nEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_lIeT1L4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT1b4nEeCJ386_obsNkA" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lIeT174nEeCJ386_obsNkA" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeT2r4nEeCJ386_obsNkA" name="JavaMethod" eSuperTypes="_lIeTx74nEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_lIeT274nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT3L4nEeCJ386_obsNkA" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT3r4nEeCJ386_obsNkA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT4L4nEeCJ386_obsNkA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT4r4nEeCJ386_obsNkA" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT5L4nEeCJ386_obsNkA" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT5r4nEeCJ386_obsNkA" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lIeT6L4nEeCJ386_obsNkA" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeT674nEeCJ386_obsNkA" name="JavaParameter" eSuperTypes="_lIeTx74nEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_lIeT7L4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT7b4nEeCJ386_obsNkA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lIeT774nEeCJ386_obsNkA" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeT8r4nEeCJ386_obsNkA" name="JavaProperty" eSuperTypes="_lIeTx74nEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_lIeT874nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT9L4nEeCJ386_obsNkA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT9r4nEeCJ386_obsNkA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lIeT-L4nEeCJ386_obsNkA" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT-r4nEeCJ386_obsNkA" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT_L4nEeCJ386_obsNkA" name="generateGetter" ordered="false" lowerBound="1" eType="_lIeUA74nEeCJ386_obsNkA" defaultValueLiteral="default"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeT_r4nEeCJ386_obsNkA" name="generateSetter" ordered="false" lowerBound="1" eType="_lIeUA74nEeCJ386_obsNkA" defaultValueLiteral="default"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeUAL4nEeCJ386_obsNkA" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_lIeUA74nEeCJ386_obsNkA" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_lIeUBL4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_lIeUBb4nEeCJ386_obsNkA" name="true"/>
+          <eLiterals xmi:id="_lIeUBr4nEeCJ386_obsNkA" name="false" value="1"/>
+          <eLiterals xmi:id="_lIeUB74nEeCJ386_obsNkA" name="default" value="2"/>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeUCL4nEeCJ386_obsNkA" name="PrimitiveType" eSuperTypes="_lIeTwL4nEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_lIeUCb4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_lIeUCr4nEeCJ386_obsNkA" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lIeUDL4nEeCJ386_obsNkA" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeUD74nEeCJ386_obsNkA" name="JavaProject" eSuperTypes="_lIeTwL4nEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_lIeUEL4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lIeUEb4nEeCJ386_obsNkA" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_lIeUFL4nEeCJ386_obsNkA" name="JavaSrcFolder" eSuperTypes="_lIeTwL4nEeCJ386_obsNkA">
+          <eAnnotations xmi:id="_lIeUFb4nEeCJ386_obsNkA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_lIeUFr4nEeCJ386_obsNkA" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_NUO84YXIEeCQsIB6sI2lFg" name="java" nsURI="http:///schemas/java/_NUO84IXIEeCQsIB6sI2lFg/20" nsPrefix="java">
+        <eAnnotations xmi:id="_NU1Z0YXIEeCQsIB6sI2lFg" source="PapyrusVersion">
+          <details xmi:id="_NU1Z0oXIEeCQsIB6sI2lFg" key="Version" value="0.0.21"/>
+          <details xmi:id="_NU1Z04XIEeCQsIB6sI2lFg" key="Comment" value="default par defaut pour generateSetter&#xD;&#xA;Ajout de la prop isStatic pour un field"/>
+          <details xmi:id="_NU1Z1IXIEeCQsIB6sI2lFg" key="Copyright" value=""/>
+          <details xmi:id="_NU1Z1YXIEeCQsIB6sI2lFg" key="Date" value="2011-05-24"/>
+          <details xmi:id="_NU1Z1oXIEeCQsIB6sI2lFg" key="Author" value=""/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO84oXIEeCQsIB6sI2lFg" name="JavaClass" eSuperTypes="_NUO88YXIEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_NUO844XIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_NUO85IXIEeCQsIB6sI2lFg" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_NUO85YXIEeCQsIB6sI2lFg" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_NUO85oXIEeCQsIB6sI2lFg" source="redefines" references="_NUO8-oXIEeCQsIB6sI2lFg"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NUO86IXIEeCQsIB6sI2lFg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO86oXIEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO87IXIEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO87oXIEeCQsIB6sI2lFg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO88YXIEeCQsIB6sI2lFg" name="JavaGen" abstract="true" eSuperTypes="_NUO8-IXIEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_NUO88oXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO884XIEeCQsIB6sI2lFg" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO89YXIEeCQsIB6sI2lFg" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO8-IXIEeCQsIB6sI2lFg" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_NUO8-YXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO8-oXIEeCQsIB6sI2lFg" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO8_IXIEeCQsIB6sI2lFg" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO8_oXIEeCQsIB6sI2lFg" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9AIXIEeCQsIB6sI2lFg" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9AoXIEeCQsIB6sI2lFg" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO9BIXIEeCQsIB6sI2lFg" name="JavaPackage" eSuperTypes="_NUO88YXIEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_NUO9BYXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9BoXIEeCQsIB6sI2lFg" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NUO9CIXIEeCQsIB6sI2lFg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO9C4XIEeCQsIB6sI2lFg" name="JavaMethod" eSuperTypes="_NUO8-IXIEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_NUO9DIXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9DYXIEeCQsIB6sI2lFg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9D4XIEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9EYXIEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9E4XIEeCQsIB6sI2lFg" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9FYXIEeCQsIB6sI2lFg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9F4XIEeCQsIB6sI2lFg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NUO9GYXIEeCQsIB6sI2lFg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO9HIXIEeCQsIB6sI2lFg" name="JavaParameter" eSuperTypes="_NUO8-IXIEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_NUO9HYXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9HoXIEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NUO9IIXIEeCQsIB6sI2lFg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO9I4XIEeCQsIB6sI2lFg" name="JavaProperty" eSuperTypes="_NUO8-IXIEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_NUO9JIXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9JYXIEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9J4XIEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NUO9KYXIEeCQsIB6sI2lFg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9K4XIEeCQsIB6sI2lFg" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9LYXIEeCQsIB6sI2lFg" name="generateGetter" ordered="false" lowerBound="1" eType="_NUO9NIXIEeCQsIB6sI2lFg" defaultValueLiteral="default"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9L4XIEeCQsIB6sI2lFg" name="generateSetter" ordered="false" lowerBound="1" eType="_NUO9NIXIEeCQsIB6sI2lFg" defaultValueLiteral="default"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9MYXIEeCQsIB6sI2lFg" name="isStatic" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_NUO9NIXIEeCQsIB6sI2lFg" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_NUO9NYXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_NUO9NoXIEeCQsIB6sI2lFg" name="true"/>
+          <eLiterals xmi:id="_NUO9N4XIEeCQsIB6sI2lFg" name="false" value="1"/>
+          <eLiterals xmi:id="_NUO9OIXIEeCQsIB6sI2lFg" name="default" value="2"/>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO9OYXIEeCQsIB6sI2lFg" name="PrimitiveType" eSuperTypes="_NUO88YXIEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_NUO9OoXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_NUO9O4XIEeCQsIB6sI2lFg" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NUO9PYXIEeCQsIB6sI2lFg" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO9QIXIEeCQsIB6sI2lFg" name="JavaProject" eSuperTypes="_NUO88YXIEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_NUO9QYXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NUO9QoXIEeCQsIB6sI2lFg" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_NUO9RYXIEeCQsIB6sI2lFg" name="JavaSrcFolder" eSuperTypes="_NUO88YXIEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_NUO9RoXIEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_NUO9R4XIEeCQsIB6sI2lFg" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_pAh6QYXHEeCQsIB6sI2lFg" name="java" nsURI="http:///schemas/java/_pAh6QIXHEeCQsIB6sI2lFg/19" nsPrefix="java">
+        <eAnnotations xmi:id="_pBIXMIXHEeCQsIB6sI2lFg" source="PapyrusVersion">
+          <details xmi:id="_pBIXMYXHEeCQsIB6sI2lFg" key="Version" value="0.0.20"/>
+          <details xmi:id="_pBIXMoXHEeCQsIB6sI2lFg" key="Comment" value="default par defaut"/>
+          <details xmi:id="_pBIXM4XHEeCQsIB6sI2lFg" key="Copyright" value=""/>
+          <details xmi:id="_pBIXNIXHEeCQsIB6sI2lFg" key="Date" value="2011-05-24"/>
+          <details xmi:id="_pBIXNYXHEeCQsIB6sI2lFg" key="Author" value="DEBLOCK Nicolas"/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6QoXHEeCQsIB6sI2lFg" name="JavaClass" eSuperTypes="_pAh6UYXHEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_pAh6Q4XHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_pAh6RIXHEeCQsIB6sI2lFg" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_pAh6RYXHEeCQsIB6sI2lFg" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_pAh6RoXHEeCQsIB6sI2lFg" source="redefines" references="_pAh6WoXHEeCQsIB6sI2lFg"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pAh6SIXHEeCQsIB6sI2lFg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6SoXHEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6TIXHEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6ToXHEeCQsIB6sI2lFg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6UYXHEeCQsIB6sI2lFg" name="JavaGen" abstract="true" eSuperTypes="_pAh6WIXHEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_pAh6UoXHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6U4XHEeCQsIB6sI2lFg" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6VYXHEeCQsIB6sI2lFg" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6WIXHEeCQsIB6sI2lFg" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_pAh6WYXHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6WoXHEeCQsIB6sI2lFg" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6XIXHEeCQsIB6sI2lFg" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6XoXHEeCQsIB6sI2lFg" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6YIXHEeCQsIB6sI2lFg" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6YoXHEeCQsIB6sI2lFg" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6ZIXHEeCQsIB6sI2lFg" name="JavaPackage" eSuperTypes="_pAh6UYXHEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_pAh6ZYXHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6ZoXHEeCQsIB6sI2lFg" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pAh6aIXHEeCQsIB6sI2lFg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6a4XHEeCQsIB6sI2lFg" name="JavaMethod" eSuperTypes="_pAh6WIXHEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_pAh6bIXHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6bYXHEeCQsIB6sI2lFg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6b4XHEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6cYXHEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6c4XHEeCQsIB6sI2lFg" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6dYXHEeCQsIB6sI2lFg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6d4XHEeCQsIB6sI2lFg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pAh6eYXHEeCQsIB6sI2lFg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6fIXHEeCQsIB6sI2lFg" name="JavaParameter" eSuperTypes="_pAh6WIXHEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_pAh6fYXHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6foXHEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pAh6gIXHEeCQsIB6sI2lFg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6g4XHEeCQsIB6sI2lFg" name="JavaProperty" eSuperTypes="_pAh6WIXHEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_pAh6hIXHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6hYXHEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6h4XHEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pAh6iYXHEeCQsIB6sI2lFg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6i4XHEeCQsIB6sI2lFg" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6jYXHEeCQsIB6sI2lFg" name="generateGetter" ordered="false" lowerBound="1" eType="_pAh6koXHEeCQsIB6sI2lFg" defaultValueLiteral="default"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6j4XHEeCQsIB6sI2lFg" name="generateSetter" ordered="false" lowerBound="1" eType="_pAh6koXHEeCQsIB6sI2lFg"/>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_pAh6koXHEeCQsIB6sI2lFg" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_pAh6k4XHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_pAh6lIXHEeCQsIB6sI2lFg" name="true"/>
+          <eLiterals xmi:id="_pAh6lYXHEeCQsIB6sI2lFg" name="false" value="1"/>
+          <eLiterals xmi:id="_pAh6loXHEeCQsIB6sI2lFg" name="default" value="2"/>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6l4XHEeCQsIB6sI2lFg" name="PrimitiveType" eSuperTypes="_pAh6UYXHEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_pAh6mIXHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_pAh6mYXHEeCQsIB6sI2lFg" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pAh6m4XHEeCQsIB6sI2lFg" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6noXHEeCQsIB6sI2lFg" name="JavaProject" eSuperTypes="_pAh6UYXHEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_pAh6n4XHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pAh6oIXHEeCQsIB6sI2lFg" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_pAh6o4XHEeCQsIB6sI2lFg" name="JavaSrcFolder" eSuperTypes="_pAh6UYXHEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_pAh6pIXHEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_pAh6pYXHEeCQsIB6sI2lFg" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_QoAFoIXGEeCQsIB6sI2lFg" name="java" nsURI="http:///schemas/java/_Qn2UoIXGEeCQsIB6sI2lFg/18" nsPrefix="java">
+        <eAnnotations xmi:id="_QovsgIXGEeCQsIB6sI2lFg" source="PapyrusVersion">
+          <details xmi:id="_QovsgYXGEeCQsIB6sI2lFg" key="Version" value="0.0.19"/>
+          <details xmi:id="_QovsgoXGEeCQsIB6sI2lFg" key="Comment" value="ajout de generateGetter et generateSetter sur un field : gestion du true false default"/>
+          <details xmi:id="_Qovsg4XGEeCQsIB6sI2lFg" key="Copyright" value=""/>
+          <details xmi:id="_QovshIXGEeCQsIB6sI2lFg" key="Date" value="2011-05-24"/>
+          <details xmi:id="_QovshYXGEeCQsIB6sI2lFg" key="Author" value="DEBLOCK Nicolas"/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAFoYXGEeCQsIB6sI2lFg" name="JavaClass" eSuperTypes="_QoAFsIXGEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_QoAFooXGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_QoAFo4XGEeCQsIB6sI2lFg" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_QoAFpIXGEeCQsIB6sI2lFg" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_QoAFpYXGEeCQsIB6sI2lFg" source="redefines" references="_QoAFuYXGEeCQsIB6sI2lFg"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QoAFp4XGEeCQsIB6sI2lFg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFqYXGEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFq4XGEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFrYXGEeCQsIB6sI2lFg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAFsIXGEeCQsIB6sI2lFg" name="JavaGen" abstract="true" eSuperTypes="_QoAFt4XGEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_QoAFsYXGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFsoXGEeCQsIB6sI2lFg" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFtIXGEeCQsIB6sI2lFg" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAFt4XGEeCQsIB6sI2lFg" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_QoAFuIXGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFuYXGEeCQsIB6sI2lFg" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFu4XGEeCQsIB6sI2lFg" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFvYXGEeCQsIB6sI2lFg" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFv4XGEeCQsIB6sI2lFg" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFwYXGEeCQsIB6sI2lFg" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAFw4XGEeCQsIB6sI2lFg" name="JavaPackage" eSuperTypes="_QoAFsIXGEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_QoAFxIXGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFxYXGEeCQsIB6sI2lFg" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QoAFx4XGEeCQsIB6sI2lFg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAFyoXGEeCQsIB6sI2lFg" name="JavaMethod" eSuperTypes="_QoAFt4XGEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_QoAFy4XGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFzIXGEeCQsIB6sI2lFg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAFzoXGEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF0IXGEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF0oXGEeCQsIB6sI2lFg" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF1IXGEeCQsIB6sI2lFg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF1oXGEeCQsIB6sI2lFg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QoAF2IXGEeCQsIB6sI2lFg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAF24XGEeCQsIB6sI2lFg" name="JavaParameter" eSuperTypes="_QoAFt4XGEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_QoAF3IXGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF3YXGEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QoAF34XGEeCQsIB6sI2lFg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAF4oXGEeCQsIB6sI2lFg" name="JavaProperty" eSuperTypes="_QoAFt4XGEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_QoAF44XGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF5IXGEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF5oXGEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QoAF6IXGEeCQsIB6sI2lFg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF6oXGEeCQsIB6sI2lFg" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF7IXGEeCQsIB6sI2lFg" name="generateGetter" ordered="false" lowerBound="1" eType="_QoAF8YXGEeCQsIB6sI2lFg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF7oXGEeCQsIB6sI2lFg" name="generateSetter" ordered="false" lowerBound="1" eType="_QoAF8YXGEeCQsIB6sI2lFg"/>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EEnum" xmi:id="_QoAF8YXGEeCQsIB6sI2lFg" name="TrueFalseDefault">
+          <eAnnotations xmi:id="_QoAF8oXGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_xwb7kIXFEeCQsIB6sI2lFg"/>
+          <eLiterals xmi:id="_QoAF84XGEeCQsIB6sI2lFg" name="true"/>
+          <eLiterals xmi:id="_QoAF9IXGEeCQsIB6sI2lFg" name="false" value="1"/>
+          <eLiterals xmi:id="_QoAF9YXGEeCQsIB6sI2lFg" name="default" value="2"/>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAF9oXGEeCQsIB6sI2lFg" name="PrimitiveType" eSuperTypes="_QoAFsIXGEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_QoAF94XGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QoAF-IXGEeCQsIB6sI2lFg" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QoAF-oXGEeCQsIB6sI2lFg" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAF_YXGEeCQsIB6sI2lFg" name="JavaProject" eSuperTypes="_QoAFsIXGEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_QoAF_oXGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QoAF_4XGEeCQsIB6sI2lFg" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QoAGAoXGEeCQsIB6sI2lFg" name="JavaSrcFolder" eSuperTypes="_QoAFsIXGEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_QoAGA4XGEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QoAGBIXGEeCQsIB6sI2lFg" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_VQd7AIXFEeCQsIB6sI2lFg" name="java" nsURI="http:///schemas/java/_VQUKAIXFEeCQsIB6sI2lFg/17" nsPrefix="java">
+        <eAnnotations xmi:id="_VRqN0IXFEeCQsIB6sI2lFg" source="PapyrusVersion">
+          <details xmi:id="_VRqN0YXFEeCQsIB6sI2lFg" key="Version" value="0.0.18"/>
+          <details xmi:id="_VRqN0oXFEeCQsIB6sI2lFg" key="Comment" value="ajout de generateGetter et generateSetter sur un field"/>
+          <details xmi:id="_VRqN04XFEeCQsIB6sI2lFg" key="Copyright" value=""/>
+          <details xmi:id="_VRqN1IXFEeCQsIB6sI2lFg" key="Date" value="2011-05-24"/>
+          <details xmi:id="_VRqN1YXFEeCQsIB6sI2lFg" key="Author" value="Nicolas DEBLOCK"/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7AYXFEeCQsIB6sI2lFg" name="JavaClass" eSuperTypes="_VQd7EIXFEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_VQd7AoXFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_VQd7A4XFEeCQsIB6sI2lFg" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_VQd7BIXFEeCQsIB6sI2lFg" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_VQd7BYXFEeCQsIB6sI2lFg" source="redefines" references="_VQd7GYXFEeCQsIB6sI2lFg"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VQd7B4XFEeCQsIB6sI2lFg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7CYXFEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7C4XFEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7DYXFEeCQsIB6sI2lFg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7EIXFEeCQsIB6sI2lFg" name="JavaGen" abstract="true" eSuperTypes="_VQd7F4XFEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_VQd7EYXFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7EoXFEeCQsIB6sI2lFg" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7FIXFEeCQsIB6sI2lFg" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7F4XFEeCQsIB6sI2lFg" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_VQd7GIXFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7GYXFEeCQsIB6sI2lFg" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7G4XFEeCQsIB6sI2lFg" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7HYXFEeCQsIB6sI2lFg" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7H4XFEeCQsIB6sI2lFg" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7IYXFEeCQsIB6sI2lFg" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7I4XFEeCQsIB6sI2lFg" name="JavaPackage" eSuperTypes="_VQd7EIXFEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_VQd7JIXFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7JYXFEeCQsIB6sI2lFg" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VQd7J4XFEeCQsIB6sI2lFg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7KoXFEeCQsIB6sI2lFg" name="JavaMethod" eSuperTypes="_VQd7F4XFEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_VQd7K4XFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7LIXFEeCQsIB6sI2lFg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7LoXFEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7MIXFEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7MoXFEeCQsIB6sI2lFg" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7NIXFEeCQsIB6sI2lFg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7NoXFEeCQsIB6sI2lFg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VQd7OIXFEeCQsIB6sI2lFg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7O4XFEeCQsIB6sI2lFg" name="JavaParameter" eSuperTypes="_VQd7F4XFEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_VQd7PIXFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7PYXFEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VQd7P4XFEeCQsIB6sI2lFg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7QoXFEeCQsIB6sI2lFg" name="JavaProperty" eSuperTypes="_VQd7F4XFEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_VQd7Q4XFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7RIXFEeCQsIB6sI2lFg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7RoXFEeCQsIB6sI2lFg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VQd7SIXFEeCQsIB6sI2lFg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7SoXFEeCQsIB6sI2lFg" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7TIXFEeCQsIB6sI2lFg" name="generateGetter" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7ToXFEeCQsIB6sI2lFg" name="generateSetter" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7UYXFEeCQsIB6sI2lFg" name="PrimitiveType" eSuperTypes="_VQd7EIXFEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_VQd7UoXFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_VQd7U4XFEeCQsIB6sI2lFg" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VQd7VYXFEeCQsIB6sI2lFg" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7WIXFEeCQsIB6sI2lFg" name="JavaProject" eSuperTypes="_VQd7EIXFEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_VQd7WYXFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VQd7WoXFEeCQsIB6sI2lFg" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_VQd7XYXFEeCQsIB6sI2lFg" name="JavaSrcFolder" eSuperTypes="_VQd7EIXFEeCQsIB6sI2lFg">
+          <eAnnotations xmi:id="_VQd7XoXFEeCQsIB6sI2lFg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_VQd7X4XFEeCQsIB6sI2lFg" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_vu0pQHWXEeCZk9SoruwsTQ" name="java" nsURI="http:///schemas/java/_vuhuUHWXEeCZk9SoruwsTQ/16" nsPrefix="java">
+        <eAnnotations xmi:id="_vvafIXWXEeCZk9SoruwsTQ" source="PapyrusVersion">
+          <details xmi:id="_vvafInWXEeCZk9SoruwsTQ" key="Version" value="0.0.17"/>
+          <details xmi:id="_vvafI3WXEeCZk9SoruwsTQ" key="Comment" value=""/>
+          <details xmi:id="_vvafJHWXEeCZk9SoruwsTQ" key="Copyright" value=""/>
+          <details xmi:id="_vvafJXWXEeCZk9SoruwsTQ" key="Date" value="2011-05-03"/>
+          <details xmi:id="_vvafJnWXEeCZk9SoruwsTQ" key="Author" value=""/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0pQXWXEeCZk9SoruwsTQ" name="JavaClass" eSuperTypes="_vu0pUHWXEeCZk9SoruwsTQ">
+          <eAnnotations xmi:id="_vu0pQnWXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_vu0pQ3WXEeCZk9SoruwsTQ" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_vu0pRHWXEeCZk9SoruwsTQ" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_vu0pRXWXEeCZk9SoruwsTQ" source="redefines" references="_vu0pWXWXEeCZk9SoruwsTQ"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vu0pR3WXEeCZk9SoruwsTQ" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pSXWXEeCZk9SoruwsTQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pS3WXEeCZk9SoruwsTQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pTXWXEeCZk9SoruwsTQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0pUHWXEeCZk9SoruwsTQ" name="JavaGen" abstract="true" eSuperTypes="_vu0pV3WXEeCZk9SoruwsTQ">
+          <eAnnotations xmi:id="_vu0pUXWXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pUnWXEeCZk9SoruwsTQ" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pVHWXEeCZk9SoruwsTQ" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0pV3WXEeCZk9SoruwsTQ" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_vu0pWHWXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pWXWXEeCZk9SoruwsTQ" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pW3WXEeCZk9SoruwsTQ" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pXXWXEeCZk9SoruwsTQ" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pX3WXEeCZk9SoruwsTQ" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pYXWXEeCZk9SoruwsTQ" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0pY3WXEeCZk9SoruwsTQ" name="JavaPackage" eSuperTypes="_vu0pUHWXEeCZk9SoruwsTQ">
+          <eAnnotations xmi:id="_vu0pZHWXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pZXWXEeCZk9SoruwsTQ" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vu0pZ3WXEeCZk9SoruwsTQ" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0panWXEeCZk9SoruwsTQ" name="JavaMethod" eSuperTypes="_vu0pV3WXEeCZk9SoruwsTQ">
+          <eAnnotations xmi:id="_vu0pa3WXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pbHWXEeCZk9SoruwsTQ" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pbnWXEeCZk9SoruwsTQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pcHWXEeCZk9SoruwsTQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pcnWXEeCZk9SoruwsTQ" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pdHWXEeCZk9SoruwsTQ" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pdnWXEeCZk9SoruwsTQ" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vu0peHWXEeCZk9SoruwsTQ" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0pe3WXEeCZk9SoruwsTQ" name="JavaParameter" eSuperTypes="_vu0pV3WXEeCZk9SoruwsTQ">
+          <eAnnotations xmi:id="_vu0pfHWXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pfXWXEeCZk9SoruwsTQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vu0pf3WXEeCZk9SoruwsTQ" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0pgnWXEeCZk9SoruwsTQ" name="JavaProperty" eSuperTypes="_vu0pV3WXEeCZk9SoruwsTQ">
+          <eAnnotations xmi:id="_vu0pg3WXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0phHWXEeCZk9SoruwsTQ" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0phnWXEeCZk9SoruwsTQ" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vu0piHWXEeCZk9SoruwsTQ" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pinWXEeCZk9SoruwsTQ" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0pjXWXEeCZk9SoruwsTQ" name="PrimitiveType" eSuperTypes="_vu0pUHWXEeCZk9SoruwsTQ">
+          <eAnnotations xmi:id="_vu0pjnWXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vu0pj3WXEeCZk9SoruwsTQ" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vu0pkXWXEeCZk9SoruwsTQ" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0plHWXEeCZk9SoruwsTQ" name="JavaProject" eSuperTypes="_vu0pUHWXEeCZk9SoruwsTQ">
+          <eAnnotations xmi:id="_vu0plXWXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vu0plnWXEeCZk9SoruwsTQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_vu0pmXWXEeCZk9SoruwsTQ" name="JavaSrcFolder" eSuperTypes="_vu0pUHWXEeCZk9SoruwsTQ">
+          <eAnnotations xmi:id="_vu0pmnWXEeCZk9SoruwsTQ" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vu0pm3WXEeCZk9SoruwsTQ" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_z3_PMXS0EeCkZK-mj2e6xA" name="java" nsURI="http:///schemas/java/_z3_PMHS0EeCkZK-mj2e6xA/15" nsPrefix="java">
+        <eAnnotations xmi:id="_z4lFE3S0EeCkZK-mj2e6xA" source="PapyrusVersion">
+          <details xmi:id="_z4lFFHS0EeCkZK-mj2e6xA" key="Version" value="0.0.16"/>
+          <details xmi:id="_z4lFFXS0EeCkZK-mj2e6xA" key="Comment" value=""/>
+          <details xmi:id="_z4lFFnS0EeCkZK-mj2e6xA" key="Copyright" value=""/>
+          <details xmi:id="_z4lFF3S0EeCkZK-mj2e6xA" key="Date" value="2011-05-02"/>
+          <details xmi:id="_z4lFGHS0EeCkZK-mj2e6xA" key="Author" value=""/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PMnS0EeCkZK-mj2e6xA" name="JavaClass" eSuperTypes="_z3_PQXS0EeCkZK-mj2e6xA">
+          <eAnnotations xmi:id="_z3_PM3S0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_z3_PNHS0EeCkZK-mj2e6xA" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_z3_PNXS0EeCkZK-mj2e6xA" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_z3_PNnS0EeCkZK-mj2e6xA" source="redefines" references="_z3_PSnS0EeCkZK-mj2e6xA"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_z3_POHS0EeCkZK-mj2e6xA" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_POnS0EeCkZK-mj2e6xA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PPHS0EeCkZK-mj2e6xA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PPnS0EeCkZK-mj2e6xA" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PQXS0EeCkZK-mj2e6xA" name="JavaGen" abstract="true" eSuperTypes="_z3_PSHS0EeCkZK-mj2e6xA">
+          <eAnnotations xmi:id="_z3_PQnS0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PQ3S0EeCkZK-mj2e6xA" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PRXS0EeCkZK-mj2e6xA" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PSHS0EeCkZK-mj2e6xA" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_z3_PSXS0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PSnS0EeCkZK-mj2e6xA" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PTHS0EeCkZK-mj2e6xA" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PTnS0EeCkZK-mj2e6xA" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PUHS0EeCkZK-mj2e6xA" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PUnS0EeCkZK-mj2e6xA" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PVHS0EeCkZK-mj2e6xA" name="JavaPackage" eSuperTypes="_z3_PSHS0EeCkZK-mj2e6xA">
+          <eAnnotations xmi:id="_z3_PVXS0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PVnS0EeCkZK-mj2e6xA" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_z3_PWHS0EeCkZK-mj2e6xA" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PW3S0EeCkZK-mj2e6xA" name="JavaMethod" eSuperTypes="_z3_PSHS0EeCkZK-mj2e6xA">
+          <eAnnotations xmi:id="_z3_PXHS0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PXXS0EeCkZK-mj2e6xA" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PX3S0EeCkZK-mj2e6xA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PYXS0EeCkZK-mj2e6xA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PY3S0EeCkZK-mj2e6xA" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PZXS0EeCkZK-mj2e6xA" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PZ3S0EeCkZK-mj2e6xA" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_z3_PaXS0EeCkZK-mj2e6xA" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PbHS0EeCkZK-mj2e6xA" name="JavaParameter" eSuperTypes="_z3_PSHS0EeCkZK-mj2e6xA">
+          <eAnnotations xmi:id="_z3_PbXS0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PbnS0EeCkZK-mj2e6xA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_z3_PcHS0EeCkZK-mj2e6xA" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_Pc3S0EeCkZK-mj2e6xA" name="JavaProperty" eSuperTypes="_z3_PSHS0EeCkZK-mj2e6xA">
+          <eAnnotations xmi:id="_z3_PdHS0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PdXS0EeCkZK-mj2e6xA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_Pd3S0EeCkZK-mj2e6xA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_z3_PeXS0EeCkZK-mj2e6xA" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_Pe3S0EeCkZK-mj2e6xA" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PfnS0EeCkZK-mj2e6xA" name="PrimitiveType" eSuperTypes="_z3_PQXS0EeCkZK-mj2e6xA">
+          <eAnnotations xmi:id="_z3_Pf3S0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_z3_PgHS0EeCkZK-mj2e6xA" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_z3_PgnS0EeCkZK-mj2e6xA" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PhXS0EeCkZK-mj2e6xA" name="JavaProject" eSuperTypes="_z3_PQXS0EeCkZK-mj2e6xA">
+          <eAnnotations xmi:id="_z3_PhnS0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_z3_Ph3S0EeCkZK-mj2e6xA" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_z3_PinS0EeCkZK-mj2e6xA" name="JavaSrcFolder" eSuperTypes="_z3_PQXS0EeCkZK-mj2e6xA">
+          <eAnnotations xmi:id="_z3_Pi3S0EeCkZK-mj2e6xA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_z3_PjHS0EeCkZK-mj2e6xA" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_PtDIAHSpEeCDWckpYVgmKg" name="java" nsURI="http:///schemas/java/_Ps5XAHSpEeCDWckpYVgmKg/14" nsPrefix="java">
+        <eAnnotations xmi:id="_Ptfz8XSpEeCDWckpYVgmKg" source="PapyrusVersion">
+          <details xmi:id="_Ptfz8nSpEeCDWckpYVgmKg" key="Version" value="0.0.15"/>
+          <details xmi:id="_Ptfz83SpEeCDWckpYVgmKg" key="Comment" value=""/>
+          <details xmi:id="_Ptfz9HSpEeCDWckpYVgmKg" key="Copyright" value=""/>
+          <details xmi:id="_Ptfz9XSpEeCDWckpYVgmKg" key="Date" value="2011-05-02"/>
+          <details xmi:id="_Ptfz9nSpEeCDWckpYVgmKg" key="Author" value=""/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDIAXSpEeCDWckpYVgmKg" name="JavaClass" eSuperTypes="_PtDIEHSpEeCDWckpYVgmKg">
+          <eAnnotations xmi:id="_PtDIAnSpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_PtDIA3SpEeCDWckpYVgmKg" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_PtDIBHSpEeCDWckpYVgmKg" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_PtDIBXSpEeCDWckpYVgmKg" source="redefines" references="_PtDIG3SpEeCDWckpYVgmKg"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PtDIB3SpEeCDWckpYVgmKg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDICXSpEeCDWckpYVgmKg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIC3SpEeCDWckpYVgmKg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIDXSpEeCDWckpYVgmKg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDIEHSpEeCDWckpYVgmKg" name="JavaGen" abstract="true" eSuperTypes="_PtDIGXSpEeCDWckpYVgmKg">
+          <eAnnotations xmi:id="_PtDIEXSpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIEnSpEeCDWckpYVgmKg" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIFHSpEeCDWckpYVgmKg" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIFnSpEeCDWckpYVgmKg" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDIGXSpEeCDWckpYVgmKg" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_PtDIGnSpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIG3SpEeCDWckpYVgmKg" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIHXSpEeCDWckpYVgmKg" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIH3SpEeCDWckpYVgmKg" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIIXSpEeCDWckpYVgmKg" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDII3SpEeCDWckpYVgmKg" name="JavaPackage" eSuperTypes="_PtDIGXSpEeCDWckpYVgmKg">
+          <eAnnotations xmi:id="_PtDIJHSpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIJXSpEeCDWckpYVgmKg" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PtDIJ3SpEeCDWckpYVgmKg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDIKnSpEeCDWckpYVgmKg" name="JavaMethod" eSuperTypes="_PtDIGXSpEeCDWckpYVgmKg">
+          <eAnnotations xmi:id="_PtDIK3SpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDILHSpEeCDWckpYVgmKg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDILnSpEeCDWckpYVgmKg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIMHSpEeCDWckpYVgmKg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIMnSpEeCDWckpYVgmKg" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDINHSpEeCDWckpYVgmKg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDINnSpEeCDWckpYVgmKg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PtDIOHSpEeCDWckpYVgmKg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDIO3SpEeCDWckpYVgmKg" name="JavaParameter" eSuperTypes="_PtDIGXSpEeCDWckpYVgmKg">
+          <eAnnotations xmi:id="_PtDIPHSpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIPXSpEeCDWckpYVgmKg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PtDIP3SpEeCDWckpYVgmKg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDIQnSpEeCDWckpYVgmKg" name="JavaProperty" eSuperTypes="_PtDIGXSpEeCDWckpYVgmKg">
+          <eAnnotations xmi:id="_PtDIQ3SpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIRHSpEeCDWckpYVgmKg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIRnSpEeCDWckpYVgmKg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PtDISHSpEeCDWckpYVgmKg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDISnSpEeCDWckpYVgmKg" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDITXSpEeCDWckpYVgmKg" name="PrimitiveType" eSuperTypes="_PtDIEHSpEeCDWckpYVgmKg">
+          <eAnnotations xmi:id="_PtDITnSpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_PtDIT3SpEeCDWckpYVgmKg" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PtDIUXSpEeCDWckpYVgmKg" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDIVHSpEeCDWckpYVgmKg" name="JavaProject" eSuperTypes="_PtDIEHSpEeCDWckpYVgmKg">
+          <eAnnotations xmi:id="_PtDIVXSpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PtDIVnSpEeCDWckpYVgmKg" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_PtDIWXSpEeCDWckpYVgmKg" name="JavaSrcFolder" eSuperTypes="_PtDIEHSpEeCDWckpYVgmKg">
+          <eAnnotations xmi:id="_PtDIWnSpEeCDWckpYVgmKg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_PtDIW3SpEeCDWckpYVgmKg" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_hNIwEHSoEeCRC6drc39K0A" name="java" nsURI="http:///schemas/java/_hM-_EHSoEeCRC6drc39K0A/13" nsPrefix="java">
+        <eAnnotations xmi:id="_hNbrBHSoEeCRC6drc39K0A" source="PapyrusVersion">
+          <details xmi:id="_hNbrBXSoEeCRC6drc39K0A" key="Version" value="0.0.14"/>
+          <details xmi:id="_hNbrBnSoEeCRC6drc39K0A" key="Comment" value=""/>
+          <details xmi:id="_hNbrB3SoEeCRC6drc39K0A" key="Copyright" value=""/>
+          <details xmi:id="_hNbrCHSoEeCRC6drc39K0A" key="Date" value="2011-05-02"/>
+          <details xmi:id="_hNbrCXSoEeCRC6drc39K0A" key="Author" value=""/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwEXSoEeCRC6drc39K0A" name="JavaClass" eSuperTypes="_hNIwIHSoEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_hNIwEnSoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_hNIwE3SoEeCRC6drc39K0A" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_hNIwFHSoEeCRC6drc39K0A" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_hNIwFXSoEeCRC6drc39K0A" source="redefines" references="_hNIwKXSoEeCRC6drc39K0A"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hNIwF3SoEeCRC6drc39K0A" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwGXSoEeCRC6drc39K0A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwG3SoEeCRC6drc39K0A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwHXSoEeCRC6drc39K0A" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwIHSoEeCRC6drc39K0A" name="JavaGen" abstract="true" eSuperTypes="_hNIwJ3SoEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_hNIwIXSoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwInSoEeCRC6drc39K0A" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwJHSoEeCRC6drc39K0A" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwJ3SoEeCRC6drc39K0A" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_hNIwKHSoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwKXSoEeCRC6drc39K0A" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwK3SoEeCRC6drc39K0A" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwLXSoEeCRC6drc39K0A" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwL3SoEeCRC6drc39K0A" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwMXSoEeCRC6drc39K0A" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwM3SoEeCRC6drc39K0A" name="JavaPackage" eSuperTypes="_hNIwJ3SoEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_hNIwNHSoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwNXSoEeCRC6drc39K0A" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hNIwN3SoEeCRC6drc39K0A" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwOnSoEeCRC6drc39K0A" name="JavaMethod" eSuperTypes="_hNIwJ3SoEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_hNIwO3SoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwPHSoEeCRC6drc39K0A" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwPnSoEeCRC6drc39K0A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwQHSoEeCRC6drc39K0A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwQnSoEeCRC6drc39K0A" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwRHSoEeCRC6drc39K0A" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwRnSoEeCRC6drc39K0A" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hNIwSHSoEeCRC6drc39K0A" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwS3SoEeCRC6drc39K0A" name="JavaParameter" eSuperTypes="_hNIwJ3SoEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_hNIwTHSoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwTXSoEeCRC6drc39K0A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hNIwT3SoEeCRC6drc39K0A" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwUnSoEeCRC6drc39K0A" name="JavaProperty" eSuperTypes="_hNIwJ3SoEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_hNIwU3SoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwVHSoEeCRC6drc39K0A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwVnSoEeCRC6drc39K0A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hNIwWHSoEeCRC6drc39K0A" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwWnSoEeCRC6drc39K0A" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwXXSoEeCRC6drc39K0A" name="PrimitiveType" eSuperTypes="_hNIwIHSoEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_hNIwXnSoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_hNIwX3SoEeCRC6drc39K0A" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hNIwYXSoEeCRC6drc39K0A" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwZHSoEeCRC6drc39K0A" name="JavaProject" eSuperTypes="_hNIwIHSoEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_hNIwZXSoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hNIwZnSoEeCRC6drc39K0A" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_hNIwaXSoEeCRC6drc39K0A" name="JavaSrcFolder" eSuperTypes="_hNIwIHSoEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_hNIwanSoEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_hNIwa3SoEeCRC6drc39K0A" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_l6YNMHSmEeCRC6drc39K0A" name="java" nsURI="http:///schemas/java/_l6OcMHSmEeCRC6drc39K0A/12" nsPrefix="java">
+        <eAnnotations xmi:id="_l60SEnSmEeCRC6drc39K0A" source="PapyrusVersion">
+          <details xmi:id="_l60SE3SmEeCRC6drc39K0A" key="Version" value="0.0.13"/>
+          <details xmi:id="_l60SFHSmEeCRC6drc39K0A" key="Comment" value=""/>
+          <details xmi:id="_l60SFXSmEeCRC6drc39K0A" key="Copyright" value=""/>
+          <details xmi:id="_l60SFnSmEeCRC6drc39K0A" key="Date" value="2011-05-02"/>
+          <details xmi:id="_l60SF3SmEeCRC6drc39K0A" key="Author" value=""/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNMXSmEeCRC6drc39K0A" name="JavaClass" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A _l6YNTXSmEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_l6YNMnSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_l6YNM3SmEeCRC6drc39K0A" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_l6YNNHSmEeCRC6drc39K0A" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_l6YNNXSmEeCRC6drc39K0A" source="redefines" references="_l6YNQ3SmEeCRC6drc39K0A"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l6YNN3SmEeCRC6drc39K0A" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNOXSmEeCRC6drc39K0A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNO3SmEeCRC6drc39K0A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNPXSmEeCRC6drc39K0A" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNQXSmEeCRC6drc39K0A" name="JavaNamedElement" abstract="true">
+          <eAnnotations xmi:id="_l6YNQnSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNQ3SmEeCRC6drc39K0A" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNRXSmEeCRC6drc39K0A" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNR3SmEeCRC6drc39K0A" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNSXSmEeCRC6drc39K0A" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNS3SmEeCRC6drc39K0A" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNTXSmEeCRC6drc39K0A" name="JavaGen" abstract="true" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_l6YNTnSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNT3SmEeCRC6drc39K0A" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNUXSmEeCRC6drc39K0A" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNVHSmEeCRC6drc39K0A" name="JavaPackage" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_l6YNVXSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNVnSmEeCRC6drc39K0A" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l6YNWHSmEeCRC6drc39K0A" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNW3SmEeCRC6drc39K0A" name="JavaMethod" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_l6YNXHSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNXXSmEeCRC6drc39K0A" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNX3SmEeCRC6drc39K0A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNYXSmEeCRC6drc39K0A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNY3SmEeCRC6drc39K0A" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNZXSmEeCRC6drc39K0A" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNZ3SmEeCRC6drc39K0A" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l6YNaXSmEeCRC6drc39K0A" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNbHSmEeCRC6drc39K0A" name="JavaParameter" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_l6YNbXSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNbnSmEeCRC6drc39K0A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l6YNcHSmEeCRC6drc39K0A" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNc3SmEeCRC6drc39K0A" name="JavaProperty" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_l6YNdHSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNdXSmEeCRC6drc39K0A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNd3SmEeCRC6drc39K0A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l6YNeXSmEeCRC6drc39K0A" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNe3SmEeCRC6drc39K0A" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNfnSmEeCRC6drc39K0A" name="PrimitiveType" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_l6YNf3SmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_l6YNgHSmEeCRC6drc39K0A" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l6YNgnSmEeCRC6drc39K0A" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNhXSmEeCRC6drc39K0A" name="JavaProject" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A _l6YNTXSmEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_l6YNhnSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l6YNh3SmEeCRC6drc39K0A" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_l6YNi3SmEeCRC6drc39K0A" name="JavaSrcFolder" eSuperTypes="_l6YNQXSmEeCRC6drc39K0A _l6YNTXSmEeCRC6drc39K0A">
+          <eAnnotations xmi:id="_l6YNjHSmEeCRC6drc39K0A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_l6YNjXSmEeCRC6drc39K0A" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_QwstIGnDEeCLCLVVSfvYsw" name="java" nsURI="http:///schemas/java/_QwjjMGnDEeCLCLVVSfvYsw/11" nsPrefix="java">
+        <eAnnotations xmi:id="_QxAPIGnDEeCLCLVVSfvYsw" source="PapyrusVersion">
+          <details xmi:id="_QxAPIWnDEeCLCLVVSfvYsw" key="Version" value="0.0.12"/>
+          <details xmi:id="_QxAPImnDEeCLCLVVSfvYsw" key="Comment" value=""/>
+          <details xmi:id="_QxAPI2nDEeCLCLVVSfvYsw" key="Copyright" value=""/>
+          <details xmi:id="_QxAPJGnDEeCLCLVVSfvYsw" key="Date" value="2011-04-18"/>
+          <details xmi:id="_QxAPJWnDEeCLCLVVSfvYsw" key="Author" value=""/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QwstIWnDEeCLCLVVSfvYsw" name="JavaClass" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw _QwstPWnDEeCLCLVVSfvYsw">
+          <eAnnotations xmi:id="_QwstImnDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_QwstI2nDEeCLCLVVSfvYsw" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_QwstJGnDEeCLCLVVSfvYsw" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_QwstJWnDEeCLCLVVSfvYsw" source="redefines" references="_QwstM2nDEeCLCLVVSfvYsw"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QwstJ2nDEeCLCLVVSfvYsw" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstKWnDEeCLCLVVSfvYsw" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstK2nDEeCLCLVVSfvYsw" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstLWnDEeCLCLVVSfvYsw" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QwstMWnDEeCLCLVVSfvYsw" name="JavaNamedElement">
+          <eAnnotations xmi:id="_QwstMmnDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstM2nDEeCLCLVVSfvYsw" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstNWnDEeCLCLVVSfvYsw" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstN2nDEeCLCLVVSfvYsw" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstOWnDEeCLCLVVSfvYsw" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstO2nDEeCLCLVVSfvYsw" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QwstPWnDEeCLCLVVSfvYsw" name="JavaGen" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw">
+          <eAnnotations xmi:id="_QwstPmnDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QwstP2nDEeCLCLVVSfvYsw" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstQWnDEeCLCLVVSfvYsw" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstQ2nDEeCLCLVVSfvYsw" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QwstRmnDEeCLCLVVSfvYsw" name="JavaPackage" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw">
+          <eAnnotations xmi:id="_QwstR2nDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstSGnDEeCLCLVVSfvYsw" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QwstSmnDEeCLCLVVSfvYsw" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QwstTWnDEeCLCLVVSfvYsw" name="JavaMethod" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw">
+          <eAnnotations xmi:id="_QwstTmnDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstT2nDEeCLCLVVSfvYsw" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstUWnDEeCLCLVVSfvYsw" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstU2nDEeCLCLVVSfvYsw" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstVWnDEeCLCLVVSfvYsw" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstV2nDEeCLCLVVSfvYsw" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstWWnDEeCLCLVVSfvYsw" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QwstW2nDEeCLCLVVSfvYsw" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QwstXmnDEeCLCLVVSfvYsw" name="JavaParameter" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw">
+          <eAnnotations xmi:id="_QwstX2nDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstYGnDEeCLCLVVSfvYsw" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QwstYmnDEeCLCLVVSfvYsw" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QwstZWnDEeCLCLVVSfvYsw" name="JavaProperty" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw">
+          <eAnnotations xmi:id="_QwstZmnDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstZ2nDEeCLCLVVSfvYsw" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstaWnDEeCLCLVVSfvYsw" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Qwsta2nDEeCLCLVVSfvYsw" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstbWnDEeCLCLVVSfvYsw" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_QwstcGnDEeCLCLVVSfvYsw" name="PrimitiveType" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw">
+          <eAnnotations xmi:id="_QwstcWnDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_QwstcmnDEeCLCLVVSfvYsw" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_QwstdGnDEeCLCLVVSfvYsw" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_Qwstd2nDEeCLCLVVSfvYsw" name="JavaProject" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw _QwstPWnDEeCLCLVVSfvYsw">
+          <eAnnotations xmi:id="_QwsteGnDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eAnnotations xmi:id="_QwsteWnDEeCLCLVVSfvYsw" source="duplicates">
+            <contents xmi:type="ecore:EReference" xmi:id="_QwstemnDEeCLCLVVSfvYsw" name="base_Package" ordered="false" lowerBound="1">
+              <eAnnotations xmi:id="_Qwste2nDEeCLCLVVSfvYsw" source="redefines" references="_QwstP2nDEeCLCLVVSfvYsw"/>
+              <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+            </contents>
+          </eAnnotations>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_Qwstf2nDEeCLCLVVSfvYsw" name="JavaSrcFolder" eSuperTypes="_QwstMWnDEeCLCLVVSfvYsw _QwstPWnDEeCLCLVVSfvYsw">
+          <eAnnotations xmi:id="_QwstgGnDEeCLCLVVSfvYsw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eAnnotations xmi:id="_QwstgWnDEeCLCLVVSfvYsw" source="duplicates">
+            <contents xmi:type="ecore:EReference" xmi:id="_QwstgmnDEeCLCLVVSfvYsw" name="base_Package" ordered="false" lowerBound="1">
+              <eAnnotations xmi:id="_Qwstg2nDEeCLCLVVSfvYsw" source="redefines" references="_QwstP2nDEeCLCLVVSfvYsw"/>
+              <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+            </contents>
+          </eAnnotations>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_iMXo4Gm6EeCd_4cexnRotg" name="java" nsURI="http:///schemas/java/_iMN34Gm6EeCd_4cexnRotg/10" nsPrefix="java">
+        <eAnnotations xmi:id="_iNaKs2m6EeCd_4cexnRotg" source="PapyrusVersion">
+          <details xmi:id="_iNaKtGm6EeCd_4cexnRotg" key="Version" value="0.0.11"/>
+          <details xmi:id="_iNaKtWm6EeCd_4cexnRotg" key="Comment" value=""/>
+          <details xmi:id="_iNaKtmm6EeCd_4cexnRotg" key="Copyright" value=""/>
+          <details xmi:id="_iNaKt2m6EeCd_4cexnRotg" key="Date" value="2011-04-18"/>
+          <details xmi:id="_iNaKuGm6EeCd_4cexnRotg" key="Author" value=""/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXo4Wm6EeCd_4cexnRotg" name="JavaClass" eSuperTypes="_iMXo72m6EeCd_4cexnRotg _iMXo-2m6EeCd_4cexnRotg">
+          <eAnnotations xmi:id="_iMXo4mm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_iMXo42m6EeCd_4cexnRotg" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_iMXo5Gm6EeCd_4cexnRotg" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_iMXo5Wm6EeCd_4cexnRotg" source="redefines" references="_iMXo8Wm6EeCd_4cexnRotg"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iMXo52m6EeCd_4cexnRotg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXo6Wm6EeCd_4cexnRotg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXo62m6EeCd_4cexnRotg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXo72m6EeCd_4cexnRotg" name="JavaNamedElement">
+          <eAnnotations xmi:id="_iMXo8Gm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXo8Wm6EeCd_4cexnRotg" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXo82m6EeCd_4cexnRotg" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXo9Wm6EeCd_4cexnRotg" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXo92m6EeCd_4cexnRotg" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXo-Wm6EeCd_4cexnRotg" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXo-2m6EeCd_4cexnRotg" name="JavaGen" eSuperTypes="_iMXo72m6EeCd_4cexnRotg">
+          <eAnnotations xmi:id="_iMXo_Gm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iMXo_Wm6EeCd_4cexnRotg" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXo_2m6EeCd_4cexnRotg" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpAWm6EeCd_4cexnRotg" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXpBGm6EeCd_4cexnRotg" name="JavaPackage" eSuperTypes="_iMXo72m6EeCd_4cexnRotg">
+          <eAnnotations xmi:id="_iMXpBWm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpBmm6EeCd_4cexnRotg" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iMXpCGm6EeCd_4cexnRotg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXpC2m6EeCd_4cexnRotg" name="JavaMethod" eSuperTypes="_iMXo72m6EeCd_4cexnRotg">
+          <eAnnotations xmi:id="_iMXpDGm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpDWm6EeCd_4cexnRotg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpD2m6EeCd_4cexnRotg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpEWm6EeCd_4cexnRotg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpE2m6EeCd_4cexnRotg" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpFWm6EeCd_4cexnRotg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpF2m6EeCd_4cexnRotg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iMXpGWm6EeCd_4cexnRotg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXpHGm6EeCd_4cexnRotg" name="JavaParameter" eSuperTypes="_iMXo72m6EeCd_4cexnRotg">
+          <eAnnotations xmi:id="_iMXpHWm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpHmm6EeCd_4cexnRotg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iMXpIGm6EeCd_4cexnRotg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXpI2m6EeCd_4cexnRotg" name="JavaProperty" eSuperTypes="_iMXo72m6EeCd_4cexnRotg">
+          <eAnnotations xmi:id="_iMXpJGm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpJWm6EeCd_4cexnRotg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpJ2m6EeCd_4cexnRotg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iMXpKWm6EeCd_4cexnRotg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpK2m6EeCd_4cexnRotg" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXpLmm6EeCd_4cexnRotg" name="PrimitiveType" eSuperTypes="_iMXo72m6EeCd_4cexnRotg">
+          <eAnnotations xmi:id="_iMXpL2m6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_iMXpMGm6EeCd_4cexnRotg" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_iMXpMmm6EeCd_4cexnRotg" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXpNWm6EeCd_4cexnRotg" name="JavaProject" eSuperTypes="_iMXo72m6EeCd_4cexnRotg _iMXo-2m6EeCd_4cexnRotg">
+          <eAnnotations xmi:id="_iMXpNmm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eAnnotations xmi:id="_iMXpN2m6EeCd_4cexnRotg" source="duplicates">
+            <contents xmi:type="ecore:EReference" xmi:id="_iMXpOGm6EeCd_4cexnRotg" name="base_Package" ordered="false" lowerBound="1">
+              <eAnnotations xmi:id="_iMXpOWm6EeCd_4cexnRotg" source="redefines" references="_iMXo_Wm6EeCd_4cexnRotg"/>
+              <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+            </contents>
+          </eAnnotations>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_iMXpPWm6EeCd_4cexnRotg" name="JavaSrcFolder" eSuperTypes="_iMXo72m6EeCd_4cexnRotg _iMXo-2m6EeCd_4cexnRotg">
+          <eAnnotations xmi:id="_iMXpPmm6EeCd_4cexnRotg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eAnnotations xmi:id="_iMXpP2m6EeCd_4cexnRotg" source="duplicates">
+            <contents xmi:type="ecore:EReference" xmi:id="_iMXpQGm6EeCd_4cexnRotg" name="base_Package" ordered="false" lowerBound="1">
+              <eAnnotations xmi:id="_iMXpQWm6EeCd_4cexnRotg" source="redefines" references="_iMXo_Wm6EeCd_4cexnRotg"/>
+              <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+            </contents>
+          </eAnnotations>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_G3EhcGXlEeCx-IU0sjGPKA" name="java" nsURI="http:///schemas/java/_G27XgGXlEeCx-IU0sjGPKA/9" nsPrefix="java">
+        <eAnnotations xmi:id="_G3q-YWXlEeCx-IU0sjGPKA" source="PapyrusVersion">
+          <details xmi:id="_G3q-YmXlEeCx-IU0sjGPKA" key="Version" value="0.0.10"/>
+          <details xmi:id="_G3q-Y2XlEeCx-IU0sjGPKA" key="Comment" value=""/>
+          <details xmi:id="_G3q-ZGXlEeCx-IU0sjGPKA" key="Copyright" value=""/>
+          <details xmi:id="_G3q-ZWXlEeCx-IU0sjGPKA" key="Date" value="2011-04-13"/>
+          <details xmi:id="_G3q-ZmXlEeCx-IU0sjGPKA" key="Author" value=""/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3EhcWXlEeCx-IU0sjGPKA" name="JavaClass" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA _G3Ehi2XlEeCx-IU0sjGPKA">
+          <eAnnotations xmi:id="_G3EhcmXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_G3Ehc2XlEeCx-IU0sjGPKA" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_G3EhdGXlEeCx-IU0sjGPKA" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_G3EhdWXlEeCx-IU0sjGPKA" source="redefines" references="_G3EhgWXlEeCx-IU0sjGPKA"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G3Ehd2XlEeCx-IU0sjGPKA" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EheWXlEeCx-IU0sjGPKA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Ehe2XlEeCx-IU0sjGPKA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3Ehf2XlEeCx-IU0sjGPKA" name="JavaNamedElement">
+          <eAnnotations xmi:id="_G3EhgGXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhgWXlEeCx-IU0sjGPKA" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Ehg2XlEeCx-IU0sjGPKA" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhhWXlEeCx-IU0sjGPKA" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Ehh2XlEeCx-IU0sjGPKA" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhiWXlEeCx-IU0sjGPKA" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3Ehi2XlEeCx-IU0sjGPKA" name="JavaGen" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA">
+          <eAnnotations xmi:id="_G3EhjGXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G3EhjWXlEeCx-IU0sjGPKA" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Ehj2XlEeCx-IU0sjGPKA" name="srcName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhkWXlEeCx-IU0sjGPKA" name="projectName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3EhlGXlEeCx-IU0sjGPKA" name="JavaPackage" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA">
+          <eAnnotations xmi:id="_G3EhlWXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhlmXlEeCx-IU0sjGPKA" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G3EhmGXlEeCx-IU0sjGPKA" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3Ehm2XlEeCx-IU0sjGPKA" name="JavaMethod" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA">
+          <eAnnotations xmi:id="_G3EhnGXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhnWXlEeCx-IU0sjGPKA" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Ehn2XlEeCx-IU0sjGPKA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhoWXlEeCx-IU0sjGPKA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Eho2XlEeCx-IU0sjGPKA" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhpWXlEeCx-IU0sjGPKA" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Ehp2XlEeCx-IU0sjGPKA" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G3EhqWXlEeCx-IU0sjGPKA" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3EhrGXlEeCx-IU0sjGPKA" name="JavaParameter" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA">
+          <eAnnotations xmi:id="_G3EhrWXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhrmXlEeCx-IU0sjGPKA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G3EhsGXlEeCx-IU0sjGPKA" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3Ehs2XlEeCx-IU0sjGPKA" name="JavaProperty" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA">
+          <eAnnotations xmi:id="_G3EhtGXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhtWXlEeCx-IU0sjGPKA" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Eht2XlEeCx-IU0sjGPKA" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G3EhuWXlEeCx-IU0sjGPKA" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3Ehu2XlEeCx-IU0sjGPKA" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3EhvmXlEeCx-IU0sjGPKA" name="PrimitiveType" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA">
+          <eAnnotations xmi:id="_G3Ehv2XlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_G3EhwGXlEeCx-IU0sjGPKA" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_G3EhwmXlEeCx-IU0sjGPKA" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3EhxWXlEeCx-IU0sjGPKA" name="JavaProject" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA _G3Ehi2XlEeCx-IU0sjGPKA">
+          <eAnnotations xmi:id="_G3EhxmXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+          <eAnnotations xmi:id="_G3Ehx2XlEeCx-IU0sjGPKA" source="duplicates">
+            <contents xmi:type="ecore:EReference" xmi:id="_G3EhyGXlEeCx-IU0sjGPKA" name="base_Package" ordered="false" lowerBound="1">
+              <eAnnotations xmi:id="_G3EhyWXlEeCx-IU0sjGPKA" source="redefines" references="_G3EhjWXlEeCx-IU0sjGPKA"/>
+              <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+            </contents>
+          </eAnnotations>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_G3EhzWXlEeCx-IU0sjGPKA" name="JavaSrcFolder" eSuperTypes="_G3Ehf2XlEeCx-IU0sjGPKA _G3Ehi2XlEeCx-IU0sjGPKA">
+          <eAnnotations xmi:id="_G3EhzmXlEeCx-IU0sjGPKA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+          <eAnnotations xmi:id="_G3Ehz2XlEeCx-IU0sjGPKA" source="duplicates">
+            <contents xmi:type="ecore:EReference" xmi:id="_G3Eh0GXlEeCx-IU0sjGPKA" name="base_Package" ordered="false" lowerBound="1">
+              <eAnnotations xmi:id="_G3Eh0WXlEeCx-IU0sjGPKA" source="redefines" references="_G3EhjWXlEeCx-IU0sjGPKA"/>
+              <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+            </contents>
+          </eAnnotations>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_BgKjoGXkEeCHc7Sujzc1_A" name="java" nsURI="http:///schemas/java/_BgBZsGXkEeCHc7Sujzc1_A/8" nsPrefix="java">
+        <eAnnotations xmi:id="_BhNsgWXkEeCHc7Sujzc1_A" source="PapyrusVersion">
+          <details xmi:id="_BhNsgmXkEeCHc7Sujzc1_A" key="Version" value="0.0.9"/>
+          <details xmi:id="_BhNsg2XkEeCHc7Sujzc1_A" key="Comment" value=""/>
+          <details xmi:id="_BhNshGXkEeCHc7Sujzc1_A" key="Copyright" value=""/>
+          <details xmi:id="_BhNshWXkEeCHc7Sujzc1_A" key="Date" value="2011-04-13"/>
+          <details xmi:id="_BhNshmXkEeCHc7Sujzc1_A" key="Author" value=""/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKjoWXkEeCHc7Sujzc1_A" name="JavaClass" eSuperTypes="_BgKjrmXkEeCHc7Sujzc1_A">
+          <eAnnotations xmi:id="_BgKjomXkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_BgKjo2XkEeCHc7Sujzc1_A" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_BgKjpGXkEeCHc7Sujzc1_A" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_BgKjpWXkEeCHc7Sujzc1_A" source="redefines" references="_BgKjsGXkEeCHc7Sujzc1_A"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_BgKjp2XkEeCHc7Sujzc1_A" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjqWXkEeCHc7Sujzc1_A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjq2XkEeCHc7Sujzc1_A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKjrmXkEeCHc7Sujzc1_A" name="JavaNamedElement">
+          <eAnnotations xmi:id="_BgKjr2XkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjsGXkEeCHc7Sujzc1_A" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjsmXkEeCHc7Sujzc1_A" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjtGXkEeCHc7Sujzc1_A" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjtmXkEeCHc7Sujzc1_A" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjuGXkEeCHc7Sujzc1_A" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKjumXkEeCHc7Sujzc1_A" name="JavaPackage" eSuperTypes="_BgKjrmXkEeCHc7Sujzc1_A">
+          <eAnnotations xmi:id="_BgKju2XkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjvGXkEeCHc7Sujzc1_A" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_BgKjvmXkEeCHc7Sujzc1_A" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKjwWXkEeCHc7Sujzc1_A" name="JavaMethod" eSuperTypes="_BgKjrmXkEeCHc7Sujzc1_A">
+          <eAnnotations xmi:id="_BgKjwmXkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjw2XkEeCHc7Sujzc1_A" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjxWXkEeCHc7Sujzc1_A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjx2XkEeCHc7Sujzc1_A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjyWXkEeCHc7Sujzc1_A" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjy2XkEeCHc7Sujzc1_A" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKjzWXkEeCHc7Sujzc1_A" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_BgKjz2XkEeCHc7Sujzc1_A" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKj0mXkEeCHc7Sujzc1_A" name="JavaParameter" eSuperTypes="_BgKjrmXkEeCHc7Sujzc1_A">
+          <eAnnotations xmi:id="_BgKj02XkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKj1GXkEeCHc7Sujzc1_A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_BgKj1mXkEeCHc7Sujzc1_A" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKj2WXkEeCHc7Sujzc1_A" name="JavaProperty" eSuperTypes="_BgKjrmXkEeCHc7Sujzc1_A">
+          <eAnnotations xmi:id="_BgKj2mXkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKj22XkEeCHc7Sujzc1_A" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKj3WXkEeCHc7Sujzc1_A" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_BgKj32XkEeCHc7Sujzc1_A" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKj4WXkEeCHc7Sujzc1_A" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKj5GXkEeCHc7Sujzc1_A" name="PrimitiveType" eSuperTypes="_BgKjrmXkEeCHc7Sujzc1_A">
+          <eAnnotations xmi:id="_BgKj5WXkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_BgKj5mXkEeCHc7Sujzc1_A" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_BgKj6GXkEeCHc7Sujzc1_A" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKj62XkEeCHc7Sujzc1_A" name="JavaProject">
+          <eAnnotations xmi:id="_BgKj7GXkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_t-QqQGXjEeCHc7Sujzc1_A"/>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKj7WXkEeCHc7Sujzc1_A" name="JavaSrcFolder">
+          <eAnnotations xmi:id="_BgKj7mXkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_10lGQGXjEeCHc7Sujzc1_A"/>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_BgKj72XkEeCHc7Sujzc1_A" name="JavaGen">
+          <eAnnotations xmi:id="_BgKj8GXkEeCHc7Sujzc1_A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_4QcEsGXjEeCHc7Sujzc1_A"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_7_e8UPiVEd-PA5X9eH0eag" name="java" nsURI="http:///schemas/java/_7_VyYPiVEd-PA5X9eH0eag/7" nsPrefix="java">
+        <eAnnotations xmi:id="_8AFZQPiVEd-PA5X9eH0eag" source="PapyrusVersion">
+          <details xmi:id="_8AFZQfiVEd-PA5X9eH0eag" key="Version" value="0.0.8"/>
+          <details xmi:id="_8AFZQviVEd-PA5X9eH0eag" key="Comment" value=""/>
+          <details xmi:id="_8AFZQ_iVEd-PA5X9eH0eag" key="Copyright" value=""/>
+          <details xmi:id="_8AFZRPiVEd-PA5X9eH0eag" key="Date" value="2010-11-25"/>
+          <details xmi:id="_8AFZRfiVEd-PA5X9eH0eag" key="Author" value=""/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_7_e8UfiVEd-PA5X9eH0eag" name="JavaClass" eSuperTypes="_7_e8XviVEd-PA5X9eH0eag">
+          <eAnnotations xmi:id="_7_e8UviVEd-PA5X9eH0eag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_7_e8U_iVEd-PA5X9eH0eag" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_7_e8VPiVEd-PA5X9eH0eag" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_7_e8VfiVEd-PA5X9eH0eag" source="redefines" references="_7_e8YPiVEd-PA5X9eH0eag"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7_e8V_iVEd-PA5X9eH0eag" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8WfiVEd-PA5X9eH0eag" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8W_iVEd-PA5X9eH0eag" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_7_e8XviVEd-PA5X9eH0eag" name="JavaNamedElement">
+          <eAnnotations xmi:id="_7_e8X_iVEd-PA5X9eH0eag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8YPiVEd-PA5X9eH0eag" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8YviVEd-PA5X9eH0eag" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8ZPiVEd-PA5X9eH0eag" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8ZviVEd-PA5X9eH0eag" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8aPiVEd-PA5X9eH0eag" name="comment" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_7_e8aviVEd-PA5X9eH0eag" name="JavaPackage" eSuperTypes="_7_e8XviVEd-PA5X9eH0eag">
+          <eAnnotations xmi:id="_7_e8a_iVEd-PA5X9eH0eag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8bPiVEd-PA5X9eH0eag" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7_e8bviVEd-PA5X9eH0eag" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_7_e8cfiVEd-PA5X9eH0eag" name="JavaMethod" eSuperTypes="_7_e8XviVEd-PA5X9eH0eag">
+          <eAnnotations xmi:id="_7_e8cviVEd-PA5X9eH0eag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8c_iVEd-PA5X9eH0eag" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8dfiVEd-PA5X9eH0eag" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8d_iVEd-PA5X9eH0eag" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8efiVEd-PA5X9eH0eag" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8e_iVEd-PA5X9eH0eag" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8ffiVEd-PA5X9eH0eag" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7_e8f_iVEd-PA5X9eH0eag" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_7_e8gviVEd-PA5X9eH0eag" name="JavaParameter" eSuperTypes="_7_e8XviVEd-PA5X9eH0eag">
+          <eAnnotations xmi:id="_7_e8g_iVEd-PA5X9eH0eag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8hPiVEd-PA5X9eH0eag" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7_e8hviVEd-PA5X9eH0eag" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_7_e8ifiVEd-PA5X9eH0eag" name="JavaProperty" eSuperTypes="_7_e8XviVEd-PA5X9eH0eag">
+          <eAnnotations xmi:id="_7_e8iviVEd-PA5X9eH0eag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8i_iVEd-PA5X9eH0eag" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8jfiVEd-PA5X9eH0eag" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7_e8j_iVEd-PA5X9eH0eag" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8kfiVEd-PA5X9eH0eag" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_7_e8lPiVEd-PA5X9eH0eag" name="PrimitiveType" eSuperTypes="_7_e8XviVEd-PA5X9eH0eag">
+          <eAnnotations xmi:id="_7_e8lfiVEd-PA5X9eH0eag" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_7_e8lviVEd-PA5X9eH0eag" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_7_e8mPiVEd-PA5X9eH0eag" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_dd0ogfffEd-Ui7vEO4yc0g" name="java" nsURI="http:///schemas/java/_dd0ogPffEd-Ui7vEO4yc0g/6" nsPrefix="java">
+        <eAnnotations xmi:id="_dd-ZgvffEd-Ui7vEO4yc0g" source="PapyrusVersion">
+          <details xmi:id="_dd-Zg_ffEd-Ui7vEO4yc0g" key="Version" value="0.0.7"/>
+          <details xmi:id="_dd-ZhPffEd-Ui7vEO4yc0g" key="Comment" value=""/>
+          <details xmi:id="_dd-ZhfffEd-Ui7vEO4yc0g" key="Copyright" value=""/>
+          <details xmi:id="_dd-ZhvffEd-Ui7vEO4yc0g" key="Date" value="2010-11-24"/>
+          <details xmi:id="_dd-Zh_ffEd-Ui7vEO4yc0g" key="Author" value=""/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dd0ogvffEd-Ui7vEO4yc0g" name="JavaClass" eSuperTypes="_dd0oj_ffEd-Ui7vEO4yc0g">
+          <eAnnotations xmi:id="_dd0og_ffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_dd0ohPffEd-Ui7vEO4yc0g" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_dd0ohfffEd-Ui7vEO4yc0g" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_dd0ohvffEd-Ui7vEO4yc0g" source="redefines" references="_dd0okfffEd-Ui7vEO4yc0g"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dd0oiPffEd-Ui7vEO4yc0g" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0oivffEd-Ui7vEO4yc0g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0ojPffEd-Ui7vEO4yc0g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dd0oj_ffEd-Ui7vEO4yc0g" name="JavaNamedElement">
+          <eAnnotations xmi:id="_dd0okPffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0okfffEd-Ui7vEO4yc0g" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0ok_ffEd-Ui7vEO4yc0g" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0olfffEd-Ui7vEO4yc0g" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0ol_ffEd-Ui7vEO4yc0g" name="isGenerated" ordered="false" unique="false" lowerBound="1" defaultValueLiteral="true">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dd0omfffEd-Ui7vEO4yc0g" name="JavaPackage" eSuperTypes="_dd0oj_ffEd-Ui7vEO4yc0g">
+          <eAnnotations xmi:id="_dd0omvffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0om_ffEd-Ui7vEO4yc0g" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dd0onfffEd-Ui7vEO4yc0g" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dd0ooPffEd-Ui7vEO4yc0g" name="JavaMethod" eSuperTypes="_dd0oj_ffEd-Ui7vEO4yc0g">
+          <eAnnotations xmi:id="_dd0oofffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0oovffEd-Ui7vEO4yc0g" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0opPffEd-Ui7vEO4yc0g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0opvffEd-Ui7vEO4yc0g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0oqPffEd-Ui7vEO4yc0g" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0oqvffEd-Ui7vEO4yc0g" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0orPffEd-Ui7vEO4yc0g" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dd0orvffEd-Ui7vEO4yc0g" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dd0osfffEd-Ui7vEO4yc0g" name="JavaParameter" eSuperTypes="_dd0oj_ffEd-Ui7vEO4yc0g">
+          <eAnnotations xmi:id="_dd0osvffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0os_ffEd-Ui7vEO4yc0g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dd0otfffEd-Ui7vEO4yc0g" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dd0ouPffEd-Ui7vEO4yc0g" name="JavaProperty" eSuperTypes="_dd0oj_ffEd-Ui7vEO4yc0g">
+          <eAnnotations xmi:id="_dd0oufffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0ouvffEd-Ui7vEO4yc0g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0ovPffEd-Ui7vEO4yc0g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dd0ovvffEd-Ui7vEO4yc0g" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0owPffEd-Ui7vEO4yc0g" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_dd0ow_ffEd-Ui7vEO4yc0g" name="PrimitiveType" eSuperTypes="_dd0oj_ffEd-Ui7vEO4yc0g">
+          <eAnnotations xmi:id="_dd0oxPffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_dd0oxfffEd-Ui7vEO4yc0g" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_dd0ox_ffEd-Ui7vEO4yc0g" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_F-JSAfffEd-Ui7vEO4yc0g" name="java" nsURI="http:///schemas/java/_F-JSAPffEd-Ui7vEO4yc0g/5" nsPrefix="java">
+        <eAnnotations xmi:id="_F-TDAvffEd-Ui7vEO4yc0g" source="PapyrusVersion">
+          <details xmi:id="_F-TDA_ffEd-Ui7vEO4yc0g" key="Version" value="0.0.6"/>
+          <details xmi:id="_F-TDBPffEd-Ui7vEO4yc0g" key="Comment" value=""/>
+          <details xmi:id="_F-TDBfffEd-Ui7vEO4yc0g" key="Copyright" value=""/>
+          <details xmi:id="_F-TDBvffEd-Ui7vEO4yc0g" key="Date" value="2010-11-24"/>
+          <details xmi:id="_F-TDB_ffEd-Ui7vEO4yc0g" key="Author" value=""/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_F-JSAvffEd-Ui7vEO4yc0g" name="JavaClass" eSuperTypes="_F-JSD_ffEd-Ui7vEO4yc0g">
+          <eAnnotations xmi:id="_F-JSA_ffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_F-JSBPffEd-Ui7vEO4yc0g" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_F-JSBfffEd-Ui7vEO4yc0g" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_F-JSBvffEd-Ui7vEO4yc0g" source="redefines" references="_F-JSEfffEd-Ui7vEO4yc0g"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_F-JSCPffEd-Ui7vEO4yc0g" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSCvffEd-Ui7vEO4yc0g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSDPffEd-Ui7vEO4yc0g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_F-JSD_ffEd-Ui7vEO4yc0g" name="JavaNamedElement">
+          <eAnnotations xmi:id="_F-JSEPffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSEfffEd-Ui7vEO4yc0g" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSE_ffEd-Ui7vEO4yc0g" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSFfffEd-Ui7vEO4yc0g" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSF_ffEd-Ui7vEO4yc0g" name="isGenerated" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_F-JSGfffEd-Ui7vEO4yc0g" name="JavaPackage" eSuperTypes="_F-JSD_ffEd-Ui7vEO4yc0g">
+          <eAnnotations xmi:id="_F-JSGvffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSG_ffEd-Ui7vEO4yc0g" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_F-JSHfffEd-Ui7vEO4yc0g" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_F-JSIPffEd-Ui7vEO4yc0g" name="JavaMethod" eSuperTypes="_F-JSD_ffEd-Ui7vEO4yc0g">
+          <eAnnotations xmi:id="_F-JSIfffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSIvffEd-Ui7vEO4yc0g" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSJPffEd-Ui7vEO4yc0g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSJvffEd-Ui7vEO4yc0g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSKPffEd-Ui7vEO4yc0g" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSKvffEd-Ui7vEO4yc0g" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSLPffEd-Ui7vEO4yc0g" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_F-JSLvffEd-Ui7vEO4yc0g" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_F-JSMfffEd-Ui7vEO4yc0g" name="JavaParameter" eSuperTypes="_F-JSD_ffEd-Ui7vEO4yc0g">
+          <eAnnotations xmi:id="_F-JSMvffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSM_ffEd-Ui7vEO4yc0g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_F-JSNfffEd-Ui7vEO4yc0g" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_F-JSOPffEd-Ui7vEO4yc0g" name="JavaProperty" eSuperTypes="_F-JSD_ffEd-Ui7vEO4yc0g">
+          <eAnnotations xmi:id="_F-JSOfffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSOvffEd-Ui7vEO4yc0g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSPPffEd-Ui7vEO4yc0g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_F-JSPvffEd-Ui7vEO4yc0g" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSQPffEd-Ui7vEO4yc0g" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_F-JSQ_ffEd-Ui7vEO4yc0g" name="PrimitiveType" eSuperTypes="_F-JSD_ffEd-Ui7vEO4yc0g">
+          <eAnnotations xmi:id="_F-JSRPffEd-Ui7vEO4yc0g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_F-JSRfffEd-Ui7vEO4yc0g" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_F-JSR_ffEd-Ui7vEO4yc0g" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_Yd680ffbEd-PNYpgO1g6_g" name="java" nsURI="http:///schemas/java/_Yd680PfbEd-PNYpgO1g6_g/4" nsPrefix="java">
+        <eAnnotations xmi:id="_YeEGwvfbEd-PNYpgO1g6_g" source="PapyrusVersion">
+          <details xmi:id="_YeEGw_fbEd-PNYpgO1g6_g" key="Version" value="0.0.5"/>
+          <details xmi:id="_YeEGxPfbEd-PNYpgO1g6_g" key="Comment" value=""/>
+          <details xmi:id="_YeEGxffbEd-PNYpgO1g6_g" key="Copyright" value=""/>
+          <details xmi:id="_YeEGxvfbEd-PNYpgO1g6_g" key="Date" value="2010-11-24"/>
+          <details xmi:id="_YeEGx_fbEd-PNYpgO1g6_g" key="Author" value="cdm"/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_Yd680vfbEd-PNYpgO1g6_g" name="JavaClass" eSuperTypes="_Yd683_fbEd-PNYpgO1g6_g">
+          <eAnnotations xmi:id="_Yd680_fbEd-PNYpgO1g6_g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_Yd681PfbEd-PNYpgO1g6_g" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_Yd681ffbEd-PNYpgO1g6_g" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_Yd681vfbEd-PNYpgO1g6_g" source="redefines" references="_Yd684ffbEd-PNYpgO1g6_g"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Yd682PfbEd-PNYpgO1g6_g" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd682vfbEd-PNYpgO1g6_g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd683PfbEd-PNYpgO1g6_g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_Yd683_fbEd-PNYpgO1g6_g" name="JavaNamedElement">
+          <eAnnotations xmi:id="_Yd684PfbEd-PNYpgO1g6_g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd684ffbEd-PNYpgO1g6_g" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd684_fbEd-PNYpgO1g6_g" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd685ffbEd-PNYpgO1g6_g" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_Yd685_fbEd-PNYpgO1g6_g" name="JavaPackage" eSuperTypes="_Yd683_fbEd-PNYpgO1g6_g">
+          <eAnnotations xmi:id="_Yd686PfbEd-PNYpgO1g6_g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd686ffbEd-PNYpgO1g6_g" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Yd686_fbEd-PNYpgO1g6_g" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_Yd687vfbEd-PNYpgO1g6_g" name="JavaMethod" eSuperTypes="_Yd683_fbEd-PNYpgO1g6_g">
+          <eAnnotations xmi:id="_Yd687_fbEd-PNYpgO1g6_g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd688PfbEd-PNYpgO1g6_g" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd688vfbEd-PNYpgO1g6_g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd689PfbEd-PNYpgO1g6_g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd689vfbEd-PNYpgO1g6_g" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd68-PfbEd-PNYpgO1g6_g" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd68-vfbEd-PNYpgO1g6_g" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Yd68_PfbEd-PNYpgO1g6_g" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_Yd68__fbEd-PNYpgO1g6_g" name="JavaParameter" eSuperTypes="_Yd683_fbEd-PNYpgO1g6_g">
+          <eAnnotations xmi:id="_Yd69APfbEd-PNYpgO1g6_g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd69AffbEd-PNYpgO1g6_g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Yd69A_fbEd-PNYpgO1g6_g" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_Yd69BvfbEd-PNYpgO1g6_g" name="JavaProperty" eSuperTypes="_Yd683_fbEd-PNYpgO1g6_g">
+          <eAnnotations xmi:id="_Yd69B_fbEd-PNYpgO1g6_g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd69CPfbEd-PNYpgO1g6_g" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd69CvfbEd-PNYpgO1g6_g" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Yd69DPfbEd-PNYpgO1g6_g" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd69DvfbEd-PNYpgO1g6_g" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_Yd69EffbEd-PNYpgO1g6_g" name="PrimitiveType" eSuperTypes="_Yd683_fbEd-PNYpgO1g6_g">
+          <eAnnotations xmi:id="_Yd69EvfbEd-PNYpgO1g6_g" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_Yd69E_fbEd-PNYpgO1g6_g" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_Yd69FffbEd-PNYpgO1g6_g" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_-W-h4d2SEd6P1qtlpBOZyg" name="java" nsURI="http:///schemas/java/_-W-h4N2SEd6P1qtlpBOZyg/3" nsPrefix="java">
+        <eAnnotations xmi:id="_-W-iLt2SEd6P1qtlpBOZyg" source="PapyrusVersion">
+          <details xmi:id="_-W-iL92SEd6P1qtlpBOZyg" key="Version" value="0.0.4"/>
+          <details xmi:id="_-W-iMN2SEd6P1qtlpBOZyg" key="Comment" value=""/>
+          <details xmi:id="_-W-iMd2SEd6P1qtlpBOZyg" key="Copyright" value=""/>
+          <details xmi:id="_-W-iMt2SEd6P1qtlpBOZyg" key="Date" value="2009-11-30"/>
+          <details xmi:id="_-W-iM92SEd6P1qtlpBOZyg" key="Author" value="dumoulin"/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-W-h4t2SEd6P1qtlpBOZyg" name="JavaClass" eSuperTypes="_-W-h792SEd6P1qtlpBOZyg">
+          <eAnnotations xmi:id="_-W-h492SEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_-W-h5N2SEd6P1qtlpBOZyg" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_-W-h5d2SEd6P1qtlpBOZyg" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_-W-h5t2SEd6P1qtlpBOZyg" source="redefines" references="_-W-h8d2SEd6P1qtlpBOZyg"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-W-h6N2SEd6P1qtlpBOZyg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-h6t2SEd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-h7N2SEd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-W-h792SEd6P1qtlpBOZyg" name="JavaNamedElement">
+          <eAnnotations xmi:id="_-W-h8N2SEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-h8d2SEd6P1qtlpBOZyg" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-h892SEd6P1qtlpBOZyg" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-h9d2SEd6P1qtlpBOZyg" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-W-h992SEd6P1qtlpBOZyg" name="JavaPackage" eSuperTypes="_-W-h792SEd6P1qtlpBOZyg">
+          <eAnnotations xmi:id="_-W-h-N2SEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-h-d2SEd6P1qtlpBOZyg" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-W-h-92SEd6P1qtlpBOZyg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-W-h_t2SEd6P1qtlpBOZyg" name="JavaMethod" eSuperTypes="_-W-h792SEd6P1qtlpBOZyg">
+          <eAnnotations xmi:id="_-W-h_92SEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iAN2SEd6P1qtlpBOZyg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iAt2SEd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iBN2SEd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iBt2SEd6P1qtlpBOZyg" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iCN2SEd6P1qtlpBOZyg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iCt2SEd6P1qtlpBOZyg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-W-iDN2SEd6P1qtlpBOZyg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-W-iD92SEd6P1qtlpBOZyg" name="JavaParameter" eSuperTypes="_-W-h792SEd6P1qtlpBOZyg">
+          <eAnnotations xmi:id="_-W-iEN2SEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iEd2SEd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-W-iE92SEd6P1qtlpBOZyg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-W-iFt2SEd6P1qtlpBOZyg" name="JavaProperty" eSuperTypes="_-W-h792SEd6P1qtlpBOZyg">
+          <eAnnotations xmi:id="_-W-iF92SEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iGN2SEd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iGt2SEd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-W-iHN2SEd6P1qtlpBOZyg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iHt2SEd6P1qtlpBOZyg" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_-W-iId2SEd6P1qtlpBOZyg" name="PrimitiveType" eSuperTypes="_-W-h792SEd6P1qtlpBOZyg">
+          <eAnnotations xmi:id="_-W-iIt2SEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_q2aFQN2SEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_-W-iI92SEd6P1qtlpBOZyg" name="implementationClass" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_-W-iJd2SEd6P1qtlpBOZyg" name="base_PrimitiveType" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//PrimitiveType"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_vj0sEd2REd6P1qtlpBOZyg" name="java" nsURI="http:///schemas/java/_vj0sEN2REd6P1qtlpBOZyg/2" nsPrefix="java">
+        <eAnnotations xmi:id="_vj0sVt2REd6P1qtlpBOZyg" source="PapyrusVersion">
+          <details xmi:id="_vj0sV92REd6P1qtlpBOZyg" key="Version" value="0.0.3"/>
+          <details xmi:id="_vj0sWN2REd6P1qtlpBOZyg" key="Comment" value=""/>
+          <details xmi:id="_vj0sWd2REd6P1qtlpBOZyg" key="Copyright" value=""/>
+          <details xmi:id="_vj0sWt2REd6P1qtlpBOZyg" key="Date" value="2009-11-30"/>
+          <details xmi:id="_vj0sW92REd6P1qtlpBOZyg" key="Author" value="dumoulin"/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_vj0sEt2REd6P1qtlpBOZyg" name="JavaClass" eSuperTypes="_vj0sH92REd6P1qtlpBOZyg">
+          <eAnnotations xmi:id="_vj0sE92REd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_vj0sFN2REd6P1qtlpBOZyg" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_vj0sFd2REd6P1qtlpBOZyg" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_vj0sFt2REd6P1qtlpBOZyg" source="redefines" references="_vj0sId2REd6P1qtlpBOZyg"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vj0sGN2REd6P1qtlpBOZyg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sGt2REd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sHN2REd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_vj0sH92REd6P1qtlpBOZyg" name="JavaNamedElement">
+          <eAnnotations xmi:id="_vj0sIN2REd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sId2REd6P1qtlpBOZyg" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sI92REd6P1qtlpBOZyg" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sJd2REd6P1qtlpBOZyg" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_vj0sJ92REd6P1qtlpBOZyg" name="JavaPackage" eSuperTypes="_vj0sH92REd6P1qtlpBOZyg">
+          <eAnnotations xmi:id="_vj0sKN2REd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sKd2REd6P1qtlpBOZyg" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vj0sK92REd6P1qtlpBOZyg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_vj0sLt2REd6P1qtlpBOZyg" name="JavaMethod" eSuperTypes="_vj0sH92REd6P1qtlpBOZyg">
+          <eAnnotations xmi:id="_vj0sL92REd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sMN2REd6P1qtlpBOZyg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sMt2REd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sNN2REd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sNt2REd6P1qtlpBOZyg" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sON2REd6P1qtlpBOZyg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sOt2REd6P1qtlpBOZyg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vj0sPN2REd6P1qtlpBOZyg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_vj0sP92REd6P1qtlpBOZyg" name="JavaParameter" eSuperTypes="_vj0sH92REd6P1qtlpBOZyg">
+          <eAnnotations xmi:id="_vj0sQN2REd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sQd2REd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vj0sQ92REd6P1qtlpBOZyg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_vj0sRt2REd6P1qtlpBOZyg" name="JavaProperty" eSuperTypes="_vj0sH92REd6P1qtlpBOZyg">
+          <eAnnotations xmi:id="_vj0sR92REd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sSN2REd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sSt2REd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_vj0sTN2REd6P1qtlpBOZyg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_vj0sTt2REd6P1qtlpBOZyg" name="isTransient" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_aiHwsN2NEd6P1qtlpBOZyg" name="java" nsURI="http:///schemas/java/_ah-mwN2NEd6P1qtlpBOZyg/1" nsPrefix="java">
+        <eAnnotations xmi:id="_aiHw892NEd6P1qtlpBOZyg" source="PapyrusVersion">
+          <details xmi:id="_aiHw9N2NEd6P1qtlpBOZyg" key="Version" value="0.0.2"/>
+          <details xmi:id="_aiHw9d2NEd6P1qtlpBOZyg" key="Comment" value=""/>
+          <details xmi:id="_aiHw9t2NEd6P1qtlpBOZyg" key="Copyright" value=""/>
+          <details xmi:id="_aiHw992NEd6P1qtlpBOZyg" key="Date" value="2009-11-30"/>
+          <details xmi:id="_aiHw-N2NEd6P1qtlpBOZyg" key="Author" value="dumoulin"/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_aiHwsd2NEd6P1qtlpBOZyg" name="JavaClass" eSuperTypes="_aiHwvt2NEd6P1qtlpBOZyg">
+          <eAnnotations xmi:id="_aiHwst2NEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eAnnotations xmi:id="_aiHws92NEd6P1qtlpBOZyg" source="duplicates">
+            <contents xmi:type="ecore:EAttribute" xmi:id="_aiHwtN2NEd6P1qtlpBOZyg" name="name" ordered="false" unique="false" lowerBound="1">
+              <eAnnotations xmi:id="_aiHwtd2NEd6P1qtlpBOZyg" source="redefines" references="_aiHwwN2NEd6P1qtlpBOZyg"/>
+              <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+            </contents>
+          </eAnnotations>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aiHwt92NEd6P1qtlpBOZyg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHwud2NEd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHwu92NEd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_aiHwvt2NEd6P1qtlpBOZyg" name="JavaNamedElement">
+          <eAnnotations xmi:id="_aiHwv92NEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_eGOmEN2MEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHwwN2NEd6P1qtlpBOZyg" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHwwt2NEd6P1qtlpBOZyg" name="author" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHwxN2NEd6P1qtlpBOZyg" name="version" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_aiHwxt2NEd6P1qtlpBOZyg" name="JavaPackage" eSuperTypes="_aiHwvt2NEd6P1qtlpBOZyg">
+          <eAnnotations xmi:id="_aiHwx92NEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHwyN2NEd6P1qtlpBOZyg" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aiHwyt2NEd6P1qtlpBOZyg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_aiHwzd2NEd6P1qtlpBOZyg" name="JavaMethod" eSuperTypes="_aiHwvt2NEd6P1qtlpBOZyg">
+          <eAnnotations xmi:id="_aiHwzt2NEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_TWN1kN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHwz92NEd6P1qtlpBOZyg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHw0d2NEd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHw092NEd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHw1d2NEd6P1qtlpBOZyg" name="isNative" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHw192NEd6P1qtlpBOZyg" name="isSynchronized" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHw2d2NEd6P1qtlpBOZyg" name="isConstructor" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aiHw292NEd6P1qtlpBOZyg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_aiHw3t2NEd6P1qtlpBOZyg" name="JavaParameter" eSuperTypes="_aiHwvt2NEd6P1qtlpBOZyg">
+          <eAnnotations xmi:id="_aiHw392NEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_03FkMN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHw4N2NEd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aiHw4t2NEd6P1qtlpBOZyg" name="base_Parameter" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Parameter"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_aiHw5d2NEd6P1qtlpBOZyg" name="JavaProperty" eSuperTypes="_aiHwvt2NEd6P1qtlpBOZyg">
+          <eAnnotations xmi:id="_aiHw5t2NEd6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_8_lVUN2LEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHw592NEd6P1qtlpBOZyg" name="isAbstract" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_aiHw6d2NEd6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_aiHw692NEd6P1qtlpBOZyg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_M0NMoN00Ed6P1qtlpBOZyg" name="java" nsURI="http:///schemas/java/_My3I0N00Ed6P1qtlpBOZyg/0" nsPrefix="java">
+        <eAnnotations xmi:id="_M0WWlN00Ed6P1qtlpBOZyg" source="PapyrusVersion">
+          <details xmi:id="_M0WWld00Ed6P1qtlpBOZyg" key="Version" value="0.0.1"/>
+          <details xmi:id="_M0WWlt00Ed6P1qtlpBOZyg" key="Comment" value=""/>
+          <details xmi:id="_M0WWl900Ed6P1qtlpBOZyg" key="Copyright" value=""/>
+          <details xmi:id="_M0WWmN00Ed6P1qtlpBOZyg" key="Date" value="2009-11-29"/>
+          <details xmi:id="_M0WWmd00Ed6P1qtlpBOZyg" key="Author" value="dumoulin"/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_M0NMod00Ed6P1qtlpBOZyg" name="JavaQualifiers">
+          <eAnnotations xmi:id="_M0NMot00Ed6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_M0NMo900Ed6P1qtlpBOZyg" name="base_Operation" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Operation"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_M0NMpd00Ed6P1qtlpBOZyg" name="base_Property" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_M0NMp900Ed6P1qtlpBOZyg" name="isStatic" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_M0NMqd00Ed6P1qtlpBOZyg" name="isFinal" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_M0NMq900Ed6P1qtlpBOZyg" name="JavaClass">
+          <eAnnotations xmi:id="_M0NMrN00Ed6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_zW6S4N0zEd6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_M0NMrd00Ed6P1qtlpBOZyg" name="name" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_M0NMr900Ed6P1qtlpBOZyg" name="base_Classifier" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Classifier"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_M0NMsd00Ed6P1qtlpBOZyg" name="JavaPackage">
+          <eAnnotations xmi:id="_M0NMst00Ed6P1qtlpBOZyg" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_DPxB8N00Ed6P1qtlpBOZyg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_M0NMs900Ed6P1qtlpBOZyg" name="packageName" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_M0NMtd00Ed6P1qtlpBOZyg" name="base_Package" ordered="false" unique="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/3.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+    </eAnnotations>
+    <elementImport xmi:id="_ayF5QN0zEd6P1qtlpBOZyg" alias="Class">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+    </elementImport>
+    <elementImport xmi:id="_a2aYkN0zEd6P1qtlpBOZyg" alias="Property">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+    </elementImport>
+    <elementImport xmi:id="_a4NIUN0zEd6P1qtlpBOZyg" alias="Classifier">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+    </elementImport>
+    <elementImport xmi:id="_a5PqIN0zEd6P1qtlpBOZyg" alias="Operation">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+    </elementImport>
+    <elementImport xmi:id="_a6b88N0zEd6P1qtlpBOZyg" alias="Interface">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+    </elementImport>
+    <elementImport xmi:id="_a77KsN0zEd6P1qtlpBOZyg" alias="Enumeration">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Enumeration"/>
+    </elementImport>
+    <elementImport xmi:id="_a80ikN0zEd6P1qtlpBOZyg" alias="Association">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
+    </elementImport>
+    <elementImport xmi:id="_Bdek8N00Ed6P1qtlpBOZyg" alias="Package">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+    </elementImport>
+    <elementImport xmi:id="_CiHUUN2NEd6P1qtlpBOZyg" alias="Parameter">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+    </elementImport>
+    <elementImport xmi:id="_4wmIMN2SEd6P1qtlpBOZyg" alias="PrimitiveType">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
+    </elementImport>
+    <packageImport xmi:id="_6TYLMd0yEd6P1qtlpBOZyg">
+      <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+    </packageImport>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_zW6S4N0zEd6P1qtlpBOZyg" name="JavaClass">
+      <generalization xmi:id="_q6PrIN2MEd6P1qtlpBOZyg" general="_4QcEsGXjEeCHc7Sujzc1_A"/>
+      <generalization xmi:id="_zstlYGXkEeCx-IU0sjGPKA" general="_4QcEsGXjEeCHc7Sujzc1_A"/>
+      <ownedAttribute xmi:id="_1YjagN0zEd6P1qtlpBOZyg" name="name" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3Cyuwd0zEd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3CyuwN0zEd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_3C8fwN0zEd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_4C3rsd0zEd6P1qtlpBOZyg" name="base_Classifier" isUnique="false" association="_3_5QMN0zEd6P1qtlpBOZyg">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_GlqewN2MEd6P1qtlpBOZyg" name="isFinal" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Glqewd2MEd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Glqewt2MEd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Glqew92MEd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_GlqexN2MEd6P1qtlpBOZyg" name="isAbstract" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Glqexd2MEd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Glqext2MEd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_Glqex92MEd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_O_wT8GnDEeCLCLVVSfvYsw" name="isStatic" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_O_wT8WnDEeCLCLVVSfvYsw" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_O_wT8mnDEeCLCLVVSfvYsw" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_O_wT82nDEeCLCLVVSfvYsw">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_YAcWgIADEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YAcWgYADEeGqdId9TXdXhQ" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YAcWgoADEeGqdId9TXdXhQ"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_YAcWg4ADEeGqdId9TXdXhQ">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_uZElYIADEeGqdId9TXdXhQ" name="explicitRequiredImports" association="_uZHBoIADEeGqdId9TXdXhQ">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uZElYYADEeGqdId9TXdXhQ" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uZElYoADEeGqdId9TXdXhQ"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_3_5QMN0zEd6P1qtlpBOZyg" name="Extension_NamedElement" memberEnd="_4C3rsN0zEd6P1qtlpBOZyg _4C3rsd0zEd6P1qtlpBOZyg">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_4C3rsN0zEd6P1qtlpBOZyg" name="extension_NamedElement" type="_zW6S4N0zEd6P1qtlpBOZyg" aggregation="composite" association="_3_5QMN0zEd6P1qtlpBOZyg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_DPxB8N00Ed6P1qtlpBOZyg" name="JavaPackage_">
+      <generalization xmi:id="_t2JbkN2MEd6P1qtlpBOZyg" general="_4QcEsGXjEeCHc7Sujzc1_A"/>
+      <ownedAttribute xmi:id="_Hb_KwN00Ed6P1qtlpBOZyg" name="packageName" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JL5CIN00Ed6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JLv4MN00Ed6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_JMCzIN00Ed6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_KOMzsN00Ed6P1qtlpBOZyg" name="base_Package" isUnique="false" association="_KM3W8N00Ed6P1qtlpBOZyg">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_KM3W8N00Ed6P1qtlpBOZyg" name="E_JavaPackage__Package0" memberEnd="_KODpwN00Ed6P1qtlpBOZyg _KOMzsN00Ed6P1qtlpBOZyg">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_KODpwN00Ed6P1qtlpBOZyg" name="extension_JavaPackage_" type="_DPxB8N00Ed6P1qtlpBOZyg" aggregation="composite" association="_KM3W8N00Ed6P1qtlpBOZyg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_TWN1kN2LEd6P1qtlpBOZyg" name="JavaMethod">
+      <generalization xmi:id="_tWjVgN2MEd6P1qtlpBOZyg" general="_eGOmEN2MEd6P1qtlpBOZyg"/>
+      <ownedAttribute xmi:id="_XaPEoN2LEd6P1qtlpBOZyg" name="isStatic" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XaPEod2LEd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XaPEot2LEd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_XaPEo92LEd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_XbSNgN2LEd6P1qtlpBOZyg" name="isFinal" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XbSNgd2LEd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XbSNgt2LEd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_XbSNg92LEd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_c7P2IN2LEd6P1qtlpBOZyg" name="isAbstract" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c7P2Id2LEd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c7P2It2LEd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_c7P2I92LEd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_c7P2JN2LEd6P1qtlpBOZyg" name="isNative" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_c7P2Jd2LEd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c7P2Jt2LEd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_c7P2J92LEd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_d-mJgN2LEd6P1qtlpBOZyg" name="isSynchronized" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_d-mJgd2LEd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_d-mJgt2LEd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_d-mJg92LEd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_d-mJhN2LEd6P1qtlpBOZyg" name="isConstructor" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_d-mJhd2LEd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_d-mJht2LEd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_d-mJh92LEd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_9mgV8N2MEd6P1qtlpBOZyg" name="base_Operation" isUnique="false" association="_9iVnoN2MEd6P1qtlpBOZyg">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_RTklIIAfEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RTklIYAfEeGqdId9TXdXhQ" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RTklIoAfEeGqdId9TXdXhQ"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_RTklI4AfEeGqdId9TXdXhQ">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_XjBzIIDyEeGqdId9TXdXhQ" name="explicitRequiredImports" association="_XjHSsIDyEeGqdId9TXdXhQ">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XjBzIYDyEeGqdId9TXdXhQ" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XjBzIoDyEeGqdId9TXdXhQ"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_03FkMN2LEd6P1qtlpBOZyg" name="JavaParameter">
+      <generalization xmi:id="_rvlXsN2MEd6P1qtlpBOZyg" general="_eGOmEN2MEd6P1qtlpBOZyg"/>
+      <ownedAttribute xmi:id="_3dFWEN2LEd6P1qtlpBOZyg" name="isFinal" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3dFWEd2LEd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3dFWEt2LEd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_3dFWE92LEd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_GPC5Ed2NEd6P1qtlpBOZyg" name="base_Parameter" isUnique="false" association="_GLUPoN2NEd6P1qtlpBOZyg">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_8_lVUN2LEd6P1qtlpBOZyg" name="JavaProperty">
+      <generalization xmi:id="_snKf8N2MEd6P1qtlpBOZyg" general="_eGOmEN2MEd6P1qtlpBOZyg"/>
+      <ownedAttribute xmi:id="_BHVN0N2MEd6P1qtlpBOZyg" name="isAbstract" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BHVN0d2MEd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BHVN0t2MEd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_BHVN092MEd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BHVN1N2MEd6P1qtlpBOZyg" name="isFinal" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BHVN1d2MEd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BHVN1t2MEd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_BHVN192MEd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_-5XE8d2MEd6P1qtlpBOZyg" name="base_Property" isUnique="false" association="_-3uGMN2MEd6P1qtlpBOZyg">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_ru_vkN2REd6P1qtlpBOZyg" name="isTransient" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tmD-4d2REd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tmD-4N2REd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_tmNI0N2REd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_Gf5psIXFEeCQsIB6sI2lFg" name="generateGetter" visibility="public" type="_xwb7kIXFEeCQsIB6sI2lFg">
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_H_HZsIXFEeCQsIB6sI2lFg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_H--PwIXFEeCQsIB6sI2lFg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_lvp_YIXHEeCQsIB6sI2lFg" value="default"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_IoLk0IXFEeCQsIB6sI2lFg" name="generateSetter" visibility="public" type="_xwb7kIXFEeCQsIB6sI2lFg">
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LPQUwIXFEeCQsIB6sI2lFg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LPGjwIXFEeCQsIB6sI2lFg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_LPjPsIXFEeCQsIB6sI2lFg" value="default"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_DCg1cIXIEeCQsIB6sI2lFg" name="isStatic" visibility="public">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FQ4xgYXIEeCQsIB6sI2lFg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FQ4xgIXIEeCQsIB6sI2lFg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_FQ4xgoXIEeCQsIB6sI2lFg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_BGcqgIAEEeGqdId9TXdXhQ" name="explicitPlainTextRequiredImports" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BGcqgYAEEeGqdId9TXdXhQ" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BGcqgoAEEeGqdId9TXdXhQ"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_BGcqg4AEEeGqdId9TXdXhQ">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_bvi24IDyEeGqdId9TXdXhQ" name="explicitRequiredImports" association="_bvnIUIDyEeGqdId9TXdXhQ">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bvi24YDyEeGqdId9TXdXhQ" value="*"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bvi24oDyEeGqdId9TXdXhQ"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_eGOmEN2MEd6P1qtlpBOZyg" name="JavaNamedElement" isAbstract="true">
+      <ownedAttribute xmi:id="_gi_jcN2MEd6P1qtlpBOZyg" name="name" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iiPeYN2MEd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iiGUcN2MEd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_iiPeYd2MEd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_iuBQkN2MEd6P1qtlpBOZyg" name="author" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8ZvQd2MEd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8ZvQN2MEd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_j8i5MN2MEd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_k58VkN2MEd6P1qtlpBOZyg" name="version" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mDQHAN2MEd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mDG9EN2MEd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_mDQHAd2MEd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_rOwKEPiVEd-PA5X9eH0eag" name="comment" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ylyCAfiVEd-PA5X9eH0eag" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ylyCAPiVEd-PA5X9eH0eag" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_yl7L8PiVEd-PA5X9eH0eag">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__JixsPfeEd-Ui7vEO4yc0g" name="isGenerated" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BsQmEPffEd-Ui7vEO4yc0g" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BsHcIPffEd-Ui7vEO4yc0g" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_BsQmEfffEd-Ui7vEO4yc0g" value="true"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_9iVnoN2MEd6P1qtlpBOZyg" name="Extension_JavaMethod" memberEnd="_9mWk8N2MEd6P1qtlpBOZyg _9mgV8N2MEd6P1qtlpBOZyg">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_9mWk8N2MEd6P1qtlpBOZyg" name="extension_JavaMethod" type="_TWN1kN2LEd6P1qtlpBOZyg" aggregation="composite" association="_9iVnoN2MEd6P1qtlpBOZyg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_-3uGMN2MEd6P1qtlpBOZyg" name="Extension_JavaProperty" memberEnd="_-5XE8N2MEd6P1qtlpBOZyg _-5XE8d2MEd6P1qtlpBOZyg">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_-5XE8N2MEd6P1qtlpBOZyg" name="extension_JavaProperty" type="_8_lVUN2LEd6P1qtlpBOZyg" aggregation="composite" association="_-3uGMN2MEd6P1qtlpBOZyg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_GLUPoN2NEd6P1qtlpBOZyg" name="Extension_JavaParameter" memberEnd="_GPC5EN2NEd6P1qtlpBOZyg _GPC5Ed2NEd6P1qtlpBOZyg">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_GPC5EN2NEd6P1qtlpBOZyg" name="extension_JavaParameter" type="_03FkMN2LEd6P1qtlpBOZyg" aggregation="composite" association="_GLUPoN2NEd6P1qtlpBOZyg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_q2aFQN2SEd6P1qtlpBOZyg" name="PrimitiveType">
+      <generalization xmi:id="_05iXEN2SEd6P1qtlpBOZyg" general="_4QcEsGXjEeCHc7Sujzc1_A"/>
+      <ownedAttribute xmi:id="_tw0n8N2SEd6P1qtlpBOZyg" name="implementationClass" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vfr9gd2SEd6P1qtlpBOZyg" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vfr9gN2SEd6P1qtlpBOZyg" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_vf1HcN2SEd6P1qtlpBOZyg">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_9Dh9Ad2SEd6P1qtlpBOZyg" name="base_PrimitiveType" isUnique="false" association="_8_DssN2SEd6P1qtlpBOZyg">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="__K6mcHpnEeG6sMpxGcut-Q" name="collectionImplementationClass" visibility="public" isUnique="false">
+        <ownedComment xmi:id="_RBWcgHpoEeG6sMpxGcut-Q">
+          <body>The implementation class to use when this primitive type is encountered with a cardinality greater than 1.</body>
+        </ownedComment>
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__K7NgHpnEeG6sMpxGcut-Q" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__K7NgXpnEeG6sMpxGcut-Q" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="__K7NgnpnEeG6sMpxGcut-Q">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_8_DssN2SEd6P1qtlpBOZyg" name="Extension_PrimitiveType" memberEnd="_9Dh9AN2SEd6P1qtlpBOZyg _9Dh9Ad2SEd6P1qtlpBOZyg">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_9Dh9AN2SEd6P1qtlpBOZyg" name="extension_PrimitiveType" type="_q2aFQN2SEd6P1qtlpBOZyg" aggregation="composite" association="_8_DssN2SEd6P1qtlpBOZyg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_t-QqQGXjEeCHc7Sujzc1_A" name="JavaProject">
+      <generalization xmi:id="_0Rz2gGXkEeCx-IU0sjGPKA" general="_4QcEsGXjEeCHc7Sujzc1_A"/>
+      <ownedAttribute xmi:id="_g2wMAGXkEeCx-IU0sjGPKA" name="base_Package" association="_g2wMAWXkEeCx-IU0sjGPKA">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_10lGQGXjEeCHc7Sujzc1_A" name="JavaSrcFolder">
+      <generalization xmi:id="_0yceYGXkEeCx-IU0sjGPKA" general="_4QcEsGXjEeCHc7Sujzc1_A"/>
+      <ownedAttribute xmi:id="_haqxYGXkEeCx-IU0sjGPKA" name="base_Package" association="_haqxYWXkEeCx-IU0sjGPKA">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_4QcEsGXjEeCHc7Sujzc1_A" name="JavaGen" isAbstract="true">
+      <generalization xmi:id="_je1okGXkEeCx-IU0sjGPKA" general="_eGOmEN2MEd6P1qtlpBOZyg"/>
+      <ownedAttribute xmi:id="_7jn3QGXkEeCx-IU0sjGPKA" name="srcName" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-adhgGXkEeCx-IU0sjGPKA" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-aTwgGXkEeCx-IU0sjGPKA" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_-amrcGXkEeCx-IU0sjGPKA">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+      <ownedAttribute xmi:id="_--Xf0GXkEeCx-IU0sjGPKA" name="projectName" visibility="public" isUnique="false">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AdJK8WXlEeCx-IU0sjGPKA" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AdJK8GXlEeCx-IU0sjGPKA" value="1"/>
+        <defaultValue xmi:type="uml:LiteralString" xmi:id="_AdS78GXlEeCx-IU0sjGPKA">
+          <value xsi:nil="true"/>
+        </defaultValue>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_g2wMAWXkEeCx-IU0sjGPKA" name="E_JavaProject_Package0" memberEnd="_g2wMAmXkEeCx-IU0sjGPKA _g2wMAGXkEeCx-IU0sjGPKA">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_g2wMAmXkEeCx-IU0sjGPKA" name="extension_JavaProject" type="_t-QqQGXjEeCHc7Sujzc1_A" aggregation="composite" association="_g2wMAWXkEeCx-IU0sjGPKA"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_haqxYWXkEeCx-IU0sjGPKA" name="E_JavaSrcFolder_Package0" memberEnd="_haqxYmXkEeCx-IU0sjGPKA _haqxYGXkEeCx-IU0sjGPKA">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_haqxYmXkEeCx-IU0sjGPKA" name="extension_JavaSrcFolder" type="_10lGQGXjEeCHc7Sujzc1_A" aggregation="composite" association="_haqxYWXkEeCx-IU0sjGPKA"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_xwb7kIXFEeCQsIB6sI2lFg" name="TrueFalseDefault">
+      <ownedLiteral xmi:id="_29GNsIXFEeCQsIB6sI2lFg" name="true"/>
+      <ownedLiteral xmi:id="_4HMCQIXFEeCQsIB6sI2lFg" name="false"/>
+      <ownedLiteral xmi:id="_46qGkIXFEeCQsIB6sI2lFg" name="default"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_uZHBoIADEeGqdId9TXdXhQ" name="explicitRequiredImports" memberEnd="_uZHBoYADEeGqdId9TXdXhQ _uZElYIADEeGqdId9TXdXhQ">
+      <ownedEnd xmi:id="_uZHBoYADEeGqdId9TXdXhQ" name="javaClass" type="_zW6S4N0zEd6P1qtlpBOZyg" association="_uZHBoIADEeGqdId9TXdXhQ">
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uZHBooADEeGqdId9TXdXhQ" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uZHBo4ADEeGqdId9TXdXhQ" value="1"/>
+      </ownedEnd>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_XjHSsIDyEeGqdId9TXdXhQ" name="javaMethod_classifier_0" memberEnd="_XjHSsYDyEeGqdId9TXdXhQ _XjBzIIDyEeGqdId9TXdXhQ">
+      <ownedEnd xmi:id="_XjHSsYDyEeGqdId9TXdXhQ" name="javaMethod" type="_TWN1kN2LEd6P1qtlpBOZyg" association="_XjHSsIDyEeGqdId9TXdXhQ">
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XjHSsoDyEeGqdId9TXdXhQ" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XjHSs4DyEeGqdId9TXdXhQ" value="1"/>
+      </ownedEnd>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_bvnIUIDyEeGqdId9TXdXhQ" name="javaProperty_classifier_0" memberEnd="_bvnIUYDyEeGqdId9TXdXhQ _bvi24IDyEeGqdId9TXdXhQ">
+      <ownedEnd xmi:id="_bvnIUYDyEeGqdId9TXdXhQ" name="javaProperty" type="_8_lVUN2LEd6P1qtlpBOZyg" association="_bvnIUIDyEeGqdId9TXdXhQ">
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_bvnIUoDyEeGqdId9TXdXhQ" value="1"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bvnIU4DyEeGqdId9TXdXhQ" value="1"/>
+      </ownedEnd>
+    </packagedElement>
+    <profileApplication xmi:id="_EtJ8EL4gEeCEtsFsoh9ueQ">
+      <eAnnotations xmi:id="_EuUZsL4gEeCEtsFsoh9ueQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
+      </eAnnotations>
+      <appliedProfile href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+    </profileApplication>
+  </uml:Profile>
+  <Ecore:EPackage xmi:id="_NgjEUL4gEeCEtsFsoh9ueQ" base_Package="_6TYLMN0yEd6P1qtlpBOZyg" nsPrefix="java" nsURI="http://www.eclipse.org/papyrus/JAVA/1" basePackage="org.eclipse.java.profile"/>
+</xmi:XMI>
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/plugin.properties b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/plugin.properties
index 78d5559..285431e 100644
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/plugin.properties
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/plugin.properties
@@ -1,12 +1,16 @@
-###############################################################################
-# Copyright (c) 2013 CEA LIST.
-# All rights reserved. This program and the accompanying materials 
+
+#################################################################################
+# Copyright (c) 2011-2013 Cedric Dumoulin.
+#
+# All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
 # http://www.eclipse.org/legal/epl-v10.html
-# 
+#
 # Contributors:
-#     CEA LIST - initial API and implementation
-###############################################################################
-pluginName=Papyrus Designer Java profile (Incubation)
-providerName=Eclipse Modeling Project
+# 	Cedric Dumoulin  Cedric.dumoulin@lifl.fr - Initial API 
+#
+#################################################################################
+
+pluginName = Profile for Java classes generation (Incubation)
+providerName = Eclipse Modeling Project
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/plugin.xml b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/plugin.xml
index 10c59a3..2e232e6 100644
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/plugin.xml
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/plugin.xml
@@ -1,32 +1,50 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
 <plugin>
-	<extension
-			point="org.eclipse.emf.ecore.uri_mapping">
-		<mapping
-			source="pathmap://PapyrusJava_PROFILES/"
-			target="platform:/plugin/org.eclipse.papyrus.designer.languages.java.profile/profiles/"/>
-	</extension>
-  
-	<extension 
-			point="org.eclipse.uml2.uml.generated_package">
-		<profile
-			uri="http://www.eclipse.org/papyrus/PapyrusJava/1"
-			location="pathmap://PapyrusJava_PROFILES/PapyrusJava.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
-	</extension>
 
    <extension point="org.eclipse.emf.ecore.generated_package">
       <package
-            uri="http://www.eclipse.org/papyrus/PapyrusJava/1"
-            class="org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage"
-            genModel="profiles/PapyrusJava.genmodel"/>
+            uri="http://www.eclipse.org/papyrus/JAVA/1"
+            class="org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage"
+            genModel="models/java.profile.genmodel"/>
    </extension>
-   <extension point="org.eclipse.emf.ecore.generated_package">
-      <!-- @generated PapyrusJava -->
-      <package
-            uri="http://www.eclipse.org/papyrus/PapyrusJava/1"
-            class="org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage"
-            genModel="profiles/PapyrusJava.genmodel"/>
+
+   <extension point="org.eclipse.emf.ecore.extension_parser">
+      <parser
+            type="java"
+            class="org.eclipse.papyrus.designer.languages.java.profile.java.util.JavaResourceFactoryImpl"/>
+   </extension>
+   <extension
+         point="org.eclipse.emf.ecore.uri_mapping">
+      <mapping
+            source="pathmap://Papyrus_JAVA_PROFILES/"
+            target="platform:/plugin/org.eclipse.papyrus.designer.languages.java.profile/models/">
+      </mapping>
+   </extension>
+   <extension
+         point="org.eclipse.uml2.uml.generated_package">
+      <profile
+            location="pathmap://Papyrus_JAVA_PROFILES/java.profile.uml#_6TYLMN0yEd6P1qtlpBOZyg"
+            uri="http://www.eclipse.org/papyrus/JAVA/1">
+      </profile>
+   </extension>
+   <extension
+         point="org.eclipse.papyrus.uml.extensionpoints.UMLProfile">
+      <profile
+            description="Java profile for code generation and reverse (v1.0)"
+            iconpath="icons/javaprofile.gif"
+            name="Java"
+            path="pathmap://Papyrus_JAVA_PROFILES/java.profile.uml"
+            provider="Cedric Dumoulin">
+      </profile>
    </extension>
 
 </plugin>
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/profiles/PapyrusJava.ecore b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/profiles/PapyrusJava.ecore
deleted file mode 100644
index a059923..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/profiles/PapyrusJava.ecore
+++ /dev/null
@@ -1,108 +0,0 @@
-<?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="PapyrusJava" nsURI="http://www.eclipse.org/papyrus/PapyrusJava/1"
-    nsPrefix="PapyrusJava">
-  <eClassifiers xsi:type="ecore:EClass" name="Array">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_parameter" ordered="false"
-        unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="definition" ordered="false"
-        unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_property" ordered="false"
-        unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_association" ordered="false"
-        unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Association"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="External">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false"
-        eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Classifier" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ExternLibrary">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_package" ordered="false"
-        unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="importPaths" ordered="false"
-        unique="false" upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="libPaths" ordered="false"
-        upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="libs" ordered="false" upperBound="-1"
-        eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="imports" ordered="false"
-        upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Import">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="manualImports" ordered="false"
-        eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"
-        defaultValueLiteral=""/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_class" ordered="false"
-        unique="false" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Classifier" ordered="false"
-        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="NoCodeGen">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_element" ordered="false"
-        unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Element"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Template">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="declaration" ordered="false"
-        unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_class" ordered="false"
-        unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateBinding">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="binding" ordered="false"
-        unique="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_templatebinding" ordered="false"
-        unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//TemplateBinding"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TemplateParameter">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_templateparameter"
-        ordered="false" unique="false" lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//TemplateParameter"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ManualGeneration">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="extensionBody" ordered="false"
-        lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Variadic">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Parameter" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Volatile">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Transient">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Synchronized">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Operation" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Strictfp">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Operation" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Classifier" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Native">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Operation" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Default">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Operation" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Operation"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="StaticClassifier">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Classifier" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Final">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Parameter" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Parameter"/>
-  </eClassifiers>
-</ecore:EPackage>
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/profiles/PapyrusJava.genmodel b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/profiles/PapyrusJava.genmodel
deleted file mode 100644
index 3a5adee..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/profiles/PapyrusJava.genmodel
+++ /dev/null
@@ -1,128 +0,0 @@
-<?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.designer.languages.java.profile/src-gen"
-    modelPluginID="org.eclipse.papyrus.designer.languages.java.profile" modelName="PapyrusJava"
-    rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" importerID="org.eclipse.uml2.uml.ecore.importer"
-    complianceLevel="6.0" copyrightFields="false" usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
-    operationReflection="true" importOrganizing="true">
-  <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
-    <details key="OPPOSITE_ROLE_NAMES" value="IGNORE"/>
-    <details key="DUPLICATE_FEATURES" value="DISCARD"/>
-    <details key="ANNOTATION_DETAILS" value="PROCESS"/>
-    <details key="PROPERTY_DEFAULT_EXPRESSIONS" value="IGNORE"/>
-    <details key="DUPLICATE_FEATURE_INHERITANCE" value="DISCARD"/>
-    <details key="COMMENTS" value="PROCESS"/>
-    <details key="DERIVED_FEATURES" value="PROCESS"/>
-    <details key="SUPER_CLASS_ORDER" value="PROCESS"/>
-    <details key="DUPLICATE_OPERATION_INHERITANCE" value="DISCARD"/>
-    <details key="REDEFINING_OPERATIONS" value="REPORT"/>
-    <details key="INVARIANT_CONSTRAINTS" value="PROCESS"/>
-    <details key="UNION_PROPERTIES" value="REPORT"/>
-    <details key="DUPLICATE_OPERATIONS" value="DISCARD"/>
-    <details key="NON_API_INVARIANTS" value="IGNORE"/>
-    <details key="CAMEL_CASE_NAMES" value="IGNORE"/>
-    <details key="SUBSETTING_PROPERTIES" value="REPORT"/>
-    <details key="OPERATION_BODIES" value="IGNORE"/>
-    <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
-    <details key="UNTYPED_PROPERTIES" value="REPORT"/>
-    <details key="REDEFINING_PROPERTIES" value="REPORT"/>
-    <details key="INVOCATION_DELEGATES" value="IGNORE"/>
-    <details key="VALIDATION_DELEGATES" value="IGNORE"/>
-  </genAnnotations>
-  <foreignModel>PapyrusJava.profile.uml</foreignModel>
-  <genPackages xsi:type="genmodel:GenPackage" prefix="PapyrusJava" basePackage="org.eclipse.papyrus.designer.languages.java.profile"
-      disposableProviderFactory="true" ecorePackage="PapyrusJava.ecore#/">
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//Array">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//Array/base_parameter"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute PapyrusJava.ecore#//Array/definition"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//Array/base_property"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//Array/base_association"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//External">
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute PapyrusJava.ecore#//External/name"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//External/base_Classifier"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//ExternLibrary">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//ExternLibrary/base_package"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute PapyrusJava.ecore#//ExternLibrary/importPaths"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute PapyrusJava.ecore#//ExternLibrary/libPaths"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute PapyrusJava.ecore#//ExternLibrary/libs"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute PapyrusJava.ecore#//ExternLibrary/imports"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//Import">
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute PapyrusJava.ecore#//Import/manualImports"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//Import/base_class"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//Import/base_Classifier"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//NoCodeGen">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//NoCodeGen/base_element"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//Template">
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute PapyrusJava.ecore#//Template/declaration"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//Template/base_class"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//TemplateBinding">
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute PapyrusJava.ecore#//TemplateBinding/binding"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//TemplateBinding/base_templatebinding"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//TemplateParameter">
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute PapyrusJava.ecore#//TemplateParameter/name"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//TemplateParameter/base_templateparameter"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//ManualGeneration">
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute PapyrusJava.ecore#//ManualGeneration/extensionBody"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//ManualGeneration/base_Class"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//Variadic">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//Variadic/base_Parameter"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//Volatile">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//Volatile/base_Property"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//Transient">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//Transient/base_Property"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//Synchronized">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//Synchronized/base_Operation"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//Strictfp">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//Strictfp/base_Operation"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//Strictfp/base_Classifier"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//Native">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//Native/base_Operation"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//Default">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//Default/base_Operation"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//StaticClassifier">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//StaticClassifier/base_Classifier"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="PapyrusJava.ecore#//Final">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference PapyrusJava.ecore#//Final/base_Parameter"/>
-    </genClasses>
-  </genPackages>
-</genmodel:GenModel>
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/profiles/PapyrusJava.profile.di b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/profiles/PapyrusJava.profile.di
deleted file mode 100644
index bf9abab..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/profiles/PapyrusJava.profile.di
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/profiles/PapyrusJava.profile.notation b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/profiles/PapyrusJava.profile.notation
deleted file mode 100644
index 1713e8b..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/profiles/PapyrusJava.profile.notation
+++ /dev/null
@@ -1,1316 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
-  <notation:Diagram xmi:id="_cj6rMMoREeGKstsYRuxdvw" type="PapyrusUMLProfileDiagram" name="Modifiers" measurementUnit="Pixel">
-    <children xmi:type="notation:Shape" xmi:id="_f4faUMoREeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f4faUsoREeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f4faU8oREeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f4faVMoREeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f4gBYMoREeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f4gBYcoREeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f4gBYsoREeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_f4gBY8oREeGKstsYRuxdvw" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_fybLcFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_fybLcVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fybLclCbEeWdH-pLiDvc5A"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f4faUcoREeGKstsYRuxdvw" x="80" y="20" width="700" height="41"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_hBS1cMoREeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hBS1csoREeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hBS1c8oREeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hBTcgMoREeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hBTcgcoREeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hBTcgsoREeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hBTcg8oREeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_hBTchMoREeGKstsYRuxdvw" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_fzb4EFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_fzb4EVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fzb4ElCbEeWdH-pLiDvc5A"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hBS1ccoREeGKstsYRuxdvw" x="200" y="340" width="641" height="41"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_1ujusMoREeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1ujussoREeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1ujus8oREeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1ujutMoREeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1ujutcoREeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1ujutsoREeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1ukVwMoREeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_1ukVwcoREeGKstsYRuxdvw" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_f0EKMFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_f0EKMVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f0EKMlCbEeWdH-pLiDvc5A"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Dependency"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1ujuscoREeGKstsYRuxdvw" x="880" y="340" height="41"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_2QldsMoREeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2QldssoREeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2Qlds8oREeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2QldtMoREeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2QldtcoREeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2QldtsoREeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2QmEwMoREeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_2QmEwcoREeGKstsYRuxdvw" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_f0pZAFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_f0pZAVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f0pZAlCbEeWdH-pLiDvc5A"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2QldscoREeGKstsYRuxdvw" x="800" y="20" width="561" height="41"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_AFKQUMp5EeGa7fAyIn2eXA" type="1026" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AFN6sMp5EeGa7fAyIn2eXA" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AFN6scp5EeGa7fAyIn2eXA" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AFN6ssp5EeGa7fAyIn2eXA" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AFN6s8p5EeGa7fAyIn2eXA" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AFOhwMp5EeGa7fAyIn2eXA" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AFOhwcp5EeGa7fAyIn2eXA" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_AFOhwsp5EeGa7fAyIn2eXA" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_AFOhw8p5EeGa7fAyIn2eXA" type="1071">
-        <children xmi:type="notation:Shape" xmi:id="_my3T0I1TEeKTUILNxKtfZw" type="3002" fontName="Sans Serif" lineColor="0">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_okBIYI1TEeKTUILNxKtfZw" source="CustomAppearance_Annotation">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sH10cI1TEeKTUILNxKtfZw" key="CustomAppearance_MaskValue" value="28"/>
-          </eAnnotations>
-          <styles xmi:type="notation:StringListValueStyle" xmi:id="_EnXnYKYNEeSti6341zpcDg" name="maskLabel">
-            <stringListValue>name</stringListValue>
-            <stringListValue>derived</stringListValue>
-            <stringListValue>type</stringListValue>
-          </styles>
-          <element xmi:type="uml:Property" href="PapyrusJava.profile.uml#_a8S9oByHEduN1bTiWJ0lyw"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_my3T0Y1TEeKTUILNxKtfZw" x="49" y="17"/>
-        </children>
-        <styles xmi:type="notation:TitleStyle" xmi:id="_AFOhxMp5EeGa7fAyIn2eXA"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_AFOhxcp5EeGa7fAyIn2eXA"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_AFOhxsp5EeGa7fAyIn2eXA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AFOhx8p5EeGa7fAyIn2eXA"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_AFPI0Mp5EeGa7fAyIn2eXA" visible="false" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_AFPI0cp5EeGa7fAyIn2eXA"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_AFPI0sp5EeGa7fAyIn2eXA"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_AFPI08p5EeGa7fAyIn2eXA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AFPI1Mp5EeGa7fAyIn2eXA"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_WgwmcByHEduN1bTiWJ0lyw"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AFKQUcp5EeGa7fAyIn2eXA" x="80" y="174" width="181" height="81"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_AGCaEMp5EeGa7fAyIn2eXA" type="1031" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AGDBIMp5EeGa7fAyIn2eXA" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AGDoMMp5EeGa7fAyIn2eXA" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AGDoMcp5EeGa7fAyIn2eXA" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AGDoMsp5EeGa7fAyIn2eXA" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AGDoM8p5EeGa7fAyIn2eXA" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AGDoNMp5EeGa7fAyIn2eXA" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_AGDoNcp5EeGa7fAyIn2eXA" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_f1YY0FCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_f1YY0VCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f1YY0lCbEeWdH-pLiDvc5A"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AGCaEcp5EeGa7fAyIn2eXA" x="80" y="340" width="100" height="41"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_Oin68F5fEeKpvPHLdOdp2Q" type="1031" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OitagF5fEeKpvPHLdOdp2Q" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OitagV5fEeKpvPHLdOdp2Q" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OiuBkF5fEeKpvPHLdOdp2Q" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OiuBkV5fEeKpvPHLdOdp2Q" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_OiuooF5fEeKpvPHLdOdp2Q" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_OiuooV5fEeKpvPHLdOdp2Q" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_Oiuool5fEeKpvPHLdOdp2Q" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_f1-OsFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_f1-OsVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f1-OslCbEeWdH-pLiDvc5A"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataType"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OivPsF5fEeKpvPHLdOdp2Q" x="1020" y="340" width="101" height="41"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_fzBoYFCbEeWdH-pLiDvc5A" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_fzBoYVCbEeWdH-pLiDvc5A" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_fzBoY1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fzBoYlCbEeWdH-pLiDvc5A" x="280" y="20"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_fztk4FCbEeWdH-pLiDvc5A" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_fztk4VCbEeWdH-pLiDvc5A" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_fztk41CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fztk4lCbEeWdH-pLiDvc5A" x="400" y="340"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_f0WeEFCbEeWdH-pLiDvc5A" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_f0WeEVCbEeWdH-pLiDvc5A" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f0WeE1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Dependency"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f0WeElCbEeWdH-pLiDvc5A" x="1080" y="340"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_f07F0FCbEeWdH-pLiDvc5A" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_f07F0VCbEeWdH-pLiDvc5A" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f07s4FCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f07F0lCbEeWdH-pLiDvc5A" x="1000" y="20"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_f1qFoFCbEeWdH-pLiDvc5A" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_f1qFoVCbEeWdH-pLiDvc5A" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f1qFo1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f1qFolCbEeWdH-pLiDvc5A" x="280" y="340"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_f2P7gFCbEeWdH-pLiDvc5A" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_f2P7gVCbEeWdH-pLiDvc5A" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f2P7g1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataType"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f2P7glCbEeWdH-pLiDvc5A" x="1220" y="340"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_cLUrAHDeEeWeeNq7pVC2_w" type="1026">
-      <children xmi:type="notation:DecorationNode" xmi:id="_cLWgMHDeEeWeeNq7pVC2_w" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_cLWgMXDeEeWeeNq7pVC2_w" type="1071">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_cLWgMnDeEeWeeNq7pVC2_w"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_cLWgM3DeEeWeeNq7pVC2_w"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_cLWgNHDeEeWeeNq7pVC2_w"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cLWgNXDeEeWeeNq7pVC2_w"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_cLWgNnDeEeWeeNq7pVC2_w" visible="false" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_cLWgN3DeEeWeeNq7pVC2_w"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_cLWgOHDeEeWeeNq7pVC2_w"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_cLWgOXDeEeWeeNq7pVC2_w"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cLWgOnDeEeWeeNq7pVC2_w"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_cKKNYHDeEeWeeNq7pVC2_w"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cLUrAXDeEeWeeNq7pVC2_w" x="552" y="176" height="82"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_wpvAcPaXEeW5KOK8aDMdgA" type="1026">
-      <children xmi:type="notation:DecorationNode" xmi:id="_wpvngPaXEeW5KOK8aDMdgA" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_wpvngfaXEeW5KOK8aDMdgA" type="1071">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_wpvngvaXEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_wpvng_aXEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_wpvnhPaXEeW5KOK8aDMdgA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wpvnhfaXEeW5KOK8aDMdgA"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_wpvnhvaXEeW5KOK8aDMdgA" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_wpvnh_aXEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_wpvniPaXEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_wpvnifaXEeW5KOK8aDMdgA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wpvnivaXEeW5KOK8aDMdgA"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_wpqvAPaXEeW5KOK8aDMdgA"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wpvAcfaXEeW5KOK8aDMdgA" x="394" y="453"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_ye1g4PaXEeW5KOK8aDMdgA" type="1026">
-      <children xmi:type="notation:DecorationNode" xmi:id="_ye2H8PaXEeW5KOK8aDMdgA" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_ye2H8faXEeW5KOK8aDMdgA" type="1071">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_ye2H8vaXEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_ye2H8_aXEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_ye2H9PaXEeW5KOK8aDMdgA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ye2H9faXEeW5KOK8aDMdgA"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_ye2H9vaXEeW5KOK8aDMdgA" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_ye2H9_aXEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_ye2H-PaXEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_ye2H-faXEeW5KOK8aDMdgA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ye2H-vaXEeW5KOK8aDMdgA"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_yeydkPaXEeW5KOK8aDMdgA"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ye1g4faXEeW5KOK8aDMdgA" x="667" y="461"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_0maKAPaaEeW5KOK8aDMdgA" type="1026">
-      <children xmi:type="notation:DecorationNode" xmi:id="_0maKAvaaEeW5KOK8aDMdgA" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_0maKA_aaEeW5KOK8aDMdgA" type="1071">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_0maKBPaaEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_0maKBfaaEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_0maKBvaaEeW5KOK8aDMdgA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0maKB_aaEeW5KOK8aDMdgA"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_0maKCPaaEeW5KOK8aDMdgA" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_0maKCfaaEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_0maKCvaaEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_0maKC_aaEeW5KOK8aDMdgA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0maKDPaaEeW5KOK8aDMdgA"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_0mXGsPaaEeW5KOK8aDMdgA"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0maKAfaaEeW5KOK8aDMdgA" x="993" y="128"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_1sZhsPaaEeW5KOK8aDMdgA" type="1026">
-      <children xmi:type="notation:DecorationNode" xmi:id="_1sZhsvaaEeW5KOK8aDMdgA" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_1saIwPaaEeW5KOK8aDMdgA" type="1071">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_1saIwfaaEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_1saIwvaaEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_1saIw_aaEeW5KOK8aDMdgA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1saIxPaaEeW5KOK8aDMdgA"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_1saIxfaaEeW5KOK8aDMdgA" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_1saIxvaaEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_1saIx_aaEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_1saIyPaaEeW5KOK8aDMdgA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1saIyfaaEeW5KOK8aDMdgA"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_1sWeYPaaEeW5KOK8aDMdgA"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1sZhsfaaEeW5KOK8aDMdgA" x="1164" y="137"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_2iJd8PaaEeW5KOK8aDMdgA" type="1026">
-      <children xmi:type="notation:DecorationNode" xmi:id="_2iKFAPaaEeW5KOK8aDMdgA" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_2iKFAfaaEeW5KOK8aDMdgA" type="1071">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_2iKFAvaaEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_2iKFA_aaEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_2iKFBPaaEeW5KOK8aDMdgA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2iKFBfaaEeW5KOK8aDMdgA"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_2iKFBvaaEeW5KOK8aDMdgA" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_2iKFB_aaEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_2iKFCPaaEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_2iKFCfaaEeW5KOK8aDMdgA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2iKFCvaaEeW5KOK8aDMdgA"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_2iFMgPaaEeW5KOK8aDMdgA"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2iJd8faaEeW5KOK8aDMdgA" x="1407" y="196"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_3Tbw8PaaEeW5KOK8aDMdgA" type="1026">
-      <children xmi:type="notation:DecorationNode" xmi:id="_3TcYAPaaEeW5KOK8aDMdgA" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_3TcYAfaaEeW5KOK8aDMdgA" type="1071">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_3TcYAvaaEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_3TcYA_aaEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_3TcYBPaaEeW5KOK8aDMdgA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3TcYBfaaEeW5KOK8aDMdgA"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_3TcYBvaaEeW5KOK8aDMdgA" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_3TcYB_aaEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_3TcYCPaaEeW5KOK8aDMdgA"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_3TcYCfaaEeW5KOK8aDMdgA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3TcYCvaaEeW5KOK8aDMdgA"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_3TYGkPaaEeW5KOK8aDMdgA"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Tbw8faaEeW5KOK8aDMdgA" x="1571" y="199"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_ZIKRYPfoEeWvI4zfbofpEg" type="1031">
-      <children xmi:type="notation:DecorationNode" xmi:id="_ZIK4cPfoEeWvI4zfbofpEg" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_ZIXFsPfoEeWvI4zfbofpEg" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_ZIXFsffoEeWvI4zfbofpEg" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZIXFsvfoEeWvI4zfbofpEg"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZIKRYffoEeWvI4zfbofpEg" x="1232" y="330"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_ZIg2sPfoEeWvI4zfbofpEg" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_ZIg2sffoEeWvI4zfbofpEg" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZIg2s_foEeWvI4zfbofpEg" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZIg2svfoEeWvI4zfbofpEg" x="200"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_dkMX0PfoEeWvI4zfbofpEg" type="1026">
-      <children xmi:type="notation:DecorationNode" xmi:id="_dkNl8PfoEeWvI4zfbofpEg" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_dkONAPfoEeWvI4zfbofpEg" type="1071">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_dkONAffoEeWvI4zfbofpEg"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_dkONAvfoEeWvI4zfbofpEg"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_dkONA_foEeWvI4zfbofpEg"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dkONBPfoEeWvI4zfbofpEg"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_dkONBffoEeWvI4zfbofpEg" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_dkONBvfoEeWvI4zfbofpEg"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_dkONB_foEeWvI4zfbofpEg"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_dkONCPfoEeWvI4zfbofpEg"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dkONCffoEeWvI4zfbofpEg"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_dkFDEPfoEeWvI4zfbofpEg"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dkMX0ffoEeWvI4zfbofpEg" x="1136" y="496"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_OefFgPpwEeWvI4zfbofpEg" type="1026">
-      <children xmi:type="notation:DecorationNode" xmi:id="_OefskPpwEeWvI4zfbofpEg" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_OefskfpwEeWvI4zfbofpEg" type="1071">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_OefskvpwEeWvI4zfbofpEg"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_Oefsk_pwEeWvI4zfbofpEg"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_OefslPpwEeWvI4zfbofpEg"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OefslfpwEeWvI4zfbofpEg"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_OefslvpwEeWvI4zfbofpEg" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_Oefsl_pwEeWvI4zfbofpEg"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_OefsmPpwEeWvI4zfbofpEg"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_OefsmfpwEeWvI4zfbofpEg"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OefsmvpwEeWvI4zfbofpEg"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_OeUtcPpwEeWvI4zfbofpEg"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OefFgfpwEeWvI4zfbofpEg" x="364" y="170"/>
-    </children>
-    <styles xmi:type="notation:DiagramStyle" xmi:id="_cj6rMcoREeGKstsYRuxdvw"/>
-    <styles xmi:type="notation:StringValueStyle" xmi:id="_fn4vYFCbEeWdH-pLiDvc5A" name="diagram_compatibility_version" stringValue="1.1.0"/>
-    <element xmi:type="uml:Profile" href="PapyrusJava.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
-    <edges xmi:type="notation:Connector" xmi:id="_AHl5QMp5EeGa7fAyIn2eXA" type="1013" source="_AFKQUMp5EeGa7fAyIn2eXA" target="_AGCaEMp5EeGa7fAyIn2eXA" routing="Rectilinear" lineColor="0">
-      <styles xmi:type="notation:FontStyle" xmi:id="_AHl5Qcp5EeGa7fAyIn2eXA" fontName="Sans Serif"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_gufsIByPEduuTv8efIb91A"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AHl5Qsp5EeGa7fAyIn2eXA" points="[67, 41, -5, -114]$[67, 130, -5, -25]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7PAn4I1TEeKTUILNxKtfZw" id="(0.24861878453038674,1.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rmBkAPuNEeOuv40UUNEbNQ" id="(0.45,0.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_0NWGEMp-EeGa7fAyIn2eXA" type="1013" source="_AFKQUMp5EeGa7fAyIn2eXA" target="_hBS1cMoREeGKstsYRuxdvw" routing="Rectilinear" lineColor="0">
-      <styles xmi:type="notation:FontStyle" xmi:id="_0NWGEcp-EeGa7fAyIn2eXA" fontName="Sans Serif"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_jeImYByIEduN1bTiWJ0lyw"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0NWGEsp-EeGa7fAyIn2eXA" points="[-32, 0, -4, -97]$[-32, 91, -4, -6]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zb4p0I1TEeKTUILNxKtfZw" id="(0.8839779005524862,1.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Bkd4MMp_EeGa7fAyIn2eXA" id="(0.062402496099843996,0.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_1jG_IMp-EeGa7fAyIn2eXA" type="1013" source="_AFKQUMp5EeGa7fAyIn2eXA" target="_f4faUMoREeGKstsYRuxdvw" routing="Rectilinear" lineColor="0">
-      <styles xmi:type="notation:FontStyle" xmi:id="_1jG_Icp-EeGa7fAyIn2eXA" fontName="Sans Serif"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_Z4QGsByHEduN1bTiWJ0lyw"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1jG_Isp-EeGa7fAyIn2eXA" points="[-4, 0, 6, 83]$[-4, -83, 6, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4_BiQI1TEeKTUILNxKtfZw" id="(0.48066298342541436,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__wWPMMp-EeGa7fAyIn2eXA" id="(0.12428571428571429,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_fzBoZFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_f4faUMoREeGKstsYRuxdvw" target="_fzBoYFCbEeWdH-pLiDvc5A">
-      <styles xmi:type="notation:FontStyle" xmi:id="_fzBoZVCbEeWdH-pLiDvc5A"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_fzCPcFCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fzBoZlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fzBoZ1CbEeWdH-pLiDvc5A"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fzBoaFCbEeWdH-pLiDvc5A"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_fztk5FCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_hBS1cMoREeGKstsYRuxdvw" target="_fztk4FCbEeWdH-pLiDvc5A">
-      <styles xmi:type="notation:FontStyle" xmi:id="_fztk5VCbEeWdH-pLiDvc5A"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_fzuL8FCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fztk5lCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fztk51CbEeWdH-pLiDvc5A"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fztk6FCbEeWdH-pLiDvc5A"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_f0WeFFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_1ujusMoREeGKstsYRuxdvw" target="_f0WeEFCbEeWdH-pLiDvc5A">
-      <styles xmi:type="notation:FontStyle" xmi:id="_f0WeFVCbEeWdH-pLiDvc5A"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f0WeGVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Dependency"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f0WeFlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f0WeF1CbEeWdH-pLiDvc5A"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f0WeGFCbEeWdH-pLiDvc5A"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_f07s4VCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_2QldsMoREeGKstsYRuxdvw" target="_f07F0FCbEeWdH-pLiDvc5A">
-      <styles xmi:type="notation:FontStyle" xmi:id="_f07s4lCbEeWdH-pLiDvc5A"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f07s5lCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f07s41CbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f07s5FCbEeWdH-pLiDvc5A"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f07s5VCbEeWdH-pLiDvc5A"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_f1qFpFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_AGCaEMp5EeGa7fAyIn2eXA" target="_f1qFoFCbEeWdH-pLiDvc5A">
-      <styles xmi:type="notation:FontStyle" xmi:id="_f1qFpVCbEeWdH-pLiDvc5A"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f1qFqVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f1qFplCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f1qFp1CbEeWdH-pLiDvc5A"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f1qFqFCbEeWdH-pLiDvc5A"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_f2P7hFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_Oin68F5fEeKpvPHLdOdp2Q" target="_f2P7gFCbEeWdH-pLiDvc5A">
-      <styles xmi:type="notation:FontStyle" xmi:id="_f2P7hVCbEeWdH-pLiDvc5A"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f2P7iVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataType"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f2P7hlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f2P7h1CbEeWdH-pLiDvc5A"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f2P7iFCbEeWdH-pLiDvc5A"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_tOXlEPZQEeW5KOK8aDMdgA" type="1013" source="_cLUrAHDeEeWeeNq7pVC2_w" target="_f4faUMoREeGKstsYRuxdvw">
-      <styles xmi:type="notation:FontStyle" xmi:id="_tOXlEfZQEeW5KOK8aDMdgA"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_tNxIIPZQEeW5KOK8aDMdgA"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tOXlEvZQEeW5KOK8aDMdgA" points="[1273, 179, -643984, -643984]$[671, 61, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tO0RAPZQEeW5KOK8aDMdgA" id="(0.18,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tO0RAfZQEeW5KOK8aDMdgA" id="(0.8442857142857143,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_yFQjQPaXEeW5KOK8aDMdgA" type="1013" source="_wpvAcPaXEeW5KOK8aDMdgA" target="_hBS1cMoREeGKstsYRuxdvw">
-      <styles xmi:type="notation:FontStyle" xmi:id="_yFQjQfaXEeW5KOK8aDMdgA"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_yFIncPaXEeW5KOK8aDMdgA"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yFQjQvaXEeW5KOK8aDMdgA" points="[461, 453, -643984, -643984]$[461, 381, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yFcJcPaXEeW5KOK8aDMdgA" id="(0.67,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yFcJcfaXEeW5KOK8aDMdgA" id="(0.40717628705148207,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_zkOboPaXEeW5KOK8aDMdgA" type="1013" source="_ye1g4PaXEeW5KOK8aDMdgA" target="_hBS1cMoREeGKstsYRuxdvw">
-      <styles xmi:type="notation:FontStyle" xmi:id="_zkObofaXEeW5KOK8aDMdgA"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_zkEDkPaXEeW5KOK8aDMdgA"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zkObovaXEeW5KOK8aDMdgA" points="[795, 547, -643984, -643984]$[643, 381, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zkceEPaXEeW5KOK8aDMdgA" id="(0.11,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zkceEfaXEeW5KOK8aDMdgA" id="(0.6911076443057722,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_34_8IPaaEeW5KOK8aDMdgA" type="1013" source="_0maKAPaaEeW5KOK8aDMdgA" target="_2QldsMoREeGKstsYRuxdvw">
-      <styles xmi:type="notation:FontStyle" xmi:id="_34_8IfaaEeW5KOK8aDMdgA"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_3409APaaEeW5KOK8aDMdgA"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_34_8IvaaEeW5KOK8aDMdgA" points="[1046, 128, -643984, -643984]$[1044, 61, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_35g5gPaaEeW5KOK8aDMdgA" id="(0.53,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_35g5gfaaEeW5KOK8aDMdgA" id="(0.43493761140819964,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_4Ox-4PaaEeW5KOK8aDMdgA" type="1013" source="_1sZhsPaaEeW5KOK8aDMdgA" target="_2QldsMoREeGKstsYRuxdvw">
-      <styles xmi:type="notation:FontStyle" xmi:id="_4Ox-4faaEeW5KOK8aDMdgA"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_4Oo08PaaEeW5KOK8aDMdgA"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4Ox-4vaaEeW5KOK8aDMdgA" points="[1201, 137, -643984, -643984]$[1176, 61, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4PDrsPaaEeW5KOK8aDMdgA" id="(0.37,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4PDrsfaaEeW5KOK8aDMdgA" id="(0.6702317290552585,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_4hQO8PaaEeW5KOK8aDMdgA" type="1013" source="_2iJd8PaaEeW5KOK8aDMdgA" target="_2QldsMoREeGKstsYRuxdvw">
-      <styles xmi:type="notation:FontStyle" xmi:id="_4hQO8faaEeW5KOK8aDMdgA"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_4hGd8PaaEeW5KOK8aDMdgA"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4hQO8vaaEeW5KOK8aDMdgA" points="[1409, 196, -643984, -643984]$[1274, 61, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4hlmIPaaEeW5KOK8aDMdgA" id="(0.02,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4hmNMPaaEeW5KOK8aDMdgA" id="(0.8449197860962567,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_4015UPaaEeW5KOK8aDMdgA" type="1013" source="_3Tbw8PaaEeW5KOK8aDMdgA" target="_2QldsMoREeGKstsYRuxdvw">
-      <styles xmi:type="notation:FontStyle" xmi:id="_4015UfaaEeW5KOK8aDMdgA"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_40qTIPaaEeW5KOK8aDMdgA"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4015UvaaEeW5KOK8aDMdgA" points="[1591, 199, -643984, -643984]$[1353, 61, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_41JbUPaaEeW5KOK8aDMdgA" id="(0.2,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_41JbUfaaEeW5KOK8aDMdgA" id="(0.9857397504456328,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_ZIg2tPfoEeWvI4zfbofpEg" type="StereotypeCommentLink" source="_ZIKRYPfoEeWvI4zfbofpEg" target="_ZIg2sPfoEeWvI4zfbofpEg">
-      <styles xmi:type="notation:FontStyle" xmi:id="_ZIg2tffoEeWvI4zfbofpEg"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZIhdwPfoEeWvI4zfbofpEg" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZIg2tvfoEeWvI4zfbofpEg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZIg2t_foEeWvI4zfbofpEg"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZIg2uPfoEeWvI4zfbofpEg"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_ah2BIPfoEeWvI4zfbofpEg" type="1013" source="_1sZhsPaaEeW5KOK8aDMdgA" target="_ZIKRYPfoEeWvI4zfbofpEg">
-      <styles xmi:type="notation:FontStyle" xmi:id="_ah2BIffoEeWvI4zfbofpEg"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_ag4-4PfoEeWvI4zfbofpEg"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ah2BIvfoEeWvI4zfbofpEg" points="[1211, 243, -643984, -643984]$[1259, 330, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aihWkPfoEeWvI4zfbofpEg" id="(0.47,1.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aih9oPfoEeWvI4zfbofpEg" id="(0.27,0.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_fRx7APfoEeWvI4zfbofpEg" type="1013" source="_dkMX0PfoEeWvI4zfbofpEg" target="_ZIKRYPfoEeWvI4zfbofpEg">
-      <styles xmi:type="notation:FontStyle" xmi:id="_fRx7AffoEeWvI4zfbofpEg"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_fRVPEPfoEeWvI4zfbofpEg"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fRx7AvfoEeWvI4zfbofpEg" points="[1217, 496, -643984, -643984]$[1260, 380, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fSSRUPfoEeWvI4zfbofpEg" id="(0.81,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fSSRUffoEeWvI4zfbofpEg" id="(0.28,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_cnuREPpwEeWvI4zfbofpEg" type="1013" source="_OefFgPpwEeWvI4zfbofpEg" target="_f4faUMoREeGKstsYRuxdvw">
-      <styles xmi:type="notation:FontStyle" xmi:id="_cnuREfpwEeWvI4zfbofpEg"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_cnRlIPpwEeWvI4zfbofpEg"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cnuREvpwEeWvI4zfbofpEg" points="[420, 170, -643984, -643984]$[441, 61, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cogUMPpwEeWvI4zfbofpEg" id="(0.56,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cogUMfpwEeWvI4zfbofpEg" id="(0.5157142857142857,1.0)"/>
-    </edges>
-  </notation:Diagram>
-  <notation:Diagram xmi:id="_UNXagMoSEeGKstsYRuxdvw" type="PapyrusUMLProfileDiagram" name="Tweaks" measurementUnit="Pixel">
-    <children xmi:type="notation:Shape" xmi:id="_XJFkwMoSEeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XJGy4MoSEeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XJGy4coSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XJGy4soSEeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XJGy48oSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XJGy5MoSEeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XJGy5coSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_XJGy5soSEeGKstsYRuxdvw" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_XJGy58oSEeGKstsYRuxdvw" type="1071">
-        <children xmi:type="notation:Shape" xmi:id="_lyRa4P2HEeGbWP4cpLE0gg" type="3002" fontName="Sans Serif" lineColor="0">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fIJnsI1PEeKTUILNxKtfZw" source="CustomAppearance_Annotation">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BHIpUOL9EeKxe91u-BdTVQ" key="CustomAppearance_MaskValue" value="60"/>
-          </eAnnotations>
-          <styles xmi:type="notation:StringListValueStyle" xmi:id="_tRDy0KYNEeSti6341zpcDg" name="maskLabel">
-            <stringListValue>name</stringListValue>
-            <stringListValue>derived</stringListValue>
-            <stringListValue>multiplicity</stringListValue>
-            <stringListValue>type</stringListValue>
-          </styles>
-          <element xmi:type="uml:Property" href="PapyrusJava.profile.uml#_YtvwgByJEduN1bTiWJ0lyw"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_lyRa4f2HEeGbWP4cpLE0gg"/>
-        </children>
-        <styles xmi:type="notation:TitleStyle" xmi:id="_XJGy6MoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_XJGy6coSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_XJGy6soSEeGKstsYRuxdvw"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XJHZ8MoSEeGKstsYRuxdvw"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_XJHZ8coSEeGKstsYRuxdvw" visible="false" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_XJHZ8soSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_XJHZ88oSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_XJHZ9MoSEeGKstsYRuxdvw"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XJHZ9coSEeGKstsYRuxdvw"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_RwTdQByJEduN1bTiWJ0lyw"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XJFkwcoSEeGKstsYRuxdvw" x="400" y="120" width="201" height="121"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_XzsA8MoSEeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XzsoAMoSEeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XztPEMoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XztPEcoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XztPEsoSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XztPE8oSEeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XztPFMoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_XztPFcoSEeGKstsYRuxdvw" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_f81rsFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_f81rsVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f81rslCbEeWdH-pLiDvc5A"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XzsA8coSEeGKstsYRuxdvw" x="20" y="40" width="440" height="41"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_YR4Y0MoSEeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YR4_4coSEeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YR5m8MoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YR5m8coSEeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YR5m8soSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YR5m88oSEeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YR5m9MoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_YR5m9coSEeGKstsYRuxdvw" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_f9Uz4FCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_f9Uz4VCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f9Uz4lCbEeWdH-pLiDvc5A"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YR4_4MoSEeGKstsYRuxdvw" x="20" y="400" width="481" height="41"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_aYuJgMoSEeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aYuwkMoSEeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aYuwkcoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aYuwksoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aYuwk8oSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aYuwlMoSEeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aYvXoMoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_aYvXocoSEeGKstsYRuxdvw" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_aYvXosoSEeGKstsYRuxdvw" type="1071">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_aYvXo8oSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_aYvXpMoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_aYvXpcoSEeGKstsYRuxdvw"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aYvXpsoSEeGKstsYRuxdvw"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_aYvXp8oSEeGKstsYRuxdvw" visible="false" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_aYvXqMoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_aYvXqcoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_aYvXqsoSEeGKstsYRuxdvw"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aYvXq8oSEeGKstsYRuxdvw"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_IHjS8ByMEdu0tMSz-ceC5A"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aYuJgcoSEeGKstsYRuxdvw" x="960" y="120" width="121" height="121"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_a2qpwMoSEeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a2rQ0MoSEeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a2rQ0coSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a2rQ0soSEeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a2r34MoSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a2r34coSEeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a2r34soSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_a2r348oSEeGKstsYRuxdvw" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_f9wRsFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_f9wRsVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f9wRslCbEeWdH-pLiDvc5A"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a2qpwcoSEeGKstsYRuxdvw" x="960" y="40" width="121" height="41"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_l9z9UMoSEeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l90kYMoSEeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l90kYcoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l90kYsoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l90kY8oSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l90kZMoSEeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l90kZcoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_l90kZsoSEeGKstsYRuxdvw" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_l90kZ8oSEeGKstsYRuxdvw" type="1071">
-        <children xmi:type="notation:Shape" xmi:id="_a1VvoNTVEeKiLbHSN_MIRQ" type="3002" fontName="Sans Serif" lineColor="0">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kVi0oOL5EeK7avO_9XJm4Q" source="CustomAppearance_Annotation">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kmNG0OL5EeK7avO_9XJm4Q" key="CustomAppearance_MaskValue" value="28"/>
-          </eAnnotations>
-          <styles xmi:type="notation:StringListValueStyle" xmi:id="_odCqMKYNEeSti6341zpcDg" name="maskLabel">
-            <stringListValue>name</stringListValue>
-            <stringListValue>derived</stringListValue>
-            <stringListValue>multiplicity</stringListValue>
-            <stringListValue>type</stringListValue>
-          </styles>
-          <element xmi:type="uml:Property" href="PapyrusJava.profile.uml#_UiU48ByJEduN1bTiWJ0lyw"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_a1VvodTVEeKiLbHSN_MIRQ"/>
-        </children>
-        <styles xmi:type="notation:TitleStyle" xmi:id="_l90kaMoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_l90kacoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_l90kasoSEeGKstsYRuxdvw"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l90ka8oSEeGKstsYRuxdvw"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_l90kbMoSEeGKstsYRuxdvw" visible="false" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_l90kbcoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_l90kbsoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_l90kb8oSEeGKstsYRuxdvw"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l90kcMoSEeGKstsYRuxdvw"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_MyI6IByJEduN1bTiWJ0lyw"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l9z9UcoSEeGKstsYRuxdvw" x="660" y="120" width="161" height="121"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_nxrusMoSEeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nxrussoSEeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nxrus8oSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nxsVwMoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nxsVwcoSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nxsVwsoSEeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nxsVw8oSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_nxsVxMoSEeGKstsYRuxdvw" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_nxsVxcoSEeGKstsYRuxdvw" type="1071">
-        <children xmi:type="notation:Shape" xmi:id="_qvVPgNTHEeKiLbHSN_MIRQ" type="3002" fontName="Sans Serif" lineColor="0">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cFszANTPEeKiLbHSN_MIRQ" source="CustomAppearance_Annotation">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cFtaENTPEeKiLbHSN_MIRQ" key="CustomAppearance_MaskValue" value="56"/>
-          </eAnnotations>
-          <styles xmi:type="notation:StringListValueStyle" xmi:id="_u1GN4KYMEeSti6341zpcDg" name="maskLabel">
-            <stringListValue>name</stringListValue>
-            <stringListValue>derived</stringListValue>
-            <stringListValue>multiplicity</stringListValue>
-            <stringListValue>type</stringListValue>
-          </styles>
-          <element xmi:type="uml:Property" href="PapyrusJava.profile.uml#_qvPI4NTHEeKiLbHSN_MIRQ"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_qvVPgdTHEeKiLbHSN_MIRQ"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_FziYgNTPEeKiLbHSN_MIRQ" type="3002" fontName="Sans Serif" lineColor="0">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_c1-ZYNTPEeKiLbHSN_MIRQ" source="CustomAppearance_Annotation">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_c1-ZYdTPEeKiLbHSN_MIRQ" key="CustomAppearance_MaskValue" value="56"/>
-          </eAnnotations>
-          <styles xmi:type="notation:StringListValueStyle" xmi:id="_wPZBoKYMEeSti6341zpcDg" name="maskLabel">
-            <stringListValue>name</stringListValue>
-            <stringListValue>derived</stringListValue>
-            <stringListValue>multiplicity</stringListValue>
-            <stringListValue>type</stringListValue>
-          </styles>
-          <element xmi:type="uml:Property" href="PapyrusJava.profile.uml#_FzcR4NTPEeKiLbHSN_MIRQ"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_FziYgdTPEeKiLbHSN_MIRQ"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_NkcwENTPEeKiLbHSN_MIRQ" type="3002" fontName="Sans Serif" lineColor="0">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dLwcINTPEeKiLbHSN_MIRQ" source="CustomAppearance_Annotation">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dLwcIdTPEeKiLbHSN_MIRQ" key="CustomAppearance_MaskValue" value="56"/>
-          </eAnnotations>
-          <styles xmi:type="notation:StringListValueStyle" xmi:id="_xH5-AKYMEeSti6341zpcDg" name="maskLabel">
-            <stringListValue>name</stringListValue>
-            <stringListValue>derived</stringListValue>
-            <stringListValue>multiplicity</stringListValue>
-            <stringListValue>type</stringListValue>
-          </styles>
-          <element xmi:type="uml:Property" href="PapyrusJava.profile.uml#_NkWpcNTPEeKiLbHSN_MIRQ"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_NkcwEdTPEeKiLbHSN_MIRQ"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_tu_I4OL8EeKxe91u-BdTVQ" type="3002" fontName="Sans Serif" lineColor="0">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wDLZEOL8EeKxe91u-BdTVQ" source="CustomAppearance_Annotation">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xH6zkOL8EeKxe91u-BdTVQ" key="CustomAppearance_MaskValue" value="60"/>
-          </eAnnotations>
-          <styles xmi:type="notation:StringListValueStyle" xmi:id="_xlPaQKYMEeSti6341zpcDg" name="maskLabel">
-            <stringListValue>name</stringListValue>
-            <stringListValue>derived</stringListValue>
-            <stringListValue>multiplicity</stringListValue>
-            <stringListValue>type</stringListValue>
-          </styles>
-          <element xmi:type="uml:Property" href="PapyrusJava.profile.uml#_WFVj0ByJEduN1bTiWJ0lyw"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_tu_I4eL8EeKxe91u-BdTVQ" x="42" y="9"/>
-        </children>
-        <styles xmi:type="notation:TitleStyle" xmi:id="_nxsVxsoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_nxsVx8oSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_nxsVyMoSEeGKstsYRuxdvw"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nxsVycoSEeGKstsYRuxdvw"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_nxsVysoSEeGKstsYRuxdvw" visible="false" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_nxsVy8oSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_nxsVzMoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_nxsVzcoSEeGKstsYRuxdvw"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nxsVzsoSEeGKstsYRuxdvw"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_PmXVQByJEduN1bTiWJ0lyw"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nxruscoSEeGKstsYRuxdvw" x="180" y="120" width="201" height="121"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_A55C8CYNEeKe9vxHwEdBmA" type="1026" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_A57fMCYNEeKe9vxHwEdBmA" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_A57fMSYNEeKe9vxHwEdBmA" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_A58GQCYNEeKe9vxHwEdBmA" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_A58GQSYNEeKe9vxHwEdBmA" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_A58GQiYNEeKe9vxHwEdBmA" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_A58GQyYNEeKe9vxHwEdBmA" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_A58GRCYNEeKe9vxHwEdBmA" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_A58GRSYNEeKe9vxHwEdBmA" type="1071">
-        <children xmi:type="notation:Shape" xmi:id="_vOtlMCYNEeKe9vxHwEdBmA" type="3002" fontName="Sans Serif" lineColor="0">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lpgb4I1PEeKTUILNxKtfZw" source="CustomAppearance_Annotation">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l6pPMI1PEeKTUILNxKtfZw" key="CustomAppearance_MaskValue" value="28"/>
-          </eAnnotations>
-          <styles xmi:type="notation:StringListValueStyle" xmi:id="_3I_hQKYNEeSti6341zpcDg" name="maskLabel">
-            <stringListValue>name</stringListValue>
-            <stringListValue>derived</stringListValue>
-            <stringListValue>multiplicity</stringListValue>
-            <stringListValue>type</stringListValue>
-          </styles>
-          <element xmi:type="uml:Property" href="PapyrusJava.profile.uml#_vOBBoCYNEeKe9vxHwEdBmA"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_vOtlMSYNEeKe9vxHwEdBmA"/>
-        </children>
-        <styles xmi:type="notation:TitleStyle" xmi:id="_A58GRiYNEeKe9vxHwEdBmA"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_A58GRyYNEeKe9vxHwEdBmA"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_A58GSCYNEeKe9vxHwEdBmA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A58GSSYNEeKe9vxHwEdBmA"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_A58tUCYNEeKe9vxHwEdBmA" visible="false" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_A58tUSYNEeKe9vxHwEdBmA"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_A58tUiYNEeKe9vxHwEdBmA"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_A58tUyYNEeKe9vxHwEdBmA"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A58tVCYNEeKe9vxHwEdBmA"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_A3_lgCYNEeKe9vxHwEdBmA"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A55C8SYNEeKe9vxHwEdBmA" x="20" y="480" width="481" height="73"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_CBn6wOPxEeKKu7vQg_d5Xw" type="1031" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CBqXAOPxEeKKu7vQg_d5Xw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CBqXAePxEeKKu7vQg_d5Xw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CBq-EOPxEeKKu7vQg_d5Xw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CBq-EePxEeKKu7vQg_d5Xw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CBq-EuPxEeKKu7vQg_d5Xw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CBq-E-PxEeKKu7vQg_d5Xw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_CBq-FOPxEeKKu7vQg_d5Xw" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_f-1PwFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_f-1PwVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-1PwlCbEeWdH-pLiDvc5A"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CBq-FePxEeKKu7vQg_d5Xw" x="540" y="40" width="280" height="41"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_f9HYgFCbEeWdH-pLiDvc5A" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_f9HYgVCbEeWdH-pLiDvc5A" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f9HYg1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f9HYglCbEeWdH-pLiDvc5A" x="220" y="40"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_f9fzAFCbEeWdH-pLiDvc5A" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_f9fzAVCbEeWdH-pLiDvc5A" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f9gaEFCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f9fzAlCbEeWdH-pLiDvc5A" x="220" y="400"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_f99GAFCbEeWdH-pLiDvc5A" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_f99GAVCbEeWdH-pLiDvc5A" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f99GA1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f99GAlCbEeWdH-pLiDvc5A" x="860" y="40"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_f_G8kFCbEeWdH-pLiDvc5A" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_f_G8kVCbEeWdH-pLiDvc5A" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f_G8k1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f_G8klCbEeWdH-pLiDvc5A" x="1020" y="40"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_TjLu8Ga2EeWN5dA9YwhK2A" type="1031">
-      <children xmi:type="notation:DecorationNode" xmi:id="_TjLu8ma2EeWN5dA9YwhK2A" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_TjaYcGa2EeWN5dA9YwhK2A" visible="false" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_TjaYcWa2EeWN5dA9YwhK2A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TjaYcma2EeWN5dA9YwhK2A"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TjLu8Wa2EeWN5dA9YwhK2A" x="1140" y="40" width="161" height="41"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_TjhGI2a2EeWN5dA9YwhK2A" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_TjhGJGa2EeWN5dA9YwhK2A" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_TjhGJma2EeWN5dA9YwhK2A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TjhGJWa2EeWN5dA9YwhK2A" x="200"/>
-    </children>
-    <styles xmi:type="notation:DiagramStyle" xmi:id="_UNXagcoSEeGKstsYRuxdvw"/>
-    <styles xmi:type="notation:StringValueStyle" xmi:id="_f3USgFCbEeWdH-pLiDvc5A" name="diagram_compatibility_version" stringValue="1.1.0"/>
-    <element xmi:type="uml:Profile" href="PapyrusJava.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
-    <edges xmi:type="notation:Connector" xmi:id="_a3BPEMoSEeGKstsYRuxdvw" type="1013" source="_aYuJgMoSEeGKstsYRuxdvw" target="_a2qpwMoSEeGKstsYRuxdvw" routing="Rectilinear" lineColor="0">
-      <styles xmi:type="notation:FontStyle" xmi:id="_a3BPEcoSEeGKstsYRuxdvw" fontName="Sans Serif"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_KiZkwByMEdu0tMSz-ceC5A"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_a3BPEsoSEeGKstsYRuxdvw" points="[1020, 120, -643984, -643984]$[1020, 81, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_41_1oKYNEeSti6341zpcDg" id="(0.49586776859504134,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_42AcsKYNEeSti6341zpcDg" id="(0.576271186440678,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_nyC7EMoSEeGKstsYRuxdvw" type="1013" source="_nxrusMoSEeGKstsYRuxdvw" target="_XzsA8MoSEeGKstsYRuxdvw" lineColor="0">
-      <styles xmi:type="notation:FontStyle" xmi:id="_nyC7EcoSEeGKstsYRuxdvw" fontName="Sans Serif"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_zqqC4ByJEduN1bTiWJ0lyw"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nyC7EsoSEeGKstsYRuxdvw" points="[0, 0, -167, -79]$[117, 55, -50, -24]"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gmQpAP2HEeGbWP4cpLE0gg" id="(0.5964523281596452,0.92)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_KF5DACYOEeKe9vxHwEdBmA" type="1013" source="_A55C8CYNEeKe9vxHwEdBmA" target="_YR4Y0MoSEeGKstsYRuxdvw" lineColor="0">
-      <styles xmi:type="notation:FontStyle" xmi:id="_KF5DASYOEeKe9vxHwEdBmA" fontName="Sans Serif"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_KEps4CYOEeKe9vxHwEdBmA"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KF5DAiYOEeKe9vxHwEdBmA" points="[-3, -2, 0, 43]$[45, -33, 48, 12]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KMLRMCYOEeKe9vxHwEdBmA" id="(0.5213270142180095,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KMLRMSYOEeKe9vxHwEdBmA" id="(0.5330490405117271,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_IcXwoOPxEeKKu7vQg_d5Xw" type="1013" source="_l9z9UMoSEeGKstsYRuxdvw" target="_CBn6wOPxEeKKu7vQg_d5Xw" routing="Rectilinear" lineColor="0">
-      <styles xmi:type="notation:FontStyle" xmi:id="_IcXwoePxEeKKu7vQg_d5Xw" fontName="Sans Serif"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_Ibyh0OPxEeKKu7vQg_d5Xw"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IcXwouPxEeKKu7vQg_d5Xw" points="[740, 120, -643984, -643984]$[740, 100, -643984, -643984]$[740, 81, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IcjW0OPxEeKKu7vQg_d5Xw" id="(0.4968944099378882,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jxGQoOPyEeKGZ63pLXGsCA" id="(0.7142857142857143,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_f9HYhFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_XzsA8MoSEeGKstsYRuxdvw" target="_f9HYgFCbEeWdH-pLiDvc5A">
-      <styles xmi:type="notation:FontStyle" xmi:id="_f9HYhVCbEeWdH-pLiDvc5A"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f9HYiVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f9HYhlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f9HYh1CbEeWdH-pLiDvc5A"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f9HYiFCbEeWdH-pLiDvc5A"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_f9gaEVCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_YR4Y0MoSEeGKstsYRuxdvw" target="_f9fzAFCbEeWdH-pLiDvc5A">
-      <styles xmi:type="notation:FontStyle" xmi:id="_f9gaElCbEeWdH-pLiDvc5A"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f9gaFlCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f9gaE1CbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f9gaFFCbEeWdH-pLiDvc5A"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f9gaFVCbEeWdH-pLiDvc5A"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_f99GBFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_a2qpwMoSEeGKstsYRuxdvw" target="_f99GAFCbEeWdH-pLiDvc5A">
-      <styles xmi:type="notation:FontStyle" xmi:id="_f99GBVCbEeWdH-pLiDvc5A"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f99GCVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f99GBlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f99GB1CbEeWdH-pLiDvc5A"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f99GCFCbEeWdH-pLiDvc5A"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_f_G8lFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_CBn6wOPxEeKKu7vQg_d5Xw" target="_f_G8kFCbEeWdH-pLiDvc5A">
-      <styles xmi:type="notation:FontStyle" xmi:id="_f_G8lVCbEeWdH-pLiDvc5A"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f_G8mVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f_G8llCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f_G8l1CbEeWdH-pLiDvc5A"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f_G8mFCbEeWdH-pLiDvc5A"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_TjhtMGa2EeWN5dA9YwhK2A" type="StereotypeCommentLink" source="_TjLu8Ga2EeWN5dA9YwhK2A" target="_TjhGI2a2EeWN5dA9YwhK2A">
-      <styles xmi:type="notation:FontStyle" xmi:id="_TjhtMWa2EeWN5dA9YwhK2A"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_TjhtNWa2EeWN5dA9YwhK2A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TjhtMma2EeWN5dA9YwhK2A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TjhtM2a2EeWN5dA9YwhK2A"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TjhtNGa2EeWN5dA9YwhK2A"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_9aiOYHP-EeWZ7bKCqwPQEQ" type="1013" source="_XJFkwMoSEeGKstsYRuxdvw" target="_CBn6wOPxEeKKu7vQg_d5Xw" routing="Rectilinear">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5Sd1sHQSEeWZ7bKCqwPQEQ" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5Sd1sXQSEeWZ7bKCqwPQEQ" key="QualifiedNameDepth" value="1"/>
-      </eAnnotations>
-      <styles xmi:type="notation:FontStyle" xmi:id="_9aiOYXP-EeWZ7bKCqwPQEQ"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_9Z2R4HP-EeWZ7bKCqwPQEQ"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9aiOYnP-EeWZ7bKCqwPQEQ" points="[580, 120, -643984, -643984]$[580, 81, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9bhs4HP-EeWZ7bKCqwPQEQ" id="(0.8955223880597015,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9bhs4XP-EeWZ7bKCqwPQEQ" id="(0.14285714285714285,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_UtoGIHQaEeW9sv13Dd1vJA" type="1013" source="_XJFkwMoSEeGKstsYRuxdvw" target="_YR4Y0MoSEeGKstsYRuxdvw">
-      <styles xmi:type="notation:FontStyle" xmi:id="_UtoGIXQaEeW9sv13Dd1vJA"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_0jpgYByJEduN1bTiWJ0lyw"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UtoGInQaEeW9sv13Dd1vJA" points="[440, 241, -643984, -643984]$[281, 400, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WBaCMHQaEeW9sv13Dd1vJA" id="(0.29850746268656714,1.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VUTroHQaEeW9sv13Dd1vJA" id="(0.9147609147609148,0.0)"/>
-    </edges>
-  </notation:Diagram>
-  <notation:Diagram xmi:id="_VN2nIMoSEeGKstsYRuxdvw" type="PapyrusUMLProfileDiagram" name="Templates" measurementUnit="Pixel">
-    <children xmi:type="notation:Shape" xmi:id="_w3sQ8MoSEeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w3s4AMoSEeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w3s4AcoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w3s4AsoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w3s4A8oSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w3tfEMoSEeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w3tfEcoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_w3tfEsoSEeGKstsYRuxdvw" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_w3tfE8oSEeGKstsYRuxdvw" type="1071">
-        <children xmi:type="notation:Shape" xmi:id="_4SCiACAzEeOBrb_t_69W4Q" type="3002" fontName="Sans Serif" lineColor="0">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__D4pQCAzEeOBrb_t_69W4Q" source="CustomAppearance_Annotation">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__D4pQSAzEeOBrb_t_69W4Q" key="CustomAppearance_MaskValue" value="60"/>
-          </eAnnotations>
-          <styles xmi:type="notation:StringListValueStyle" xmi:id="_rFDqwKYMEeSti6341zpcDg" name="maskLabel">
-            <stringListValue>name</stringListValue>
-            <stringListValue>derived</stringListValue>
-            <stringListValue>type</stringListValue>
-          </styles>
-          <element xmi:type="uml:Property" href="PapyrusJava.profile.uml#_7e8P0ByPEduuTv8efIb91A"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_4SCiASAzEeOBrb_t_69W4Q" x="55" y="16"/>
-        </children>
-        <styles xmi:type="notation:TitleStyle" xmi:id="_w3tfFMoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_w3tfFcoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_w3tfFsoSEeGKstsYRuxdvw"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w3tfF8oSEeGKstsYRuxdvw"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_w3tfGMoSEeGKstsYRuxdvw" visible="false" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_w3tfGcoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_w3tfGsoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_w3tfG8oSEeGKstsYRuxdvw"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w3tfHMoSEeGKstsYRuxdvw"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_5W6MUByPEduuTv8efIb91A"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w3sQ8coSEeGKstsYRuxdvw" x="90" y="126" width="163" height="82"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_w4F5kMoSEeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w4GgoMoSEeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w4GgocoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w4GgosoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w4Ggo8oSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w4GgpMoSEeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w4GgpcoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_w4GgpsoSEeGKstsYRuxdvw" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_w4Ggp8oSEeGKstsYRuxdvw" type="1071">
-        <children xmi:type="notation:Shape" xmi:id="_FdHcMCA0EeOBrb_t_69W4Q" type="3002" fontName="Sans Serif" lineColor="0">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gque0CA0EeOBrb_t_69W4Q" source="CustomAppearance_Annotation">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Gque0SA0EeOBrb_t_69W4Q" key="CustomAppearance_MaskValue" value="60"/>
-          </eAnnotations>
-          <styles xmi:type="notation:StringListValueStyle" xmi:id="_s6NOgKYMEeSti6341zpcDg" name="maskLabel">
-            <stringListValue>name</stringListValue>
-            <stringListValue>derived</stringListValue>
-            <stringListValue>type</stringListValue>
-          </styles>
-          <element xmi:type="uml:Property" href="PapyrusJava.profile.uml#_AOo5IByQEduuTv8efIb91A"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_FdHcMSA0EeOBrb_t_69W4Q" x="57" y="10"/>
-        </children>
-        <styles xmi:type="notation:TitleStyle" xmi:id="_w4GgqMoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_w4GgqcoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_w4GgqsoSEeGKstsYRuxdvw"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w4Ggq8oSEeGKstsYRuxdvw"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_w4GgrMoSEeGKstsYRuxdvw" visible="false" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_w4GgrcoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_w4GgrsoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_w4Ggr8oSEeGKstsYRuxdvw"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w4GgsMoSEeGKstsYRuxdvw"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_9oCDQByPEduuTv8efIb91A"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w4F5kcoSEeGKstsYRuxdvw" x="504" y="126" width="136" height="82"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_w4fiMMoSEeGKstsYRuxdvw" type="1026" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w4fiMsoSEeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w4gJQMoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w4gJQcoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w4gJQsoSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_w4gJQ8oSEeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_w4gJRMoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_w4gJRcoSEeGKstsYRuxdvw" type="1034"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_w4gJRsoSEeGKstsYRuxdvw" type="1071">
-        <children xmi:type="notation:Shape" xmi:id="_CUNKgCA0EeOBrb_t_69W4Q" type="3002" fontName="Sans Serif" lineColor="0">
-          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D_K3gCA0EeOBrb_t_69W4Q" source="CustomAppearance_Annotation">
-            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D_K3gSA0EeOBrb_t_69W4Q" key="CustomAppearance_MaskValue" value="60"/>
-          </eAnnotations>
-          <styles xmi:type="notation:StringListValueStyle" xmi:id="_sTE9EKYMEeSti6341zpcDg" name="maskLabel">
-            <stringListValue>name</stringListValue>
-            <stringListValue>derived</stringListValue>
-            <stringListValue>type</stringListValue>
-          </styles>
-          <element xmi:type="uml:Property" href="PapyrusJava.profile.uml#_EV0J4ByQEduuTv8efIb91A"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_CUNKgSA0EeOBrb_t_69W4Q" x="61" y="11"/>
-        </children>
-        <styles xmi:type="notation:TitleStyle" xmi:id="_w4gJR8oSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_w4gJSMoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_w4gJScoSEeGKstsYRuxdvw"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w4gJSsoSEeGKstsYRuxdvw"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_w4gJS8oSEeGKstsYRuxdvw" visible="false" type="1019">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_w4gJTMoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_w4gJTcoSEeGKstsYRuxdvw"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_w4gJTsoSEeGKstsYRuxdvw"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w4gJT8oSEeGKstsYRuxdvw"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="PapyrusJava.profile.uml#_CYoEcByQEduuTv8efIb91A"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w4fiMcoSEeGKstsYRuxdvw" x="297" y="126" width="154" height="82"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_yflb0MoSEeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yfmC4MoSEeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yfmC4coSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yfmC4soSEeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yfmC48oSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yfmC5MoSEeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yfmp8MoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_yfmp8coSEeGKstsYRuxdvw" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_gDHS0FCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_gDHS0VCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDHS0lCbEeWdH-pLiDvc5A"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateParameter"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yflb0coSEeGKstsYRuxdvw" x="297" y="36" width="154"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_y9Cz4MoSEeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y9Da8coSEeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y9Da8soSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y9Da88oSEeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y9Da9MoSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_y9Da9coSEeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_y9Da9soSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_y9ECAMoSEeGKstsYRuxdvw" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_gDpeUFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_gDpeUVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDpeUlCbEeWdH-pLiDvc5A"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y9Da8MoSEeGKstsYRuxdvw" x="90" y="36" width="163"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_zlEdMMoSEeGKstsYRuxdvw" type="1031" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zlFEQMoSEeGKstsYRuxdvw" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zlFrUMoSEeGKstsYRuxdvw" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zlFrUcoSEeGKstsYRuxdvw" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zlFrUsoSEeGKstsYRuxdvw" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zlFrU8oSEeGKstsYRuxdvw" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zlFrVMoSEeGKstsYRuxdvw" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_zlFrVcoSEeGKstsYRuxdvw" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_gENfAFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_gENfAVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gENfAlCbEeWdH-pLiDvc5A"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateBinding"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zlEdMcoSEeGKstsYRuxdvw" x="504" y="36" width="136"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_gDYYkFCbEeWdH-pLiDvc5A" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_gDYYkVCbEeWdH-pLiDvc5A" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gDYYk1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateParameter"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDYYklCbEeWdH-pLiDvc5A" x="497" y="36"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_gD-1gFCbEeWdH-pLiDvc5A" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_gD-1gVCbEeWdH-pLiDvc5A" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gD-1g1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gD-1glCbEeWdH-pLiDvc5A" x="290" y="36"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_gEd9sFCbEeWdH-pLiDvc5A" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_gEd9sVCbEeWdH-pLiDvc5A" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gEd9s1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateBinding"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gEd9slCbEeWdH-pLiDvc5A" x="704" y="36"/>
-    </children>
-    <styles xmi:type="notation:DiagramStyle" xmi:id="_VN3OMMoSEeGKstsYRuxdvw"/>
-    <styles xmi:type="notation:StringValueStyle" xmi:id="_f_5mwFCbEeWdH-pLiDvc5A" name="diagram_compatibility_version" stringValue="1.1.0"/>
-    <element xmi:type="uml:Profile" href="PapyrusJava.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
-    <edges xmi:type="notation:Connector" xmi:id="_yf9PQMoSEeGKstsYRuxdvw" type="1013" source="_w4fiMMoSEeGKstsYRuxdvw" target="_yflb0MoSEeGKstsYRuxdvw" lineColor="0">
-      <styles xmi:type="notation:FontStyle" xmi:id="_yf9PQcoSEeGKstsYRuxdvw" fontName="Sans Serif"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_OYBOoByQEduuTv8efIb91A"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yf9PQsoSEeGKstsYRuxdvw" points="[-66, -26, 360, 141]$[-426, -167, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EQ314P2JEeGbWP4cpLE0gg" id="(0.5448275862068965,0.024390243902439025)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_y9b1cMoSEeGKstsYRuxdvw" type="1013" source="_w3sQ8MoSEeGKstsYRuxdvw" target="_y9Cz4MoSEeGKstsYRuxdvw" lineColor="0">
-      <styles xmi:type="notation:FontStyle" xmi:id="_y9b1ccoSEeGKstsYRuxdvw" fontName="Sans Serif"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_OqF2EByQEduuTv8efIb91A"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_y9b1csoSEeGKstsYRuxdvw" points="[-50, -47, 134, 125]$[-184, -172, 0, 0]"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_zleF0MoSEeGKstsYRuxdvw" type="1013" source="_w4F5kMoSEeGKstsYRuxdvw" target="_zlEdMMoSEeGKstsYRuxdvw" lineColor="0">
-      <styles xmi:type="notation:FontStyle" xmi:id="_zleF0coSEeGKstsYRuxdvw" fontName="Sans Serif"/>
-      <element xmi:type="uml:Extension" href="PapyrusJava.profile.uml#_O9D1YByQEduuTv8efIb91A"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zleF0soSEeGKstsYRuxdvw" points="[-58, -15, 594, 143]$[-652, -158, 0, 0]"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_gDYYlFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_yflb0MoSEeGKstsYRuxdvw" target="_gDYYkFCbEeWdH-pLiDvc5A">
-      <styles xmi:type="notation:FontStyle" xmi:id="_gDYYlVCbEeWdH-pLiDvc5A"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gDY_oFCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateParameter"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDYYllCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gDYYl1CbEeWdH-pLiDvc5A"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gDYYmFCbEeWdH-pLiDvc5A"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_gD-1hFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_y9Cz4MoSEeGKstsYRuxdvw" target="_gD-1gFCbEeWdH-pLiDvc5A">
-      <styles xmi:type="notation:FontStyle" xmi:id="_gD-1hVCbEeWdH-pLiDvc5A"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gD-1iVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gD-1hlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gD-1h1CbEeWdH-pLiDvc5A"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gD-1iFCbEeWdH-pLiDvc5A"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_gEd9tFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_zlEdMMoSEeGKstsYRuxdvw" target="_gEd9sFCbEeWdH-pLiDvc5A">
-      <styles xmi:type="notation:FontStyle" xmi:id="_gEd9tVCbEeWdH-pLiDvc5A"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gEd9uVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateBinding"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gEd9tlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gEd9t1CbEeWdH-pLiDvc5A"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gEd9uFCbEeWdH-pLiDvc5A"/>
-    </edges>
-  </notation:Diagram>
-  <notation:Diagram xmi:id="_tDFW4MoSEeGKstsYRuxdvw" type="PapyrusUMLProfileDiagram" name="Enums" measurementUnit="Pixel">
-    <styles xmi:type="notation:DiagramStyle" xmi:id="_tDFW4coSEeGKstsYRuxdvw"/>
-    <styles xmi:type="notation:StringValueStyle" xmi:id="_gJQXEFCbEeWdH-pLiDvc5A" name="diagram_compatibility_version" stringValue="1.1.0"/>
-    <element xmi:type="uml:Profile" href="PapyrusJava.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
-  </notation:Diagram>
-  <notation:Diagram xmi:id="_br8hIJVTEeKBzP_954cAAA" type="PapyrusUMLProfileDiagram" name="CTypes" measurementUnit="Pixel">
-    <children xmi:type="notation:Shape" xmi:id="_TsW4AOL9EeKxe91u-BdTVQ" type="1031" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TsYGIOL9EeKxe91u-BdTVQ" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TsYGIeL9EeKxe91u-BdTVQ" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TsYGIuL9EeKxe91u-BdTVQ" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TsYGI-L9EeKxe91u-BdTVQ" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TsYGJOL9EeKxe91u-BdTVQ" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TsYGJeL9EeKxe91u-BdTVQ" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_TsYGJuL9EeKxe91u-BdTVQ" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_gIDdMFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_gIDdMVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gIDdMlCbEeWdH-pLiDvc5A"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TsYtMOL9EeKxe91u-BdTVQ" x="320" y="60" height="61"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_ZMcccOL9EeKxe91u-BdTVQ" type="1031" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZMdDgOL9EeKxe91u-BdTVQ" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZMdDgeL9EeKxe91u-BdTVQ" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZMdDguL9EeKxe91u-BdTVQ" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZMdDg-L9EeKxe91u-BdTVQ" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZMdDhOL9EeKxe91u-BdTVQ" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZMdDheL9EeKxe91u-BdTVQ" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_ZMdDhuL9EeKxe91u-BdTVQ" type="1084"/>
-      <children xmi:type="notation:DecorationNode" xmi:id="_gIqhMFCbEeWdH-pLiDvc5A" visible="false" type="StereotypeLabel">
-        <styles xmi:type="notation:StringValueStyle" xmi:id="_gIqhMVCbEeWdH-pLiDvc5A" name="stereotype" stringValue="StandardProfile::Metaclass"/>
-        <element xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Metaclass"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gIqhMlCbEeWdH-pLiDvc5A"/>
-      </children>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZMdDh-L9EeKxe91u-BdTVQ" x="480" y="60" width="101" height="61"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_gIcewFCbEeWdH-pLiDvc5A" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_gIcewVCbEeWdH-pLiDvc5A" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gIcew1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gIcewlCbEeWdH-pLiDvc5A" x="520" y="60"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_gI5KsFCbEeWdH-pLiDvc5A" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_gI5KsVCbEeWdH-pLiDvc5A" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gI5Ks1CbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gI5KslCbEeWdH-pLiDvc5A" x="680" y="60"/>
-    </children>
-    <styles xmi:type="notation:DiagramStyle" xmi:id="_br8hIZVTEeKBzP_954cAAA"/>
-    <styles xmi:type="notation:StringValueStyle" xmi:id="_gEz78FCbEeWdH-pLiDvc5A" name="diagram_compatibility_version" stringValue="1.1.0"/>
-    <element xmi:type="uml:Profile" href="PapyrusJava.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
-    <edges xmi:type="notation:Connector" xmi:id="_gIcexFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_TsW4AOL9EeKxe91u-BdTVQ" target="_gIcewFCbEeWdH-pLiDvc5A">
-      <styles xmi:type="notation:FontStyle" xmi:id="_gIcexVCbEeWdH-pLiDvc5A"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gIceyVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gIcexlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gIcex1CbEeWdH-pLiDvc5A"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gIceyFCbEeWdH-pLiDvc5A"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_gI5KtFCbEeWdH-pLiDvc5A" type="StereotypeCommentLink" source="_ZMcccOL9EeKxe91u-BdTVQ" target="_gI5KsFCbEeWdH-pLiDvc5A">
-      <styles xmi:type="notation:FontStyle" xmi:id="_gI5KtVCbEeWdH-pLiDvc5A"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gI5KuVCbEeWdH-pLiDvc5A" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gI5KtlCbEeWdH-pLiDvc5A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gI5Kt1CbEeWdH-pLiDvc5A"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gI5KuFCbEeWdH-pLiDvc5A"/>
-    </edges>
-  </notation:Diagram>
-</xmi:XMI>
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/profiles/PapyrusJava.profile.uml b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/profiles/PapyrusJava.profile.uml
deleted file mode 100644
index d7d7050..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/profiles/PapyrusJava.profile.uml
+++ /dev/null
@@ -1,307 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
-  <uml:Profile xmi:id="_j9REUByGEduN1bTiWJ0lyw" name="PapyrusJava" metaclassReference="_TRvswByHEduN1bTiWJ0lyw _gphJsByIEduN1bTiWJ0lyw _Gt0nQByJEduN1bTiWJ0lyw _GuFF8ByJEduN1bTiWJ0lyw _G0LmkByMEdu0tMSz-ceC5A _G0XMwByMEdu0tMSz-ceC5A _G0a3IByMEdu0tMSz-ceC5A _jBetUByNEdu0tMSz-ceC5A _jB15sByNEdu0tMSz-ceC5A _jB_qsByNEdu0tMSz-ceC5A _jCCuAByNEdu0tMSz-ceC5A _jCGYYByNEdu0tMSz-ceC5A _jCJbsByNEdu0tMSz-ceC5A _X7dJsDlPEd2mO4M0idYmag _OiGWgF5fEeKpvPHLdOdp2Q _41Sz8I1SEeKTUILNxKtfZw _CBeJwOPxEeKKu7vQg_d5Xw">
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_TRvswByHEduN1bTiWJ0lyw">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_gphJsByIEduN1bTiWJ0lyw">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_Gt0nQByJEduN1bTiWJ0lyw">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_GuFF8ByJEduN1bTiWJ0lyw">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_G0LmkByMEdu0tMSz-ceC5A">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_G0XMwByMEdu0tMSz-ceC5A">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_G0a3IByMEdu0tMSz-ceC5A">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Dependency"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_jBetUByNEdu0tMSz-ceC5A">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Generalization"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_jB15sByNEdu0tMSz-ceC5A">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PrimitiveType"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_jB_qsByNEdu0tMSz-ceC5A">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateBinding"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_jCCuAByNEdu0tMSz-ceC5A">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateParameter"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_jCGYYByNEdu0tMSz-ceC5A">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#EnumerationLiteral"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_jCJbsByNEdu0tMSz-ceC5A">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_X7dJsDlPEd2mO4M0idYmag" alias="PackageImport">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#PackageImport"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_OiGWgF5fEeKpvPHLdOdp2Q" alias="DataType">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#DataType"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_41Sz8I1SEeKTUILNxKtfZw" alias="Feature">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Feature"/>
-    </elementImport>
-    <elementImport xmi:type="uml:ElementImport" xmi:id="_CBeJwOPxEeKKu7vQg_d5Xw" alias="Classifier">
-      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
-    </elementImport>
-    <packageImport xmi:type="uml:PackageImport" xmi:id="_6G_4UP2HEeGbWP4cpLE0gg">
-      <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
-    </packageImport>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_WgwmcByHEduN1bTiWJ0lyw" name="Array">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Z3w-gByHEduN1bTiWJ0lyw" name="base_parameter" isUnique="false" association="_Z4QGsByHEduN1bTiWJ0lyw">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ibI3cCBEEeOBrb_t_69W4Q"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ibQMMCBEEeOBrb_t_69W4Q" value="1"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_a8S9oByHEduN1bTiWJ0lyw" name="definition" isUnique="false">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_jd4uwByIEduN1bTiWJ0lyw" name="base_property" isUnique="false" association="_jeImYByIEduN1bTiWJ0lyw">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jdmaACBEEeOBrb_t_69W4Q"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jdsgoCBEEeOBrb_t_69W4Q" value="1"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_guP0gByPEduuTv8efIb91A" name="base_association" isUnique="false" association="_gufsIByPEduuTv8efIb91A">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Association"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kZzjkCBEEeOBrb_t_69W4Q"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_kZ8tgCBEEeOBrb_t_69W4Q" value="1"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_Z4QGsByHEduN1bTiWJ0lyw" name="E_Array_Parameter1" memberEnd="_Z3w-gByHEduN1bTiWJ0lyw _Z4QGsRyHEduN1bTiWJ0lyw">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Z4QGsRyHEduN1bTiWJ0lyw" name="extension_Array" type="_WgwmcByHEduN1bTiWJ0lyw" association="_Z4QGsByHEduN1bTiWJ0lyw"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_jeImYByIEduN1bTiWJ0lyw" name="E_Array_Property1" memberEnd="_jd4uwByIEduN1bTiWJ0lyw _jeImYRyIEduN1bTiWJ0lyw">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_jeImYRyIEduN1bTiWJ0lyw" name="extension_Array" type="_WgwmcByHEduN1bTiWJ0lyw" association="_jeImYByIEduN1bTiWJ0lyw"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_MyI6IByJEduN1bTiWJ0lyw" name="External">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_UiU48ByJEduN1bTiWJ0lyw" name="name" isUnique="false">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ho9-oOL9EeKxe91u-BdTVQ"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HpF6cOL9EeKxe91u-BdTVQ" value="1"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Ibp-8OPxEeKKu7vQg_d5Xw" name="base_Classifier" association="_Ibyh0OPxEeKKu7vQg_d5Xw">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_PmXVQByJEduN1bTiWJ0lyw" name="ExternLibrary">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_zqayUByJEduN1bTiWJ0lyw" name="base_package" isUnique="false" association="_zqqC4ByJEduN1bTiWJ0lyw">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_WFVj0ByJEduN1bTiWJ0lyw" name="importPaths" visibility="public" isUnique="false">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_x4IIgOL8EeKxe91u-BdTVQ"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_x4hxIOL8EeKxe91u-BdTVQ" value="*"/>
-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_3ta7IB5IEeO_BdY-WQWY-A">
-          <value xsi:nil="true"/>
-        </defaultValue>
-      </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_qvPI4NTHEeKiLbHSN_MIRQ" name="libPaths" visibility="public">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_E5XWoNTMEeKiLbHSN_MIRQ"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_E5ggkNTMEeKiLbHSN_MIRQ" value="*"/>
-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_E5wYMNTMEeKiLbHSN_MIRQ">
-          <value xsi:nil="true"/>
-        </defaultValue>
-      </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_FzcR4NTPEeKiLbHSN_MIRQ" name="libs" visibility="public">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_F6mCwNTPEeKiLbHSN_MIRQ"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F6wa0NTPEeKiLbHSN_MIRQ" value="*"/>
-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_F7CusNTPEeKiLbHSN_MIRQ">
-          <value xsi:nil="true"/>
-        </defaultValue>
-      </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_NkWpcNTPEeKiLbHSN_MIRQ" name="imports" visibility="public">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Pkq7YNTPEeKiLbHSN_MIRQ"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PkyQINTPEeKiLbHSN_MIRQ" value="*"/>
-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_PlNt8NTPEeKiLbHSN_MIRQ">
-          <value xsi:nil="true"/>
-        </defaultValue>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_RwTdQByJEduN1bTiWJ0lyw" name="Import">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_YtvwgByJEduN1bTiWJ0lyw" name="manualImports" visibility="public">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dbl6gBybEdudA-H9lQdiWg"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dbnIoBybEdudA-H9lQdiWg" value="1"/>
-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_RT5rMBBXEdyoOLr5UzE5gA" value=""/>
-      </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_0ja24ByJEduN1bTiWJ0lyw" name="base_class" isUnique="false" association="_0jpgYByJEduN1bTiWJ0lyw">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fSqJkOL5EeK7avO_9XJm4Q"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fSw3QOL5EeK7avO_9XJm4Q" value="1"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_9Z58QHP-EeWZ7bKCqwPQEQ" name="base_Classifier" association="_9Z2R4HP-EeWZ7bKCqwPQEQ">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DN9lkHP_EeWZ7bKCqwPQEQ"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DOBP8HP_EeWZ7bKCqwPQEQ" value="1"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_zqqC4ByJEduN1bTiWJ0lyw" name="E_ExternLibrary_Package1" memberEnd="_zqayUByJEduN1bTiWJ0lyw _zqqC4RyJEduN1bTiWJ0lyw">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_zqqC4RyJEduN1bTiWJ0lyw" name="extension_ExternLibrary" type="_PmXVQByJEduN1bTiWJ0lyw" association="_zqqC4ByJEduN1bTiWJ0lyw"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_0jpgYByJEduN1bTiWJ0lyw" name="E_Import_Class1" memberEnd="_0ja24ByJEduN1bTiWJ0lyw _0jpgYRyJEduN1bTiWJ0lyw">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_0jpgYRyJEduN1bTiWJ0lyw" name="extension_Import" type="_RwTdQByJEduN1bTiWJ0lyw" association="_0jpgYByJEduN1bTiWJ0lyw"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_9Z2R4HP-EeWZ7bKCqwPQEQ" name="E_Import_Classifier1" memberEnd="_9Z5VMHP-EeWZ7bKCqwPQEQ _9Z58QHP-EeWZ7bKCqwPQEQ">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_9Z5VMHP-EeWZ7bKCqwPQEQ" name="extension_Import" type="_RwTdQByJEduN1bTiWJ0lyw" aggregation="composite" association="_9Z2R4HP-EeWZ7bKCqwPQEQ"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_IHjS8ByMEdu0tMSz-ceC5A" name="NoCodeGen">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_KiFbsByMEdu0tMSz-ceC5A" name="base_element" isUnique="false" association="_KiZkwByMEdu0tMSz-ceC5A">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_KiZkwByMEdu0tMSz-ceC5A" name="E_NoCodeGen_Element1" memberEnd="_KiFbsByMEdu0tMSz-ceC5A _KiZkwRyMEdu0tMSz-ceC5A">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_KiZkwRyMEdu0tMSz-ceC5A" name="extension_NoCodeGen" type="_IHjS8ByMEdu0tMSz-ceC5A" association="_KiZkwByMEdu0tMSz-ceC5A"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_gufsIByPEduuTv8efIb91A" name="E_Array_Association1" memberEnd="_guP0gByPEduuTv8efIb91A _gufsIRyPEduuTv8efIb91A">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_gufsIRyPEduuTv8efIb91A" name="extension_Array" type="_WgwmcByHEduN1bTiWJ0lyw" association="_gufsIByPEduuTv8efIb91A"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_5W6MUByPEduuTv8efIb91A" name="Template">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_7e8P0ByPEduuTv8efIb91A" name="declaration" isUnique="false">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_Op3MkByQEduuTv8efIb91A" name="base_class" isUnique="false" association="_OqF2EByQEduuTv8efIb91A">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_9oCDQByPEduuTv8efIb91A" name="TemplateBinding">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_AOo5IByQEduuTv8efIb91A" name="binding" isUnique="false">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_O8vFQByQEduuTv8efIb91A" name="base_templatebinding" isUnique="false" association="_O9D1YByQEduuTv8efIb91A">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateBinding"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_CYoEcByQEduuTv8efIb91A" name="TemplateParameter">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_EV0J4ByQEduuTv8efIb91A" name="name" isUnique="false">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_OXfqMByQEduuTv8efIb91A" name="base_templateparameter" isUnique="false" association="_OYBOoByQEduuTv8efIb91A">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#TemplateParameter"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_OYBOoByQEduuTv8efIb91A" name="E_TemplateParameter_TemplateParameter1" memberEnd="_OXfqMByQEduuTv8efIb91A _OYBOoRyQEduuTv8efIb91A">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_OYBOoRyQEduuTv8efIb91A" name="extension_TemplateParameter" type="_CYoEcByQEduuTv8efIb91A" association="_OYBOoByQEduuTv8efIb91A"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_OqF2EByQEduuTv8efIb91A" name="E_Template_Class1" memberEnd="_Op3MkByQEduuTv8efIb91A _OqF2ERyQEduuTv8efIb91A">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_OqF2ERyQEduuTv8efIb91A" name="extension_Template" type="_5W6MUByPEduuTv8efIb91A" association="_OqF2EByQEduuTv8efIb91A"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_O9D1YByQEduuTv8efIb91A" name="E_TemplateBinding_TemplateBinding1" memberEnd="_O8vFQByQEduuTv8efIb91A _O9D1YRyQEduuTv8efIb91A">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_O9D1YRyQEduuTv8efIb91A" name="extension_TemplateBinding" type="_9oCDQByPEduuTv8efIb91A" association="_O9D1YByQEduuTv8efIb91A"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_A3_lgCYNEeKe9vxHwEdBmA" name="ManualGeneration">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_vOBBoCYNEeKe9vxHwEdBmA" name="extensionBody" visibility="public">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5zd9YCYNEeKe9vxHwEdBmA" value="1"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5zgZoCYNEeKe9vxHwEdBmA" value="1"/>
-        <defaultValue xmi:type="uml:LiteralString" xmi:id="_5zkrECYNEeKe9vxHwEdBmA">
-          <value xsi:nil="true"/>
-        </defaultValue>
-      </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_KEpF0CYOEeKe9vxHwEdBmA" name="base_Class" association="_KEps4CYOEeKe9vxHwEdBmA">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_KEps4CYOEeKe9vxHwEdBmA" name="E_ManualGeneration_Class1" memberEnd="_KEps4SYOEeKe9vxHwEdBmA _KEpF0CYOEeKe9vxHwEdBmA">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_KEps4SYOEeKe9vxHwEdBmA" name="extension_ManualGeneration" type="_A3_lgCYNEeKe9vxHwEdBmA" aggregation="composite" association="_KEps4CYOEeKe9vxHwEdBmA"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_Ibyh0OPxEeKKu7vQg_d5Xw" name="E_External_Classifier1" memberEnd="_Ibyh0ePxEeKKu7vQg_d5Xw _Ibp-8OPxEeKKu7vQg_d5Xw">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Ibyh0ePxEeKKu7vQg_d5Xw" name="extension_External" type="_MyI6IByJEduN1bTiWJ0lyw" aggregation="composite" association="_Ibyh0OPxEeKKu7vQg_d5Xw"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_cKKNYHDeEeWeeNq7pVC2_w" name="Variadic">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_tN65IfZQEeW5KOK8aDMdgA" name="base_Parameter" association="_tNxIIPZQEeW5KOK8aDMdgA">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_tNxIIPZQEeW5KOK8aDMdgA" name="E_Variadic_Parameter1" memberEnd="_tN65IPZQEeW5KOK8aDMdgA _tN65IfZQEeW5KOK8aDMdgA">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_tN65IPZQEeW5KOK8aDMdgA" name="extension_Variadic" type="_cKKNYHDeEeWeeNq7pVC2_w" aggregation="composite" association="_tNxIIPZQEeW5KOK8aDMdgA"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_wpqvAPaXEeW5KOK8aDMdgA" name="Volatile">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_yFJOgfaXEeW5KOK8aDMdgA" name="base_Property" association="_yFIncPaXEeW5KOK8aDMdgA">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_yFIncPaXEeW5KOK8aDMdgA" name="E_Volatile_Property1" memberEnd="_yFJOgPaXEeW5KOK8aDMdgA _yFJOgfaXEeW5KOK8aDMdgA">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_yFJOgPaXEeW5KOK8aDMdgA" name="extension_Volatile" type="_wpqvAPaXEeW5KOK8aDMdgA" aggregation="composite" association="_yFIncPaXEeW5KOK8aDMdgA"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_yeydkPaXEeW5KOK8aDMdgA" name="Transient">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_zkEqofaXEeW5KOK8aDMdgA" name="base_Property" association="_zkEDkPaXEeW5KOK8aDMdgA">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_zkEDkPaXEeW5KOK8aDMdgA" name="E_Transient_Property1" memberEnd="_zkEqoPaXEeW5KOK8aDMdgA _zkEqofaXEeW5KOK8aDMdgA">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_zkEqoPaXEeW5KOK8aDMdgA" name="extension_Transient" type="_yeydkPaXEeW5KOK8aDMdgA" aggregation="composite" association="_zkEDkPaXEeW5KOK8aDMdgA"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_0mXGsPaaEeW5KOK8aDMdgA" name="Synchronized">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_341kEPaaEeW5KOK8aDMdgA" name="base_Operation" association="_3409APaaEeW5KOK8aDMdgA">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_3409APaaEeW5KOK8aDMdgA" name="E_Synchronized_Operation1" memberEnd="_3409AfaaEeW5KOK8aDMdgA _341kEPaaEeW5KOK8aDMdgA">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_3409AfaaEeW5KOK8aDMdgA" name="extension_Synchronized" type="_0mXGsPaaEeW5KOK8aDMdgA" aggregation="composite" association="_3409APaaEeW5KOK8aDMdgA"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_1sWeYPaaEeW5KOK8aDMdgA" name="Strictfp">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_4OpcAPaaEeW5KOK8aDMdgA" name="base_Operation" association="_4Oo08PaaEeW5KOK8aDMdgA">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
-      </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_ahBhwPfoEeWvI4zfbofpEg" name="base_Classifier" association="_ag4-4PfoEeWvI4zfbofpEg">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_4Oo08PaaEeW5KOK8aDMdgA" name="E_Strictfp_Operation1" memberEnd="_4Oo08faaEeW5KOK8aDMdgA _4OpcAPaaEeW5KOK8aDMdgA">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_4Oo08faaEeW5KOK8aDMdgA" name="extension_Strictfp" type="_1sWeYPaaEeW5KOK8aDMdgA" aggregation="composite" association="_4Oo08PaaEeW5KOK8aDMdgA"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_ag4-4PfoEeWvI4zfbofpEg" name="E_Strictfp_Classifier1" memberEnd="_ahAToPfoEeWvI4zfbofpEg _ahBhwPfoEeWvI4zfbofpEg">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ahAToPfoEeWvI4zfbofpEg" name="extension_Strictfp" type="_1sWeYPaaEeW5KOK8aDMdgA" aggregation="composite" association="_ag4-4PfoEeWvI4zfbofpEg"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_2iFMgPaaEeW5KOK8aDMdgA" name="Native">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_4hHFAPaaEeW5KOK8aDMdgA" name="base_Operation" association="_4hGd8PaaEeW5KOK8aDMdgA">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_4hGd8PaaEeW5KOK8aDMdgA" name="E_Native_Operation1" memberEnd="_4hGd8faaEeW5KOK8aDMdgA _4hHFAPaaEeW5KOK8aDMdgA">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_4hGd8faaEeW5KOK8aDMdgA" name="extension_Native" type="_2iFMgPaaEeW5KOK8aDMdgA" aggregation="composite" association="_4hGd8PaaEeW5KOK8aDMdgA"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_3TYGkPaaEeW5KOK8aDMdgA" name="Default">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_40q6MfaaEeW5KOK8aDMdgA" name="base_Operation" association="_40qTIPaaEeW5KOK8aDMdgA">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Operation"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_40qTIPaaEeW5KOK8aDMdgA" name="E_Default_Operation1" memberEnd="_40q6MPaaEeW5KOK8aDMdgA _40q6MfaaEeW5KOK8aDMdgA">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_40q6MPaaEeW5KOK8aDMdgA" name="extension_Default" type="_3TYGkPaaEeW5KOK8aDMdgA" aggregation="composite" association="_40qTIPaaEeW5KOK8aDMdgA"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_dkFDEPfoEeWvI4zfbofpEg" name="StaticClassifier">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_fRWdMPfoEeWvI4zfbofpEg" name="base_Classifier" association="_fRVPEPfoEeWvI4zfbofpEg">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Classifier"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_fRVPEPfoEeWvI4zfbofpEg" name="E_StaticClassifier_Classifier1" memberEnd="_fRV2IPfoEeWvI4zfbofpEg _fRWdMPfoEeWvI4zfbofpEg">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_fRV2IPfoEeWvI4zfbofpEg" name="extension_StaticClassifier" type="_dkFDEPfoEeWvI4zfbofpEg" aggregation="composite" association="_fRVPEPfoEeWvI4zfbofpEg"/>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_OeUtcPpwEeWvI4zfbofpEg" name="Final">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_cnVPgPpwEeWvI4zfbofpEg" name="base_Parameter" association="_cnRlIPpwEeWvI4zfbofpEg">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Parameter"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_cnRlIPpwEeWvI4zfbofpEg" name="E_Final_Parameter1" memberEnd="_cnSMMPpwEeWvI4zfbofpEg _cnVPgPpwEeWvI4zfbofpEg">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_cnSMMPpwEeWvI4zfbofpEg" name="extension_Final" type="_OeUtcPpwEeWvI4zfbofpEg" aggregation="composite" association="_cnRlIPpwEeWvI4zfbofpEg"/>
-    </packagedElement>
-    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_QS19UMogEeGKstsYRuxdvw">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QUmQ0MogEeGKstsYRuxdvw" source="http://www.eclipse.org/uml2/2.0.0/UML">
-        <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
-      </eAnnotations>
-      <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
-    </profileApplication>
-  </uml:Profile>
-  <Ecore:EPackage xmi:id="_RRUXwMogEeGKstsYRuxdvw" base_Package="_j9REUByGEduN1bTiWJ0lyw" packageName="PapyrusJava" nsPrefix="PapyrusJava" nsURI="http://www.eclipse.org/papyrus/PapyrusJava/1" prefix="org.eclipse.papyrus.java.profile.PapyrusJava"/>
-</xmi:XMI>
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Array.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Array.java
deleted file mode 100644
index 26ce706..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Array.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.uml2.uml.Association;
-import org.eclipse.uml2.uml.Parameter;
-import org.eclipse.uml2.uml.Property;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Array</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array#getBase_parameter <em>Base parameter</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array#getDefinition <em>Definition</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array#getBase_property <em>Base property</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array#getBase_association <em>Base association</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getArray()
- * @model
- * @generated
- */
-public interface Array extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Base parameter</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base parameter</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base parameter</em>' reference.
-	 * @see #setBase_parameter(Parameter)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getArray_Base_parameter()
-	 * @model ordered="false"
-	 * @generated
-	 */
-	Parameter getBase_parameter();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array#getBase_parameter <em>Base parameter</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base parameter</em>' reference.
-	 * @see #getBase_parameter()
-	 * @generated
-	 */
-	void setBase_parameter(Parameter value);
-
-	/**
-	 * Returns the value of the '<em><b>Definition</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Definition</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Definition</em>' attribute.
-	 * @see #setDefinition(String)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getArray_Definition()
-	 * @model unique="false" dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
-	 * @generated
-	 */
-	String getDefinition();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array#getDefinition <em>Definition</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Definition</em>' attribute.
-	 * @see #getDefinition()
-	 * @generated
-	 */
-	void setDefinition(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Base property</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base property</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base property</em>' reference.
-	 * @see #setBase_property(Property)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getArray_Base_property()
-	 * @model ordered="false"
-	 * @generated
-	 */
-	Property getBase_property();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array#getBase_property <em>Base property</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base property</em>' reference.
-	 * @see #getBase_property()
-	 * @generated
-	 */
-	void setBase_property(Property value);
-
-	/**
-	 * Returns the value of the '<em><b>Base association</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base association</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base association</em>' reference.
-	 * @see #setBase_association(Association)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getArray_Base_association()
-	 * @model ordered="false"
-	 * @generated
-	 */
-	Association getBase_association();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array#getBase_association <em>Base association</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base association</em>' reference.
-	 * @see #getBase_association()
-	 * @generated
-	 */
-	void setBase_association(Association value);
-
-} // Array
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Default.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Default.java
deleted file mode 100644
index 02be9a0..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Default.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.uml2.uml.Operation;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Default</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Default#getBase_Operation <em>Base Operation</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getDefault()
- * @model
- * @generated
- */
-public interface Default extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Base Operation</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Operation</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base Operation</em>' reference.
-	 * @see #setBase_Operation(Operation)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getDefault_Base_Operation()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	Operation getBase_Operation();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Default#getBase_Operation <em>Base Operation</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Operation</em>' reference.
-	 * @see #getBase_Operation()
-	 * @generated
-	 */
-	void setBase_Operation(Operation value);
-
-} // Default
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/ExternLibrary.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/ExternLibrary.java
deleted file mode 100644
index e338c14..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/ExternLibrary.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Extern Library</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary#getBase_package <em>Base package</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary#getImportPaths <em>Import Paths</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary#getLibPaths <em>Lib Paths</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary#getLibs <em>Libs</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary#getImports <em>Imports</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getExternLibrary()
- * @model
- * @generated
- */
-public interface ExternLibrary extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Base package</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base package</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base package</em>' reference.
-	 * @see #setBase_package(org.eclipse.uml2.uml.Package)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getExternLibrary_Base_package()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	org.eclipse.uml2.uml.Package getBase_package();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary#getBase_package <em>Base package</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base package</em>' reference.
-	 * @see #getBase_package()
-	 * @generated
-	 */
-	void setBase_package(org.eclipse.uml2.uml.Package value);
-
-	/**
-	 * Returns the value of the '<em><b>Import Paths</b></em>' attribute list.
-	 * The list contents are of type {@link java.lang.String}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Import Paths</em>' attribute list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Import Paths</em>' attribute list.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getExternLibrary_ImportPaths()
-	 * @model unique="false" dataType="org.eclipse.uml2.types.String" ordered="false"
-	 * @generated
-	 */
-	EList<String> getImportPaths();
-
-	/**
-	 * Returns the value of the '<em><b>Lib Paths</b></em>' attribute list.
-	 * The list contents are of type {@link java.lang.String}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Lib Paths</em>' attribute list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Lib Paths</em>' attribute list.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getExternLibrary_LibPaths()
-	 * @model dataType="org.eclipse.uml2.types.String" ordered="false"
-	 * @generated
-	 */
-	EList<String> getLibPaths();
-
-	/**
-	 * Returns the value of the '<em><b>Libs</b></em>' attribute list.
-	 * The list contents are of type {@link java.lang.String}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Libs</em>' attribute list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Libs</em>' attribute list.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getExternLibrary_Libs()
-	 * @model dataType="org.eclipse.uml2.types.String" ordered="false"
-	 * @generated
-	 */
-	EList<String> getLibs();
-
-	/**
-	 * Returns the value of the '<em><b>Imports</b></em>' attribute list.
-	 * The list contents are of type {@link java.lang.String}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Imports</em>' attribute list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Imports</em>' attribute list.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getExternLibrary_Imports()
-	 * @model dataType="org.eclipse.uml2.types.String" ordered="false"
-	 * @generated
-	 */
-	EList<String> getImports();
-
-} // ExternLibrary
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/External.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/External.java
deleted file mode 100644
index 4358c27..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/External.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.uml2.uml.Classifier;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>External</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.External#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.External#getBase_Classifier <em>Base Classifier</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getExternal()
- * @model
- * @generated
- */
-public interface External extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getExternal_Name()
-	 * @model unique="false" dataType="org.eclipse.uml2.types.String" ordered="false"
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.External#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	void setName(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Base Classifier</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Classifier</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base Classifier</em>' reference.
-	 * @see #setBase_Classifier(Classifier)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getExternal_Base_Classifier()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	Classifier getBase_Classifier();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.External#getBase_Classifier <em>Base Classifier</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Classifier</em>' reference.
-	 * @see #getBase_Classifier()
-	 * @generated
-	 */
-	void setBase_Classifier(Classifier value);
-
-} // External
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Final.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Final.java
deleted file mode 100644
index e790225..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Final.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.uml2.uml.Parameter;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Final</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Final#getBase_Parameter <em>Base Parameter</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getFinal()
- * @model
- * @generated
- */
-public interface Final extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Base Parameter</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Parameter</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base Parameter</em>' reference.
-	 * @see #setBase_Parameter(Parameter)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getFinal_Base_Parameter()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	Parameter getBase_Parameter();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Final#getBase_Parameter <em>Base Parameter</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Parameter</em>' reference.
-	 * @see #getBase_Parameter()
-	 * @generated
-	 */
-	void setBase_Parameter(Parameter value);
-
-} // Final
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Import.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Import.java
deleted file mode 100644
index ef5b023..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Import.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.uml2.uml.Classifier;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Import</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import#getManualImports <em>Manual Imports</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import#getBase_class <em>Base class</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import#getBase_Classifier <em>Base Classifier</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getImport()
- * @model
- * @generated
- */
-public interface Import extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Manual Imports</b></em>' attribute.
-	 * The default value is <code>""</code>.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Manual Imports</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Manual Imports</em>' attribute.
-	 * @see #setManualImports(String)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getImport_ManualImports()
-	 * @model default="" dataType="org.eclipse.uml2.types.String" ordered="false"
-	 * @generated
-	 */
-	String getManualImports();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import#getManualImports <em>Manual Imports</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Manual Imports</em>' attribute.
-	 * @see #getManualImports()
-	 * @generated
-	 */
-	void setManualImports(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Base class</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base class</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base class</em>' reference.
-	 * @see #setBase_class(org.eclipse.uml2.uml.Class)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getImport_Base_class()
-	 * @model ordered="false"
-	 * @generated
-	 */
-	org.eclipse.uml2.uml.Class getBase_class();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import#getBase_class <em>Base class</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base class</em>' reference.
-	 * @see #getBase_class()
-	 * @generated
-	 */
-	void setBase_class(org.eclipse.uml2.uml.Class value);
-
-	/**
-	 * Returns the value of the '<em><b>Base Classifier</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Classifier</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base Classifier</em>' reference.
-	 * @see #setBase_Classifier(Classifier)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getImport_Base_Classifier()
-	 * @model ordered="false"
-	 * @generated
-	 */
-	Classifier getBase_Classifier();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import#getBase_Classifier <em>Base Classifier</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Classifier</em>' reference.
-	 * @see #getBase_Classifier()
-	 * @generated
-	 */
-	void setBase_Classifier(Classifier value);
-
-} // Import
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/ManualGeneration.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/ManualGeneration.java
deleted file mode 100644
index e199ab1..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/ManualGeneration.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Manual Generation</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ManualGeneration#getExtensionBody <em>Extension Body</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ManualGeneration#getBase_Class <em>Base Class</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getManualGeneration()
- * @model
- * @generated
- */
-public interface ManualGeneration extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Extension Body</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Extension Body</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Extension Body</em>' attribute.
-	 * @see #setExtensionBody(String)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getManualGeneration_ExtensionBody()
-	 * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
-	 * @generated
-	 */
-	String getExtensionBody();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ManualGeneration#getExtensionBody <em>Extension Body</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Extension Body</em>' attribute.
-	 * @see #getExtensionBody()
-	 * @generated
-	 */
-	void setExtensionBody(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Base Class</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Class</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base Class</em>' reference.
-	 * @see #setBase_Class(org.eclipse.uml2.uml.Class)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getManualGeneration_Base_Class()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	org.eclipse.uml2.uml.Class getBase_Class();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ManualGeneration#getBase_Class <em>Base Class</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Class</em>' reference.
-	 * @see #getBase_Class()
-	 * @generated
-	 */
-	void setBase_Class(org.eclipse.uml2.uml.Class value);
-
-} // ManualGeneration
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Native.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Native.java
deleted file mode 100644
index 4681d2c..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Native.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.uml2.uml.Operation;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Native</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Native#getBase_Operation <em>Base Operation</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getNative()
- * @model
- * @generated
- */
-public interface Native extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Base Operation</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Operation</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base Operation</em>' reference.
-	 * @see #setBase_Operation(Operation)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getNative_Base_Operation()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	Operation getBase_Operation();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Native#getBase_Operation <em>Base Operation</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Operation</em>' reference.
-	 * @see #getBase_Operation()
-	 * @generated
-	 */
-	void setBase_Operation(Operation value);
-
-} // Native
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/NoCodeGen.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/NoCodeGen.java
deleted file mode 100644
index 7f9e536..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/NoCodeGen.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.uml2.uml.Element;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>No Code Gen</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.NoCodeGen#getBase_element <em>Base element</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getNoCodeGen()
- * @model
- * @generated
- */
-public interface NoCodeGen extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Base element</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base element</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base element</em>' reference.
-	 * @see #setBase_element(Element)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getNoCodeGen_Base_element()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	Element getBase_element();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.NoCodeGen#getBase_element <em>Base element</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base element</em>' reference.
-	 * @see #getBase_element()
-	 * @generated
-	 */
-	void setBase_element(Element value);
-
-} // NoCodeGen
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/PapyrusJavaFactory.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/PapyrusJavaFactory.java
deleted file mode 100644
index bc81241..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/PapyrusJavaFactory.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EFactory;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Factory</b> for the model.
- * It provides a create method for each non-abstract class of the model.
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage
- * @generated
- */
-public interface PapyrusJavaFactory extends EFactory {
-	/**
-	 * The singleton instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	PapyrusJavaFactory eINSTANCE = org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaFactoryImpl.init();
-
-	/**
-	 * Returns a new object of class '<em>Array</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Array</em>'.
-	 * @generated
-	 */
-	Array createArray();
-
-	/**
-	 * Returns a new object of class '<em>External</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>External</em>'.
-	 * @generated
-	 */
-	External createExternal();
-
-	/**
-	 * Returns a new object of class '<em>Extern Library</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Extern Library</em>'.
-	 * @generated
-	 */
-	ExternLibrary createExternLibrary();
-
-	/**
-	 * Returns a new object of class '<em>Import</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Import</em>'.
-	 * @generated
-	 */
-	Import createImport();
-
-	/**
-	 * Returns a new object of class '<em>No Code Gen</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>No Code Gen</em>'.
-	 * @generated
-	 */
-	NoCodeGen createNoCodeGen();
-
-	/**
-	 * Returns a new object of class '<em>Template</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Template</em>'.
-	 * @generated
-	 */
-	Template createTemplate();
-
-	/**
-	 * Returns a new object of class '<em>Template Binding</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Template Binding</em>'.
-	 * @generated
-	 */
-	TemplateBinding createTemplateBinding();
-
-	/**
-	 * Returns a new object of class '<em>Template Parameter</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Template Parameter</em>'.
-	 * @generated
-	 */
-	TemplateParameter createTemplateParameter();
-
-	/**
-	 * Returns a new object of class '<em>Manual Generation</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Manual Generation</em>'.
-	 * @generated
-	 */
-	ManualGeneration createManualGeneration();
-
-	/**
-	 * Returns a new object of class '<em>Variadic</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Variadic</em>'.
-	 * @generated
-	 */
-	Variadic createVariadic();
-
-	/**
-	 * Returns a new object of class '<em>Volatile</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Volatile</em>'.
-	 * @generated
-	 */
-	Volatile createVolatile();
-
-	/**
-	 * Returns a new object of class '<em>Transient</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Transient</em>'.
-	 * @generated
-	 */
-	Transient createTransient();
-
-	/**
-	 * Returns a new object of class '<em>Synchronized</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Synchronized</em>'.
-	 * @generated
-	 */
-	Synchronized createSynchronized();
-
-	/**
-	 * Returns a new object of class '<em>Strictfp</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Strictfp</em>'.
-	 * @generated
-	 */
-	Strictfp createStrictfp();
-
-	/**
-	 * Returns a new object of class '<em>Native</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Native</em>'.
-	 * @generated
-	 */
-	Native createNative();
-
-	/**
-	 * Returns a new object of class '<em>Default</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Default</em>'.
-	 * @generated
-	 */
-	Default createDefault();
-
-	/**
-	 * Returns a new object of class '<em>Static Classifier</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Static Classifier</em>'.
-	 * @generated
-	 */
-	StaticClassifier createStaticClassifier();
-
-	/**
-	 * Returns a new object of class '<em>Final</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Final</em>'.
-	 * @generated
-	 */
-	Final createFinal();
-
-	/**
-	 * Returns the package supported by this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the package supported by this factory.
-	 * @generated
-	 */
-	PapyrusJavaPackage getPapyrusJavaPackage();
-
-} //PapyrusJavaFactory
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/PapyrusJavaPackage.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/PapyrusJavaPackage.java
deleted file mode 100644
index 330c204..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/PapyrusJavaPackage.java
+++ /dev/null
@@ -1,1873 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Package</b> for the model.
- * It contains accessors for the meta objects to represent
- * <ul>
- *   <li>each class,</li>
- *   <li>each feature of each class,</li>
- *   <li>each operation of each class,</li>
- *   <li>each enum,</li>
- *   <li>and each data type</li>
- * </ul>
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaFactory
- * @model kind="package"
- * @generated
- */
-public interface PapyrusJavaPackage extends EPackage {
-	/**
-	 * The package name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNAME = "PapyrusJava";
-
-	/**
-	 * The package namespace URI.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_URI = "http://www.eclipse.org/papyrus/PapyrusJava/1";
-
-	/**
-	 * The package namespace name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_PREFIX = "PapyrusJava";
-
-	/**
-	 * The singleton instance of the package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	PapyrusJavaPackage eINSTANCE = org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl.init();
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ArrayImpl <em>Array</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ArrayImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getArray()
-	 * @generated
-	 */
-	int ARRAY = 0;
-
-	/**
-	 * The feature id for the '<em><b>Base parameter</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARRAY__BASE_PARAMETER = 0;
-
-	/**
-	 * The feature id for the '<em><b>Definition</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARRAY__DEFINITION = 1;
-
-	/**
-	 * The feature id for the '<em><b>Base property</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARRAY__BASE_PROPERTY = 2;
-
-	/**
-	 * The feature id for the '<em><b>Base association</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARRAY__BASE_ASSOCIATION = 3;
-
-	/**
-	 * The number of structural features of the '<em>Array</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARRAY_FEATURE_COUNT = 4;
-
-	/**
-	 * The number of operations of the '<em>Array</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARRAY_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ExternalImpl <em>External</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ExternalImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getExternal()
-	 * @generated
-	 */
-	int EXTERNAL = 1;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTERNAL__NAME = 0;
-
-	/**
-	 * The feature id for the '<em><b>Base Classifier</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTERNAL__BASE_CLASSIFIER = 1;
-
-	/**
-	 * The number of structural features of the '<em>External</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTERNAL_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>External</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTERNAL_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ExternLibraryImpl <em>Extern Library</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ExternLibraryImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getExternLibrary()
-	 * @generated
-	 */
-	int EXTERN_LIBRARY = 2;
-
-	/**
-	 * The feature id for the '<em><b>Base package</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTERN_LIBRARY__BASE_PACKAGE = 0;
-
-	/**
-	 * The feature id for the '<em><b>Import Paths</b></em>' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTERN_LIBRARY__IMPORT_PATHS = 1;
-
-	/**
-	 * The feature id for the '<em><b>Lib Paths</b></em>' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTERN_LIBRARY__LIB_PATHS = 2;
-
-	/**
-	 * The feature id for the '<em><b>Libs</b></em>' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTERN_LIBRARY__LIBS = 3;
-
-	/**
-	 * The feature id for the '<em><b>Imports</b></em>' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTERN_LIBRARY__IMPORTS = 4;
-
-	/**
-	 * The number of structural features of the '<em>Extern Library</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTERN_LIBRARY_FEATURE_COUNT = 5;
-
-	/**
-	 * The number of operations of the '<em>Extern Library</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int EXTERN_LIBRARY_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ImportImpl <em>Import</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ImportImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getImport()
-	 * @generated
-	 */
-	int IMPORT = 3;
-
-	/**
-	 * The feature id for the '<em><b>Manual Imports</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IMPORT__MANUAL_IMPORTS = 0;
-
-	/**
-	 * The feature id for the '<em><b>Base class</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IMPORT__BASE_CLASS = 1;
-
-	/**
-	 * The feature id for the '<em><b>Base Classifier</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IMPORT__BASE_CLASSIFIER = 2;
-
-	/**
-	 * The number of structural features of the '<em>Import</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IMPORT_FEATURE_COUNT = 3;
-
-	/**
-	 * The number of operations of the '<em>Import</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int IMPORT_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.NoCodeGenImpl <em>No Code Gen</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.NoCodeGenImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getNoCodeGen()
-	 * @generated
-	 */
-	int NO_CODE_GEN = 4;
-
-	/**
-	 * The feature id for the '<em><b>Base element</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NO_CODE_GEN__BASE_ELEMENT = 0;
-
-	/**
-	 * The number of structural features of the '<em>No Code Gen</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NO_CODE_GEN_FEATURE_COUNT = 1;
-
-	/**
-	 * The number of operations of the '<em>No Code Gen</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NO_CODE_GEN_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateImpl <em>Template</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getTemplate()
-	 * @generated
-	 */
-	int TEMPLATE = 5;
-
-	/**
-	 * The feature id for the '<em><b>Declaration</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEMPLATE__DECLARATION = 0;
-
-	/**
-	 * The feature id for the '<em><b>Base class</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEMPLATE__BASE_CLASS = 1;
-
-	/**
-	 * The number of structural features of the '<em>Template</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEMPLATE_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>Template</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEMPLATE_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateBindingImpl <em>Template Binding</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateBindingImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getTemplateBinding()
-	 * @generated
-	 */
-	int TEMPLATE_BINDING = 6;
-
-	/**
-	 * The feature id for the '<em><b>Binding</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEMPLATE_BINDING__BINDING = 0;
-
-	/**
-	 * The feature id for the '<em><b>Base templatebinding</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEMPLATE_BINDING__BASE_TEMPLATEBINDING = 1;
-
-	/**
-	 * The number of structural features of the '<em>Template Binding</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEMPLATE_BINDING_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>Template Binding</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEMPLATE_BINDING_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateParameterImpl <em>Template Parameter</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateParameterImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getTemplateParameter()
-	 * @generated
-	 */
-	int TEMPLATE_PARAMETER = 7;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEMPLATE_PARAMETER__NAME = 0;
-
-	/**
-	 * The feature id for the '<em><b>Base templateparameter</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER = 1;
-
-	/**
-	 * The number of structural features of the '<em>Template Parameter</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEMPLATE_PARAMETER_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>Template Parameter</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEMPLATE_PARAMETER_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ManualGenerationImpl <em>Manual Generation</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ManualGenerationImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getManualGeneration()
-	 * @generated
-	 */
-	int MANUAL_GENERATION = 8;
-
-	/**
-	 * The feature id for the '<em><b>Extension Body</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MANUAL_GENERATION__EXTENSION_BODY = 0;
-
-	/**
-	 * The feature id for the '<em><b>Base Class</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MANUAL_GENERATION__BASE_CLASS = 1;
-
-	/**
-	 * The number of structural features of the '<em>Manual Generation</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MANUAL_GENERATION_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>Manual Generation</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MANUAL_GENERATION_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.VariadicImpl <em>Variadic</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.VariadicImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getVariadic()
-	 * @generated
-	 */
-	int VARIADIC = 9;
-
-	/**
-	 * The feature id for the '<em><b>Base Parameter</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VARIADIC__BASE_PARAMETER = 0;
-
-	/**
-	 * The number of structural features of the '<em>Variadic</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VARIADIC_FEATURE_COUNT = 1;
-
-	/**
-	 * The number of operations of the '<em>Variadic</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VARIADIC_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.VolatileImpl <em>Volatile</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.VolatileImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getVolatile()
-	 * @generated
-	 */
-	int VOLATILE = 10;
-
-	/**
-	 * The feature id for the '<em><b>Base Property</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VOLATILE__BASE_PROPERTY = 0;
-
-	/**
-	 * The number of structural features of the '<em>Volatile</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VOLATILE_FEATURE_COUNT = 1;
-
-	/**
-	 * The number of operations of the '<em>Volatile</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int VOLATILE_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TransientImpl <em>Transient</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TransientImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getTransient()
-	 * @generated
-	 */
-	int TRANSIENT = 11;
-
-	/**
-	 * The feature id for the '<em><b>Base Property</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRANSIENT__BASE_PROPERTY = 0;
-
-	/**
-	 * The number of structural features of the '<em>Transient</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRANSIENT_FEATURE_COUNT = 1;
-
-	/**
-	 * The number of operations of the '<em>Transient</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TRANSIENT_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.SynchronizedImpl <em>Synchronized</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.SynchronizedImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getSynchronized()
-	 * @generated
-	 */
-	int SYNCHRONIZED = 12;
-
-	/**
-	 * The feature id for the '<em><b>Base Operation</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SYNCHRONIZED__BASE_OPERATION = 0;
-
-	/**
-	 * The number of structural features of the '<em>Synchronized</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SYNCHRONIZED_FEATURE_COUNT = 1;
-
-	/**
-	 * The number of operations of the '<em>Synchronized</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SYNCHRONIZED_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.StrictfpImpl <em>Strictfp</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.StrictfpImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getStrictfp()
-	 * @generated
-	 */
-	int STRICTFP = 13;
-
-	/**
-	 * The feature id for the '<em><b>Base Operation</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRICTFP__BASE_OPERATION = 0;
-
-	/**
-	 * The feature id for the '<em><b>Base Classifier</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRICTFP__BASE_CLASSIFIER = 1;
-
-	/**
-	 * The number of structural features of the '<em>Strictfp</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRICTFP_FEATURE_COUNT = 2;
-
-	/**
-	 * The number of operations of the '<em>Strictfp</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STRICTFP_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.NativeImpl <em>Native</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.NativeImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getNative()
-	 * @generated
-	 */
-	int NATIVE = 14;
-
-	/**
-	 * The feature id for the '<em><b>Base Operation</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NATIVE__BASE_OPERATION = 0;
-
-	/**
-	 * The number of structural features of the '<em>Native</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NATIVE_FEATURE_COUNT = 1;
-
-	/**
-	 * The number of operations of the '<em>Native</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NATIVE_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.DefaultImpl <em>Default</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.DefaultImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getDefault()
-	 * @generated
-	 */
-	int DEFAULT = 15;
-
-	/**
-	 * The feature id for the '<em><b>Base Operation</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEFAULT__BASE_OPERATION = 0;
-
-	/**
-	 * The number of structural features of the '<em>Default</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEFAULT_FEATURE_COUNT = 1;
-
-	/**
-	 * The number of operations of the '<em>Default</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEFAULT_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.StaticClassifierImpl <em>Static Classifier</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.StaticClassifierImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getStaticClassifier()
-	 * @generated
-	 */
-	int STATIC_CLASSIFIER = 16;
-
-	/**
-	 * The feature id for the '<em><b>Base Classifier</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATIC_CLASSIFIER__BASE_CLASSIFIER = 0;
-
-	/**
-	 * The number of structural features of the '<em>Static Classifier</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATIC_CLASSIFIER_FEATURE_COUNT = 1;
-
-	/**
-	 * The number of operations of the '<em>Static Classifier</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATIC_CLASSIFIER_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.FinalImpl <em>Final</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.FinalImpl
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getFinal()
-	 * @generated
-	 */
-	int FINAL = 17;
-
-	/**
-	 * The feature id for the '<em><b>Base Parameter</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FINAL__BASE_PARAMETER = 0;
-
-	/**
-	 * The number of structural features of the '<em>Final</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FINAL_FEATURE_COUNT = 1;
-
-	/**
-	 * The number of operations of the '<em>Final</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FINAL_OPERATION_COUNT = 0;
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array <em>Array</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Array</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array
-	 * @generated
-	 */
-	EClass getArray();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array#getBase_parameter <em>Base parameter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base parameter</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array#getBase_parameter()
-	 * @see #getArray()
-	 * @generated
-	 */
-	EReference getArray_Base_parameter();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array#getDefinition <em>Definition</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Definition</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array#getDefinition()
-	 * @see #getArray()
-	 * @generated
-	 */
-	EAttribute getArray_Definition();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array#getBase_property <em>Base property</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base property</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array#getBase_property()
-	 * @see #getArray()
-	 * @generated
-	 */
-	EReference getArray_Base_property();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array#getBase_association <em>Base association</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base association</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array#getBase_association()
-	 * @see #getArray()
-	 * @generated
-	 */
-	EReference getArray_Base_association();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.External <em>External</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>External</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.External
-	 * @generated
-	 */
-	EClass getExternal();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.External#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.External#getName()
-	 * @see #getExternal()
-	 * @generated
-	 */
-	EAttribute getExternal_Name();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.External#getBase_Classifier <em>Base Classifier</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base Classifier</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.External#getBase_Classifier()
-	 * @see #getExternal()
-	 * @generated
-	 */
-	EReference getExternal_Base_Classifier();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary <em>Extern Library</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Extern Library</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary
-	 * @generated
-	 */
-	EClass getExternLibrary();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary#getBase_package <em>Base package</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base package</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary#getBase_package()
-	 * @see #getExternLibrary()
-	 * @generated
-	 */
-	EReference getExternLibrary_Base_package();
-
-	/**
-	 * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary#getImportPaths <em>Import Paths</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute list '<em>Import Paths</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary#getImportPaths()
-	 * @see #getExternLibrary()
-	 * @generated
-	 */
-	EAttribute getExternLibrary_ImportPaths();
-
-	/**
-	 * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary#getLibPaths <em>Lib Paths</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute list '<em>Lib Paths</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary#getLibPaths()
-	 * @see #getExternLibrary()
-	 * @generated
-	 */
-	EAttribute getExternLibrary_LibPaths();
-
-	/**
-	 * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary#getLibs <em>Libs</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute list '<em>Libs</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary#getLibs()
-	 * @see #getExternLibrary()
-	 * @generated
-	 */
-	EAttribute getExternLibrary_Libs();
-
-	/**
-	 * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary#getImports <em>Imports</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute list '<em>Imports</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary#getImports()
-	 * @see #getExternLibrary()
-	 * @generated
-	 */
-	EAttribute getExternLibrary_Imports();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import <em>Import</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Import</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import
-	 * @generated
-	 */
-	EClass getImport();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import#getManualImports <em>Manual Imports</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Manual Imports</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import#getManualImports()
-	 * @see #getImport()
-	 * @generated
-	 */
-	EAttribute getImport_ManualImports();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import#getBase_class <em>Base class</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base class</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import#getBase_class()
-	 * @see #getImport()
-	 * @generated
-	 */
-	EReference getImport_Base_class();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import#getBase_Classifier <em>Base Classifier</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base Classifier</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import#getBase_Classifier()
-	 * @see #getImport()
-	 * @generated
-	 */
-	EReference getImport_Base_Classifier();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.NoCodeGen <em>No Code Gen</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>No Code Gen</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.NoCodeGen
-	 * @generated
-	 */
-	EClass getNoCodeGen();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.NoCodeGen#getBase_element <em>Base element</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base element</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.NoCodeGen#getBase_element()
-	 * @see #getNoCodeGen()
-	 * @generated
-	 */
-	EReference getNoCodeGen_Base_element();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Template <em>Template</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Template</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Template
-	 * @generated
-	 */
-	EClass getTemplate();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Template#getDeclaration <em>Declaration</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Declaration</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Template#getDeclaration()
-	 * @see #getTemplate()
-	 * @generated
-	 */
-	EAttribute getTemplate_Declaration();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Template#getBase_class <em>Base class</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base class</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Template#getBase_class()
-	 * @see #getTemplate()
-	 * @generated
-	 */
-	EReference getTemplate_Base_class();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateBinding <em>Template Binding</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Template Binding</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateBinding
-	 * @generated
-	 */
-	EClass getTemplateBinding();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateBinding#getBinding <em>Binding</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Binding</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateBinding#getBinding()
-	 * @see #getTemplateBinding()
-	 * @generated
-	 */
-	EAttribute getTemplateBinding_Binding();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateBinding#getBase_templatebinding <em>Base templatebinding</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base templatebinding</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateBinding#getBase_templatebinding()
-	 * @see #getTemplateBinding()
-	 * @generated
-	 */
-	EReference getTemplateBinding_Base_templatebinding();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateParameter <em>Template Parameter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Template Parameter</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateParameter
-	 * @generated
-	 */
-	EClass getTemplateParameter();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateParameter#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateParameter#getName()
-	 * @see #getTemplateParameter()
-	 * @generated
-	 */
-	EAttribute getTemplateParameter_Name();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateParameter#getBase_templateparameter <em>Base templateparameter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base templateparameter</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateParameter#getBase_templateparameter()
-	 * @see #getTemplateParameter()
-	 * @generated
-	 */
-	EReference getTemplateParameter_Base_templateparameter();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ManualGeneration <em>Manual Generation</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Manual Generation</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ManualGeneration
-	 * @generated
-	 */
-	EClass getManualGeneration();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ManualGeneration#getExtensionBody <em>Extension Body</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Extension Body</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ManualGeneration#getExtensionBody()
-	 * @see #getManualGeneration()
-	 * @generated
-	 */
-	EAttribute getManualGeneration_ExtensionBody();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ManualGeneration#getBase_Class <em>Base Class</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base Class</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ManualGeneration#getBase_Class()
-	 * @see #getManualGeneration()
-	 * @generated
-	 */
-	EReference getManualGeneration_Base_Class();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Variadic <em>Variadic</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Variadic</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Variadic
-	 * @generated
-	 */
-	EClass getVariadic();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Variadic#getBase_Parameter <em>Base Parameter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base Parameter</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Variadic#getBase_Parameter()
-	 * @see #getVariadic()
-	 * @generated
-	 */
-	EReference getVariadic_Base_Parameter();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Volatile <em>Volatile</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Volatile</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Volatile
-	 * @generated
-	 */
-	EClass getVolatile();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Volatile#getBase_Property <em>Base Property</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base Property</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Volatile#getBase_Property()
-	 * @see #getVolatile()
-	 * @generated
-	 */
-	EReference getVolatile_Base_Property();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Transient <em>Transient</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Transient</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Transient
-	 * @generated
-	 */
-	EClass getTransient();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Transient#getBase_Property <em>Base Property</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base Property</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Transient#getBase_Property()
-	 * @see #getTransient()
-	 * @generated
-	 */
-	EReference getTransient_Base_Property();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Synchronized <em>Synchronized</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Synchronized</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Synchronized
-	 * @generated
-	 */
-	EClass getSynchronized();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Synchronized#getBase_Operation <em>Base Operation</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base Operation</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Synchronized#getBase_Operation()
-	 * @see #getSynchronized()
-	 * @generated
-	 */
-	EReference getSynchronized_Base_Operation();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Strictfp <em>Strictfp</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Strictfp</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Strictfp
-	 * @generated
-	 */
-	EClass getStrictfp();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Strictfp#getBase_Operation <em>Base Operation</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base Operation</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Strictfp#getBase_Operation()
-	 * @see #getStrictfp()
-	 * @generated
-	 */
-	EReference getStrictfp_Base_Operation();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Strictfp#getBase_Classifier <em>Base Classifier</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base Classifier</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Strictfp#getBase_Classifier()
-	 * @see #getStrictfp()
-	 * @generated
-	 */
-	EReference getStrictfp_Base_Classifier();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Native <em>Native</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Native</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Native
-	 * @generated
-	 */
-	EClass getNative();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Native#getBase_Operation <em>Base Operation</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base Operation</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Native#getBase_Operation()
-	 * @see #getNative()
-	 * @generated
-	 */
-	EReference getNative_Base_Operation();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Default <em>Default</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Default</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Default
-	 * @generated
-	 */
-	EClass getDefault();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Default#getBase_Operation <em>Base Operation</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base Operation</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Default#getBase_Operation()
-	 * @see #getDefault()
-	 * @generated
-	 */
-	EReference getDefault_Base_Operation();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.StaticClassifier <em>Static Classifier</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Static Classifier</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.StaticClassifier
-	 * @generated
-	 */
-	EClass getStaticClassifier();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.StaticClassifier#getBase_Classifier <em>Base Classifier</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base Classifier</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.StaticClassifier#getBase_Classifier()
-	 * @see #getStaticClassifier()
-	 * @generated
-	 */
-	EReference getStaticClassifier_Base_Classifier();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Final <em>Final</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Final</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Final
-	 * @generated
-	 */
-	EClass getFinal();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Final#getBase_Parameter <em>Base Parameter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base Parameter</em>'.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Final#getBase_Parameter()
-	 * @see #getFinal()
-	 * @generated
-	 */
-	EReference getFinal_Base_Parameter();
-
-	/**
-	 * Returns the factory that creates the instances of the model.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the factory that creates the instances of the model.
-	 * @generated
-	 */
-	PapyrusJavaFactory getPapyrusJavaFactory();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * Defines literals for the meta objects that represent
-	 * <ul>
-	 *   <li>each class,</li>
-	 *   <li>each feature of each class,</li>
-	 *   <li>each operation of each class,</li>
-	 *   <li>each enum,</li>
-	 *   <li>and each data type</li>
-	 * </ul>
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	interface Literals {
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ArrayImpl <em>Array</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ArrayImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getArray()
-		 * @generated
-		 */
-		EClass ARRAY = eINSTANCE.getArray();
-
-		/**
-		 * The meta object literal for the '<em><b>Base parameter</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ARRAY__BASE_PARAMETER = eINSTANCE.getArray_Base_parameter();
-
-		/**
-		 * The meta object literal for the '<em><b>Definition</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ARRAY__DEFINITION = eINSTANCE.getArray_Definition();
-
-		/**
-		 * The meta object literal for the '<em><b>Base property</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ARRAY__BASE_PROPERTY = eINSTANCE.getArray_Base_property();
-
-		/**
-		 * The meta object literal for the '<em><b>Base association</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference ARRAY__BASE_ASSOCIATION = eINSTANCE.getArray_Base_association();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ExternalImpl <em>External</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ExternalImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getExternal()
-		 * @generated
-		 */
-		EClass EXTERNAL = eINSTANCE.getExternal();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute EXTERNAL__NAME = eINSTANCE.getExternal_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Base Classifier</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference EXTERNAL__BASE_CLASSIFIER = eINSTANCE.getExternal_Base_Classifier();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ExternLibraryImpl <em>Extern Library</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ExternLibraryImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getExternLibrary()
-		 * @generated
-		 */
-		EClass EXTERN_LIBRARY = eINSTANCE.getExternLibrary();
-
-		/**
-		 * The meta object literal for the '<em><b>Base package</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference EXTERN_LIBRARY__BASE_PACKAGE = eINSTANCE.getExternLibrary_Base_package();
-
-		/**
-		 * The meta object literal for the '<em><b>Import Paths</b></em>' attribute list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute EXTERN_LIBRARY__IMPORT_PATHS = eINSTANCE.getExternLibrary_ImportPaths();
-
-		/**
-		 * The meta object literal for the '<em><b>Lib Paths</b></em>' attribute list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute EXTERN_LIBRARY__LIB_PATHS = eINSTANCE.getExternLibrary_LibPaths();
-
-		/**
-		 * The meta object literal for the '<em><b>Libs</b></em>' attribute list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute EXTERN_LIBRARY__LIBS = eINSTANCE.getExternLibrary_Libs();
-
-		/**
-		 * The meta object literal for the '<em><b>Imports</b></em>' attribute list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute EXTERN_LIBRARY__IMPORTS = eINSTANCE.getExternLibrary_Imports();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ImportImpl <em>Import</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ImportImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getImport()
-		 * @generated
-		 */
-		EClass IMPORT = eINSTANCE.getImport();
-
-		/**
-		 * The meta object literal for the '<em><b>Manual Imports</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute IMPORT__MANUAL_IMPORTS = eINSTANCE.getImport_ManualImports();
-
-		/**
-		 * The meta object literal for the '<em><b>Base class</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference IMPORT__BASE_CLASS = eINSTANCE.getImport_Base_class();
-
-		/**
-		 * The meta object literal for the '<em><b>Base Classifier</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference IMPORT__BASE_CLASSIFIER = eINSTANCE.getImport_Base_Classifier();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.NoCodeGenImpl <em>No Code Gen</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.NoCodeGenImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getNoCodeGen()
-		 * @generated
-		 */
-		EClass NO_CODE_GEN = eINSTANCE.getNoCodeGen();
-
-		/**
-		 * The meta object literal for the '<em><b>Base element</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NO_CODE_GEN__BASE_ELEMENT = eINSTANCE.getNoCodeGen_Base_element();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateImpl <em>Template</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getTemplate()
-		 * @generated
-		 */
-		EClass TEMPLATE = eINSTANCE.getTemplate();
-
-		/**
-		 * The meta object literal for the '<em><b>Declaration</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute TEMPLATE__DECLARATION = eINSTANCE.getTemplate_Declaration();
-
-		/**
-		 * The meta object literal for the '<em><b>Base class</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference TEMPLATE__BASE_CLASS = eINSTANCE.getTemplate_Base_class();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateBindingImpl <em>Template Binding</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateBindingImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getTemplateBinding()
-		 * @generated
-		 */
-		EClass TEMPLATE_BINDING = eINSTANCE.getTemplateBinding();
-
-		/**
-		 * The meta object literal for the '<em><b>Binding</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute TEMPLATE_BINDING__BINDING = eINSTANCE.getTemplateBinding_Binding();
-
-		/**
-		 * The meta object literal for the '<em><b>Base templatebinding</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference TEMPLATE_BINDING__BASE_TEMPLATEBINDING = eINSTANCE.getTemplateBinding_Base_templatebinding();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateParameterImpl <em>Template Parameter</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateParameterImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getTemplateParameter()
-		 * @generated
-		 */
-		EClass TEMPLATE_PARAMETER = eINSTANCE.getTemplateParameter();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute TEMPLATE_PARAMETER__NAME = eINSTANCE.getTemplateParameter_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Base templateparameter</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER = eINSTANCE.getTemplateParameter_Base_templateparameter();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ManualGenerationImpl <em>Manual Generation</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ManualGenerationImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getManualGeneration()
-		 * @generated
-		 */
-		EClass MANUAL_GENERATION = eINSTANCE.getManualGeneration();
-
-		/**
-		 * The meta object literal for the '<em><b>Extension Body</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute MANUAL_GENERATION__EXTENSION_BODY = eINSTANCE.getManualGeneration_ExtensionBody();
-
-		/**
-		 * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference MANUAL_GENERATION__BASE_CLASS = eINSTANCE.getManualGeneration_Base_Class();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.VariadicImpl <em>Variadic</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.VariadicImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getVariadic()
-		 * @generated
-		 */
-		EClass VARIADIC = eINSTANCE.getVariadic();
-
-		/**
-		 * The meta object literal for the '<em><b>Base Parameter</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference VARIADIC__BASE_PARAMETER = eINSTANCE.getVariadic_Base_Parameter();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.VolatileImpl <em>Volatile</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.VolatileImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getVolatile()
-		 * @generated
-		 */
-		EClass VOLATILE = eINSTANCE.getVolatile();
-
-		/**
-		 * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference VOLATILE__BASE_PROPERTY = eINSTANCE.getVolatile_Base_Property();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TransientImpl <em>Transient</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TransientImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getTransient()
-		 * @generated
-		 */
-		EClass TRANSIENT = eINSTANCE.getTransient();
-
-		/**
-		 * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference TRANSIENT__BASE_PROPERTY = eINSTANCE.getTransient_Base_Property();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.SynchronizedImpl <em>Synchronized</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.SynchronizedImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getSynchronized()
-		 * @generated
-		 */
-		EClass SYNCHRONIZED = eINSTANCE.getSynchronized();
-
-		/**
-		 * The meta object literal for the '<em><b>Base Operation</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SYNCHRONIZED__BASE_OPERATION = eINSTANCE.getSynchronized_Base_Operation();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.StrictfpImpl <em>Strictfp</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.StrictfpImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getStrictfp()
-		 * @generated
-		 */
-		EClass STRICTFP = eINSTANCE.getStrictfp();
-
-		/**
-		 * The meta object literal for the '<em><b>Base Operation</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference STRICTFP__BASE_OPERATION = eINSTANCE.getStrictfp_Base_Operation();
-
-		/**
-		 * The meta object literal for the '<em><b>Base Classifier</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference STRICTFP__BASE_CLASSIFIER = eINSTANCE.getStrictfp_Base_Classifier();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.NativeImpl <em>Native</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.NativeImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getNative()
-		 * @generated
-		 */
-		EClass NATIVE = eINSTANCE.getNative();
-
-		/**
-		 * The meta object literal for the '<em><b>Base Operation</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference NATIVE__BASE_OPERATION = eINSTANCE.getNative_Base_Operation();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.DefaultImpl <em>Default</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.DefaultImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getDefault()
-		 * @generated
-		 */
-		EClass DEFAULT = eINSTANCE.getDefault();
-
-		/**
-		 * The meta object literal for the '<em><b>Base Operation</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference DEFAULT__BASE_OPERATION = eINSTANCE.getDefault_Base_Operation();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.StaticClassifierImpl <em>Static Classifier</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.StaticClassifierImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getStaticClassifier()
-		 * @generated
-		 */
-		EClass STATIC_CLASSIFIER = eINSTANCE.getStaticClassifier();
-
-		/**
-		 * The meta object literal for the '<em><b>Base Classifier</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference STATIC_CLASSIFIER__BASE_CLASSIFIER = eINSTANCE.getStaticClassifier_Base_Classifier();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.FinalImpl <em>Final</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.FinalImpl
-		 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.PapyrusJavaPackageImpl#getFinal()
-		 * @generated
-		 */
-		EClass FINAL = eINSTANCE.getFinal();
-
-		/**
-		 * The meta object literal for the '<em><b>Base Parameter</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference FINAL__BASE_PARAMETER = eINSTANCE.getFinal_Base_Parameter();
-
-	}
-
-} //PapyrusJavaPackage
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/StaticClassifier.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/StaticClassifier.java
deleted file mode 100644
index c218c0b..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/StaticClassifier.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.uml2.uml.Classifier;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Static Classifier</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.StaticClassifier#getBase_Classifier <em>Base Classifier</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getStaticClassifier()
- * @model
- * @generated
- */
-public interface StaticClassifier extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Base Classifier</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Classifier</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base Classifier</em>' reference.
-	 * @see #setBase_Classifier(Classifier)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getStaticClassifier_Base_Classifier()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	Classifier getBase_Classifier();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.StaticClassifier#getBase_Classifier <em>Base Classifier</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Classifier</em>' reference.
-	 * @see #getBase_Classifier()
-	 * @generated
-	 */
-	void setBase_Classifier(Classifier value);
-
-} // StaticClassifier
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Strictfp.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Strictfp.java
deleted file mode 100644
index e69f9d7..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Strictfp.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.uml2.uml.Classifier;
-import org.eclipse.uml2.uml.Operation;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Strictfp</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Strictfp#getBase_Operation <em>Base Operation</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Strictfp#getBase_Classifier <em>Base Classifier</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getStrictfp()
- * @model
- * @generated
- */
-public interface Strictfp extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Base Operation</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Operation</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base Operation</em>' reference.
-	 * @see #setBase_Operation(Operation)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getStrictfp_Base_Operation()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	Operation getBase_Operation();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Strictfp#getBase_Operation <em>Base Operation</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Operation</em>' reference.
-	 * @see #getBase_Operation()
-	 * @generated
-	 */
-	void setBase_Operation(Operation value);
-
-	/**
-	 * Returns the value of the '<em><b>Base Classifier</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Classifier</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base Classifier</em>' reference.
-	 * @see #setBase_Classifier(Classifier)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getStrictfp_Base_Classifier()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	Classifier getBase_Classifier();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Strictfp#getBase_Classifier <em>Base Classifier</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Classifier</em>' reference.
-	 * @see #getBase_Classifier()
-	 * @generated
-	 */
-	void setBase_Classifier(Classifier value);
-
-} // Strictfp
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Synchronized.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Synchronized.java
deleted file mode 100644
index 5c37e8b..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Synchronized.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.uml2.uml.Operation;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Synchronized</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Synchronized#getBase_Operation <em>Base Operation</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getSynchronized()
- * @model
- * @generated
- */
-public interface Synchronized extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Base Operation</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Operation</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base Operation</em>' reference.
-	 * @see #setBase_Operation(Operation)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getSynchronized_Base_Operation()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	Operation getBase_Operation();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Synchronized#getBase_Operation <em>Base Operation</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Operation</em>' reference.
-	 * @see #getBase_Operation()
-	 * @generated
-	 */
-	void setBase_Operation(Operation value);
-
-} // Synchronized
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Template.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Template.java
deleted file mode 100644
index 4fa1acc..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Template.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Template</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Template#getDeclaration <em>Declaration</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Template#getBase_class <em>Base class</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getTemplate()
- * @model
- * @generated
- */
-public interface Template extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Declaration</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Declaration</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Declaration</em>' attribute.
-	 * @see #setDeclaration(String)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getTemplate_Declaration()
-	 * @model unique="false" dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
-	 * @generated
-	 */
-	String getDeclaration();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Template#getDeclaration <em>Declaration</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Declaration</em>' attribute.
-	 * @see #getDeclaration()
-	 * @generated
-	 */
-	void setDeclaration(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Base class</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base class</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base class</em>' reference.
-	 * @see #setBase_class(org.eclipse.uml2.uml.Class)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getTemplate_Base_class()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	org.eclipse.uml2.uml.Class getBase_class();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Template#getBase_class <em>Base class</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base class</em>' reference.
-	 * @see #getBase_class()
-	 * @generated
-	 */
-	void setBase_class(org.eclipse.uml2.uml.Class value);
-
-} // Template
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/TemplateBinding.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/TemplateBinding.java
deleted file mode 100644
index 8b070c1..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/TemplateBinding.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Template Binding</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateBinding#getBinding <em>Binding</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateBinding#getBase_templatebinding <em>Base templatebinding</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getTemplateBinding()
- * @model
- * @generated
- */
-public interface TemplateBinding extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Binding</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Binding</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Binding</em>' attribute.
-	 * @see #setBinding(String)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getTemplateBinding_Binding()
-	 * @model unique="false" dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
-	 * @generated
-	 */
-	String getBinding();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateBinding#getBinding <em>Binding</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Binding</em>' attribute.
-	 * @see #getBinding()
-	 * @generated
-	 */
-	void setBinding(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Base templatebinding</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base templatebinding</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base templatebinding</em>' reference.
-	 * @see #setBase_templatebinding(org.eclipse.uml2.uml.TemplateBinding)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getTemplateBinding_Base_templatebinding()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	org.eclipse.uml2.uml.TemplateBinding getBase_templatebinding();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateBinding#getBase_templatebinding <em>Base templatebinding</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base templatebinding</em>' reference.
-	 * @see #getBase_templatebinding()
-	 * @generated
-	 */
-	void setBase_templatebinding(org.eclipse.uml2.uml.TemplateBinding value);
-
-} // TemplateBinding
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/TemplateParameter.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/TemplateParameter.java
deleted file mode 100644
index 4d72431..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/TemplateParameter.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Template Parameter</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateParameter#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateParameter#getBase_templateparameter <em>Base templateparameter</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getTemplateParameter()
- * @model
- * @generated
- */
-public interface TemplateParameter extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getTemplateParameter_Name()
-	 * @model unique="false" dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateParameter#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	void setName(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Base templateparameter</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base templateparameter</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base templateparameter</em>' reference.
-	 * @see #setBase_templateparameter(org.eclipse.uml2.uml.TemplateParameter)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getTemplateParameter_Base_templateparameter()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	org.eclipse.uml2.uml.TemplateParameter getBase_templateparameter();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateParameter#getBase_templateparameter <em>Base templateparameter</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base templateparameter</em>' reference.
-	 * @see #getBase_templateparameter()
-	 * @generated
-	 */
-	void setBase_templateparameter(org.eclipse.uml2.uml.TemplateParameter value);
-
-} // TemplateParameter
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Transient.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Transient.java
deleted file mode 100644
index 1cb509d..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Transient.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.uml2.uml.Property;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Transient</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Transient#getBase_Property <em>Base Property</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getTransient()
- * @model
- * @generated
- */
-public interface Transient extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Base Property</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Property</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base Property</em>' reference.
-	 * @see #setBase_Property(Property)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getTransient_Base_Property()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	Property getBase_Property();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Transient#getBase_Property <em>Base Property</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Property</em>' reference.
-	 * @see #getBase_Property()
-	 * @generated
-	 */
-	void setBase_Property(Property value);
-
-} // Transient
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Variadic.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Variadic.java
deleted file mode 100644
index 2d31d38..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Variadic.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.uml2.uml.Parameter;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Variadic</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Variadic#getBase_Parameter <em>Base Parameter</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getVariadic()
- * @model
- * @generated
- */
-public interface Variadic extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Base Parameter</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Parameter</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base Parameter</em>' reference.
-	 * @see #setBase_Parameter(Parameter)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getVariadic_Base_Parameter()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	Parameter getBase_Parameter();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Variadic#getBase_Parameter <em>Base Parameter</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Parameter</em>' reference.
-	 * @see #getBase_Parameter()
-	 * @generated
-	 */
-	void setBase_Parameter(Parameter value);
-
-} // Variadic
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Volatile.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Volatile.java
deleted file mode 100644
index 5378b4f..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/Volatile.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.uml2.uml.Property;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Volatile</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Volatile#getBase_Property <em>Base Property</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getVolatile()
- * @model
- * @generated
- */
-public interface Volatile extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Base Property</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Property</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base Property</em>' reference.
-	 * @see #setBase_Property(Property)
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#getVolatile_Base_Property()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	Property getBase_Property();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Volatile#getBase_Property <em>Base Property</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Property</em>' reference.
-	 * @see #getBase_Property()
-	 * @generated
-	 */
-	void setBase_Property(Property value);
-
-} // Volatile
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/ArrayImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/ArrayImpl.java
deleted file mode 100644
index f126307..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/ArrayImpl.java
+++ /dev/null
@@ -1,348 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-
-import org.eclipse.uml2.uml.Association;
-import org.eclipse.uml2.uml.Parameter;
-import org.eclipse.uml2.uml.Property;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Array</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ArrayImpl#getBase_parameter <em>Base parameter</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ArrayImpl#getDefinition <em>Definition</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ArrayImpl#getBase_property <em>Base property</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ArrayImpl#getBase_association <em>Base association</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ArrayImpl extends MinimalEObjectImpl.Container implements Array {
-	/**
-	 * The cached value of the '{@link #getBase_parameter() <em>Base parameter</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_parameter()
-	 * @generated
-	 * @ordered
-	 */
-	protected Parameter base_parameter;
-
-	/**
-	 * The default value of the '{@link #getDefinition() <em>Definition</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDefinition()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String DEFINITION_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getDefinition() <em>Definition</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDefinition()
-	 * @generated
-	 * @ordered
-	 */
-	protected String definition = DEFINITION_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getBase_property() <em>Base property</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_property()
-	 * @generated
-	 * @ordered
-	 */
-	protected Property base_property;
-
-	/**
-	 * The cached value of the '{@link #getBase_association() <em>Base association</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_association()
-	 * @generated
-	 * @ordered
-	 */
-	protected Association base_association;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ArrayImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.ARRAY;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Parameter getBase_parameter() {
-		if (base_parameter != null && base_parameter.eIsProxy()) {
-			InternalEObject oldBase_parameter = (InternalEObject)base_parameter;
-			base_parameter = (Parameter)eResolveProxy(oldBase_parameter);
-			if (base_parameter != oldBase_parameter) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.ARRAY__BASE_PARAMETER, oldBase_parameter, base_parameter));
-			}
-		}
-		return base_parameter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Parameter basicGetBase_parameter() {
-		return base_parameter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_parameter(Parameter newBase_parameter) {
-		Parameter oldBase_parameter = base_parameter;
-		base_parameter = newBase_parameter;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.ARRAY__BASE_PARAMETER, oldBase_parameter, base_parameter));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getDefinition() {
-		return definition;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setDefinition(String newDefinition) {
-		String oldDefinition = definition;
-		definition = newDefinition;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.ARRAY__DEFINITION, oldDefinition, definition));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Property getBase_property() {
-		if (base_property != null && base_property.eIsProxy()) {
-			InternalEObject oldBase_property = (InternalEObject)base_property;
-			base_property = (Property)eResolveProxy(oldBase_property);
-			if (base_property != oldBase_property) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.ARRAY__BASE_PROPERTY, oldBase_property, base_property));
-			}
-		}
-		return base_property;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Property basicGetBase_property() {
-		return base_property;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_property(Property newBase_property) {
-		Property oldBase_property = base_property;
-		base_property = newBase_property;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.ARRAY__BASE_PROPERTY, oldBase_property, base_property));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Association getBase_association() {
-		if (base_association != null && base_association.eIsProxy()) {
-			InternalEObject oldBase_association = (InternalEObject)base_association;
-			base_association = (Association)eResolveProxy(oldBase_association);
-			if (base_association != oldBase_association) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.ARRAY__BASE_ASSOCIATION, oldBase_association, base_association));
-			}
-		}
-		return base_association;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Association basicGetBase_association() {
-		return base_association;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_association(Association newBase_association) {
-		Association oldBase_association = base_association;
-		base_association = newBase_association;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.ARRAY__BASE_ASSOCIATION, oldBase_association, base_association));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.ARRAY__BASE_PARAMETER:
-				if (resolve) return getBase_parameter();
-				return basicGetBase_parameter();
-			case PapyrusJavaPackage.ARRAY__DEFINITION:
-				return getDefinition();
-			case PapyrusJavaPackage.ARRAY__BASE_PROPERTY:
-				if (resolve) return getBase_property();
-				return basicGetBase_property();
-			case PapyrusJavaPackage.ARRAY__BASE_ASSOCIATION:
-				if (resolve) return getBase_association();
-				return basicGetBase_association();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.ARRAY__BASE_PARAMETER:
-				setBase_parameter((Parameter)newValue);
-				return;
-			case PapyrusJavaPackage.ARRAY__DEFINITION:
-				setDefinition((String)newValue);
-				return;
-			case PapyrusJavaPackage.ARRAY__BASE_PROPERTY:
-				setBase_property((Property)newValue);
-				return;
-			case PapyrusJavaPackage.ARRAY__BASE_ASSOCIATION:
-				setBase_association((Association)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.ARRAY__BASE_PARAMETER:
-				setBase_parameter((Parameter)null);
-				return;
-			case PapyrusJavaPackage.ARRAY__DEFINITION:
-				setDefinition(DEFINITION_EDEFAULT);
-				return;
-			case PapyrusJavaPackage.ARRAY__BASE_PROPERTY:
-				setBase_property((Property)null);
-				return;
-			case PapyrusJavaPackage.ARRAY__BASE_ASSOCIATION:
-				setBase_association((Association)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.ARRAY__BASE_PARAMETER:
-				return base_parameter != null;
-			case PapyrusJavaPackage.ARRAY__DEFINITION:
-				return DEFINITION_EDEFAULT == null ? definition != null : !DEFINITION_EDEFAULT.equals(definition);
-			case PapyrusJavaPackage.ARRAY__BASE_PROPERTY:
-				return base_property != null;
-			case PapyrusJavaPackage.ARRAY__BASE_ASSOCIATION:
-				return base_association != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (definition: ");
-		result.append(definition);
-		result.append(')');
-		return result.toString();
-	}
-
-} //ArrayImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/DefaultImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/DefaultImpl.java
deleted file mode 100644
index d03e692..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/DefaultImpl.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Default;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-
-import org.eclipse.uml2.uml.Operation;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Default</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.DefaultImpl#getBase_Operation <em>Base Operation</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class DefaultImpl extends MinimalEObjectImpl.Container implements Default {
-	/**
-	 * The cached value of the '{@link #getBase_Operation() <em>Base Operation</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_Operation()
-	 * @generated
-	 * @ordered
-	 */
-	protected Operation base_Operation;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DefaultImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.DEFAULT;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Operation getBase_Operation() {
-		if (base_Operation != null && base_Operation.eIsProxy()) {
-			InternalEObject oldBase_Operation = (InternalEObject)base_Operation;
-			base_Operation = (Operation)eResolveProxy(oldBase_Operation);
-			if (base_Operation != oldBase_Operation) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.DEFAULT__BASE_OPERATION, oldBase_Operation, base_Operation));
-			}
-		}
-		return base_Operation;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Operation basicGetBase_Operation() {
-		return base_Operation;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_Operation(Operation newBase_Operation) {
-		Operation oldBase_Operation = base_Operation;
-		base_Operation = newBase_Operation;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.DEFAULT__BASE_OPERATION, oldBase_Operation, base_Operation));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.DEFAULT__BASE_OPERATION:
-				if (resolve) return getBase_Operation();
-				return basicGetBase_Operation();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.DEFAULT__BASE_OPERATION:
-				setBase_Operation((Operation)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.DEFAULT__BASE_OPERATION:
-				setBase_Operation((Operation)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.DEFAULT__BASE_OPERATION:
-				return base_Operation != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //DefaultImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/ExternLibraryImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/ExternLibraryImpl.java
deleted file mode 100644
index b11396f..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/ExternLibraryImpl.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EDataTypeEList;
-import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Extern Library</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ExternLibraryImpl#getBase_package <em>Base package</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ExternLibraryImpl#getImportPaths <em>Import Paths</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ExternLibraryImpl#getLibPaths <em>Lib Paths</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ExternLibraryImpl#getLibs <em>Libs</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ExternLibraryImpl#getImports <em>Imports</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ExternLibraryImpl extends MinimalEObjectImpl.Container implements ExternLibrary {
-	/**
-	 * The cached value of the '{@link #getBase_package() <em>Base package</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_package()
-	 * @generated
-	 * @ordered
-	 */
-	protected org.eclipse.uml2.uml.Package base_package;
-
-	/**
-	 * The cached value of the '{@link #getImportPaths() <em>Import Paths</em>}' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getImportPaths()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<String> importPaths;
-
-	/**
-	 * The cached value of the '{@link #getLibPaths() <em>Lib Paths</em>}' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLibPaths()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<String> libPaths;
-
-	/**
-	 * The cached value of the '{@link #getLibs() <em>Libs</em>}' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLibs()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<String> libs;
-
-	/**
-	 * The cached value of the '{@link #getImports() <em>Imports</em>}' attribute list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getImports()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<String> imports;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ExternLibraryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.EXTERN_LIBRARY;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.uml2.uml.Package getBase_package() {
-		if (base_package != null && base_package.eIsProxy()) {
-			InternalEObject oldBase_package = (InternalEObject)base_package;
-			base_package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_package);
-			if (base_package != oldBase_package) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.EXTERN_LIBRARY__BASE_PACKAGE, oldBase_package, base_package));
-			}
-		}
-		return base_package;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.uml2.uml.Package basicGetBase_package() {
-		return base_package;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_package(org.eclipse.uml2.uml.Package newBase_package) {
-		org.eclipse.uml2.uml.Package oldBase_package = base_package;
-		base_package = newBase_package;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.EXTERN_LIBRARY__BASE_PACKAGE, oldBase_package, base_package));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<String> getImportPaths() {
-		if (importPaths == null) {
-			importPaths = new EDataTypeEList<String>(String.class, this, PapyrusJavaPackage.EXTERN_LIBRARY__IMPORT_PATHS);
-		}
-		return importPaths;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<String> getLibPaths() {
-		if (libPaths == null) {
-			libPaths = new EDataTypeUniqueEList<String>(String.class, this, PapyrusJavaPackage.EXTERN_LIBRARY__LIB_PATHS);
-		}
-		return libPaths;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<String> getLibs() {
-		if (libs == null) {
-			libs = new EDataTypeUniqueEList<String>(String.class, this, PapyrusJavaPackage.EXTERN_LIBRARY__LIBS);
-		}
-		return libs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<String> getImports() {
-		if (imports == null) {
-			imports = new EDataTypeUniqueEList<String>(String.class, this, PapyrusJavaPackage.EXTERN_LIBRARY__IMPORTS);
-		}
-		return imports;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.EXTERN_LIBRARY__BASE_PACKAGE:
-				if (resolve) return getBase_package();
-				return basicGetBase_package();
-			case PapyrusJavaPackage.EXTERN_LIBRARY__IMPORT_PATHS:
-				return getImportPaths();
-			case PapyrusJavaPackage.EXTERN_LIBRARY__LIB_PATHS:
-				return getLibPaths();
-			case PapyrusJavaPackage.EXTERN_LIBRARY__LIBS:
-				return getLibs();
-			case PapyrusJavaPackage.EXTERN_LIBRARY__IMPORTS:
-				return getImports();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.EXTERN_LIBRARY__BASE_PACKAGE:
-				setBase_package((org.eclipse.uml2.uml.Package)newValue);
-				return;
-			case PapyrusJavaPackage.EXTERN_LIBRARY__IMPORT_PATHS:
-				getImportPaths().clear();
-				getImportPaths().addAll((Collection<? extends String>)newValue);
-				return;
-			case PapyrusJavaPackage.EXTERN_LIBRARY__LIB_PATHS:
-				getLibPaths().clear();
-				getLibPaths().addAll((Collection<? extends String>)newValue);
-				return;
-			case PapyrusJavaPackage.EXTERN_LIBRARY__LIBS:
-				getLibs().clear();
-				getLibs().addAll((Collection<? extends String>)newValue);
-				return;
-			case PapyrusJavaPackage.EXTERN_LIBRARY__IMPORTS:
-				getImports().clear();
-				getImports().addAll((Collection<? extends String>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.EXTERN_LIBRARY__BASE_PACKAGE:
-				setBase_package((org.eclipse.uml2.uml.Package)null);
-				return;
-			case PapyrusJavaPackage.EXTERN_LIBRARY__IMPORT_PATHS:
-				getImportPaths().clear();
-				return;
-			case PapyrusJavaPackage.EXTERN_LIBRARY__LIB_PATHS:
-				getLibPaths().clear();
-				return;
-			case PapyrusJavaPackage.EXTERN_LIBRARY__LIBS:
-				getLibs().clear();
-				return;
-			case PapyrusJavaPackage.EXTERN_LIBRARY__IMPORTS:
-				getImports().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.EXTERN_LIBRARY__BASE_PACKAGE:
-				return base_package != null;
-			case PapyrusJavaPackage.EXTERN_LIBRARY__IMPORT_PATHS:
-				return importPaths != null && !importPaths.isEmpty();
-			case PapyrusJavaPackage.EXTERN_LIBRARY__LIB_PATHS:
-				return libPaths != null && !libPaths.isEmpty();
-			case PapyrusJavaPackage.EXTERN_LIBRARY__LIBS:
-				return libs != null && !libs.isEmpty();
-			case PapyrusJavaPackage.EXTERN_LIBRARY__IMPORTS:
-				return imports != null && !imports.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (importPaths: ");
-		result.append(importPaths);
-		result.append(", libPaths: ");
-		result.append(libPaths);
-		result.append(", libs: ");
-		result.append(libs);
-		result.append(", imports: ");
-		result.append(imports);
-		result.append(')');
-		return result.toString();
-	}
-
-} //ExternLibraryImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/ExternalImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/ExternalImpl.java
deleted file mode 100644
index 35b3421..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/ExternalImpl.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.External;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-
-import org.eclipse.uml2.uml.Classifier;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>External</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ExternalImpl#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ExternalImpl#getBase_Classifier <em>Base Classifier</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ExternalImpl extends MinimalEObjectImpl.Container implements External {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getBase_Classifier() <em>Base Classifier</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_Classifier()
-	 * @generated
-	 * @ordered
-	 */
-	protected Classifier base_Classifier;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ExternalImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.EXTERNAL;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.EXTERNAL__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Classifier getBase_Classifier() {
-		if (base_Classifier != null && base_Classifier.eIsProxy()) {
-			InternalEObject oldBase_Classifier = (InternalEObject)base_Classifier;
-			base_Classifier = (Classifier)eResolveProxy(oldBase_Classifier);
-			if (base_Classifier != oldBase_Classifier) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.EXTERNAL__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));
-			}
-		}
-		return base_Classifier;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Classifier basicGetBase_Classifier() {
-		return base_Classifier;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_Classifier(Classifier newBase_Classifier) {
-		Classifier oldBase_Classifier = base_Classifier;
-		base_Classifier = newBase_Classifier;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.EXTERNAL__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.EXTERNAL__NAME:
-				return getName();
-			case PapyrusJavaPackage.EXTERNAL__BASE_CLASSIFIER:
-				if (resolve) return getBase_Classifier();
-				return basicGetBase_Classifier();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.EXTERNAL__NAME:
-				setName((String)newValue);
-				return;
-			case PapyrusJavaPackage.EXTERNAL__BASE_CLASSIFIER:
-				setBase_Classifier((Classifier)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.EXTERNAL__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case PapyrusJavaPackage.EXTERNAL__BASE_CLASSIFIER:
-				setBase_Classifier((Classifier)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.EXTERNAL__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case PapyrusJavaPackage.EXTERNAL__BASE_CLASSIFIER:
-				return base_Classifier != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(')');
-		return result.toString();
-	}
-
-} //ExternalImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/FinalImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/FinalImpl.java
deleted file mode 100644
index 0297c50..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/FinalImpl.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Final;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-
-import org.eclipse.uml2.uml.Parameter;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Final</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.FinalImpl#getBase_Parameter <em>Base Parameter</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class FinalImpl extends MinimalEObjectImpl.Container implements Final {
-	/**
-	 * The cached value of the '{@link #getBase_Parameter() <em>Base Parameter</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_Parameter()
-	 * @generated
-	 * @ordered
-	 */
-	protected Parameter base_Parameter;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected FinalImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.FINAL;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Parameter getBase_Parameter() {
-		if (base_Parameter != null && base_Parameter.eIsProxy()) {
-			InternalEObject oldBase_Parameter = (InternalEObject)base_Parameter;
-			base_Parameter = (Parameter)eResolveProxy(oldBase_Parameter);
-			if (base_Parameter != oldBase_Parameter) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.FINAL__BASE_PARAMETER, oldBase_Parameter, base_Parameter));
-			}
-		}
-		return base_Parameter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Parameter basicGetBase_Parameter() {
-		return base_Parameter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_Parameter(Parameter newBase_Parameter) {
-		Parameter oldBase_Parameter = base_Parameter;
-		base_Parameter = newBase_Parameter;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.FINAL__BASE_PARAMETER, oldBase_Parameter, base_Parameter));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.FINAL__BASE_PARAMETER:
-				if (resolve) return getBase_Parameter();
-				return basicGetBase_Parameter();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.FINAL__BASE_PARAMETER:
-				setBase_Parameter((Parameter)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.FINAL__BASE_PARAMETER:
-				setBase_Parameter((Parameter)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.FINAL__BASE_PARAMETER:
-				return base_Parameter != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //FinalImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/ImportImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/ImportImpl.java
deleted file mode 100644
index c87c93d..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/ImportImpl.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-
-import org.eclipse.uml2.uml.Classifier;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Import</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ImportImpl#getManualImports <em>Manual Imports</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ImportImpl#getBase_class <em>Base class</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ImportImpl#getBase_Classifier <em>Base Classifier</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ImportImpl extends MinimalEObjectImpl.Container implements Import {
-	/**
-	 * The default value of the '{@link #getManualImports() <em>Manual Imports</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getManualImports()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String MANUAL_IMPORTS_EDEFAULT = "";
-
-	/**
-	 * The cached value of the '{@link #getManualImports() <em>Manual Imports</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getManualImports()
-	 * @generated
-	 * @ordered
-	 */
-	protected String manualImports = MANUAL_IMPORTS_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getBase_class() <em>Base class</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_class()
-	 * @generated
-	 * @ordered
-	 */
-	protected org.eclipse.uml2.uml.Class base_class;
-
-	/**
-	 * The cached value of the '{@link #getBase_Classifier() <em>Base Classifier</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_Classifier()
-	 * @generated
-	 * @ordered
-	 */
-	protected Classifier base_Classifier;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ImportImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.IMPORT;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getManualImports() {
-		return manualImports;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setManualImports(String newManualImports) {
-		String oldManualImports = manualImports;
-		manualImports = newManualImports;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.IMPORT__MANUAL_IMPORTS, oldManualImports, manualImports));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.uml2.uml.Class getBase_class() {
-		if (base_class != null && base_class.eIsProxy()) {
-			InternalEObject oldBase_class = (InternalEObject)base_class;
-			base_class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_class);
-			if (base_class != oldBase_class) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.IMPORT__BASE_CLASS, oldBase_class, base_class));
-			}
-		}
-		return base_class;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.uml2.uml.Class basicGetBase_class() {
-		return base_class;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_class(org.eclipse.uml2.uml.Class newBase_class) {
-		org.eclipse.uml2.uml.Class oldBase_class = base_class;
-		base_class = newBase_class;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.IMPORT__BASE_CLASS, oldBase_class, base_class));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Classifier getBase_Classifier() {
-		if (base_Classifier != null && base_Classifier.eIsProxy()) {
-			InternalEObject oldBase_Classifier = (InternalEObject)base_Classifier;
-			base_Classifier = (Classifier)eResolveProxy(oldBase_Classifier);
-			if (base_Classifier != oldBase_Classifier) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.IMPORT__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));
-			}
-		}
-		return base_Classifier;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Classifier basicGetBase_Classifier() {
-		return base_Classifier;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_Classifier(Classifier newBase_Classifier) {
-		Classifier oldBase_Classifier = base_Classifier;
-		base_Classifier = newBase_Classifier;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.IMPORT__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.IMPORT__MANUAL_IMPORTS:
-				return getManualImports();
-			case PapyrusJavaPackage.IMPORT__BASE_CLASS:
-				if (resolve) return getBase_class();
-				return basicGetBase_class();
-			case PapyrusJavaPackage.IMPORT__BASE_CLASSIFIER:
-				if (resolve) return getBase_Classifier();
-				return basicGetBase_Classifier();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.IMPORT__MANUAL_IMPORTS:
-				setManualImports((String)newValue);
-				return;
-			case PapyrusJavaPackage.IMPORT__BASE_CLASS:
-				setBase_class((org.eclipse.uml2.uml.Class)newValue);
-				return;
-			case PapyrusJavaPackage.IMPORT__BASE_CLASSIFIER:
-				setBase_Classifier((Classifier)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.IMPORT__MANUAL_IMPORTS:
-				setManualImports(MANUAL_IMPORTS_EDEFAULT);
-				return;
-			case PapyrusJavaPackage.IMPORT__BASE_CLASS:
-				setBase_class((org.eclipse.uml2.uml.Class)null);
-				return;
-			case PapyrusJavaPackage.IMPORT__BASE_CLASSIFIER:
-				setBase_Classifier((Classifier)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.IMPORT__MANUAL_IMPORTS:
-				return MANUAL_IMPORTS_EDEFAULT == null ? manualImports != null : !MANUAL_IMPORTS_EDEFAULT.equals(manualImports);
-			case PapyrusJavaPackage.IMPORT__BASE_CLASS:
-				return base_class != null;
-			case PapyrusJavaPackage.IMPORT__BASE_CLASSIFIER:
-				return base_Classifier != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (manualImports: ");
-		result.append(manualImports);
-		result.append(')');
-		return result.toString();
-	}
-
-} //ImportImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/ManualGenerationImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/ManualGenerationImpl.java
deleted file mode 100644
index eee01df..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/ManualGenerationImpl.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ManualGeneration;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Manual Generation</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ManualGenerationImpl#getExtensionBody <em>Extension Body</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.ManualGenerationImpl#getBase_Class <em>Base Class</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ManualGenerationImpl extends MinimalEObjectImpl.Container implements ManualGeneration {
-	/**
-	 * The default value of the '{@link #getExtensionBody() <em>Extension Body</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExtensionBody()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String EXTENSION_BODY_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getExtensionBody() <em>Extension Body</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExtensionBody()
-	 * @generated
-	 * @ordered
-	 */
-	protected String extensionBody = EXTENSION_BODY_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_Class()
-	 * @generated
-	 * @ordered
-	 */
-	protected org.eclipse.uml2.uml.Class base_Class;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ManualGenerationImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.MANUAL_GENERATION;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getExtensionBody() {
-		return extensionBody;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setExtensionBody(String newExtensionBody) {
-		String oldExtensionBody = extensionBody;
-		extensionBody = newExtensionBody;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.MANUAL_GENERATION__EXTENSION_BODY, oldExtensionBody, extensionBody));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.uml2.uml.Class getBase_Class() {
-		if (base_Class != null && base_Class.eIsProxy()) {
-			InternalEObject oldBase_Class = (InternalEObject)base_Class;
-			base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
-			if (base_Class != oldBase_Class) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.MANUAL_GENERATION__BASE_CLASS, oldBase_Class, base_Class));
-			}
-		}
-		return base_Class;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.uml2.uml.Class basicGetBase_Class() {
-		return base_Class;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
-		org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
-		base_Class = newBase_Class;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.MANUAL_GENERATION__BASE_CLASS, oldBase_Class, base_Class));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.MANUAL_GENERATION__EXTENSION_BODY:
-				return getExtensionBody();
-			case PapyrusJavaPackage.MANUAL_GENERATION__BASE_CLASS:
-				if (resolve) return getBase_Class();
-				return basicGetBase_Class();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.MANUAL_GENERATION__EXTENSION_BODY:
-				setExtensionBody((String)newValue);
-				return;
-			case PapyrusJavaPackage.MANUAL_GENERATION__BASE_CLASS:
-				setBase_Class((org.eclipse.uml2.uml.Class)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.MANUAL_GENERATION__EXTENSION_BODY:
-				setExtensionBody(EXTENSION_BODY_EDEFAULT);
-				return;
-			case PapyrusJavaPackage.MANUAL_GENERATION__BASE_CLASS:
-				setBase_Class((org.eclipse.uml2.uml.Class)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.MANUAL_GENERATION__EXTENSION_BODY:
-				return EXTENSION_BODY_EDEFAULT == null ? extensionBody != null : !EXTENSION_BODY_EDEFAULT.equals(extensionBody);
-			case PapyrusJavaPackage.MANUAL_GENERATION__BASE_CLASS:
-				return base_Class != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (extensionBody: ");
-		result.append(extensionBody);
-		result.append(')');
-		return result.toString();
-	}
-
-} //ManualGenerationImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/NativeImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/NativeImpl.java
deleted file mode 100644
index 685a038..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/NativeImpl.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Native;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-
-import org.eclipse.uml2.uml.Operation;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Native</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.NativeImpl#getBase_Operation <em>Base Operation</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class NativeImpl extends MinimalEObjectImpl.Container implements Native {
-	/**
-	 * The cached value of the '{@link #getBase_Operation() <em>Base Operation</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_Operation()
-	 * @generated
-	 * @ordered
-	 */
-	protected Operation base_Operation;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NativeImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.NATIVE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Operation getBase_Operation() {
-		if (base_Operation != null && base_Operation.eIsProxy()) {
-			InternalEObject oldBase_Operation = (InternalEObject)base_Operation;
-			base_Operation = (Operation)eResolveProxy(oldBase_Operation);
-			if (base_Operation != oldBase_Operation) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.NATIVE__BASE_OPERATION, oldBase_Operation, base_Operation));
-			}
-		}
-		return base_Operation;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Operation basicGetBase_Operation() {
-		return base_Operation;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_Operation(Operation newBase_Operation) {
-		Operation oldBase_Operation = base_Operation;
-		base_Operation = newBase_Operation;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.NATIVE__BASE_OPERATION, oldBase_Operation, base_Operation));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.NATIVE__BASE_OPERATION:
-				if (resolve) return getBase_Operation();
-				return basicGetBase_Operation();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.NATIVE__BASE_OPERATION:
-				setBase_Operation((Operation)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.NATIVE__BASE_OPERATION:
-				setBase_Operation((Operation)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.NATIVE__BASE_OPERATION:
-				return base_Operation != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //NativeImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/NoCodeGenImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/NoCodeGenImpl.java
deleted file mode 100644
index 42913a0..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/NoCodeGenImpl.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.NoCodeGen;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-
-import org.eclipse.uml2.uml.Element;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>No Code Gen</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.NoCodeGenImpl#getBase_element <em>Base element</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class NoCodeGenImpl extends MinimalEObjectImpl.Container implements NoCodeGen {
-	/**
-	 * The cached value of the '{@link #getBase_element() <em>Base element</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_element()
-	 * @generated
-	 * @ordered
-	 */
-	protected Element base_element;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected NoCodeGenImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.NO_CODE_GEN;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Element getBase_element() {
-		if (base_element != null && base_element.eIsProxy()) {
-			InternalEObject oldBase_element = (InternalEObject)base_element;
-			base_element = (Element)eResolveProxy(oldBase_element);
-			if (base_element != oldBase_element) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.NO_CODE_GEN__BASE_ELEMENT, oldBase_element, base_element));
-			}
-		}
-		return base_element;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Element basicGetBase_element() {
-		return base_element;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_element(Element newBase_element) {
-		Element oldBase_element = base_element;
-		base_element = newBase_element;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.NO_CODE_GEN__BASE_ELEMENT, oldBase_element, base_element));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.NO_CODE_GEN__BASE_ELEMENT:
-				if (resolve) return getBase_element();
-				return basicGetBase_element();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.NO_CODE_GEN__BASE_ELEMENT:
-				setBase_element((Element)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.NO_CODE_GEN__BASE_ELEMENT:
-				setBase_element((Element)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.NO_CODE_GEN__BASE_ELEMENT:
-				return base_element != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //NoCodeGenImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/PapyrusJavaFactoryImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/PapyrusJavaFactoryImpl.java
deleted file mode 100644
index 6b51f50..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/PapyrusJavaFactoryImpl.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-
-import org.eclipse.emf.ecore.impl.EFactoryImpl;
-
-import org.eclipse.emf.ecore.plugin.EcorePlugin;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.*;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Factory</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class PapyrusJavaFactoryImpl extends EFactoryImpl implements PapyrusJavaFactory {
-	/**
-	 * Creates the default factory implementation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static PapyrusJavaFactory init() {
-		try {
-			PapyrusJavaFactory thePapyrusJavaFactory = (PapyrusJavaFactory)EPackage.Registry.INSTANCE.getEFactory(PapyrusJavaPackage.eNS_URI);
-			if (thePapyrusJavaFactory != null) {
-				return thePapyrusJavaFactory;
-			}
-		}
-		catch (Exception exception) {
-			EcorePlugin.INSTANCE.log(exception);
-		}
-		return new PapyrusJavaFactoryImpl();
-	}
-
-	/**
-	 * Creates an instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PapyrusJavaFactoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EObject create(EClass eClass) {
-		switch (eClass.getClassifierID()) {
-			case PapyrusJavaPackage.ARRAY: return createArray();
-			case PapyrusJavaPackage.EXTERNAL: return createExternal();
-			case PapyrusJavaPackage.EXTERN_LIBRARY: return createExternLibrary();
-			case PapyrusJavaPackage.IMPORT: return createImport();
-			case PapyrusJavaPackage.NO_CODE_GEN: return createNoCodeGen();
-			case PapyrusJavaPackage.TEMPLATE: return createTemplate();
-			case PapyrusJavaPackage.TEMPLATE_BINDING: return createTemplateBinding();
-			case PapyrusJavaPackage.TEMPLATE_PARAMETER: return createTemplateParameter();
-			case PapyrusJavaPackage.MANUAL_GENERATION: return createManualGeneration();
-			case PapyrusJavaPackage.VARIADIC: return createVariadic();
-			case PapyrusJavaPackage.VOLATILE: return createVolatile();
-			case PapyrusJavaPackage.TRANSIENT: return createTransient();
-			case PapyrusJavaPackage.SYNCHRONIZED: return createSynchronized();
-			case PapyrusJavaPackage.STRICTFP: return createStrictfp();
-			case PapyrusJavaPackage.NATIVE: return createNative();
-			case PapyrusJavaPackage.DEFAULT: return createDefault();
-			case PapyrusJavaPackage.STATIC_CLASSIFIER: return createStaticClassifier();
-			case PapyrusJavaPackage.FINAL: return createFinal();
-			default:
-				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Array createArray() {
-		ArrayImpl array = new ArrayImpl();
-		return array;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public External createExternal() {
-		ExternalImpl external = new ExternalImpl();
-		return external;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ExternLibrary createExternLibrary() {
-		ExternLibraryImpl externLibrary = new ExternLibraryImpl();
-		return externLibrary;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Import createImport() {
-		ImportImpl import_ = new ImportImpl();
-		return import_;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NoCodeGen createNoCodeGen() {
-		NoCodeGenImpl noCodeGen = new NoCodeGenImpl();
-		return noCodeGen;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Template createTemplate() {
-		TemplateImpl template = new TemplateImpl();
-		return template;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public TemplateBinding createTemplateBinding() {
-		TemplateBindingImpl templateBinding = new TemplateBindingImpl();
-		return templateBinding;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public TemplateParameter createTemplateParameter() {
-		TemplateParameterImpl templateParameter = new TemplateParameterImpl();
-		return templateParameter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ManualGeneration createManualGeneration() {
-		ManualGenerationImpl manualGeneration = new ManualGenerationImpl();
-		return manualGeneration;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Variadic createVariadic() {
-		VariadicImpl variadic = new VariadicImpl();
-		return variadic;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Volatile createVolatile() {
-		VolatileImpl volatile_ = new VolatileImpl();
-		return volatile_;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Transient createTransient() {
-		TransientImpl transient_ = new TransientImpl();
-		return transient_;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Synchronized createSynchronized() {
-		SynchronizedImpl synchronized_ = new SynchronizedImpl();
-		return synchronized_;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Strictfp createStrictfp() {
-		StrictfpImpl strictfp_ = new StrictfpImpl();
-		return strictfp_;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Native createNative() {
-		NativeImpl native_ = new NativeImpl();
-		return native_;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Default createDefault() {
-		DefaultImpl default_ = new DefaultImpl();
-		return default_;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public StaticClassifier createStaticClassifier() {
-		StaticClassifierImpl staticClassifier = new StaticClassifierImpl();
-		return staticClassifier;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Final createFinal() {
-		FinalImpl final_ = new FinalImpl();
-		return final_;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PapyrusJavaPackage getPapyrusJavaPackage() {
-		return (PapyrusJavaPackage)getEPackage();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @deprecated
-	 * @generated
-	 */
-	@Deprecated
-	public static PapyrusJavaPackage getPackage() {
-		return PapyrusJavaPackage.eINSTANCE;
-	}
-
-} //PapyrusJavaFactoryImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/PapyrusJavaPackageImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/PapyrusJavaPackageImpl.java
deleted file mode 100644
index 793dafa..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/PapyrusJavaPackageImpl.java
+++ /dev/null
@@ -1,898 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Default;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.External;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Final;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ManualGeneration;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Native;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.NoCodeGen;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaFactory;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.StaticClassifier;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Strictfp;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Synchronized;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Template;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateBinding;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateParameter;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Transient;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Variadic;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Volatile;
-
-import org.eclipse.uml2.types.TypesPackage;
-
-import org.eclipse.uml2.uml.UMLPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class PapyrusJavaPackageImpl extends EPackageImpl implements PapyrusJavaPackage {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass arrayEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass externalEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass externLibraryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass importEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass noCodeGenEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass templateEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass templateBindingEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass templateParameterEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass manualGenerationEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass variadicEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass volatileEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass transientEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass synchronizedEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass strictfpEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass nativeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass defaultEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass staticClassifierEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass finalEClass = null;
-
-	/**
-	 * Creates an instance of the model <b>Package</b>, registered with
-	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
-	 * package URI value.
-	 * <p>Note: the correct way to create the package is via the static
-	 * factory method {@link #init init()}, which also performs
-	 * initialization of the package, or returns the registered package,
-	 * if one already exists.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.emf.ecore.EPackage.Registry
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private PapyrusJavaPackageImpl() {
-		super(eNS_URI, PapyrusJavaFactory.eINSTANCE);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static boolean isInited = false;
-
-	/**
-	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
-	 * 
-	 * <p>This method is used to initialize {@link PapyrusJavaPackage#eINSTANCE} when that field is accessed.
-	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #eNS_URI
-	 * @see #createPackageContents()
-	 * @see #initializePackageContents()
-	 * @generated
-	 */
-	public static PapyrusJavaPackage init() {
-		if (isInited) return (PapyrusJavaPackage)EPackage.Registry.INSTANCE.getEPackage(PapyrusJavaPackage.eNS_URI);
-
-		// Obtain or create and register package
-		PapyrusJavaPackageImpl thePapyrusJavaPackage = (PapyrusJavaPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof PapyrusJavaPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new PapyrusJavaPackageImpl());
-
-		isInited = true;
-
-		// Initialize simple dependencies
-		UMLPackage.eINSTANCE.eClass();
-
-		// Create package meta-data objects
-		thePapyrusJavaPackage.createPackageContents();
-
-		// Initialize created meta-data
-		thePapyrusJavaPackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		thePapyrusJavaPackage.freeze();
-
-  
-		// Update the registry and return the package
-		EPackage.Registry.INSTANCE.put(PapyrusJavaPackage.eNS_URI, thePapyrusJavaPackage);
-		return thePapyrusJavaPackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getArray() {
-		return arrayEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getArray_Base_parameter() {
-		return (EReference)arrayEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getArray_Definition() {
-		return (EAttribute)arrayEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getArray_Base_property() {
-		return (EReference)arrayEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getArray_Base_association() {
-		return (EReference)arrayEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getExternal() {
-		return externalEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getExternal_Name() {
-		return (EAttribute)externalEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getExternal_Base_Classifier() {
-		return (EReference)externalEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getExternLibrary() {
-		return externLibraryEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getExternLibrary_Base_package() {
-		return (EReference)externLibraryEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getExternLibrary_ImportPaths() {
-		return (EAttribute)externLibraryEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getExternLibrary_LibPaths() {
-		return (EAttribute)externLibraryEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getExternLibrary_Libs() {
-		return (EAttribute)externLibraryEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getExternLibrary_Imports() {
-		return (EAttribute)externLibraryEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getImport() {
-		return importEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getImport_ManualImports() {
-		return (EAttribute)importEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getImport_Base_class() {
-		return (EReference)importEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getImport_Base_Classifier() {
-		return (EReference)importEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getNoCodeGen() {
-		return noCodeGenEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNoCodeGen_Base_element() {
-		return (EReference)noCodeGenEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getTemplate() {
-		return templateEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getTemplate_Declaration() {
-		return (EAttribute)templateEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getTemplate_Base_class() {
-		return (EReference)templateEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getTemplateBinding() {
-		return templateBindingEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getTemplateBinding_Binding() {
-		return (EAttribute)templateBindingEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getTemplateBinding_Base_templatebinding() {
-		return (EReference)templateBindingEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getTemplateParameter() {
-		return templateParameterEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getTemplateParameter_Name() {
-		return (EAttribute)templateParameterEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getTemplateParameter_Base_templateparameter() {
-		return (EReference)templateParameterEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getManualGeneration() {
-		return manualGenerationEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getManualGeneration_ExtensionBody() {
-		return (EAttribute)manualGenerationEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getManualGeneration_Base_Class() {
-		return (EReference)manualGenerationEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getVariadic() {
-		return variadicEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getVariadic_Base_Parameter() {
-		return (EReference)variadicEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getVolatile() {
-		return volatileEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getVolatile_Base_Property() {
-		return (EReference)volatileEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getTransient() {
-		return transientEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getTransient_Base_Property() {
-		return (EReference)transientEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getSynchronized() {
-		return synchronizedEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getSynchronized_Base_Operation() {
-		return (EReference)synchronizedEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getStrictfp() {
-		return strictfpEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getStrictfp_Base_Operation() {
-		return (EReference)strictfpEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getStrictfp_Base_Classifier() {
-		return (EReference)strictfpEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getNative() {
-		return nativeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getNative_Base_Operation() {
-		return (EReference)nativeEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getDefault() {
-		return defaultEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getDefault_Base_Operation() {
-		return (EReference)defaultEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getStaticClassifier() {
-		return staticClassifierEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getStaticClassifier_Base_Classifier() {
-		return (EReference)staticClassifierEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getFinal() {
-		return finalEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getFinal_Base_Parameter() {
-		return (EReference)finalEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PapyrusJavaFactory getPapyrusJavaFactory() {
-		return (PapyrusJavaFactory)getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package.  This method is
-	 * guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void createPackageContents() {
-		if (isCreated) return;
-		isCreated = true;
-
-		// Create classes and their features
-		arrayEClass = createEClass(ARRAY);
-		createEReference(arrayEClass, ARRAY__BASE_PARAMETER);
-		createEAttribute(arrayEClass, ARRAY__DEFINITION);
-		createEReference(arrayEClass, ARRAY__BASE_PROPERTY);
-		createEReference(arrayEClass, ARRAY__BASE_ASSOCIATION);
-
-		externalEClass = createEClass(EXTERNAL);
-		createEAttribute(externalEClass, EXTERNAL__NAME);
-		createEReference(externalEClass, EXTERNAL__BASE_CLASSIFIER);
-
-		externLibraryEClass = createEClass(EXTERN_LIBRARY);
-		createEReference(externLibraryEClass, EXTERN_LIBRARY__BASE_PACKAGE);
-		createEAttribute(externLibraryEClass, EXTERN_LIBRARY__IMPORT_PATHS);
-		createEAttribute(externLibraryEClass, EXTERN_LIBRARY__LIB_PATHS);
-		createEAttribute(externLibraryEClass, EXTERN_LIBRARY__LIBS);
-		createEAttribute(externLibraryEClass, EXTERN_LIBRARY__IMPORTS);
-
-		importEClass = createEClass(IMPORT);
-		createEAttribute(importEClass, IMPORT__MANUAL_IMPORTS);
-		createEReference(importEClass, IMPORT__BASE_CLASS);
-		createEReference(importEClass, IMPORT__BASE_CLASSIFIER);
-
-		noCodeGenEClass = createEClass(NO_CODE_GEN);
-		createEReference(noCodeGenEClass, NO_CODE_GEN__BASE_ELEMENT);
-
-		templateEClass = createEClass(TEMPLATE);
-		createEAttribute(templateEClass, TEMPLATE__DECLARATION);
-		createEReference(templateEClass, TEMPLATE__BASE_CLASS);
-
-		templateBindingEClass = createEClass(TEMPLATE_BINDING);
-		createEAttribute(templateBindingEClass, TEMPLATE_BINDING__BINDING);
-		createEReference(templateBindingEClass, TEMPLATE_BINDING__BASE_TEMPLATEBINDING);
-
-		templateParameterEClass = createEClass(TEMPLATE_PARAMETER);
-		createEAttribute(templateParameterEClass, TEMPLATE_PARAMETER__NAME);
-		createEReference(templateParameterEClass, TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER);
-
-		manualGenerationEClass = createEClass(MANUAL_GENERATION);
-		createEAttribute(manualGenerationEClass, MANUAL_GENERATION__EXTENSION_BODY);
-		createEReference(manualGenerationEClass, MANUAL_GENERATION__BASE_CLASS);
-
-		variadicEClass = createEClass(VARIADIC);
-		createEReference(variadicEClass, VARIADIC__BASE_PARAMETER);
-
-		volatileEClass = createEClass(VOLATILE);
-		createEReference(volatileEClass, VOLATILE__BASE_PROPERTY);
-
-		transientEClass = createEClass(TRANSIENT);
-		createEReference(transientEClass, TRANSIENT__BASE_PROPERTY);
-
-		synchronizedEClass = createEClass(SYNCHRONIZED);
-		createEReference(synchronizedEClass, SYNCHRONIZED__BASE_OPERATION);
-
-		strictfpEClass = createEClass(STRICTFP);
-		createEReference(strictfpEClass, STRICTFP__BASE_OPERATION);
-		createEReference(strictfpEClass, STRICTFP__BASE_CLASSIFIER);
-
-		nativeEClass = createEClass(NATIVE);
-		createEReference(nativeEClass, NATIVE__BASE_OPERATION);
-
-		defaultEClass = createEClass(DEFAULT);
-		createEReference(defaultEClass, DEFAULT__BASE_OPERATION);
-
-		staticClassifierEClass = createEClass(STATIC_CLASSIFIER);
-		createEReference(staticClassifierEClass, STATIC_CLASSIFIER__BASE_CLASSIFIER);
-
-		finalEClass = createEClass(FINAL);
-		createEReference(finalEClass, FINAL__BASE_PARAMETER);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model.  This
-	 * method is guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void initializePackageContents() {
-		if (isInitialized) return;
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Obtain other dependent packages
-		UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
-		TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
-
-		// Create type parameters
-
-		// Set bounds for type parameters
-
-		// Add supertypes to classes
-
-		// Initialize classes, features, and operations; add parameters
-		initEClass(arrayEClass, Array.class, "Array", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getArray_Base_parameter(), theUMLPackage.getParameter(), null, "base_parameter", null, 0, 1, Array.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEAttribute(getArray_Definition(), theTypesPackage.getString(), "definition", null, 1, 1, Array.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEReference(getArray_Base_property(), theUMLPackage.getProperty(), null, "base_property", null, 0, 1, Array.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEReference(getArray_Base_association(), theUMLPackage.getAssociation(), null, "base_association", null, 0, 1, Array.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(externalEClass, External.class, "External", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getExternal_Name(), theTypesPackage.getString(), "name", null, 0, 1, External.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEReference(getExternal_Base_Classifier(), theUMLPackage.getClassifier(), null, "base_Classifier", null, 1, 1, External.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(externLibraryEClass, ExternLibrary.class, "ExternLibrary", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getExternLibrary_Base_package(), theUMLPackage.getPackage(), null, "base_package", null, 1, 1, ExternLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEAttribute(getExternLibrary_ImportPaths(), theTypesPackage.getString(), "importPaths", null, 0, -1, ExternLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEAttribute(getExternLibrary_LibPaths(), theTypesPackage.getString(), "libPaths", null, 0, -1, ExternLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEAttribute(getExternLibrary_Libs(), theTypesPackage.getString(), "libs", null, 0, -1, ExternLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEAttribute(getExternLibrary_Imports(), theTypesPackage.getString(), "imports", null, 0, -1, ExternLibrary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(importEClass, Import.class, "Import", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getImport_ManualImports(), theTypesPackage.getString(), "manualImports", "", 0, 1, Import.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEReference(getImport_Base_class(), theUMLPackage.getClass_(), null, "base_class", null, 0, 1, Import.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEReference(getImport_Base_Classifier(), theUMLPackage.getClassifier(), null, "base_Classifier", null, 0, 1, Import.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(noCodeGenEClass, NoCodeGen.class, "NoCodeGen", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getNoCodeGen_Base_element(), theUMLPackage.getElement(), null, "base_element", null, 1, 1, NoCodeGen.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(templateEClass, Template.class, "Template", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getTemplate_Declaration(), theTypesPackage.getString(), "declaration", null, 1, 1, Template.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEReference(getTemplate_Base_class(), theUMLPackage.getClass_(), null, "base_class", null, 1, 1, Template.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(templateBindingEClass, TemplateBinding.class, "TemplateBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getTemplateBinding_Binding(), theTypesPackage.getString(), "binding", null, 1, 1, TemplateBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEReference(getTemplateBinding_Base_templatebinding(), theUMLPackage.getTemplateBinding(), null, "base_templatebinding", null, 1, 1, TemplateBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(templateParameterEClass, TemplateParameter.class, "TemplateParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getTemplateParameter_Name(), theTypesPackage.getString(), "name", null, 1, 1, TemplateParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEReference(getTemplateParameter_Base_templateparameter(), theUMLPackage.getTemplateParameter(), null, "base_templateparameter", null, 1, 1, TemplateParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(manualGenerationEClass, ManualGeneration.class, "ManualGeneration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getManualGeneration_ExtensionBody(), theTypesPackage.getString(), "extensionBody", null, 1, 1, ManualGeneration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEReference(getManualGeneration_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, ManualGeneration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(variadicEClass, Variadic.class, "Variadic", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getVariadic_Base_Parameter(), theUMLPackage.getParameter(), null, "base_Parameter", null, 1, 1, Variadic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(volatileEClass, Volatile.class, "Volatile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getVolatile_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, Volatile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(transientEClass, Transient.class, "Transient", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getTransient_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, Transient.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(synchronizedEClass, Synchronized.class, "Synchronized", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getSynchronized_Base_Operation(), theUMLPackage.getOperation(), null, "base_Operation", null, 1, 1, Synchronized.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(strictfpEClass, Strictfp.class, "Strictfp", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getStrictfp_Base_Operation(), theUMLPackage.getOperation(), null, "base_Operation", null, 1, 1, Strictfp.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEReference(getStrictfp_Base_Classifier(), theUMLPackage.getClassifier(), null, "base_Classifier", null, 1, 1, Strictfp.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(nativeEClass, Native.class, "Native", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getNative_Base_Operation(), theUMLPackage.getOperation(), null, "base_Operation", null, 1, 1, Native.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(defaultEClass, Default.class, "Default", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getDefault_Base_Operation(), theUMLPackage.getOperation(), null, "base_Operation", null, 1, 1, Default.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(staticClassifierEClass, StaticClassifier.class, "StaticClassifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getStaticClassifier_Base_Classifier(), theUMLPackage.getClassifier(), null, "base_Classifier", null, 1, 1, StaticClassifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		initEClass(finalEClass, Final.class, "Final", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getFinal_Base_Parameter(), theUMLPackage.getParameter(), null, "base_Parameter", null, 1, 1, Final.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-} //PapyrusJavaPackageImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/StaticClassifierImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/StaticClassifierImpl.java
deleted file mode 100644
index 6800db3..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/StaticClassifierImpl.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.StaticClassifier;
-
-import org.eclipse.uml2.uml.Classifier;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Static Classifier</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.StaticClassifierImpl#getBase_Classifier <em>Base Classifier</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class StaticClassifierImpl extends MinimalEObjectImpl.Container implements StaticClassifier {
-	/**
-	 * The cached value of the '{@link #getBase_Classifier() <em>Base Classifier</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_Classifier()
-	 * @generated
-	 * @ordered
-	 */
-	protected Classifier base_Classifier;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected StaticClassifierImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.STATIC_CLASSIFIER;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Classifier getBase_Classifier() {
-		if (base_Classifier != null && base_Classifier.eIsProxy()) {
-			InternalEObject oldBase_Classifier = (InternalEObject)base_Classifier;
-			base_Classifier = (Classifier)eResolveProxy(oldBase_Classifier);
-			if (base_Classifier != oldBase_Classifier) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.STATIC_CLASSIFIER__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));
-			}
-		}
-		return base_Classifier;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Classifier basicGetBase_Classifier() {
-		return base_Classifier;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_Classifier(Classifier newBase_Classifier) {
-		Classifier oldBase_Classifier = base_Classifier;
-		base_Classifier = newBase_Classifier;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.STATIC_CLASSIFIER__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.STATIC_CLASSIFIER__BASE_CLASSIFIER:
-				if (resolve) return getBase_Classifier();
-				return basicGetBase_Classifier();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.STATIC_CLASSIFIER__BASE_CLASSIFIER:
-				setBase_Classifier((Classifier)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.STATIC_CLASSIFIER__BASE_CLASSIFIER:
-				setBase_Classifier((Classifier)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.STATIC_CLASSIFIER__BASE_CLASSIFIER:
-				return base_Classifier != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //StaticClassifierImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/StrictfpImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/StrictfpImpl.java
deleted file mode 100644
index dd1014f..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/StrictfpImpl.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Strictfp;
-
-import org.eclipse.uml2.uml.Classifier;
-import org.eclipse.uml2.uml.Operation;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Strictfp</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.StrictfpImpl#getBase_Operation <em>Base Operation</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.StrictfpImpl#getBase_Classifier <em>Base Classifier</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class StrictfpImpl extends MinimalEObjectImpl.Container implements Strictfp {
-	/**
-	 * The cached value of the '{@link #getBase_Operation() <em>Base Operation</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_Operation()
-	 * @generated
-	 * @ordered
-	 */
-	protected Operation base_Operation;
-
-	/**
-	 * The cached value of the '{@link #getBase_Classifier() <em>Base Classifier</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_Classifier()
-	 * @generated
-	 * @ordered
-	 */
-	protected Classifier base_Classifier;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected StrictfpImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.STRICTFP;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Operation getBase_Operation() {
-		if (base_Operation != null && base_Operation.eIsProxy()) {
-			InternalEObject oldBase_Operation = (InternalEObject)base_Operation;
-			base_Operation = (Operation)eResolveProxy(oldBase_Operation);
-			if (base_Operation != oldBase_Operation) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.STRICTFP__BASE_OPERATION, oldBase_Operation, base_Operation));
-			}
-		}
-		return base_Operation;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Operation basicGetBase_Operation() {
-		return base_Operation;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_Operation(Operation newBase_Operation) {
-		Operation oldBase_Operation = base_Operation;
-		base_Operation = newBase_Operation;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.STRICTFP__BASE_OPERATION, oldBase_Operation, base_Operation));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Classifier getBase_Classifier() {
-		if (base_Classifier != null && base_Classifier.eIsProxy()) {
-			InternalEObject oldBase_Classifier = (InternalEObject)base_Classifier;
-			base_Classifier = (Classifier)eResolveProxy(oldBase_Classifier);
-			if (base_Classifier != oldBase_Classifier) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.STRICTFP__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));
-			}
-		}
-		return base_Classifier;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Classifier basicGetBase_Classifier() {
-		return base_Classifier;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_Classifier(Classifier newBase_Classifier) {
-		Classifier oldBase_Classifier = base_Classifier;
-		base_Classifier = newBase_Classifier;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.STRICTFP__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.STRICTFP__BASE_OPERATION:
-				if (resolve) return getBase_Operation();
-				return basicGetBase_Operation();
-			case PapyrusJavaPackage.STRICTFP__BASE_CLASSIFIER:
-				if (resolve) return getBase_Classifier();
-				return basicGetBase_Classifier();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.STRICTFP__BASE_OPERATION:
-				setBase_Operation((Operation)newValue);
-				return;
-			case PapyrusJavaPackage.STRICTFP__BASE_CLASSIFIER:
-				setBase_Classifier((Classifier)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.STRICTFP__BASE_OPERATION:
-				setBase_Operation((Operation)null);
-				return;
-			case PapyrusJavaPackage.STRICTFP__BASE_CLASSIFIER:
-				setBase_Classifier((Classifier)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.STRICTFP__BASE_OPERATION:
-				return base_Operation != null;
-			case PapyrusJavaPackage.STRICTFP__BASE_CLASSIFIER:
-				return base_Classifier != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //StrictfpImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/SynchronizedImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/SynchronizedImpl.java
deleted file mode 100644
index b87e176..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/SynchronizedImpl.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Synchronized;
-
-import org.eclipse.uml2.uml.Operation;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Synchronized</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.SynchronizedImpl#getBase_Operation <em>Base Operation</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class SynchronizedImpl extends MinimalEObjectImpl.Container implements Synchronized {
-	/**
-	 * The cached value of the '{@link #getBase_Operation() <em>Base Operation</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_Operation()
-	 * @generated
-	 * @ordered
-	 */
-	protected Operation base_Operation;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected SynchronizedImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.SYNCHRONIZED;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Operation getBase_Operation() {
-		if (base_Operation != null && base_Operation.eIsProxy()) {
-			InternalEObject oldBase_Operation = (InternalEObject)base_Operation;
-			base_Operation = (Operation)eResolveProxy(oldBase_Operation);
-			if (base_Operation != oldBase_Operation) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.SYNCHRONIZED__BASE_OPERATION, oldBase_Operation, base_Operation));
-			}
-		}
-		return base_Operation;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Operation basicGetBase_Operation() {
-		return base_Operation;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_Operation(Operation newBase_Operation) {
-		Operation oldBase_Operation = base_Operation;
-		base_Operation = newBase_Operation;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.SYNCHRONIZED__BASE_OPERATION, oldBase_Operation, base_Operation));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.SYNCHRONIZED__BASE_OPERATION:
-				if (resolve) return getBase_Operation();
-				return basicGetBase_Operation();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.SYNCHRONIZED__BASE_OPERATION:
-				setBase_Operation((Operation)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.SYNCHRONIZED__BASE_OPERATION:
-				setBase_Operation((Operation)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.SYNCHRONIZED__BASE_OPERATION:
-				return base_Operation != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //SynchronizedImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/TemplateBindingImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/TemplateBindingImpl.java
deleted file mode 100644
index 4ddcf9d..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/TemplateBindingImpl.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateBinding;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Template Binding</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateBindingImpl#getBinding <em>Binding</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateBindingImpl#getBase_templatebinding <em>Base templatebinding</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class TemplateBindingImpl extends MinimalEObjectImpl.Container implements TemplateBinding {
-	/**
-	 * The default value of the '{@link #getBinding() <em>Binding</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBinding()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String BINDING_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getBinding() <em>Binding</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBinding()
-	 * @generated
-	 * @ordered
-	 */
-	protected String binding = BINDING_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getBase_templatebinding() <em>Base templatebinding</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_templatebinding()
-	 * @generated
-	 * @ordered
-	 */
-	protected org.eclipse.uml2.uml.TemplateBinding base_templatebinding;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TemplateBindingImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.TEMPLATE_BINDING;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getBinding() {
-		return binding;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBinding(String newBinding) {
-		String oldBinding = binding;
-		binding = newBinding;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.TEMPLATE_BINDING__BINDING, oldBinding, binding));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.uml2.uml.TemplateBinding getBase_templatebinding() {
-		if (base_templatebinding != null && base_templatebinding.eIsProxy()) {
-			InternalEObject oldBase_templatebinding = (InternalEObject)base_templatebinding;
-			base_templatebinding = (org.eclipse.uml2.uml.TemplateBinding)eResolveProxy(oldBase_templatebinding);
-			if (base_templatebinding != oldBase_templatebinding) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.TEMPLATE_BINDING__BASE_TEMPLATEBINDING, oldBase_templatebinding, base_templatebinding));
-			}
-		}
-		return base_templatebinding;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.uml2.uml.TemplateBinding basicGetBase_templatebinding() {
-		return base_templatebinding;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_templatebinding(org.eclipse.uml2.uml.TemplateBinding newBase_templatebinding) {
-		org.eclipse.uml2.uml.TemplateBinding oldBase_templatebinding = base_templatebinding;
-		base_templatebinding = newBase_templatebinding;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.TEMPLATE_BINDING__BASE_TEMPLATEBINDING, oldBase_templatebinding, base_templatebinding));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.TEMPLATE_BINDING__BINDING:
-				return getBinding();
-			case PapyrusJavaPackage.TEMPLATE_BINDING__BASE_TEMPLATEBINDING:
-				if (resolve) return getBase_templatebinding();
-				return basicGetBase_templatebinding();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.TEMPLATE_BINDING__BINDING:
-				setBinding((String)newValue);
-				return;
-			case PapyrusJavaPackage.TEMPLATE_BINDING__BASE_TEMPLATEBINDING:
-				setBase_templatebinding((org.eclipse.uml2.uml.TemplateBinding)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.TEMPLATE_BINDING__BINDING:
-				setBinding(BINDING_EDEFAULT);
-				return;
-			case PapyrusJavaPackage.TEMPLATE_BINDING__BASE_TEMPLATEBINDING:
-				setBase_templatebinding((org.eclipse.uml2.uml.TemplateBinding)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.TEMPLATE_BINDING__BINDING:
-				return BINDING_EDEFAULT == null ? binding != null : !BINDING_EDEFAULT.equals(binding);
-			case PapyrusJavaPackage.TEMPLATE_BINDING__BASE_TEMPLATEBINDING:
-				return base_templatebinding != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (binding: ");
-		result.append(binding);
-		result.append(')');
-		return result.toString();
-	}
-
-} //TemplateBindingImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/TemplateImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/TemplateImpl.java
deleted file mode 100644
index 465dd55..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/TemplateImpl.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Template;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Template</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateImpl#getDeclaration <em>Declaration</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateImpl#getBase_class <em>Base class</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class TemplateImpl extends MinimalEObjectImpl.Container implements Template {
-	/**
-	 * The default value of the '{@link #getDeclaration() <em>Declaration</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDeclaration()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String DECLARATION_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getDeclaration() <em>Declaration</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDeclaration()
-	 * @generated
-	 * @ordered
-	 */
-	protected String declaration = DECLARATION_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getBase_class() <em>Base class</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_class()
-	 * @generated
-	 * @ordered
-	 */
-	protected org.eclipse.uml2.uml.Class base_class;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TemplateImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.TEMPLATE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getDeclaration() {
-		return declaration;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setDeclaration(String newDeclaration) {
-		String oldDeclaration = declaration;
-		declaration = newDeclaration;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.TEMPLATE__DECLARATION, oldDeclaration, declaration));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.uml2.uml.Class getBase_class() {
-		if (base_class != null && base_class.eIsProxy()) {
-			InternalEObject oldBase_class = (InternalEObject)base_class;
-			base_class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_class);
-			if (base_class != oldBase_class) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.TEMPLATE__BASE_CLASS, oldBase_class, base_class));
-			}
-		}
-		return base_class;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.uml2.uml.Class basicGetBase_class() {
-		return base_class;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_class(org.eclipse.uml2.uml.Class newBase_class) {
-		org.eclipse.uml2.uml.Class oldBase_class = base_class;
-		base_class = newBase_class;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.TEMPLATE__BASE_CLASS, oldBase_class, base_class));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.TEMPLATE__DECLARATION:
-				return getDeclaration();
-			case PapyrusJavaPackage.TEMPLATE__BASE_CLASS:
-				if (resolve) return getBase_class();
-				return basicGetBase_class();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.TEMPLATE__DECLARATION:
-				setDeclaration((String)newValue);
-				return;
-			case PapyrusJavaPackage.TEMPLATE__BASE_CLASS:
-				setBase_class((org.eclipse.uml2.uml.Class)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.TEMPLATE__DECLARATION:
-				setDeclaration(DECLARATION_EDEFAULT);
-				return;
-			case PapyrusJavaPackage.TEMPLATE__BASE_CLASS:
-				setBase_class((org.eclipse.uml2.uml.Class)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.TEMPLATE__DECLARATION:
-				return DECLARATION_EDEFAULT == null ? declaration != null : !DECLARATION_EDEFAULT.equals(declaration);
-			case PapyrusJavaPackage.TEMPLATE__BASE_CLASS:
-				return base_class != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (declaration: ");
-		result.append(declaration);
-		result.append(')');
-		return result.toString();
-	}
-
-} //TemplateImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/TemplateParameterImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/TemplateParameterImpl.java
deleted file mode 100644
index fb8b430..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/TemplateParameterImpl.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateParameter;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Template Parameter</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateParameterImpl#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TemplateParameterImpl#getBase_templateparameter <em>Base templateparameter</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class TemplateParameterImpl extends MinimalEObjectImpl.Container implements TemplateParameter {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getBase_templateparameter() <em>Base templateparameter</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_templateparameter()
-	 * @generated
-	 * @ordered
-	 */
-	protected org.eclipse.uml2.uml.TemplateParameter base_templateparameter;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TemplateParameterImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.TEMPLATE_PARAMETER;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.TEMPLATE_PARAMETER__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.uml2.uml.TemplateParameter getBase_templateparameter() {
-		if (base_templateparameter != null && base_templateparameter.eIsProxy()) {
-			InternalEObject oldBase_templateparameter = (InternalEObject)base_templateparameter;
-			base_templateparameter = (org.eclipse.uml2.uml.TemplateParameter)eResolveProxy(oldBase_templateparameter);
-			if (base_templateparameter != oldBase_templateparameter) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER, oldBase_templateparameter, base_templateparameter));
-			}
-		}
-		return base_templateparameter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.uml2.uml.TemplateParameter basicGetBase_templateparameter() {
-		return base_templateparameter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_templateparameter(org.eclipse.uml2.uml.TemplateParameter newBase_templateparameter) {
-		org.eclipse.uml2.uml.TemplateParameter oldBase_templateparameter = base_templateparameter;
-		base_templateparameter = newBase_templateparameter;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER, oldBase_templateparameter, base_templateparameter));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.TEMPLATE_PARAMETER__NAME:
-				return getName();
-			case PapyrusJavaPackage.TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER:
-				if (resolve) return getBase_templateparameter();
-				return basicGetBase_templateparameter();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.TEMPLATE_PARAMETER__NAME:
-				setName((String)newValue);
-				return;
-			case PapyrusJavaPackage.TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER:
-				setBase_templateparameter((org.eclipse.uml2.uml.TemplateParameter)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.TEMPLATE_PARAMETER__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case PapyrusJavaPackage.TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER:
-				setBase_templateparameter((org.eclipse.uml2.uml.TemplateParameter)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.TEMPLATE_PARAMETER__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case PapyrusJavaPackage.TEMPLATE_PARAMETER__BASE_TEMPLATEPARAMETER:
-				return base_templateparameter != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(')');
-		return result.toString();
-	}
-
-} //TemplateParameterImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/TransientImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/TransientImpl.java
deleted file mode 100644
index 0ed1b8c..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/TransientImpl.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Transient;
-
-import org.eclipse.uml2.uml.Property;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Transient</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.TransientImpl#getBase_Property <em>Base Property</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class TransientImpl extends MinimalEObjectImpl.Container implements Transient {
-	/**
-	 * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_Property()
-	 * @generated
-	 * @ordered
-	 */
-	protected Property base_Property;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TransientImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.TRANSIENT;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Property getBase_Property() {
-		if (base_Property != null && base_Property.eIsProxy()) {
-			InternalEObject oldBase_Property = (InternalEObject)base_Property;
-			base_Property = (Property)eResolveProxy(oldBase_Property);
-			if (base_Property != oldBase_Property) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.TRANSIENT__BASE_PROPERTY, oldBase_Property, base_Property));
-			}
-		}
-		return base_Property;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Property basicGetBase_Property() {
-		return base_Property;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_Property(Property newBase_Property) {
-		Property oldBase_Property = base_Property;
-		base_Property = newBase_Property;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.TRANSIENT__BASE_PROPERTY, oldBase_Property, base_Property));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.TRANSIENT__BASE_PROPERTY:
-				if (resolve) return getBase_Property();
-				return basicGetBase_Property();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.TRANSIENT__BASE_PROPERTY:
-				setBase_Property((Property)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.TRANSIENT__BASE_PROPERTY:
-				setBase_Property((Property)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.TRANSIENT__BASE_PROPERTY:
-				return base_Property != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //TransientImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/VariadicImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/VariadicImpl.java
deleted file mode 100644
index e80e70f..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/VariadicImpl.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Variadic;
-
-import org.eclipse.uml2.uml.Parameter;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Variadic</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.VariadicImpl#getBase_Parameter <em>Base Parameter</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class VariadicImpl extends MinimalEObjectImpl.Container implements Variadic {
-	/**
-	 * The cached value of the '{@link #getBase_Parameter() <em>Base Parameter</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_Parameter()
-	 * @generated
-	 * @ordered
-	 */
-	protected Parameter base_Parameter;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected VariadicImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.VARIADIC;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Parameter getBase_Parameter() {
-		if (base_Parameter != null && base_Parameter.eIsProxy()) {
-			InternalEObject oldBase_Parameter = (InternalEObject)base_Parameter;
-			base_Parameter = (Parameter)eResolveProxy(oldBase_Parameter);
-			if (base_Parameter != oldBase_Parameter) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.VARIADIC__BASE_PARAMETER, oldBase_Parameter, base_Parameter));
-			}
-		}
-		return base_Parameter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Parameter basicGetBase_Parameter() {
-		return base_Parameter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_Parameter(Parameter newBase_Parameter) {
-		Parameter oldBase_Parameter = base_Parameter;
-		base_Parameter = newBase_Parameter;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.VARIADIC__BASE_PARAMETER, oldBase_Parameter, base_Parameter));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.VARIADIC__BASE_PARAMETER:
-				if (resolve) return getBase_Parameter();
-				return basicGetBase_Parameter();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.VARIADIC__BASE_PARAMETER:
-				setBase_Parameter((Parameter)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.VARIADIC__BASE_PARAMETER:
-				setBase_Parameter((Parameter)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.VARIADIC__BASE_PARAMETER:
-				return base_Parameter != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //VariadicImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/VolatileImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/VolatileImpl.java
deleted file mode 100644
index 7f0ab08..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/impl/VolatileImpl.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage;
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Volatile;
-
-import org.eclipse.uml2.uml.Property;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Volatile</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.impl.VolatileImpl#getBase_Property <em>Base Property</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class VolatileImpl extends MinimalEObjectImpl.Container implements Volatile {
-	/**
-	 * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_Property()
-	 * @generated
-	 * @ordered
-	 */
-	protected Property base_Property;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected VolatileImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return PapyrusJavaPackage.Literals.VOLATILE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Property getBase_Property() {
-		if (base_Property != null && base_Property.eIsProxy()) {
-			InternalEObject oldBase_Property = (InternalEObject)base_Property;
-			base_Property = (Property)eResolveProxy(oldBase_Property);
-			if (base_Property != oldBase_Property) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusJavaPackage.VOLATILE__BASE_PROPERTY, oldBase_Property, base_Property));
-			}
-		}
-		return base_Property;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Property basicGetBase_Property() {
-		return base_Property;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_Property(Property newBase_Property) {
-		Property oldBase_Property = base_Property;
-		base_Property = newBase_Property;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, PapyrusJavaPackage.VOLATILE__BASE_PROPERTY, oldBase_Property, base_Property));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case PapyrusJavaPackage.VOLATILE__BASE_PROPERTY:
-				if (resolve) return getBase_Property();
-				return basicGetBase_Property();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case PapyrusJavaPackage.VOLATILE__BASE_PROPERTY:
-				setBase_Property((Property)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.VOLATILE__BASE_PROPERTY:
-				setBase_Property((Property)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case PapyrusJavaPackage.VOLATILE__BASE_PROPERTY:
-				return base_Property != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //VolatileImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/util/PapyrusJavaAdapterFactory.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/util/PapyrusJavaAdapterFactory.java
deleted file mode 100644
index 3818e57..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/util/PapyrusJavaAdapterFactory.java
+++ /dev/null
@@ -1,426 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.util;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-
-import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.*;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Adapter Factory</b> for the model.
- * It provides an adapter <code>createXXX</code> method for each class of the model.
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage
- * @generated
- */
-public class PapyrusJavaAdapterFactory extends AdapterFactoryImpl {
-	/**
-	 * The cached model package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static PapyrusJavaPackage modelPackage;
-
-	/**
-	 * Creates an instance of the adapter factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PapyrusJavaAdapterFactory() {
-		if (modelPackage == null) {
-			modelPackage = PapyrusJavaPackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * Returns whether this factory is applicable for the type of the object.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
-	 * <!-- end-user-doc -->
-	 * @return whether this factory is applicable for the type of the object.
-	 * @generated
-	 */
-	@Override
-	public boolean isFactoryForType(Object object) {
-		if (object == modelPackage) {
-			return true;
-		}
-		if (object instanceof EObject) {
-			return ((EObject)object).eClass().getEPackage() == modelPackage;
-		}
-		return false;
-	}
-
-	/**
-	 * The switch that delegates to the <code>createXXX</code> methods.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected PapyrusJavaSwitch<Adapter> modelSwitch =
-		new PapyrusJavaSwitch<Adapter>() {
-			@Override
-			public Adapter caseArray(Array object) {
-				return createArrayAdapter();
-			}
-			@Override
-			public Adapter caseExternal(External object) {
-				return createExternalAdapter();
-			}
-			@Override
-			public Adapter caseExternLibrary(ExternLibrary object) {
-				return createExternLibraryAdapter();
-			}
-			@Override
-			public Adapter caseImport(Import object) {
-				return createImportAdapter();
-			}
-			@Override
-			public Adapter caseNoCodeGen(NoCodeGen object) {
-				return createNoCodeGenAdapter();
-			}
-			@Override
-			public Adapter caseTemplate(Template object) {
-				return createTemplateAdapter();
-			}
-			@Override
-			public Adapter caseTemplateBinding(TemplateBinding object) {
-				return createTemplateBindingAdapter();
-			}
-			@Override
-			public Adapter caseTemplateParameter(TemplateParameter object) {
-				return createTemplateParameterAdapter();
-			}
-			@Override
-			public Adapter caseManualGeneration(ManualGeneration object) {
-				return createManualGenerationAdapter();
-			}
-			@Override
-			public Adapter caseVariadic(Variadic object) {
-				return createVariadicAdapter();
-			}
-			@Override
-			public Adapter caseVolatile(Volatile object) {
-				return createVolatileAdapter();
-			}
-			@Override
-			public Adapter caseTransient(Transient object) {
-				return createTransientAdapter();
-			}
-			@Override
-			public Adapter caseSynchronized(Synchronized object) {
-				return createSynchronizedAdapter();
-			}
-			@Override
-			public Adapter caseStrictfp(Strictfp object) {
-				return createStrictfpAdapter();
-			}
-			@Override
-			public Adapter caseNative(Native object) {
-				return createNativeAdapter();
-			}
-			@Override
-			public Adapter caseDefault(Default object) {
-				return createDefaultAdapter();
-			}
-			@Override
-			public Adapter caseStaticClassifier(StaticClassifier object) {
-				return createStaticClassifierAdapter();
-			}
-			@Override
-			public Adapter caseFinal(Final object) {
-				return createFinalAdapter();
-			}
-			@Override
-			public Adapter defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
-
-	/**
-	 * Creates an adapter for the <code>target</code>.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param target the object to adapt.
-	 * @return the adapter for the <code>target</code>.
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdapter(Notifier target) {
-		return modelSwitch.doSwitch((EObject)target);
-	}
-
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array <em>Array</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Array
-	 * @generated
-	 */
-	public Adapter createArrayAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.External <em>External</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.External
-	 * @generated
-	 */
-	public Adapter createExternalAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary <em>Extern Library</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ExternLibrary
-	 * @generated
-	 */
-	public Adapter createExternLibraryAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import <em>Import</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Import
-	 * @generated
-	 */
-	public Adapter createImportAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.NoCodeGen <em>No Code Gen</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.NoCodeGen
-	 * @generated
-	 */
-	public Adapter createNoCodeGenAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Template <em>Template</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Template
-	 * @generated
-	 */
-	public Adapter createTemplateAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateBinding <em>Template Binding</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateBinding
-	 * @generated
-	 */
-	public Adapter createTemplateBindingAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateParameter <em>Template Parameter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.TemplateParameter
-	 * @generated
-	 */
-	public Adapter createTemplateParameterAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ManualGeneration <em>Manual Generation</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.ManualGeneration
-	 * @generated
-	 */
-	public Adapter createManualGenerationAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Variadic <em>Variadic</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Variadic
-	 * @generated
-	 */
-	public Adapter createVariadicAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Volatile <em>Volatile</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Volatile
-	 * @generated
-	 */
-	public Adapter createVolatileAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Transient <em>Transient</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Transient
-	 * @generated
-	 */
-	public Adapter createTransientAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Synchronized <em>Synchronized</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Synchronized
-	 * @generated
-	 */
-	public Adapter createSynchronizedAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Strictfp <em>Strictfp</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Strictfp
-	 * @generated
-	 */
-	public Adapter createStrictfpAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Native <em>Native</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Native
-	 * @generated
-	 */
-	public Adapter createNativeAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Default <em>Default</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Default
-	 * @generated
-	 */
-	public Adapter createDefaultAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.StaticClassifier <em>Static Classifier</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.StaticClassifier
-	 * @generated
-	 */
-	public Adapter createStaticClassifierAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Final <em>Final</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.Final
-	 * @generated
-	 */
-	public Adapter createFinalAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for the default case.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @generated
-	 */
-	public Adapter createEObjectAdapter() {
-		return null;
-	}
-
-} //PapyrusJavaAdapterFactory
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/util/PapyrusJavaSwitch.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/util/PapyrusJavaSwitch.java
deleted file mode 100644
index 431fd04..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src-gen/org/eclipse/papyrus/designer/languages/java/profile/PapyrusJava/util/PapyrusJavaSwitch.java
+++ /dev/null
@@ -1,467 +0,0 @@
-/**
- */
-package org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.util;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-
-import org.eclipse.emf.ecore.util.Switch;
-
-import org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.*;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
- * to invoke the <code>caseXXX</code> method for each class of the model,
- * starting with the actual class of the object
- * and proceeding up the inheritance hierarchy
- * until a non-null result is returned,
- * which is the result of the switch.
- * <!-- end-user-doc -->
- * @see org.eclipse.papyrus.designer.languages.java.profile.PapyrusJava.PapyrusJavaPackage
- * @generated
- */
-public class PapyrusJavaSwitch<T> extends Switch<T> {
-	/**
-	 * The cached model package
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static PapyrusJavaPackage modelPackage;
-
-	/**
-	 * Creates an instance of the switch.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PapyrusJavaSwitch() {
-		if (modelPackage == null) {
-			modelPackage = PapyrusJavaPackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * Checks whether this is a switch for the given package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param ePackage the package in question.
-	 * @return whether this is a switch for the given package.
-	 * @generated
-	 */
-	@Override
-	protected boolean isSwitchFor(EPackage ePackage) {
-		return ePackage == modelPackage;
-	}
-
-	/**
-	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the first non-null result returned by a <code>caseXXX</code> call.
-	 * @generated
-	 */
-	@Override
-	protected T doSwitch(int classifierID, EObject theEObject) {
-		switch (classifierID) {
-			case PapyrusJavaPackage.ARRAY: {
-				Array array = (Array)theEObject;
-				T result = caseArray(array);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.EXTERNAL: {
-				External external = (External)theEObject;
-				T result = caseExternal(external);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.EXTERN_LIBRARY: {
-				ExternLibrary externLibrary = (ExternLibrary)theEObject;
-				T result = caseExternLibrary(externLibrary);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.IMPORT: {
-				Import import_ = (Import)theEObject;
-				T result = caseImport(import_);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.NO_CODE_GEN: {
-				NoCodeGen noCodeGen = (NoCodeGen)theEObject;
-				T result = caseNoCodeGen(noCodeGen);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.TEMPLATE: {
-				Template template = (Template)theEObject;
-				T result = caseTemplate(template);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.TEMPLATE_BINDING: {
-				TemplateBinding templateBinding = (TemplateBinding)theEObject;
-				T result = caseTemplateBinding(templateBinding);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.TEMPLATE_PARAMETER: {
-				TemplateParameter templateParameter = (TemplateParameter)theEObject;
-				T result = caseTemplateParameter(templateParameter);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.MANUAL_GENERATION: {
-				ManualGeneration manualGeneration = (ManualGeneration)theEObject;
-				T result = caseManualGeneration(manualGeneration);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.VARIADIC: {
-				Variadic variadic = (Variadic)theEObject;
-				T result = caseVariadic(variadic);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.VOLATILE: {
-				Volatile volatile_ = (Volatile)theEObject;
-				T result = caseVolatile(volatile_);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.TRANSIENT: {
-				Transient transient_ = (Transient)theEObject;
-				T result = caseTransient(transient_);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.SYNCHRONIZED: {
-				Synchronized synchronized_ = (Synchronized)theEObject;
-				T result = caseSynchronized(synchronized_);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.STRICTFP: {
-				Strictfp strictfp_ = (Strictfp)theEObject;
-				T result = caseStrictfp(strictfp_);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.NATIVE: {
-				Native native_ = (Native)theEObject;
-				T result = caseNative(native_);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.DEFAULT: {
-				Default default_ = (Default)theEObject;
-				T result = caseDefault(default_);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.STATIC_CLASSIFIER: {
-				StaticClassifier staticClassifier = (StaticClassifier)theEObject;
-				T result = caseStaticClassifier(staticClassifier);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case PapyrusJavaPackage.FINAL: {
-				Final final_ = (Final)theEObject;
-				T result = caseFinal(final_);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			default: return defaultCase(theEObject);
-		}
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Array</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Array</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseArray(Array object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>External</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>External</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseExternal(External object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Extern Library</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Extern Library</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseExternLibrary(ExternLibrary object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Import</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Import</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseImport(Import object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>No Code Gen</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>No Code Gen</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseNoCodeGen(NoCodeGen object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Template</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Template</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseTemplate(Template object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Template Binding</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Template Binding</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseTemplateBinding(TemplateBinding object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Template Parameter</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Template Parameter</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseTemplateParameter(TemplateParameter object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Manual Generation</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Manual Generation</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseManualGeneration(ManualGeneration object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Variadic</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Variadic</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseVariadic(Variadic object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Volatile</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Volatile</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseVolatile(Volatile object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Transient</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Transient</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseTransient(Transient object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Synchronized</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Synchronized</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseSynchronized(Synchronized object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Strictfp</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Strictfp</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseStrictfp(Strictfp object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Native</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Native</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseNative(Native object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Default</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Default</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseDefault(Default object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Static Classifier</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Static Classifier</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseStaticClassifier(StaticClassifier object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Final</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Final</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseFinal(Final object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch, but this is the last case anyway.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
-	 * @generated
-	 */
-	@Override
-	public T defaultCase(EObject object) {
-		return null;
-	}
-
-} //PapyrusJavaSwitch
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/Activator.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/Activator.java
deleted file mode 100644
index 70d7649..0000000
--- a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/Activator.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.eclipse.papyrus.designer.languages.java.profile;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-
-	private static BundleContext context;
-
-	static BundleContext getContext() {
-		return context;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext bundleContext) throws Exception {
-		Activator.context = bundleContext;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext bundleContext) throws Exception {
-		Activator.context = null;
-	}
-
-}
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaClass.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaClass.java
new file mode 100644
index 0000000..7c73bcc
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaClass.java
@@ -0,0 +1,209 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.uml2.uml.Classifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Class</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#getBase_Classifier <em>Base Classifier</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#isFinal <em>Is Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#isAbstract <em>Is Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#isStatic <em>Is Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#getExplicitRequiredImports <em>Explicit Required Imports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaClass()
+ * @model
+ * @generated
+ */
+public interface JavaClass extends JavaGen {
+	/**
+	 * Returns the value of the '<em><b>Base Classifier</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Classifier</em>' reference isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Base Classifier</em>' reference.
+	 * @see #setBase_Classifier(Classifier)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaClass_Base_Classifier()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Classifier getBase_Classifier();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#getBase_Classifier <em>Base Classifier</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Base Classifier</em>' reference.
+	 * @see #getBase_Classifier()
+	 * @generated
+	 */
+	void setBase_Classifier(Classifier value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Final</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Final</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Is Final</em>' attribute.
+	 * @see #setIsFinal(boolean)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaClass_IsFinal()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	boolean isFinal();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#isFinal <em>Is Final</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Is Final</em>' attribute.
+	 * @see #isFinal()
+	 * @generated
+	 */
+	void setIsFinal(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Abstract</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Abstract</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Is Abstract</em>' attribute.
+	 * @see #setIsAbstract(boolean)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaClass_IsAbstract()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	boolean isAbstract();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#isAbstract <em>Is Abstract</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Is Abstract</em>' attribute.
+	 * @see #isAbstract()
+	 * @generated
+	 */
+	void setIsAbstract(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Static</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Is Static</em>' attribute.
+	 * @see #setIsStatic(boolean)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaClass_IsStatic()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	boolean isStatic();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#isStatic <em>Is Static</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Is Static</em>' attribute.
+	 * @see #isStatic()
+	 * @generated
+	 */
+	void setIsStatic(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Explicit Plain Text Required Imports</em>' attribute list isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Explicit Plain Text Required Imports</em>' attribute list.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaClass_ExplicitPlainTextRequiredImports()
+	 * @model unique="false" ordered="false"
+	 * @generated
+	 */
+	EList<String> getExplicitPlainTextRequiredImports();
+
+	/**
+	 * Returns the value of the '<em><b>Explicit Required Imports</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Explicit Required Imports</em>' reference list isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Explicit Required Imports</em>' reference list.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaClass_ExplicitRequiredImports()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<Classifier> getExplicitRequiredImports();
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>' from the '<em><b>Explicit Required Imports</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param name
+	 *            The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+	 * @return The first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+	 * @see #getExplicitRequiredImports()
+	 * @generated
+	 */
+	Classifier getExplicitRequiredImports(String name);
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>' from the '<em><b>Explicit Required Imports</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param name
+	 *            The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+	 * @param ignoreCase
+	 *            Whether to ignore case in {@link java.lang.String} comparisons.
+	 * @param eClass
+	 *            The Ecore class of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+	 * @return The first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+	 * @see #getExplicitRequiredImports()
+	 * @generated
+	 */
+	Classifier getExplicitRequiredImports(String name, boolean ignoreCase, EClass eClass);
+
+} // JavaClass
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaFactory.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaFactory.java
new file mode 100644
index 0000000..29784e0
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaFactory.java
@@ -0,0 +1,120 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage
+ * @generated
+ */
+public interface JavaFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	JavaFactory eINSTANCE = org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Class</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>Class</em>'.
+	 * @generated
+	 */
+	JavaClass createJavaClass();
+
+	/**
+	 * Returns a new object of class '<em>Package </em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>Package </em>'.
+	 * @generated
+	 */
+	JavaPackage_ createJavaPackage_();
+
+	/**
+	 * Returns a new object of class '<em>Method</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>Method</em>'.
+	 * @generated
+	 */
+	JavaMethod createJavaMethod();
+
+	/**
+	 * Returns a new object of class '<em>Parameter</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>Parameter</em>'.
+	 * @generated
+	 */
+	JavaParameter createJavaParameter();
+
+	/**
+	 * Returns a new object of class '<em>Property</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>Property</em>'.
+	 * @generated
+	 */
+	JavaProperty createJavaProperty();
+
+	/**
+	 * Returns a new object of class '<em>Primitive Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>Primitive Type</em>'.
+	 * @generated
+	 */
+	PrimitiveType createPrimitiveType();
+
+	/**
+	 * Returns a new object of class '<em>Project</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>Project</em>'.
+	 * @generated
+	 */
+	JavaProject createJavaProject();
+
+	/**
+	 * Returns a new object of class '<em>Src Folder</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return a new object of class '<em>Src Folder</em>'.
+	 * @generated
+	 */
+	JavaSrcFolder createJavaSrcFolder();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	JavaPackage getJavaPackage();
+
+} // JavaFactory
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaGen.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaGen.java
new file mode 100644
index 0000000..9de78f2
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaGen.java
@@ -0,0 +1,84 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaGen#getSrcName <em>Src Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaGen#getProjectName <em>Project Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaGen()
+ * @model abstract="true"
+ * @generated
+ */
+public interface JavaGen extends JavaNamedElement {
+	/**
+	 * Returns the value of the '<em><b>Src Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Src Name</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Src Name</em>' attribute.
+	 * @see #setSrcName(String)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaGen_SrcName()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	String getSrcName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaGen#getSrcName <em>Src Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Src Name</em>' attribute.
+	 * @see #getSrcName()
+	 * @generated
+	 */
+	void setSrcName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Project Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Project Name</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Project Name</em>' attribute.
+	 * @see #setProjectName(String)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaGen_ProjectName()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	String getProjectName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaGen#getProjectName <em>Project Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Project Name</em>' attribute.
+	 * @see #getProjectName()
+	 * @generated
+	 */
+	void setProjectName(String value);
+
+} // JavaGen
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaMethod.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaMethod.java
new file mode 100644
index 0000000..4ecdf12
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaMethod.java
@@ -0,0 +1,297 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Method</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isStatic <em>Is Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isFinal <em>Is Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isAbstract <em>Is Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isNative <em>Is Native</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isSynchronized <em>Is Synchronized</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isConstructor <em>Is Constructor</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#getBase_Operation <em>Base Operation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#getExplicitRequiredImports <em>Explicit Required Imports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaMethod()
+ * @model
+ * @generated
+ */
+public interface JavaMethod extends JavaNamedElement {
+	/**
+	 * Returns the value of the '<em><b>Is Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Static</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Is Static</em>' attribute.
+	 * @see #setIsStatic(boolean)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaMethod_IsStatic()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	boolean isStatic();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isStatic <em>Is Static</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Is Static</em>' attribute.
+	 * @see #isStatic()
+	 * @generated
+	 */
+	void setIsStatic(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Final</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Final</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Is Final</em>' attribute.
+	 * @see #setIsFinal(boolean)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaMethod_IsFinal()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	boolean isFinal();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isFinal <em>Is Final</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Is Final</em>' attribute.
+	 * @see #isFinal()
+	 * @generated
+	 */
+	void setIsFinal(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Abstract</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Abstract</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Is Abstract</em>' attribute.
+	 * @see #setIsAbstract(boolean)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaMethod_IsAbstract()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	boolean isAbstract();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isAbstract <em>Is Abstract</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Is Abstract</em>' attribute.
+	 * @see #isAbstract()
+	 * @generated
+	 */
+	void setIsAbstract(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Native</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Native</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Is Native</em>' attribute.
+	 * @see #setIsNative(boolean)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaMethod_IsNative()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	boolean isNative();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isNative <em>Is Native</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Is Native</em>' attribute.
+	 * @see #isNative()
+	 * @generated
+	 */
+	void setIsNative(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Synchronized</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Synchronized</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Is Synchronized</em>' attribute.
+	 * @see #setIsSynchronized(boolean)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaMethod_IsSynchronized()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	boolean isSynchronized();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isSynchronized <em>Is Synchronized</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Is Synchronized</em>' attribute.
+	 * @see #isSynchronized()
+	 * @generated
+	 */
+	void setIsSynchronized(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Constructor</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Constructor</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Is Constructor</em>' attribute.
+	 * @see #setIsConstructor(boolean)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaMethod_IsConstructor()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	boolean isConstructor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isConstructor <em>Is Constructor</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Is Constructor</em>' attribute.
+	 * @see #isConstructor()
+	 * @generated
+	 */
+	void setIsConstructor(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Base Operation</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Operation</em>' reference isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Base Operation</em>' reference.
+	 * @see #setBase_Operation(Operation)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaMethod_Base_Operation()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Operation getBase_Operation();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#getBase_Operation <em>Base Operation</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Base Operation</em>' reference.
+	 * @see #getBase_Operation()
+	 * @generated
+	 */
+	void setBase_Operation(Operation value);
+
+	/**
+	 * Returns the value of the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Explicit Plain Text Required Imports</em>' attribute list isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Explicit Plain Text Required Imports</em>' attribute list.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaMethod_ExplicitPlainTextRequiredImports()
+	 * @model unique="false" ordered="false"
+	 * @generated
+	 */
+	EList<String> getExplicitPlainTextRequiredImports();
+
+	/**
+	 * Returns the value of the '<em><b>Explicit Required Imports</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Explicit Required Imports</em>' reference list isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Explicit Required Imports</em>' reference list.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaMethod_ExplicitRequiredImports()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<Classifier> getExplicitRequiredImports();
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>' from the '<em><b>Explicit Required Imports</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param name
+	 *            The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+	 * @return The first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+	 * @see #getExplicitRequiredImports()
+	 * @generated
+	 */
+	Classifier getExplicitRequiredImports(String name);
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>' from the '<em><b>Explicit Required Imports</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param name
+	 *            The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+	 * @param ignoreCase
+	 *            Whether to ignore case in {@link java.lang.String} comparisons.
+	 * @param eClass
+	 *            The Ecore class of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+	 * @return The first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+	 * @see #getExplicitRequiredImports()
+	 * @generated
+	 */
+	Classifier getExplicitRequiredImports(String name, boolean ignoreCase, EClass eClass);
+
+} // JavaMethod
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaNamedElement.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaNamedElement.java
new file mode 100644
index 0000000..b6f667e
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaNamedElement.java
@@ -0,0 +1,173 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Named Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#getAuthor <em>Author</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#getComment <em>Comment</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#isGenerated <em>Is Generated</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaNamedElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface JavaNamedElement extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaNamedElement_Name()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Author</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Author</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Author</em>' attribute.
+	 * @see #setAuthor(String)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaNamedElement_Author()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	String getAuthor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#getAuthor <em>Author</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Author</em>' attribute.
+	 * @see #getAuthor()
+	 * @generated
+	 */
+	void setAuthor(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Version</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Version</em>' attribute.
+	 * @see #setVersion(String)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaNamedElement_Version()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	String getVersion();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#getVersion <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Version</em>' attribute.
+	 * @see #getVersion()
+	 * @generated
+	 */
+	void setVersion(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Comment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Comment</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Comment</em>' attribute.
+	 * @see #setComment(String)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaNamedElement_Comment()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	String getComment();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#getComment <em>Comment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Comment</em>' attribute.
+	 * @see #getComment()
+	 * @generated
+	 */
+	void setComment(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Generated</b></em>' attribute.
+	 * The default value is <code>"true"</code>.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Generated</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Is Generated</em>' attribute.
+	 * @see #setIsGenerated(boolean)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaNamedElement_IsGenerated()
+	 * @model default="true" unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	boolean isGenerated();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#isGenerated <em>Is Generated</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Is Generated</em>' attribute.
+	 * @see #isGenerated()
+	 * @generated
+	 */
+	void setIsGenerated(boolean value);
+
+} // JavaNamedElement
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaPackage.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaPackage.java
new file mode 100644
index 0000000..cff37b1
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaPackage.java
@@ -0,0 +1,2348 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface JavaPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNAME = "java";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNS_URI = "http://www.eclipse.org/papyrus/JAVA/1";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	String eNS_PREFIX = "java";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	JavaPackage eINSTANCE = org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaNamedElementImpl <em>Named Element</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaNamedElementImpl
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaNamedElement()
+	 * @generated
+	 */
+	int JAVA_NAMED_ELEMENT = 2;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_NAMED_ELEMENT__NAME = 0;
+
+	/**
+	 * The feature id for the '<em><b>Author</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_NAMED_ELEMENT__AUTHOR = 1;
+
+	/**
+	 * The feature id for the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_NAMED_ELEMENT__VERSION = 2;
+
+	/**
+	 * The feature id for the '<em><b>Comment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_NAMED_ELEMENT__COMMENT = 3;
+
+	/**
+	 * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_NAMED_ELEMENT__IS_GENERATED = 4;
+
+	/**
+	 * The number of structural features of the '<em>Named Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_NAMED_ELEMENT_FEATURE_COUNT = 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaGenImpl <em>Gen</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaGenImpl
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaGen()
+	 * @generated
+	 */
+	int JAVA_GEN = 1;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_GEN__NAME = JAVA_NAMED_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Author</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_GEN__AUTHOR = JAVA_NAMED_ELEMENT__AUTHOR;
+
+	/**
+	 * The feature id for the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_GEN__VERSION = JAVA_NAMED_ELEMENT__VERSION;
+
+	/**
+	 * The feature id for the '<em><b>Comment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_GEN__COMMENT = JAVA_NAMED_ELEMENT__COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_GEN__IS_GENERATED = JAVA_NAMED_ELEMENT__IS_GENERATED;
+
+	/**
+	 * The feature id for the '<em><b>Src Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_GEN__SRC_NAME = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Project Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_GEN__PROJECT_NAME = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Gen</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_GEN_FEATURE_COUNT = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaClassImpl <em>Class</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaClassImpl
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaClass()
+	 * @generated
+	 */
+	int JAVA_CLASS = 0;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_CLASS__NAME = JAVA_GEN__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Author</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_CLASS__AUTHOR = JAVA_GEN__AUTHOR;
+
+	/**
+	 * The feature id for the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_CLASS__VERSION = JAVA_GEN__VERSION;
+
+	/**
+	 * The feature id for the '<em><b>Comment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_CLASS__COMMENT = JAVA_GEN__COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_CLASS__IS_GENERATED = JAVA_GEN__IS_GENERATED;
+
+	/**
+	 * The feature id for the '<em><b>Src Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_CLASS__SRC_NAME = JAVA_GEN__SRC_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Project Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_CLASS__PROJECT_NAME = JAVA_GEN__PROJECT_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Base Classifier</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_CLASS__BASE_CLASSIFIER = JAVA_GEN_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Is Final</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_CLASS__IS_FINAL = JAVA_GEN_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Is Abstract</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_CLASS__IS_ABSTRACT = JAVA_GEN_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Is Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_CLASS__IS_STATIC = JAVA_GEN_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = JAVA_GEN_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Explicit Required Imports</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS = JAVA_GEN_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>Class</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_CLASS_FEATURE_COUNT = JAVA_GEN_FEATURE_COUNT + 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackage_Impl <em>Package </em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackage_Impl
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaPackage_()
+	 * @generated
+	 */
+	int JAVA_PACKAGE_ = 3;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PACKAGE___NAME = JAVA_GEN__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Author</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PACKAGE___AUTHOR = JAVA_GEN__AUTHOR;
+
+	/**
+	 * The feature id for the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PACKAGE___VERSION = JAVA_GEN__VERSION;
+
+	/**
+	 * The feature id for the '<em><b>Comment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PACKAGE___COMMENT = JAVA_GEN__COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PACKAGE___IS_GENERATED = JAVA_GEN__IS_GENERATED;
+
+	/**
+	 * The feature id for the '<em><b>Src Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PACKAGE___SRC_NAME = JAVA_GEN__SRC_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Project Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PACKAGE___PROJECT_NAME = JAVA_GEN__PROJECT_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Package Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PACKAGE___PACKAGE_NAME = JAVA_GEN_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PACKAGE___BASE_PACKAGE = JAVA_GEN_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Package </em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PACKAGE__FEATURE_COUNT = JAVA_GEN_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaMethodImpl <em>Method</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaMethodImpl
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaMethod()
+	 * @generated
+	 */
+	int JAVA_METHOD = 4;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_METHOD__NAME = JAVA_NAMED_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Author</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_METHOD__AUTHOR = JAVA_NAMED_ELEMENT__AUTHOR;
+
+	/**
+	 * The feature id for the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_METHOD__VERSION = JAVA_NAMED_ELEMENT__VERSION;
+
+	/**
+	 * The feature id for the '<em><b>Comment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_METHOD__COMMENT = JAVA_NAMED_ELEMENT__COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_METHOD__IS_GENERATED = JAVA_NAMED_ELEMENT__IS_GENERATED;
+
+	/**
+	 * The feature id for the '<em><b>Is Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_METHOD__IS_STATIC = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Is Final</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_METHOD__IS_FINAL = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Is Abstract</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_METHOD__IS_ABSTRACT = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Is Native</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_METHOD__IS_NATIVE = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Is Synchronized</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_METHOD__IS_SYNCHRONIZED = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Is Constructor</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_METHOD__IS_CONSTRUCTOR = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Base Operation</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_METHOD__BASE_OPERATION = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Explicit Required Imports</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 8;
+
+	/**
+	 * The number of structural features of the '<em>Method</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_METHOD_FEATURE_COUNT = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 9;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaParameterImpl <em>Parameter</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaParameterImpl
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaParameter()
+	 * @generated
+	 */
+	int JAVA_PARAMETER = 5;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PARAMETER__NAME = JAVA_NAMED_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Author</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PARAMETER__AUTHOR = JAVA_NAMED_ELEMENT__AUTHOR;
+
+	/**
+	 * The feature id for the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PARAMETER__VERSION = JAVA_NAMED_ELEMENT__VERSION;
+
+	/**
+	 * The feature id for the '<em><b>Comment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PARAMETER__COMMENT = JAVA_NAMED_ELEMENT__COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PARAMETER__IS_GENERATED = JAVA_NAMED_ELEMENT__IS_GENERATED;
+
+	/**
+	 * The feature id for the '<em><b>Is Final</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PARAMETER__IS_FINAL = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Base Parameter</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PARAMETER__BASE_PARAMETER = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Parameter</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PARAMETER_FEATURE_COUNT = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPropertyImpl <em>Property</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPropertyImpl
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaProperty()
+	 * @generated
+	 */
+	int JAVA_PROPERTY = 6;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROPERTY__NAME = JAVA_NAMED_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Author</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROPERTY__AUTHOR = JAVA_NAMED_ELEMENT__AUTHOR;
+
+	/**
+	 * The feature id for the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROPERTY__VERSION = JAVA_NAMED_ELEMENT__VERSION;
+
+	/**
+	 * The feature id for the '<em><b>Comment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROPERTY__COMMENT = JAVA_NAMED_ELEMENT__COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROPERTY__IS_GENERATED = JAVA_NAMED_ELEMENT__IS_GENERATED;
+
+	/**
+	 * The feature id for the '<em><b>Is Abstract</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROPERTY__IS_ABSTRACT = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Is Final</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROPERTY__IS_FINAL = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Base Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROPERTY__BASE_PROPERTY = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Is Transient</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROPERTY__IS_TRANSIENT = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Generate Getter</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROPERTY__GENERATE_GETTER = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Generate Setter</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROPERTY__GENERATE_SETTER = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Is Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROPERTY__IS_STATIC = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Explicit Required Imports</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 8;
+
+	/**
+	 * The number of structural features of the '<em>Property</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROPERTY_FEATURE_COUNT = JAVA_NAMED_ELEMENT_FEATURE_COUNT + 9;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.PrimitiveTypeImpl <em>Primitive Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.PrimitiveTypeImpl
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getPrimitiveType()
+	 * @generated
+	 */
+	int PRIMITIVE_TYPE = 7;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMITIVE_TYPE__NAME = JAVA_GEN__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Author</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMITIVE_TYPE__AUTHOR = JAVA_GEN__AUTHOR;
+
+	/**
+	 * The feature id for the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMITIVE_TYPE__VERSION = JAVA_GEN__VERSION;
+
+	/**
+	 * The feature id for the '<em><b>Comment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMITIVE_TYPE__COMMENT = JAVA_GEN__COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMITIVE_TYPE__IS_GENERATED = JAVA_GEN__IS_GENERATED;
+
+	/**
+	 * The feature id for the '<em><b>Src Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMITIVE_TYPE__SRC_NAME = JAVA_GEN__SRC_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Project Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMITIVE_TYPE__PROJECT_NAME = JAVA_GEN__PROJECT_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Implementation Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMITIVE_TYPE__IMPLEMENTATION_CLASS = JAVA_GEN_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Base Primitive Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE = JAVA_GEN_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Collection Implementation Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS = JAVA_GEN_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Primitive Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int PRIMITIVE_TYPE_FEATURE_COUNT = JAVA_GEN_FEATURE_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaProjectImpl <em>Project</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaProjectImpl
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaProject()
+	 * @generated
+	 */
+	int JAVA_PROJECT = 8;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROJECT__NAME = JAVA_GEN__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Author</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROJECT__AUTHOR = JAVA_GEN__AUTHOR;
+
+	/**
+	 * The feature id for the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROJECT__VERSION = JAVA_GEN__VERSION;
+
+	/**
+	 * The feature id for the '<em><b>Comment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROJECT__COMMENT = JAVA_GEN__COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROJECT__IS_GENERATED = JAVA_GEN__IS_GENERATED;
+
+	/**
+	 * The feature id for the '<em><b>Src Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROJECT__SRC_NAME = JAVA_GEN__SRC_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Project Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROJECT__PROJECT_NAME = JAVA_GEN__PROJECT_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROJECT__BASE_PACKAGE = JAVA_GEN_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Project</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_PROJECT_FEATURE_COUNT = JAVA_GEN_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaSrcFolderImpl <em>Src Folder</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaSrcFolderImpl
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaSrcFolder()
+	 * @generated
+	 */
+	int JAVA_SRC_FOLDER = 9;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_SRC_FOLDER__NAME = JAVA_GEN__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Author</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_SRC_FOLDER__AUTHOR = JAVA_GEN__AUTHOR;
+
+	/**
+	 * The feature id for the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_SRC_FOLDER__VERSION = JAVA_GEN__VERSION;
+
+	/**
+	 * The feature id for the '<em><b>Comment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_SRC_FOLDER__COMMENT = JAVA_GEN__COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Is Generated</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_SRC_FOLDER__IS_GENERATED = JAVA_GEN__IS_GENERATED;
+
+	/**
+	 * The feature id for the '<em><b>Src Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_SRC_FOLDER__SRC_NAME = JAVA_GEN__SRC_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Project Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_SRC_FOLDER__PROJECT_NAME = JAVA_GEN__PROJECT_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_SRC_FOLDER__BASE_PACKAGE = JAVA_GEN_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Src Folder</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 * @ordered
+	 */
+	int JAVA_SRC_FOLDER_FEATURE_COUNT = JAVA_GEN_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.TrueFalseDefault <em>True False Default</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.TrueFalseDefault
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getTrueFalseDefault()
+	 * @generated
+	 */
+	int TRUE_FALSE_DEFAULT = 10;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass <em>Class</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Class</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass
+	 * @generated
+	 */
+	EClass getJavaClass();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#getBase_Classifier <em>Base Classifier</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the reference '<em>Base Classifier</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#getBase_Classifier()
+	 * @see #getJavaClass()
+	 * @generated
+	 */
+	EReference getJavaClass_Base_Classifier();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#isFinal <em>Is Final</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Is Final</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#isFinal()
+	 * @see #getJavaClass()
+	 * @generated
+	 */
+	EAttribute getJavaClass_IsFinal();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#isAbstract <em>Is Abstract</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Is Abstract</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#isAbstract()
+	 * @see #getJavaClass()
+	 * @generated
+	 */
+	EAttribute getJavaClass_IsAbstract();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#isStatic <em>Is Static</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Is Static</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#isStatic()
+	 * @see #getJavaClass()
+	 * @generated
+	 */
+	EAttribute getJavaClass_IsStatic();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute list '<em>Explicit Plain Text Required Imports</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#getExplicitPlainTextRequiredImports()
+	 * @see #getJavaClass()
+	 * @generated
+	 */
+	EAttribute getJavaClass_ExplicitPlainTextRequiredImports();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#getExplicitRequiredImports <em>Explicit Required Imports</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the reference list '<em>Explicit Required Imports</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass#getExplicitRequiredImports()
+	 * @see #getJavaClass()
+	 * @generated
+	 */
+	EReference getJavaClass_ExplicitRequiredImports();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaGen <em>Gen</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Gen</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaGen
+	 * @generated
+	 */
+	EClass getJavaGen();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaGen#getSrcName <em>Src Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Src Name</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaGen#getSrcName()
+	 * @see #getJavaGen()
+	 * @generated
+	 */
+	EAttribute getJavaGen_SrcName();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaGen#getProjectName <em>Project Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Project Name</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaGen#getProjectName()
+	 * @see #getJavaGen()
+	 * @generated
+	 */
+	EAttribute getJavaGen_ProjectName();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement <em>Named Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Named Element</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement
+	 * @generated
+	 */
+	EClass getJavaNamedElement();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#getName()
+	 * @see #getJavaNamedElement()
+	 * @generated
+	 */
+	EAttribute getJavaNamedElement_Name();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#getAuthor <em>Author</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Author</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#getAuthor()
+	 * @see #getJavaNamedElement()
+	 * @generated
+	 */
+	EAttribute getJavaNamedElement_Author();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#getVersion <em>Version</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Version</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#getVersion()
+	 * @see #getJavaNamedElement()
+	 * @generated
+	 */
+	EAttribute getJavaNamedElement_Version();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#getComment <em>Comment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Comment</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#getComment()
+	 * @see #getJavaNamedElement()
+	 * @generated
+	 */
+	EAttribute getJavaNamedElement_Comment();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#isGenerated <em>Is Generated</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Is Generated</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement#isGenerated()
+	 * @see #getJavaNamedElement()
+	 * @generated
+	 */
+	EAttribute getJavaNamedElement_IsGenerated();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_ <em>Package </em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Package </em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_
+	 * @generated
+	 */
+	EClass getJavaPackage_();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_#getPackageName <em>Package Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Package Name</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_#getPackageName()
+	 * @see #getJavaPackage_()
+	 * @generated
+	 */
+	EAttribute getJavaPackage__PackageName();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_#getBase_Package <em>Base Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the reference '<em>Base Package</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_#getBase_Package()
+	 * @see #getJavaPackage_()
+	 * @generated
+	 */
+	EReference getJavaPackage__Base_Package();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod <em>Method</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Method</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod
+	 * @generated
+	 */
+	EClass getJavaMethod();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isStatic <em>Is Static</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Is Static</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isStatic()
+	 * @see #getJavaMethod()
+	 * @generated
+	 */
+	EAttribute getJavaMethod_IsStatic();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isFinal <em>Is Final</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Is Final</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isFinal()
+	 * @see #getJavaMethod()
+	 * @generated
+	 */
+	EAttribute getJavaMethod_IsFinal();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isAbstract <em>Is Abstract</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Is Abstract</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isAbstract()
+	 * @see #getJavaMethod()
+	 * @generated
+	 */
+	EAttribute getJavaMethod_IsAbstract();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isNative <em>Is Native</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Is Native</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isNative()
+	 * @see #getJavaMethod()
+	 * @generated
+	 */
+	EAttribute getJavaMethod_IsNative();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isSynchronized <em>Is Synchronized</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Is Synchronized</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isSynchronized()
+	 * @see #getJavaMethod()
+	 * @generated
+	 */
+	EAttribute getJavaMethod_IsSynchronized();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isConstructor <em>Is Constructor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Is Constructor</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#isConstructor()
+	 * @see #getJavaMethod()
+	 * @generated
+	 */
+	EAttribute getJavaMethod_IsConstructor();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#getBase_Operation <em>Base Operation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the reference '<em>Base Operation</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#getBase_Operation()
+	 * @see #getJavaMethod()
+	 * @generated
+	 */
+	EReference getJavaMethod_Base_Operation();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute list '<em>Explicit Plain Text Required Imports</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#getExplicitPlainTextRequiredImports()
+	 * @see #getJavaMethod()
+	 * @generated
+	 */
+	EAttribute getJavaMethod_ExplicitPlainTextRequiredImports();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#getExplicitRequiredImports <em>Explicit Required Imports</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the reference list '<em>Explicit Required Imports</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod#getExplicitRequiredImports()
+	 * @see #getJavaMethod()
+	 * @generated
+	 */
+	EReference getJavaMethod_ExplicitRequiredImports();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter <em>Parameter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Parameter</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter
+	 * @generated
+	 */
+	EClass getJavaParameter();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter#isFinal <em>Is Final</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Is Final</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter#isFinal()
+	 * @see #getJavaParameter()
+	 * @generated
+	 */
+	EAttribute getJavaParameter_IsFinal();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter#getBase_Parameter <em>Base Parameter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the reference '<em>Base Parameter</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter#getBase_Parameter()
+	 * @see #getJavaParameter()
+	 * @generated
+	 */
+	EReference getJavaParameter_Base_Parameter();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty <em>Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Property</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty
+	 * @generated
+	 */
+	EClass getJavaProperty();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#isAbstract <em>Is Abstract</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Is Abstract</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#isAbstract()
+	 * @see #getJavaProperty()
+	 * @generated
+	 */
+	EAttribute getJavaProperty_IsAbstract();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#isFinal <em>Is Final</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Is Final</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#isFinal()
+	 * @see #getJavaProperty()
+	 * @generated
+	 */
+	EAttribute getJavaProperty_IsFinal();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getBase_Property <em>Base Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the reference '<em>Base Property</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getBase_Property()
+	 * @see #getJavaProperty()
+	 * @generated
+	 */
+	EReference getJavaProperty_Base_Property();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#isTransient <em>Is Transient</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Is Transient</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#isTransient()
+	 * @see #getJavaProperty()
+	 * @generated
+	 */
+	EAttribute getJavaProperty_IsTransient();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getGenerateGetter <em>Generate Getter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Generate Getter</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getGenerateGetter()
+	 * @see #getJavaProperty()
+	 * @generated
+	 */
+	EAttribute getJavaProperty_GenerateGetter();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getGenerateSetter <em>Generate Setter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Generate Setter</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getGenerateSetter()
+	 * @see #getJavaProperty()
+	 * @generated
+	 */
+	EAttribute getJavaProperty_GenerateSetter();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#isStatic <em>Is Static</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Is Static</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#isStatic()
+	 * @see #getJavaProperty()
+	 * @generated
+	 */
+	EAttribute getJavaProperty_IsStatic();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute list '<em>Explicit Plain Text Required Imports</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getExplicitPlainTextRequiredImports()
+	 * @see #getJavaProperty()
+	 * @generated
+	 */
+	EAttribute getJavaProperty_ExplicitPlainTextRequiredImports();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getExplicitRequiredImports <em>Explicit Required Imports</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the reference list '<em>Explicit Required Imports</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getExplicitRequiredImports()
+	 * @see #getJavaProperty()
+	 * @generated
+	 */
+	EReference getJavaProperty_ExplicitRequiredImports();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType <em>Primitive Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Primitive Type</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType
+	 * @generated
+	 */
+	EClass getPrimitiveType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType#getImplementationClass <em>Implementation Class</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Implementation Class</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType#getImplementationClass()
+	 * @see #getPrimitiveType()
+	 * @generated
+	 */
+	EAttribute getPrimitiveType_ImplementationClass();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType#getBase_PrimitiveType <em>Base Primitive Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the reference '<em>Base Primitive Type</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType#getBase_PrimitiveType()
+	 * @see #getPrimitiveType()
+	 * @generated
+	 */
+	EReference getPrimitiveType_Base_PrimitiveType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType#getCollectionImplementationClass <em>Collection Implementation Class</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the attribute '<em>Collection Implementation Class</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType#getCollectionImplementationClass()
+	 * @see #getPrimitiveType()
+	 * @generated
+	 */
+	EAttribute getPrimitiveType_CollectionImplementationClass();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProject <em>Project</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Project</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaProject
+	 * @generated
+	 */
+	EClass getJavaProject();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProject#getBase_Package <em>Base Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the reference '<em>Base Package</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaProject#getBase_Package()
+	 * @see #getJavaProject()
+	 * @generated
+	 */
+	EReference getJavaProject_Base_Package();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaSrcFolder <em>Src Folder</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for class '<em>Src Folder</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaSrcFolder
+	 * @generated
+	 */
+	EClass getJavaSrcFolder();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaSrcFolder#getBase_Package <em>Base Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for the reference '<em>Base Package</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaSrcFolder#getBase_Package()
+	 * @see #getJavaSrcFolder()
+	 * @generated
+	 */
+	EReference getJavaSrcFolder_Base_Package();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.papyrus.designer.languages.java.profile.java.TrueFalseDefault <em>True False Default</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the meta object for enum '<em>True False Default</em>'.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.TrueFalseDefault
+	 * @generated
+	 */
+	EEnum getTrueFalseDefault();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	JavaFactory getJavaFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 * <li>each class,</li>
+	 * <li>each feature of each class,</li>
+	 * <li>each enum,</li>
+	 * <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaClassImpl <em>Class</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaClassImpl
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaClass()
+		 * @generated
+		 */
+		EClass JAVA_CLASS = eINSTANCE.getJavaClass();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Classifier</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference JAVA_CLASS__BASE_CLASSIFIER = eINSTANCE.getJavaClass_Base_Classifier();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Final</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_CLASS__IS_FINAL = eINSTANCE.getJavaClass_IsFinal();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Abstract</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_CLASS__IS_ABSTRACT = eINSTANCE.getJavaClass_IsAbstract();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Static</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_CLASS__IS_STATIC = eINSTANCE.getJavaClass_IsStatic();
+
+		/**
+		 * The meta object literal for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = eINSTANCE.getJavaClass_ExplicitPlainTextRequiredImports();
+
+		/**
+		 * The meta object literal for the '<em><b>Explicit Required Imports</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS = eINSTANCE.getJavaClass_ExplicitRequiredImports();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaGenImpl <em>Gen</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaGenImpl
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaGen()
+		 * @generated
+		 */
+		EClass JAVA_GEN = eINSTANCE.getJavaGen();
+
+		/**
+		 * The meta object literal for the '<em><b>Src Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_GEN__SRC_NAME = eINSTANCE.getJavaGen_SrcName();
+
+		/**
+		 * The meta object literal for the '<em><b>Project Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_GEN__PROJECT_NAME = eINSTANCE.getJavaGen_ProjectName();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaNamedElementImpl <em>Named Element</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaNamedElementImpl
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaNamedElement()
+		 * @generated
+		 */
+		EClass JAVA_NAMED_ELEMENT = eINSTANCE.getJavaNamedElement();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_NAMED_ELEMENT__NAME = eINSTANCE.getJavaNamedElement_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Author</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_NAMED_ELEMENT__AUTHOR = eINSTANCE.getJavaNamedElement_Author();
+
+		/**
+		 * The meta object literal for the '<em><b>Version</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_NAMED_ELEMENT__VERSION = eINSTANCE.getJavaNamedElement_Version();
+
+		/**
+		 * The meta object literal for the '<em><b>Comment</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_NAMED_ELEMENT__COMMENT = eINSTANCE.getJavaNamedElement_Comment();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Generated</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_NAMED_ELEMENT__IS_GENERATED = eINSTANCE.getJavaNamedElement_IsGenerated();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackage_Impl <em>Package </em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackage_Impl
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaPackage_()
+		 * @generated
+		 */
+		EClass JAVA_PACKAGE_ = eINSTANCE.getJavaPackage_();
+
+		/**
+		 * The meta object literal for the '<em><b>Package Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_PACKAGE___PACKAGE_NAME = eINSTANCE.getJavaPackage__PackageName();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference JAVA_PACKAGE___BASE_PACKAGE = eINSTANCE.getJavaPackage__Base_Package();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaMethodImpl <em>Method</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaMethodImpl
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaMethod()
+		 * @generated
+		 */
+		EClass JAVA_METHOD = eINSTANCE.getJavaMethod();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Static</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_METHOD__IS_STATIC = eINSTANCE.getJavaMethod_IsStatic();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Final</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_METHOD__IS_FINAL = eINSTANCE.getJavaMethod_IsFinal();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Abstract</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_METHOD__IS_ABSTRACT = eINSTANCE.getJavaMethod_IsAbstract();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Native</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_METHOD__IS_NATIVE = eINSTANCE.getJavaMethod_IsNative();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Synchronized</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_METHOD__IS_SYNCHRONIZED = eINSTANCE.getJavaMethod_IsSynchronized();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Constructor</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_METHOD__IS_CONSTRUCTOR = eINSTANCE.getJavaMethod_IsConstructor();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Operation</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference JAVA_METHOD__BASE_OPERATION = eINSTANCE.getJavaMethod_Base_Operation();
+
+		/**
+		 * The meta object literal for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = eINSTANCE.getJavaMethod_ExplicitPlainTextRequiredImports();
+
+		/**
+		 * The meta object literal for the '<em><b>Explicit Required Imports</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS = eINSTANCE.getJavaMethod_ExplicitRequiredImports();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaParameterImpl <em>Parameter</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaParameterImpl
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaParameter()
+		 * @generated
+		 */
+		EClass JAVA_PARAMETER = eINSTANCE.getJavaParameter();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Final</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_PARAMETER__IS_FINAL = eINSTANCE.getJavaParameter_IsFinal();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Parameter</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference JAVA_PARAMETER__BASE_PARAMETER = eINSTANCE.getJavaParameter_Base_Parameter();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPropertyImpl <em>Property</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPropertyImpl
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaProperty()
+		 * @generated
+		 */
+		EClass JAVA_PROPERTY = eINSTANCE.getJavaProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Abstract</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_PROPERTY__IS_ABSTRACT = eINSTANCE.getJavaProperty_IsAbstract();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Final</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_PROPERTY__IS_FINAL = eINSTANCE.getJavaProperty_IsFinal();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference JAVA_PROPERTY__BASE_PROPERTY = eINSTANCE.getJavaProperty_Base_Property();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Transient</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_PROPERTY__IS_TRANSIENT = eINSTANCE.getJavaProperty_IsTransient();
+
+		/**
+		 * The meta object literal for the '<em><b>Generate Getter</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_PROPERTY__GENERATE_GETTER = eINSTANCE.getJavaProperty_GenerateGetter();
+
+		/**
+		 * The meta object literal for the '<em><b>Generate Setter</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_PROPERTY__GENERATE_SETTER = eINSTANCE.getJavaProperty_GenerateSetter();
+
+		/**
+		 * The meta object literal for the '<em><b>Is Static</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_PROPERTY__IS_STATIC = eINSTANCE.getJavaProperty_IsStatic();
+
+		/**
+		 * The meta object literal for the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS = eINSTANCE.getJavaProperty_ExplicitPlainTextRequiredImports();
+
+		/**
+		 * The meta object literal for the '<em><b>Explicit Required Imports</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS = eINSTANCE.getJavaProperty_ExplicitRequiredImports();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.PrimitiveTypeImpl <em>Primitive Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.PrimitiveTypeImpl
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getPrimitiveType()
+		 * @generated
+		 */
+		EClass PRIMITIVE_TYPE = eINSTANCE.getPrimitiveType();
+
+		/**
+		 * The meta object literal for the '<em><b>Implementation Class</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute PRIMITIVE_TYPE__IMPLEMENTATION_CLASS = eINSTANCE.getPrimitiveType_ImplementationClass();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Primitive Type</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE = eINSTANCE.getPrimitiveType_Base_PrimitiveType();
+
+		/**
+		 * The meta object literal for the '<em><b>Collection Implementation Class</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EAttribute PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS = eINSTANCE.getPrimitiveType_CollectionImplementationClass();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaProjectImpl <em>Project</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaProjectImpl
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaProject()
+		 * @generated
+		 */
+		EClass JAVA_PROJECT = eINSTANCE.getJavaProject();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference JAVA_PROJECT__BASE_PACKAGE = eINSTANCE.getJavaProject_Base_Package();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaSrcFolderImpl <em>Src Folder</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaSrcFolderImpl
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getJavaSrcFolder()
+		 * @generated
+		 */
+		EClass JAVA_SRC_FOLDER = eINSTANCE.getJavaSrcFolder();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @generated
+		 */
+		EReference JAVA_SRC_FOLDER__BASE_PACKAGE = eINSTANCE.getJavaSrcFolder_Base_Package();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.TrueFalseDefault <em>True False Default</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 *
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.TrueFalseDefault
+		 * @see org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackageImpl#getTrueFalseDefault()
+		 * @generated
+		 */
+		EEnum TRUE_FALSE_DEFAULT = eINSTANCE.getTrueFalseDefault();
+
+	}
+
+} // JavaPackage
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaPackage_.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaPackage_.java
new file mode 100644
index 0000000..5520c76
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaPackage_.java
@@ -0,0 +1,84 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Package </b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_#getPackageName <em>Package Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaPackage_()
+ * @model
+ * @generated
+ */
+public interface JavaPackage_ extends JavaGen {
+	/**
+	 * Returns the value of the '<em><b>Package Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Package Name</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Package Name</em>' attribute.
+	 * @see #setPackageName(String)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaPackage__PackageName()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	String getPackageName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_#getPackageName <em>Package Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Package Name</em>' attribute.
+	 * @see #getPackageName()
+	 * @generated
+	 */
+	void setPackageName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Package</em>' reference isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Base Package</em>' reference.
+	 * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaPackage__Base_Package()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Package getBase_Package();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_#getBase_Package <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Base Package</em>' reference.
+	 * @see #getBase_Package()
+	 * @generated
+	 */
+	void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // JavaPackage_
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaParameter.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaParameter.java
new file mode 100644
index 0000000..61af2f1
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaParameter.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java;
+
+import org.eclipse.uml2.uml.Parameter;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter#isFinal <em>Is Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter#getBase_Parameter <em>Base Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaParameter()
+ * @model
+ * @generated
+ */
+public interface JavaParameter extends JavaNamedElement {
+	/**
+	 * Returns the value of the '<em><b>Is Final</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Final</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Is Final</em>' attribute.
+	 * @see #setIsFinal(boolean)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaParameter_IsFinal()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	boolean isFinal();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter#isFinal <em>Is Final</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Is Final</em>' attribute.
+	 * @see #isFinal()
+	 * @generated
+	 */
+	void setIsFinal(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Base Parameter</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Parameter</em>' reference isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Base Parameter</em>' reference.
+	 * @see #setBase_Parameter(Parameter)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaParameter_Base_Parameter()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Parameter getBase_Parameter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter#getBase_Parameter <em>Base Parameter</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Base Parameter</em>' reference.
+	 * @see #getBase_Parameter()
+	 * @generated
+	 */
+	void setBase_Parameter(Parameter value);
+
+} // JavaParameter
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaProject.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaProject.java
new file mode 100644
index 0000000..d02846d
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaProject.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Project</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProject#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaProject()
+ * @model
+ * @generated
+ */
+public interface JavaProject extends JavaGen {
+	/**
+	 * Returns the value of the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Package</em>' reference isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Base Package</em>' reference.
+	 * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaProject_Base_Package()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Package getBase_Package();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProject#getBase_Package <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Base Package</em>' reference.
+	 * @see #getBase_Package()
+	 * @generated
+	 */
+	void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // JavaProject
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaProperty.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaProperty.java
new file mode 100644
index 0000000..051b124
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaProperty.java
@@ -0,0 +1,305 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#isAbstract <em>Is Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#isFinal <em>Is Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getBase_Property <em>Base Property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#isTransient <em>Is Transient</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getGenerateGetter <em>Generate Getter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getGenerateSetter <em>Generate Setter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#isStatic <em>Is Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getExplicitRequiredImports <em>Explicit Required Imports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaProperty()
+ * @model
+ * @generated
+ */
+public interface JavaProperty extends JavaNamedElement {
+	/**
+	 * Returns the value of the '<em><b>Is Abstract</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Abstract</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Is Abstract</em>' attribute.
+	 * @see #setIsAbstract(boolean)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaProperty_IsAbstract()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	boolean isAbstract();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#isAbstract <em>Is Abstract</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Is Abstract</em>' attribute.
+	 * @see #isAbstract()
+	 * @generated
+	 */
+	void setIsAbstract(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Final</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Final</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Is Final</em>' attribute.
+	 * @see #setIsFinal(boolean)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaProperty_IsFinal()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	boolean isFinal();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#isFinal <em>Is Final</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Is Final</em>' attribute.
+	 * @see #isFinal()
+	 * @generated
+	 */
+	void setIsFinal(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Base Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Property</em>' reference isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Base Property</em>' reference.
+	 * @see #setBase_Property(Property)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaProperty_Base_Property()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Property getBase_Property();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getBase_Property <em>Base Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Base Property</em>' reference.
+	 * @see #getBase_Property()
+	 * @generated
+	 */
+	void setBase_Property(Property value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Transient</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Transient</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Is Transient</em>' attribute.
+	 * @see #setIsTransient(boolean)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaProperty_IsTransient()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	boolean isTransient();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#isTransient <em>Is Transient</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Is Transient</em>' attribute.
+	 * @see #isTransient()
+	 * @generated
+	 */
+	void setIsTransient(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Generate Getter</b></em>' attribute.
+	 * The default value is <code>"default"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.designer.languages.java.profile.java.TrueFalseDefault}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Generate Getter</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Generate Getter</em>' attribute.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.TrueFalseDefault
+	 * @see #setGenerateGetter(TrueFalseDefault)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaProperty_GenerateGetter()
+	 * @model default="default" required="true" ordered="false"
+	 * @generated
+	 */
+	TrueFalseDefault getGenerateGetter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getGenerateGetter <em>Generate Getter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Generate Getter</em>' attribute.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.TrueFalseDefault
+	 * @see #getGenerateGetter()
+	 * @generated
+	 */
+	void setGenerateGetter(TrueFalseDefault value);
+
+	/**
+	 * Returns the value of the '<em><b>Generate Setter</b></em>' attribute.
+	 * The default value is <code>"default"</code>.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.designer.languages.java.profile.java.TrueFalseDefault}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Generate Setter</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Generate Setter</em>' attribute.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.TrueFalseDefault
+	 * @see #setGenerateSetter(TrueFalseDefault)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaProperty_GenerateSetter()
+	 * @model default="default" required="true" ordered="false"
+	 * @generated
+	 */
+	TrueFalseDefault getGenerateSetter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#getGenerateSetter <em>Generate Setter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Generate Setter</em>' attribute.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.TrueFalseDefault
+	 * @see #getGenerateSetter()
+	 * @generated
+	 */
+	void setGenerateSetter(TrueFalseDefault value);
+
+	/**
+	 * Returns the value of the '<em><b>Is Static</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Is Static</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Is Static</em>' attribute.
+	 * @see #setIsStatic(boolean)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaProperty_IsStatic()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	boolean isStatic();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty#isStatic <em>Is Static</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Is Static</em>' attribute.
+	 * @see #isStatic()
+	 * @generated
+	 */
+	void setIsStatic(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Explicit Plain Text Required Imports</b></em>' attribute list.
+	 * The list contents are of type {@link java.lang.String}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Explicit Plain Text Required Imports</em>' attribute list isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Explicit Plain Text Required Imports</em>' attribute list.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaProperty_ExplicitPlainTextRequiredImports()
+	 * @model unique="false" ordered="false"
+	 * @generated
+	 */
+	EList<String> getExplicitPlainTextRequiredImports();
+
+	/**
+	 * Returns the value of the '<em><b>Explicit Required Imports</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.uml2.uml.Classifier}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Explicit Required Imports</em>' reference list isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Explicit Required Imports</em>' reference list.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaProperty_ExplicitRequiredImports()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<Classifier> getExplicitRequiredImports();
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>' from the '<em><b>Explicit Required Imports</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param name
+	 *            The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+	 * @return The first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+	 * @see #getExplicitRequiredImports()
+	 * @generated
+	 */
+	Classifier getExplicitRequiredImports(String name);
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>' from the '<em><b>Explicit Required Imports</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param name
+	 *            The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+	 * @param ignoreCase
+	 *            Whether to ignore case in {@link java.lang.String} comparisons.
+	 * @param eClass
+	 *            The Ecore class of the {@link org.eclipse.uml2.uml.Classifier} to retrieve, or <code>null</code>.
+	 * @return The first {@link org.eclipse.uml2.uml.Classifier} with the specified '<em><b>Name</b></em>', or <code>null</code>.
+	 * @see #getExplicitRequiredImports()
+	 * @generated
+	 */
+	Classifier getExplicitRequiredImports(String name, boolean ignoreCase, EClass eClass);
+
+} // JavaProperty
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaSrcFolder.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaSrcFolder.java
new file mode 100644
index 0000000..bfaaad6
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/JavaSrcFolder.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Src Folder</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaSrcFolder#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaSrcFolder()
+ * @model
+ * @generated
+ */
+public interface JavaSrcFolder extends JavaGen {
+	/**
+	 * Returns the value of the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Package</em>' reference isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Base Package</em>' reference.
+	 * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getJavaSrcFolder_Base_Package()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Package getBase_Package();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaSrcFolder#getBase_Package <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Base Package</em>' reference.
+	 * @see #getBase_Package()
+	 * @generated
+	 */
+	void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+} // JavaSrcFolder
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/PrimitiveType.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/PrimitiveType.java
new file mode 100644
index 0000000..6ac0ee8
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/PrimitiveType.java
@@ -0,0 +1,113 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Primitive Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType#getImplementationClass <em>Implementation Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType#getBase_PrimitiveType <em>Base Primitive Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType#getCollectionImplementationClass <em>Collection Implementation Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getPrimitiveType()
+ * @model
+ * @generated
+ */
+public interface PrimitiveType extends JavaGen {
+	/**
+	 * Returns the value of the '<em><b>Implementation Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Implementation Class</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Implementation Class</em>' attribute.
+	 * @see #setImplementationClass(String)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getPrimitiveType_ImplementationClass()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	String getImplementationClass();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType#getImplementationClass <em>Implementation Class</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Implementation Class</em>' attribute.
+	 * @see #getImplementationClass()
+	 * @generated
+	 */
+	void setImplementationClass(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Base Primitive Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Primitive Type</em>' reference isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Base Primitive Type</em>' reference.
+	 * @see #setBase_PrimitiveType(org.eclipse.uml2.uml.PrimitiveType)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getPrimitiveType_Base_PrimitiveType()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.PrimitiveType getBase_PrimitiveType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType#getBase_PrimitiveType <em>Base Primitive Type</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Base Primitive Type</em>' reference.
+	 * @see #getBase_PrimitiveType()
+	 * @generated
+	 */
+	void setBase_PrimitiveType(org.eclipse.uml2.uml.PrimitiveType value);
+
+	/**
+	 * Returns the value of the '<em><b>Collection Implementation Class</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Collection Implementation Class</em>' attribute isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the value of the '<em>Collection Implementation Class</em>' attribute.
+	 * @see #setCollectionImplementationClass(String)
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getPrimitiveType_CollectionImplementationClass()
+	 * @model unique="false" required="true" ordered="false"
+	 * @generated
+	 */
+	String getCollectionImplementationClass();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType#getCollectionImplementationClass <em>Collection Implementation Class</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param value
+	 *            the new value of the '<em>Collection Implementation Class</em>' attribute.
+	 * @see #getCollectionImplementationClass()
+	 * @generated
+	 */
+	void setCollectionImplementationClass(String value);
+
+} // PrimitiveType
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/TrueFalseDefault.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/TrueFalseDefault.java
new file mode 100644
index 0000000..7b8b706
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/TrueFalseDefault.java
@@ -0,0 +1,262 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>True False Default</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#getTrueFalseDefault()
+ * @model
+ * @generated
+ */
+public enum TrueFalseDefault implements Enumerator {
+	/**
+	 * The '<em><b>True</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #TRUE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TRUE(0, "true", "true"),
+
+	/**
+	 * The '<em><b>False</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #FALSE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	FALSE(1, "false", "false"),
+
+	/**
+	 * The '<em><b>Default</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #DEFAULT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DEFAULT(2, "default", "default");
+
+	/**
+	 * The '<em><b>True</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>True</b></em>' literal object isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #TRUE
+	 * @model name="true"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TRUE_VALUE = 0;
+
+	/**
+	 * The '<em><b>False</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>False</b></em>' literal object isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #FALSE
+	 * @model name="false"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FALSE_VALUE = 1;
+
+	/**
+	 * The '<em><b>Default</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Default</b></em>' literal object isn't clear, there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #DEFAULT
+	 * @model name="default"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DEFAULT_VALUE = 2;
+
+	/**
+	 * An array of all the '<em><b>True False Default</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private static final TrueFalseDefault[] VALUES_ARRAY =
+			new TrueFalseDefault[] {
+					TRUE,
+					FALSE,
+					DEFAULT,
+			};
+
+	/**
+	 * A public read-only list of all the '<em><b>True False Default</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public static final List<TrueFalseDefault> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>True False Default</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public static TrueFalseDefault get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TrueFalseDefault result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>True False Default</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public static TrueFalseDefault getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TrueFalseDefault result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>True False Default</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public static TrueFalseDefault get(int value) {
+		switch (value) {
+		case TRUE_VALUE:
+			return TRUE;
+		case FALSE_VALUE:
+			return FALSE;
+		case DEFAULT_VALUE:
+			return DEFAULT;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private TrueFalseDefault(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public int getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getLiteral() {
+		return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+
+} // TrueFalseDefault
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaClassImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaClassImpl.java
new file mode 100644
index 0000000..9e2d540
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaClassImpl.java
@@ -0,0 +1,486 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage;
+import org.eclipse.uml2.uml.Classifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Class</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaClassImpl#getBase_Classifier <em>Base Classifier</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaClassImpl#isFinal <em>Is Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaClassImpl#isAbstract <em>Is Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaClassImpl#isStatic <em>Is Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaClassImpl#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaClassImpl#getExplicitRequiredImports <em>Explicit Required Imports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaClassImpl extends JavaGenImpl implements JavaClass {
+	/**
+	 * The cached value of the '{@link #getBase_Classifier() <em>Base Classifier</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getBase_Classifier()
+	 * @generated
+	 * @ordered
+	 */
+	protected Classifier base_Classifier;
+
+	/**
+	 * The default value of the '{@link #isFinal() <em>Is Final</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isFinal()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_FINAL_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isFinal() <em>Is Final</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isFinal()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isFinal = IS_FINAL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isAbstract() <em>Is Abstract</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isAbstract()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_ABSTRACT_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isAbstract() <em>Is Abstract</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isAbstract()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isAbstract = IS_ABSTRACT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isStatic() <em>Is Static</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isStatic()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_STATIC_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isStatic() <em>Is Static</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isStatic()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isStatic = IS_STATIC_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getExplicitPlainTextRequiredImports() <em>Explicit Plain Text Required Imports</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getExplicitPlainTextRequiredImports()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> explicitPlainTextRequiredImports;
+
+	/**
+	 * The cached value of the '{@link #getExplicitRequiredImports() <em>Explicit Required Imports</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getExplicitRequiredImports()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Classifier> explicitRequiredImports;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected JavaClassImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return JavaPackage.Literals.JAVA_CLASS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Classifier getBase_Classifier() {
+		if (base_Classifier != null && base_Classifier.eIsProxy()) {
+			InternalEObject oldBase_Classifier = (InternalEObject) base_Classifier;
+			base_Classifier = (Classifier) eResolveProxy(oldBase_Classifier);
+			if (base_Classifier != oldBase_Classifier) {
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaPackage.JAVA_CLASS__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));
+				}
+			}
+		}
+		return base_Classifier;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public Classifier basicGetBase_Classifier() {
+		return base_Classifier;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setBase_Classifier(Classifier newBase_Classifier) {
+		Classifier oldBase_Classifier = base_Classifier;
+		base_Classifier = newBase_Classifier;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_CLASS__BASE_CLASSIFIER, oldBase_Classifier, base_Classifier));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isFinal() {
+		return isFinal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setIsFinal(boolean newIsFinal) {
+		boolean oldIsFinal = isFinal;
+		isFinal = newIsFinal;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_CLASS__IS_FINAL, oldIsFinal, isFinal));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isAbstract() {
+		return isAbstract;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setIsAbstract(boolean newIsAbstract) {
+		boolean oldIsAbstract = isAbstract;
+		isAbstract = newIsAbstract;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_CLASS__IS_ABSTRACT, oldIsAbstract, isAbstract));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isStatic() {
+		return isStatic;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setIsStatic(boolean newIsStatic) {
+		boolean oldIsStatic = isStatic;
+		isStatic = newIsStatic;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_CLASS__IS_STATIC, oldIsStatic, isStatic));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EList<String> getExplicitPlainTextRequiredImports() {
+		if (explicitPlainTextRequiredImports == null) {
+			explicitPlainTextRequiredImports = new EDataTypeEList<String>(String.class, this, JavaPackage.JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS);
+		}
+		return explicitPlainTextRequiredImports;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EList<Classifier> getExplicitRequiredImports() {
+		if (explicitRequiredImports == null) {
+			explicitRequiredImports = new EObjectResolvingEList<Classifier>(Classifier.class, this, JavaPackage.JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS);
+		}
+		return explicitRequiredImports;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Classifier getExplicitRequiredImports(String name) {
+		return getExplicitRequiredImports(name, false, null);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Classifier getExplicitRequiredImports(String name, boolean ignoreCase, EClass eClass) {
+		explicitRequiredImportsLoop: for (Classifier explicitRequiredImports : getExplicitRequiredImports()) {
+			if (eClass != null && !eClass.isInstance(explicitRequiredImports)) {
+				continue explicitRequiredImportsLoop;
+			}
+			if (name != null && !(ignoreCase ? name.equalsIgnoreCase(explicitRequiredImports.getName()) : name.equals(explicitRequiredImports.getName()))) {
+				continue explicitRequiredImportsLoop;
+			}
+			return explicitRequiredImports;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case JavaPackage.JAVA_CLASS__BASE_CLASSIFIER:
+			if (resolve) {
+				return getBase_Classifier();
+			}
+			return basicGetBase_Classifier();
+		case JavaPackage.JAVA_CLASS__IS_FINAL:
+			return isFinal();
+		case JavaPackage.JAVA_CLASS__IS_ABSTRACT:
+			return isAbstract();
+		case JavaPackage.JAVA_CLASS__IS_STATIC:
+			return isStatic();
+		case JavaPackage.JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+			return getExplicitPlainTextRequiredImports();
+		case JavaPackage.JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS:
+			return getExplicitRequiredImports();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case JavaPackage.JAVA_CLASS__BASE_CLASSIFIER:
+			setBase_Classifier((Classifier) newValue);
+			return;
+		case JavaPackage.JAVA_CLASS__IS_FINAL:
+			setIsFinal((Boolean) newValue);
+			return;
+		case JavaPackage.JAVA_CLASS__IS_ABSTRACT:
+			setIsAbstract((Boolean) newValue);
+			return;
+		case JavaPackage.JAVA_CLASS__IS_STATIC:
+			setIsStatic((Boolean) newValue);
+			return;
+		case JavaPackage.JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+			getExplicitPlainTextRequiredImports().clear();
+			getExplicitPlainTextRequiredImports().addAll((Collection<? extends String>) newValue);
+			return;
+		case JavaPackage.JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS:
+			getExplicitRequiredImports().clear();
+			getExplicitRequiredImports().addAll((Collection<? extends Classifier>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_CLASS__BASE_CLASSIFIER:
+			setBase_Classifier((Classifier) null);
+			return;
+		case JavaPackage.JAVA_CLASS__IS_FINAL:
+			setIsFinal(IS_FINAL_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_CLASS__IS_ABSTRACT:
+			setIsAbstract(IS_ABSTRACT_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_CLASS__IS_STATIC:
+			setIsStatic(IS_STATIC_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+			getExplicitPlainTextRequiredImports().clear();
+			return;
+		case JavaPackage.JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS:
+			getExplicitRequiredImports().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_CLASS__BASE_CLASSIFIER:
+			return base_Classifier != null;
+		case JavaPackage.JAVA_CLASS__IS_FINAL:
+			return isFinal != IS_FINAL_EDEFAULT;
+		case JavaPackage.JAVA_CLASS__IS_ABSTRACT:
+			return isAbstract != IS_ABSTRACT_EDEFAULT;
+		case JavaPackage.JAVA_CLASS__IS_STATIC:
+			return isStatic != IS_STATIC_EDEFAULT;
+		case JavaPackage.JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+			return explicitPlainTextRequiredImports != null && !explicitPlainTextRequiredImports.isEmpty();
+		case JavaPackage.JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS:
+			return explicitRequiredImports != null && !explicitRequiredImports.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) {
+			return super.toString();
+		}
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (isFinal: ");
+		result.append(isFinal);
+		result.append(", isAbstract: ");
+		result.append(isAbstract);
+		result.append(", isStatic: ");
+		result.append(isStatic);
+		result.append(", explicitPlainTextRequiredImports: ");
+		result.append(explicitPlainTextRequiredImports);
+		result.append(')');
+		return result.toString();
+	}
+
+} // JavaClassImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaFactoryImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaFactoryImpl.java
new file mode 100644
index 0000000..eed5ac5
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaFactoryImpl.java
@@ -0,0 +1,270 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaFactory;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaProject;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaSrcFolder;
+import org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType;
+import org.eclipse.papyrus.designer.languages.java.profile.java.TrueFalseDefault;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaFactoryImpl extends EFactoryImpl implements JavaFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public static JavaFactory init() {
+		try {
+			JavaFactory theJavaFactory = (JavaFactory) EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/papyrus/JAVA/1");
+			if (theJavaFactory != null) {
+				return theJavaFactory;
+			}
+		} catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new JavaFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public JavaFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+		case JavaPackage.JAVA_CLASS:
+			return createJavaClass();
+		case JavaPackage.JAVA_PACKAGE_:
+			return createJavaPackage_();
+		case JavaPackage.JAVA_METHOD:
+			return createJavaMethod();
+		case JavaPackage.JAVA_PARAMETER:
+			return createJavaParameter();
+		case JavaPackage.JAVA_PROPERTY:
+			return createJavaProperty();
+		case JavaPackage.PRIMITIVE_TYPE:
+			return createPrimitiveType();
+		case JavaPackage.JAVA_PROJECT:
+			return createJavaProject();
+		case JavaPackage.JAVA_SRC_FOLDER:
+			return createJavaSrcFolder();
+		default:
+			throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+		case JavaPackage.TRUE_FALSE_DEFAULT:
+			return createTrueFalseDefaultFromString(eDataType, initialValue);
+		default:
+			throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+		case JavaPackage.TRUE_FALSE_DEFAULT:
+			return convertTrueFalseDefaultToString(eDataType, instanceValue);
+		default:
+			throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public JavaClass createJavaClass() {
+		JavaClassImpl javaClass = new JavaClassImpl();
+		return javaClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public JavaPackage_ createJavaPackage_() {
+		JavaPackage_Impl javaPackage_ = new JavaPackage_Impl();
+		return javaPackage_;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public JavaMethod createJavaMethod() {
+		JavaMethodImpl javaMethod = new JavaMethodImpl();
+		return javaMethod;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public JavaParameter createJavaParameter() {
+		JavaParameterImpl javaParameter = new JavaParameterImpl();
+		return javaParameter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public JavaProperty createJavaProperty() {
+		JavaPropertyImpl javaProperty = new JavaPropertyImpl();
+		return javaProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public PrimitiveType createPrimitiveType() {
+		PrimitiveTypeImpl primitiveType = new PrimitiveTypeImpl();
+		return primitiveType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public JavaProject createJavaProject() {
+		JavaProjectImpl javaProject = new JavaProjectImpl();
+		return javaProject;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public JavaSrcFolder createJavaSrcFolder() {
+		JavaSrcFolderImpl javaSrcFolder = new JavaSrcFolderImpl();
+		return javaSrcFolder;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public TrueFalseDefault createTrueFalseDefaultFromString(EDataType eDataType, String initialValue) {
+		TrueFalseDefault result = TrueFalseDefault.get(initialValue);
+		if (result == null) {
+			throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		}
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public String convertTrueFalseDefaultToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public JavaPackage getJavaPackage() {
+		return (JavaPackage) getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static JavaPackage getPackage() {
+		return JavaPackage.eINSTANCE;
+	}
+
+} // JavaFactoryImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaGenImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaGenImpl.java
new file mode 100644
index 0000000..92afbd4
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaGenImpl.java
@@ -0,0 +1,240 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaGen;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gen</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaGenImpl#getSrcName <em>Src Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaGenImpl#getProjectName <em>Project Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class JavaGenImpl extends JavaNamedElementImpl implements JavaGen {
+	/**
+	 * The default value of the '{@link #getSrcName() <em>Src Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getSrcName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SRC_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSrcName() <em>Src Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getSrcName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String srcName = SRC_NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getProjectName() <em>Project Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getProjectName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PROJECT_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getProjectName() <em>Project Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getProjectName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String projectName = PROJECT_NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected JavaGenImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return JavaPackage.Literals.JAVA_GEN;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getSrcName() {
+		return srcName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setSrcName(String newSrcName) {
+		String oldSrcName = srcName;
+		srcName = newSrcName;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_GEN__SRC_NAME, oldSrcName, srcName));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getProjectName() {
+		return projectName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setProjectName(String newProjectName) {
+		String oldProjectName = projectName;
+		projectName = newProjectName;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_GEN__PROJECT_NAME, oldProjectName, projectName));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case JavaPackage.JAVA_GEN__SRC_NAME:
+			return getSrcName();
+		case JavaPackage.JAVA_GEN__PROJECT_NAME:
+			return getProjectName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case JavaPackage.JAVA_GEN__SRC_NAME:
+			setSrcName((String) newValue);
+			return;
+		case JavaPackage.JAVA_GEN__PROJECT_NAME:
+			setProjectName((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_GEN__SRC_NAME:
+			setSrcName(SRC_NAME_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_GEN__PROJECT_NAME:
+			setProjectName(PROJECT_NAME_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_GEN__SRC_NAME:
+			return SRC_NAME_EDEFAULT == null ? srcName != null : !SRC_NAME_EDEFAULT.equals(srcName);
+		case JavaPackage.JAVA_GEN__PROJECT_NAME:
+			return PROJECT_NAME_EDEFAULT == null ? projectName != null : !PROJECT_NAME_EDEFAULT.equals(projectName);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) {
+			return super.toString();
+		}
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (srcName: ");
+		result.append(srcName);
+		result.append(", projectName: ");
+		result.append(projectName);
+		result.append(')');
+		return result.toString();
+	}
+
+} // JavaGenImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaMethodImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaMethodImpl.java
new file mode 100644
index 0000000..1caff3a
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaMethodImpl.java
@@ -0,0 +1,670 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Operation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Method</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaMethodImpl#isStatic <em>Is Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaMethodImpl#isFinal <em>Is Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaMethodImpl#isAbstract <em>Is Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaMethodImpl#isNative <em>Is Native</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaMethodImpl#isSynchronized <em>Is Synchronized</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaMethodImpl#isConstructor <em>Is Constructor</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaMethodImpl#getBase_Operation <em>Base Operation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaMethodImpl#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaMethodImpl#getExplicitRequiredImports <em>Explicit Required Imports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaMethodImpl extends JavaNamedElementImpl implements JavaMethod {
+	/**
+	 * The default value of the '{@link #isStatic() <em>Is Static</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isStatic()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_STATIC_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isStatic() <em>Is Static</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isStatic()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isStatic = IS_STATIC_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isFinal() <em>Is Final</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isFinal()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_FINAL_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isFinal() <em>Is Final</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isFinal()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isFinal = IS_FINAL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isAbstract() <em>Is Abstract</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isAbstract()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_ABSTRACT_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isAbstract() <em>Is Abstract</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isAbstract()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isAbstract = IS_ABSTRACT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isNative() <em>Is Native</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isNative()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_NATIVE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isNative() <em>Is Native</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isNative()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isNative = IS_NATIVE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isSynchronized() <em>Is Synchronized</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isSynchronized()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_SYNCHRONIZED_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isSynchronized() <em>Is Synchronized</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isSynchronized()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isSynchronized = IS_SYNCHRONIZED_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isConstructor() <em>Is Constructor</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isConstructor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_CONSTRUCTOR_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isConstructor() <em>Is Constructor</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isConstructor()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isConstructor = IS_CONSTRUCTOR_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBase_Operation() <em>Base Operation</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getBase_Operation()
+	 * @generated
+	 * @ordered
+	 */
+	protected Operation base_Operation;
+
+	/**
+	 * The cached value of the '{@link #getExplicitPlainTextRequiredImports() <em>Explicit Plain Text Required Imports</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getExplicitPlainTextRequiredImports()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> explicitPlainTextRequiredImports;
+
+	/**
+	 * The cached value of the '{@link #getExplicitRequiredImports() <em>Explicit Required Imports</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getExplicitRequiredImports()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Classifier> explicitRequiredImports;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected JavaMethodImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return JavaPackage.Literals.JAVA_METHOD;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isStatic() {
+		return isStatic;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setIsStatic(boolean newIsStatic) {
+		boolean oldIsStatic = isStatic;
+		isStatic = newIsStatic;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_METHOD__IS_STATIC, oldIsStatic, isStatic));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isFinal() {
+		return isFinal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setIsFinal(boolean newIsFinal) {
+		boolean oldIsFinal = isFinal;
+		isFinal = newIsFinal;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_METHOD__IS_FINAL, oldIsFinal, isFinal));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isAbstract() {
+		return isAbstract;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setIsAbstract(boolean newIsAbstract) {
+		boolean oldIsAbstract = isAbstract;
+		isAbstract = newIsAbstract;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_METHOD__IS_ABSTRACT, oldIsAbstract, isAbstract));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isNative() {
+		return isNative;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setIsNative(boolean newIsNative) {
+		boolean oldIsNative = isNative;
+		isNative = newIsNative;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_METHOD__IS_NATIVE, oldIsNative, isNative));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isSynchronized() {
+		return isSynchronized;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setIsSynchronized(boolean newIsSynchronized) {
+		boolean oldIsSynchronized = isSynchronized;
+		isSynchronized = newIsSynchronized;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_METHOD__IS_SYNCHRONIZED, oldIsSynchronized, isSynchronized));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isConstructor() {
+		return isConstructor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setIsConstructor(boolean newIsConstructor) {
+		boolean oldIsConstructor = isConstructor;
+		isConstructor = newIsConstructor;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_METHOD__IS_CONSTRUCTOR, oldIsConstructor, isConstructor));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Operation getBase_Operation() {
+		if (base_Operation != null && base_Operation.eIsProxy()) {
+			InternalEObject oldBase_Operation = (InternalEObject) base_Operation;
+			base_Operation = (Operation) eResolveProxy(oldBase_Operation);
+			if (base_Operation != oldBase_Operation) {
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaPackage.JAVA_METHOD__BASE_OPERATION, oldBase_Operation, base_Operation));
+				}
+			}
+		}
+		return base_Operation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public Operation basicGetBase_Operation() {
+		return base_Operation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setBase_Operation(Operation newBase_Operation) {
+		Operation oldBase_Operation = base_Operation;
+		base_Operation = newBase_Operation;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_METHOD__BASE_OPERATION, oldBase_Operation, base_Operation));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EList<String> getExplicitPlainTextRequiredImports() {
+		if (explicitPlainTextRequiredImports == null) {
+			explicitPlainTextRequiredImports = new EDataTypeEList<String>(String.class, this, JavaPackage.JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS);
+		}
+		return explicitPlainTextRequiredImports;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EList<Classifier> getExplicitRequiredImports() {
+		if (explicitRequiredImports == null) {
+			explicitRequiredImports = new EObjectResolvingEList<Classifier>(Classifier.class, this, JavaPackage.JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS);
+		}
+		return explicitRequiredImports;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Classifier getExplicitRequiredImports(String name) {
+		return getExplicitRequiredImports(name, false, null);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Classifier getExplicitRequiredImports(String name, boolean ignoreCase, EClass eClass) {
+		explicitRequiredImportsLoop: for (Classifier explicitRequiredImports : getExplicitRequiredImports()) {
+			if (eClass != null && !eClass.isInstance(explicitRequiredImports)) {
+				continue explicitRequiredImportsLoop;
+			}
+			if (name != null && !(ignoreCase ? name.equalsIgnoreCase(explicitRequiredImports.getName()) : name.equals(explicitRequiredImports.getName()))) {
+				continue explicitRequiredImportsLoop;
+			}
+			return explicitRequiredImports;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case JavaPackage.JAVA_METHOD__IS_STATIC:
+			return isStatic();
+		case JavaPackage.JAVA_METHOD__IS_FINAL:
+			return isFinal();
+		case JavaPackage.JAVA_METHOD__IS_ABSTRACT:
+			return isAbstract();
+		case JavaPackage.JAVA_METHOD__IS_NATIVE:
+			return isNative();
+		case JavaPackage.JAVA_METHOD__IS_SYNCHRONIZED:
+			return isSynchronized();
+		case JavaPackage.JAVA_METHOD__IS_CONSTRUCTOR:
+			return isConstructor();
+		case JavaPackage.JAVA_METHOD__BASE_OPERATION:
+			if (resolve) {
+				return getBase_Operation();
+			}
+			return basicGetBase_Operation();
+		case JavaPackage.JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+			return getExplicitPlainTextRequiredImports();
+		case JavaPackage.JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS:
+			return getExplicitRequiredImports();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case JavaPackage.JAVA_METHOD__IS_STATIC:
+			setIsStatic((Boolean) newValue);
+			return;
+		case JavaPackage.JAVA_METHOD__IS_FINAL:
+			setIsFinal((Boolean) newValue);
+			return;
+		case JavaPackage.JAVA_METHOD__IS_ABSTRACT:
+			setIsAbstract((Boolean) newValue);
+			return;
+		case JavaPackage.JAVA_METHOD__IS_NATIVE:
+			setIsNative((Boolean) newValue);
+			return;
+		case JavaPackage.JAVA_METHOD__IS_SYNCHRONIZED:
+			setIsSynchronized((Boolean) newValue);
+			return;
+		case JavaPackage.JAVA_METHOD__IS_CONSTRUCTOR:
+			setIsConstructor((Boolean) newValue);
+			return;
+		case JavaPackage.JAVA_METHOD__BASE_OPERATION:
+			setBase_Operation((Operation) newValue);
+			return;
+		case JavaPackage.JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+			getExplicitPlainTextRequiredImports().clear();
+			getExplicitPlainTextRequiredImports().addAll((Collection<? extends String>) newValue);
+			return;
+		case JavaPackage.JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS:
+			getExplicitRequiredImports().clear();
+			getExplicitRequiredImports().addAll((Collection<? extends Classifier>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_METHOD__IS_STATIC:
+			setIsStatic(IS_STATIC_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_METHOD__IS_FINAL:
+			setIsFinal(IS_FINAL_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_METHOD__IS_ABSTRACT:
+			setIsAbstract(IS_ABSTRACT_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_METHOD__IS_NATIVE:
+			setIsNative(IS_NATIVE_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_METHOD__IS_SYNCHRONIZED:
+			setIsSynchronized(IS_SYNCHRONIZED_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_METHOD__IS_CONSTRUCTOR:
+			setIsConstructor(IS_CONSTRUCTOR_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_METHOD__BASE_OPERATION:
+			setBase_Operation((Operation) null);
+			return;
+		case JavaPackage.JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+			getExplicitPlainTextRequiredImports().clear();
+			return;
+		case JavaPackage.JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS:
+			getExplicitRequiredImports().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_METHOD__IS_STATIC:
+			return isStatic != IS_STATIC_EDEFAULT;
+		case JavaPackage.JAVA_METHOD__IS_FINAL:
+			return isFinal != IS_FINAL_EDEFAULT;
+		case JavaPackage.JAVA_METHOD__IS_ABSTRACT:
+			return isAbstract != IS_ABSTRACT_EDEFAULT;
+		case JavaPackage.JAVA_METHOD__IS_NATIVE:
+			return isNative != IS_NATIVE_EDEFAULT;
+		case JavaPackage.JAVA_METHOD__IS_SYNCHRONIZED:
+			return isSynchronized != IS_SYNCHRONIZED_EDEFAULT;
+		case JavaPackage.JAVA_METHOD__IS_CONSTRUCTOR:
+			return isConstructor != IS_CONSTRUCTOR_EDEFAULT;
+		case JavaPackage.JAVA_METHOD__BASE_OPERATION:
+			return base_Operation != null;
+		case JavaPackage.JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+			return explicitPlainTextRequiredImports != null && !explicitPlainTextRequiredImports.isEmpty();
+		case JavaPackage.JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS:
+			return explicitRequiredImports != null && !explicitRequiredImports.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) {
+			return super.toString();
+		}
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (isStatic: ");
+		result.append(isStatic);
+		result.append(", isFinal: ");
+		result.append(isFinal);
+		result.append(", isAbstract: ");
+		result.append(isAbstract);
+		result.append(", isNative: ");
+		result.append(isNative);
+		result.append(", isSynchronized: ");
+		result.append(isSynchronized);
+		result.append(", isConstructor: ");
+		result.append(isConstructor);
+		result.append(", explicitPlainTextRequiredImports: ");
+		result.append(explicitPlainTextRequiredImports);
+		result.append(')');
+		return result.toString();
+	}
+
+} // JavaMethodImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaNamedElementImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaNamedElementImpl.java
new file mode 100644
index 0000000..e555929
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaNamedElementImpl.java
@@ -0,0 +1,424 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Named Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaNamedElementImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaNamedElementImpl#getAuthor <em>Author</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaNamedElementImpl#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaNamedElementImpl#getComment <em>Comment</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaNamedElementImpl#isGenerated <em>Is Generated</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class JavaNamedElementImpl extends EObjectImpl implements JavaNamedElement {
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getAuthor() <em>Author</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getAuthor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String AUTHOR_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getAuthor() <em>Author</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getAuthor()
+	 * @generated
+	 * @ordered
+	 */
+	protected String author = AUTHOR_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getVersion()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VERSION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getVersion()
+	 * @generated
+	 * @ordered
+	 */
+	protected String version = VERSION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getComment() <em>Comment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getComment()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String COMMENT_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getComment() <em>Comment</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getComment()
+	 * @generated
+	 * @ordered
+	 */
+	protected String comment = COMMENT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isGenerated() <em>Is Generated</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isGenerated()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_GENERATED_EDEFAULT = true;
+
+	/**
+	 * The cached value of the '{@link #isGenerated() <em>Is Generated</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isGenerated()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isGenerated = IS_GENERATED_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected JavaNamedElementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return JavaPackage.Literals.JAVA_NAMED_ELEMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_NAMED_ELEMENT__NAME, oldName, name));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getAuthor() {
+		return author;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setAuthor(String newAuthor) {
+		String oldAuthor = author;
+		author = newAuthor;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_NAMED_ELEMENT__AUTHOR, oldAuthor, author));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getVersion() {
+		return version;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setVersion(String newVersion) {
+		String oldVersion = version;
+		version = newVersion;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_NAMED_ELEMENT__VERSION, oldVersion, version));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getComment() {
+		return comment;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setComment(String newComment) {
+		String oldComment = comment;
+		comment = newComment;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_NAMED_ELEMENT__COMMENT, oldComment, comment));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isGenerated() {
+		return isGenerated;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setIsGenerated(boolean newIsGenerated) {
+		boolean oldIsGenerated = isGenerated;
+		isGenerated = newIsGenerated;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_NAMED_ELEMENT__IS_GENERATED, oldIsGenerated, isGenerated));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case JavaPackage.JAVA_NAMED_ELEMENT__NAME:
+			return getName();
+		case JavaPackage.JAVA_NAMED_ELEMENT__AUTHOR:
+			return getAuthor();
+		case JavaPackage.JAVA_NAMED_ELEMENT__VERSION:
+			return getVersion();
+		case JavaPackage.JAVA_NAMED_ELEMENT__COMMENT:
+			return getComment();
+		case JavaPackage.JAVA_NAMED_ELEMENT__IS_GENERATED:
+			return isGenerated();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case JavaPackage.JAVA_NAMED_ELEMENT__NAME:
+			setName((String) newValue);
+			return;
+		case JavaPackage.JAVA_NAMED_ELEMENT__AUTHOR:
+			setAuthor((String) newValue);
+			return;
+		case JavaPackage.JAVA_NAMED_ELEMENT__VERSION:
+			setVersion((String) newValue);
+			return;
+		case JavaPackage.JAVA_NAMED_ELEMENT__COMMENT:
+			setComment((String) newValue);
+			return;
+		case JavaPackage.JAVA_NAMED_ELEMENT__IS_GENERATED:
+			setIsGenerated((Boolean) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_NAMED_ELEMENT__NAME:
+			setName(NAME_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_NAMED_ELEMENT__AUTHOR:
+			setAuthor(AUTHOR_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_NAMED_ELEMENT__VERSION:
+			setVersion(VERSION_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_NAMED_ELEMENT__COMMENT:
+			setComment(COMMENT_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_NAMED_ELEMENT__IS_GENERATED:
+			setIsGenerated(IS_GENERATED_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_NAMED_ELEMENT__NAME:
+			return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		case JavaPackage.JAVA_NAMED_ELEMENT__AUTHOR:
+			return AUTHOR_EDEFAULT == null ? author != null : !AUTHOR_EDEFAULT.equals(author);
+		case JavaPackage.JAVA_NAMED_ELEMENT__VERSION:
+			return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
+		case JavaPackage.JAVA_NAMED_ELEMENT__COMMENT:
+			return COMMENT_EDEFAULT == null ? comment != null : !COMMENT_EDEFAULT.equals(comment);
+		case JavaPackage.JAVA_NAMED_ELEMENT__IS_GENERATED:
+			return isGenerated != IS_GENERATED_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) {
+			return super.toString();
+		}
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (name: ");
+		result.append(name);
+		result.append(", author: ");
+		result.append(author);
+		result.append(", version: ");
+		result.append(version);
+		result.append(", comment: ");
+		result.append(comment);
+		result.append(", isGenerated: ");
+		result.append(isGenerated);
+		result.append(')');
+		return result.toString();
+	}
+
+} // JavaNamedElementImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaPackageImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaPackageImpl.java
new file mode 100644
index 0000000..34da267
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaPackageImpl.java
@@ -0,0 +1,978 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaFactory;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaGen;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaProject;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaSrcFolder;
+import org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType;
+import org.eclipse.papyrus.designer.languages.java.profile.java.TrueFalseDefault;
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaPackageImpl extends EPackageImpl implements JavaPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass javaClassEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass javaGenEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass javaNamedElementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass javaPackage_EClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass javaMethodEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass javaParameterEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass javaPropertyEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass primitiveTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass javaProjectEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EClass javaSrcFolderEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private EEnum trueFalseDefaultEEnum = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>
+	 * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also performs initialization of the package, or returns the registered package, if one already exists. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private JavaPackageImpl() {
+		super(eNS_URI, JavaFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>
+	 * This method is used to initialize {@link JavaPackage#eINSTANCE} when that field is accessed. Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 *
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static JavaPackage init() {
+		if (isInited) {
+			return (JavaPackage) EPackage.Registry.INSTANCE.getEPackage(JavaPackage.eNS_URI);
+		}
+
+		// Obtain or create and register package
+		JavaPackageImpl theJavaPackage = (JavaPackageImpl) (EPackage.Registry.INSTANCE.get(eNS_URI) instanceof JavaPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new JavaPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		UMLPackage.eINSTANCE.eClass();
+
+		// Create package meta-data objects
+		theJavaPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theJavaPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theJavaPackage.freeze();
+
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(JavaPackage.eNS_URI, theJavaPackage);
+		return theJavaPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getJavaClass() {
+		return javaClassEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getJavaClass_Base_Classifier() {
+		return (EReference) javaClassEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaClass_IsFinal() {
+		return (EAttribute) javaClassEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaClass_IsAbstract() {
+		return (EAttribute) javaClassEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaClass_IsStatic() {
+		return (EAttribute) javaClassEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaClass_ExplicitPlainTextRequiredImports() {
+		return (EAttribute) javaClassEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getJavaClass_ExplicitRequiredImports() {
+		return (EReference) javaClassEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getJavaGen() {
+		return javaGenEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaGen_SrcName() {
+		return (EAttribute) javaGenEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaGen_ProjectName() {
+		return (EAttribute) javaGenEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getJavaNamedElement() {
+		return javaNamedElementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaNamedElement_Name() {
+		return (EAttribute) javaNamedElementEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaNamedElement_Author() {
+		return (EAttribute) javaNamedElementEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaNamedElement_Version() {
+		return (EAttribute) javaNamedElementEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaNamedElement_Comment() {
+		return (EAttribute) javaNamedElementEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaNamedElement_IsGenerated() {
+		return (EAttribute) javaNamedElementEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getJavaPackage_() {
+		return javaPackage_EClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaPackage__PackageName() {
+		return (EAttribute) javaPackage_EClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getJavaPackage__Base_Package() {
+		return (EReference) javaPackage_EClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getJavaMethod() {
+		return javaMethodEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaMethod_IsStatic() {
+		return (EAttribute) javaMethodEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaMethod_IsFinal() {
+		return (EAttribute) javaMethodEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaMethod_IsAbstract() {
+		return (EAttribute) javaMethodEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaMethod_IsNative() {
+		return (EAttribute) javaMethodEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaMethod_IsSynchronized() {
+		return (EAttribute) javaMethodEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaMethod_IsConstructor() {
+		return (EAttribute) javaMethodEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getJavaMethod_Base_Operation() {
+		return (EReference) javaMethodEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaMethod_ExplicitPlainTextRequiredImports() {
+		return (EAttribute) javaMethodEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getJavaMethod_ExplicitRequiredImports() {
+		return (EReference) javaMethodEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getJavaParameter() {
+		return javaParameterEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaParameter_IsFinal() {
+		return (EAttribute) javaParameterEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getJavaParameter_Base_Parameter() {
+		return (EReference) javaParameterEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getJavaProperty() {
+		return javaPropertyEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaProperty_IsAbstract() {
+		return (EAttribute) javaPropertyEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaProperty_IsFinal() {
+		return (EAttribute) javaPropertyEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getJavaProperty_Base_Property() {
+		return (EReference) javaPropertyEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaProperty_IsTransient() {
+		return (EAttribute) javaPropertyEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaProperty_GenerateGetter() {
+		return (EAttribute) javaPropertyEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaProperty_GenerateSetter() {
+		return (EAttribute) javaPropertyEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaProperty_IsStatic() {
+		return (EAttribute) javaPropertyEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getJavaProperty_ExplicitPlainTextRequiredImports() {
+		return (EAttribute) javaPropertyEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getJavaProperty_ExplicitRequiredImports() {
+		return (EReference) javaPropertyEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getPrimitiveType() {
+		return primitiveTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getPrimitiveType_ImplementationClass() {
+		return (EAttribute) primitiveTypeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getPrimitiveType_Base_PrimitiveType() {
+		return (EReference) primitiveTypeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EAttribute getPrimitiveType_CollectionImplementationClass() {
+		return (EAttribute) primitiveTypeEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getJavaProject() {
+		return javaProjectEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getJavaProject_Base_Package() {
+		return (EReference) javaProjectEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EClass getJavaSrcFolder() {
+		return javaSrcFolderEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EReference getJavaSrcFolder_Base_Package() {
+		return (EReference) javaSrcFolderEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EEnum getTrueFalseDefault() {
+		return trueFalseDefaultEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public JavaFactory getJavaFactory() {
+		return (JavaFactory) getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package. This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) {
+			return;
+		}
+		isCreated = true;
+
+		// Create classes and their features
+		javaClassEClass = createEClass(JAVA_CLASS);
+		createEReference(javaClassEClass, JAVA_CLASS__BASE_CLASSIFIER);
+		createEAttribute(javaClassEClass, JAVA_CLASS__IS_FINAL);
+		createEAttribute(javaClassEClass, JAVA_CLASS__IS_ABSTRACT);
+		createEAttribute(javaClassEClass, JAVA_CLASS__IS_STATIC);
+		createEAttribute(javaClassEClass, JAVA_CLASS__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS);
+		createEReference(javaClassEClass, JAVA_CLASS__EXPLICIT_REQUIRED_IMPORTS);
+
+		javaGenEClass = createEClass(JAVA_GEN);
+		createEAttribute(javaGenEClass, JAVA_GEN__SRC_NAME);
+		createEAttribute(javaGenEClass, JAVA_GEN__PROJECT_NAME);
+
+		javaNamedElementEClass = createEClass(JAVA_NAMED_ELEMENT);
+		createEAttribute(javaNamedElementEClass, JAVA_NAMED_ELEMENT__NAME);
+		createEAttribute(javaNamedElementEClass, JAVA_NAMED_ELEMENT__AUTHOR);
+		createEAttribute(javaNamedElementEClass, JAVA_NAMED_ELEMENT__VERSION);
+		createEAttribute(javaNamedElementEClass, JAVA_NAMED_ELEMENT__COMMENT);
+		createEAttribute(javaNamedElementEClass, JAVA_NAMED_ELEMENT__IS_GENERATED);
+
+		javaPackage_EClass = createEClass(JAVA_PACKAGE_);
+		createEAttribute(javaPackage_EClass, JAVA_PACKAGE___PACKAGE_NAME);
+		createEReference(javaPackage_EClass, JAVA_PACKAGE___BASE_PACKAGE);
+
+		javaMethodEClass = createEClass(JAVA_METHOD);
+		createEAttribute(javaMethodEClass, JAVA_METHOD__IS_STATIC);
+		createEAttribute(javaMethodEClass, JAVA_METHOD__IS_FINAL);
+		createEAttribute(javaMethodEClass, JAVA_METHOD__IS_ABSTRACT);
+		createEAttribute(javaMethodEClass, JAVA_METHOD__IS_NATIVE);
+		createEAttribute(javaMethodEClass, JAVA_METHOD__IS_SYNCHRONIZED);
+		createEAttribute(javaMethodEClass, JAVA_METHOD__IS_CONSTRUCTOR);
+		createEReference(javaMethodEClass, JAVA_METHOD__BASE_OPERATION);
+		createEAttribute(javaMethodEClass, JAVA_METHOD__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS);
+		createEReference(javaMethodEClass, JAVA_METHOD__EXPLICIT_REQUIRED_IMPORTS);
+
+		javaParameterEClass = createEClass(JAVA_PARAMETER);
+		createEAttribute(javaParameterEClass, JAVA_PARAMETER__IS_FINAL);
+		createEReference(javaParameterEClass, JAVA_PARAMETER__BASE_PARAMETER);
+
+		javaPropertyEClass = createEClass(JAVA_PROPERTY);
+		createEAttribute(javaPropertyEClass, JAVA_PROPERTY__IS_ABSTRACT);
+		createEAttribute(javaPropertyEClass, JAVA_PROPERTY__IS_FINAL);
+		createEReference(javaPropertyEClass, JAVA_PROPERTY__BASE_PROPERTY);
+		createEAttribute(javaPropertyEClass, JAVA_PROPERTY__IS_TRANSIENT);
+		createEAttribute(javaPropertyEClass, JAVA_PROPERTY__GENERATE_GETTER);
+		createEAttribute(javaPropertyEClass, JAVA_PROPERTY__GENERATE_SETTER);
+		createEAttribute(javaPropertyEClass, JAVA_PROPERTY__IS_STATIC);
+		createEAttribute(javaPropertyEClass, JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS);
+		createEReference(javaPropertyEClass, JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS);
+
+		primitiveTypeEClass = createEClass(PRIMITIVE_TYPE);
+		createEAttribute(primitiveTypeEClass, PRIMITIVE_TYPE__IMPLEMENTATION_CLASS);
+		createEReference(primitiveTypeEClass, PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE);
+		createEAttribute(primitiveTypeEClass, PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS);
+
+		javaProjectEClass = createEClass(JAVA_PROJECT);
+		createEReference(javaProjectEClass, JAVA_PROJECT__BASE_PACKAGE);
+
+		javaSrcFolderEClass = createEClass(JAVA_SRC_FOLDER);
+		createEReference(javaSrcFolderEClass, JAVA_SRC_FOLDER__BASE_PACKAGE);
+
+		// Create enums
+		trueFalseDefaultEEnum = createEEnum(TRUE_FALSE_DEFAULT);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model. This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) {
+			return;
+		}
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		UMLPackage theUMLPackage = (UMLPackage) EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		javaClassEClass.getESuperTypes().add(this.getJavaGen());
+		javaGenEClass.getESuperTypes().add(this.getJavaNamedElement());
+		javaPackage_EClass.getESuperTypes().add(this.getJavaGen());
+		javaMethodEClass.getESuperTypes().add(this.getJavaNamedElement());
+		javaParameterEClass.getESuperTypes().add(this.getJavaNamedElement());
+		javaPropertyEClass.getESuperTypes().add(this.getJavaNamedElement());
+		primitiveTypeEClass.getESuperTypes().add(this.getJavaGen());
+		javaProjectEClass.getESuperTypes().add(this.getJavaGen());
+		javaSrcFolderEClass.getESuperTypes().add(this.getJavaGen());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(javaClassEClass, JavaClass.class, "JavaClass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getJavaClass_Base_Classifier(), theUMLPackage.getClassifier(), null, "base_Classifier", null, 1, 1, JavaClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED,
+				!IS_ORDERED);
+		initEAttribute(getJavaClass_IsFinal(), ecorePackage.getEBoolean(), "isFinal", null, 1, 1, JavaClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaClass_IsAbstract(), ecorePackage.getEBoolean(), "isAbstract", null, 1, 1, JavaClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaClass_IsStatic(), ecorePackage.getEBoolean(), "isStatic", null, 1, 1, JavaClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaClass_ExplicitPlainTextRequiredImports(), ecorePackage.getEString(), "explicitPlainTextRequiredImports", null, 0, -1, JavaClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED,
+				!IS_ORDERED);
+		initEReference(getJavaClass_ExplicitRequiredImports(), theUMLPackage.getClassifier(), null, "explicitRequiredImports", null, 0, -1, JavaClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+				IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(javaGenEClass, JavaGen.class, "JavaGen", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getJavaGen_SrcName(), ecorePackage.getEString(), "srcName", null, 1, 1, JavaGen.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaGen_ProjectName(), ecorePackage.getEString(), "projectName", null, 1, 1, JavaGen.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(javaNamedElementEClass, JavaNamedElement.class, "JavaNamedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getJavaNamedElement_Name(), ecorePackage.getEString(), "name", null, 1, 1, JavaNamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaNamedElement_Author(), ecorePackage.getEString(), "author", null, 1, 1, JavaNamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaNamedElement_Version(), ecorePackage.getEString(), "version", null, 1, 1, JavaNamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaNamedElement_Comment(), ecorePackage.getEString(), "comment", null, 1, 1, JavaNamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaNamedElement_IsGenerated(), ecorePackage.getEBoolean(), "isGenerated", "true", 1, 1, JavaNamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(javaPackage_EClass, JavaPackage_.class, "JavaPackage_", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getJavaPackage__PackageName(), ecorePackage.getEString(), "packageName", null, 1, 1, JavaPackage_.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getJavaPackage__Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 1, 1, JavaPackage_.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED,
+				!IS_ORDERED);
+
+		initEClass(javaMethodEClass, JavaMethod.class, "JavaMethod", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getJavaMethod_IsStatic(), ecorePackage.getEBoolean(), "isStatic", null, 1, 1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaMethod_IsFinal(), ecorePackage.getEBoolean(), "isFinal", null, 1, 1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaMethod_IsAbstract(), ecorePackage.getEBoolean(), "isAbstract", null, 1, 1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaMethod_IsNative(), ecorePackage.getEBoolean(), "isNative", null, 1, 1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaMethod_IsSynchronized(), ecorePackage.getEBoolean(), "isSynchronized", null, 1, 1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaMethod_IsConstructor(), ecorePackage.getEBoolean(), "isConstructor", null, 1, 1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getJavaMethod_Base_Operation(), theUMLPackage.getOperation(), null, "base_Operation", null, 1, 1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED,
+				!IS_ORDERED);
+		initEAttribute(getJavaMethod_ExplicitPlainTextRequiredImports(), ecorePackage.getEString(), "explicitPlainTextRequiredImports", null, 0, -1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED,
+				!IS_ORDERED);
+		initEReference(getJavaMethod_ExplicitRequiredImports(), theUMLPackage.getClassifier(), null, "explicitRequiredImports", null, 0, -1, JavaMethod.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+				IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(javaParameterEClass, JavaParameter.class, "JavaParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getJavaParameter_IsFinal(), ecorePackage.getEBoolean(), "isFinal", null, 1, 1, JavaParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getJavaParameter_Base_Parameter(), theUMLPackage.getParameter(), null, "base_Parameter", null, 1, 1, JavaParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE,
+				!IS_DERIVED, !IS_ORDERED);
+
+		initEClass(javaPropertyEClass, JavaProperty.class, "JavaProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getJavaProperty_IsAbstract(), ecorePackage.getEBoolean(), "isAbstract", null, 1, 1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaProperty_IsFinal(), ecorePackage.getEBoolean(), "isFinal", null, 1, 1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getJavaProperty_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED,
+				!IS_ORDERED);
+		initEAttribute(getJavaProperty_IsTransient(), ecorePackage.getEBoolean(), "isTransient", null, 1, 1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaProperty_GenerateGetter(), this.getTrueFalseDefault(), "generateGetter", "default", 1, 1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaProperty_GenerateSetter(), this.getTrueFalseDefault(), "generateSetter", "default", 1, 1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaProperty_IsStatic(), ecorePackage.getEBoolean(), "isStatic", null, 1, 1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getJavaProperty_ExplicitPlainTextRequiredImports(), ecorePackage.getEString(), "explicitPlainTextRequiredImports", null, 0, -1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE,
+				!IS_DERIVED, !IS_ORDERED);
+		initEReference(getJavaProperty_ExplicitRequiredImports(), theUMLPackage.getClassifier(), null, "explicitRequiredImports", null, 0, -1, JavaProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+				IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(primitiveTypeEClass, PrimitiveType.class, "PrimitiveType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getPrimitiveType_ImplementationClass(), ecorePackage.getEString(), "implementationClass", null, 1, 1, PrimitiveType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getPrimitiveType_Base_PrimitiveType(), theUMLPackage.getPrimitiveType(), null, "base_PrimitiveType", null, 1, 1, PrimitiveType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+				!IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getPrimitiveType_CollectionImplementationClass(), ecorePackage.getEString(), "collectionImplementationClass", null, 1, 1, PrimitiveType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED,
+				!IS_ORDERED);
+
+		initEClass(javaProjectEClass, JavaProject.class, "JavaProject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getJavaProject_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 1, 1, JavaProject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+				!IS_ORDERED);
+
+		initEClass(javaSrcFolderEClass, JavaSrcFolder.class, "JavaSrcFolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getJavaSrcFolder_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 1, 1, JavaSrcFolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+				!IS_ORDERED);
+
+		// Initialize enums and add enum literals
+		initEEnum(trueFalseDefaultEEnum, TrueFalseDefault.class, "TrueFalseDefault");
+		addEEnumLiteral(trueFalseDefaultEEnum, TrueFalseDefault.TRUE);
+		addEEnumLiteral(trueFalseDefaultEEnum, TrueFalseDefault.FALSE);
+		addEEnumLiteral(trueFalseDefaultEEnum, TrueFalseDefault.DEFAULT);
+
+		// Create resource
+		createResource(eNS_URI);
+	}
+
+} // JavaPackageImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaPackage_Impl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaPackage_Impl.java
new file mode 100644
index 0000000..e385657
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaPackage_Impl.java
@@ -0,0 +1,250 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Package </b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackage_Impl#getPackageName <em>Package Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPackage_Impl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaPackage_Impl extends JavaGenImpl implements JavaPackage_ {
+	/**
+	 * The default value of the '{@link #getPackageName() <em>Package Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getPackageName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String PACKAGE_NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getPackageName() <em>Package Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getPackageName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String packageName = PACKAGE_NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getBase_Package()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Package base_Package;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected JavaPackage_Impl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return JavaPackage.Literals.JAVA_PACKAGE_;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getPackageName() {
+		return packageName;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setPackageName(String newPackageName) {
+		String oldPackageName = packageName;
+		packageName = newPackageName;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PACKAGE___PACKAGE_NAME, oldPackageName, packageName));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.uml2.uml.Package getBase_Package() {
+		if (base_Package != null && base_Package.eIsProxy()) {
+			InternalEObject oldBase_Package = (InternalEObject) base_Package;
+			base_Package = (org.eclipse.uml2.uml.Package) eResolveProxy(oldBase_Package);
+			if (base_Package != oldBase_Package) {
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaPackage.JAVA_PACKAGE___BASE_PACKAGE, oldBase_Package, base_Package));
+				}
+			}
+		}
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+		org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+		base_Package = newBase_Package;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PACKAGE___BASE_PACKAGE, oldBase_Package, base_Package));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case JavaPackage.JAVA_PACKAGE___PACKAGE_NAME:
+			return getPackageName();
+		case JavaPackage.JAVA_PACKAGE___BASE_PACKAGE:
+			if (resolve) {
+				return getBase_Package();
+			}
+			return basicGetBase_Package();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case JavaPackage.JAVA_PACKAGE___PACKAGE_NAME:
+			setPackageName((String) newValue);
+			return;
+		case JavaPackage.JAVA_PACKAGE___BASE_PACKAGE:
+			setBase_Package((org.eclipse.uml2.uml.Package) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_PACKAGE___PACKAGE_NAME:
+			setPackageName(PACKAGE_NAME_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_PACKAGE___BASE_PACKAGE:
+			setBase_Package((org.eclipse.uml2.uml.Package) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_PACKAGE___PACKAGE_NAME:
+			return PACKAGE_NAME_EDEFAULT == null ? packageName != null : !PACKAGE_NAME_EDEFAULT.equals(packageName);
+		case JavaPackage.JAVA_PACKAGE___BASE_PACKAGE:
+			return base_Package != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) {
+			return super.toString();
+		}
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (packageName: ");
+		result.append(packageName);
+		result.append(')');
+		return result.toString();
+	}
+
+} // JavaPackage_Impl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaParameterImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaParameterImpl.java
new file mode 100644
index 0000000..e957a74
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaParameterImpl.java
@@ -0,0 +1,251 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter;
+import org.eclipse.uml2.uml.Parameter;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaParameterImpl#isFinal <em>Is Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaParameterImpl#getBase_Parameter <em>Base Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaParameterImpl extends JavaNamedElementImpl implements JavaParameter {
+	/**
+	 * The default value of the '{@link #isFinal() <em>Is Final</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isFinal()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_FINAL_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isFinal() <em>Is Final</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isFinal()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isFinal = IS_FINAL_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBase_Parameter() <em>Base Parameter</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getBase_Parameter()
+	 * @generated
+	 * @ordered
+	 */
+	protected Parameter base_Parameter;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected JavaParameterImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return JavaPackage.Literals.JAVA_PARAMETER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isFinal() {
+		return isFinal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setIsFinal(boolean newIsFinal) {
+		boolean oldIsFinal = isFinal;
+		isFinal = newIsFinal;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PARAMETER__IS_FINAL, oldIsFinal, isFinal));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Parameter getBase_Parameter() {
+		if (base_Parameter != null && base_Parameter.eIsProxy()) {
+			InternalEObject oldBase_Parameter = (InternalEObject) base_Parameter;
+			base_Parameter = (Parameter) eResolveProxy(oldBase_Parameter);
+			if (base_Parameter != oldBase_Parameter) {
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaPackage.JAVA_PARAMETER__BASE_PARAMETER, oldBase_Parameter, base_Parameter));
+				}
+			}
+		}
+		return base_Parameter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public Parameter basicGetBase_Parameter() {
+		return base_Parameter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setBase_Parameter(Parameter newBase_Parameter) {
+		Parameter oldBase_Parameter = base_Parameter;
+		base_Parameter = newBase_Parameter;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PARAMETER__BASE_PARAMETER, oldBase_Parameter, base_Parameter));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case JavaPackage.JAVA_PARAMETER__IS_FINAL:
+			return isFinal();
+		case JavaPackage.JAVA_PARAMETER__BASE_PARAMETER:
+			if (resolve) {
+				return getBase_Parameter();
+			}
+			return basicGetBase_Parameter();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case JavaPackage.JAVA_PARAMETER__IS_FINAL:
+			setIsFinal((Boolean) newValue);
+			return;
+		case JavaPackage.JAVA_PARAMETER__BASE_PARAMETER:
+			setBase_Parameter((Parameter) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_PARAMETER__IS_FINAL:
+			setIsFinal(IS_FINAL_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_PARAMETER__BASE_PARAMETER:
+			setBase_Parameter((Parameter) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_PARAMETER__IS_FINAL:
+			return isFinal != IS_FINAL_EDEFAULT;
+		case JavaPackage.JAVA_PARAMETER__BASE_PARAMETER:
+			return base_Parameter != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) {
+			return super.toString();
+		}
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (isFinal: ");
+		result.append(isFinal);
+		result.append(')');
+		return result.toString();
+	}
+
+} // JavaParameterImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaProjectImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaProjectImpl.java
new file mode 100644
index 0000000..da63a68
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaProjectImpl.java
@@ -0,0 +1,172 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaProject;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Project</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaProjectImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaProjectImpl extends JavaGenImpl implements JavaProject {
+	/**
+	 * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getBase_Package()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Package base_Package;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected JavaProjectImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return JavaPackage.Literals.JAVA_PROJECT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.uml2.uml.Package getBase_Package() {
+		if (base_Package != null && base_Package.eIsProxy()) {
+			InternalEObject oldBase_Package = (InternalEObject) base_Package;
+			base_Package = (org.eclipse.uml2.uml.Package) eResolveProxy(oldBase_Package);
+			if (base_Package != oldBase_Package) {
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaPackage.JAVA_PROJECT__BASE_PACKAGE, oldBase_Package, base_Package));
+				}
+			}
+		}
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+		org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+		base_Package = newBase_Package;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PROJECT__BASE_PACKAGE, oldBase_Package, base_Package));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case JavaPackage.JAVA_PROJECT__BASE_PACKAGE:
+			if (resolve) {
+				return getBase_Package();
+			}
+			return basicGetBase_Package();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case JavaPackage.JAVA_PROJECT__BASE_PACKAGE:
+			setBase_Package((org.eclipse.uml2.uml.Package) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_PROJECT__BASE_PACKAGE:
+			setBase_Package((org.eclipse.uml2.uml.Package) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_PROJECT__BASE_PACKAGE:
+			return base_Package != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} // JavaProjectImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaPropertyImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaPropertyImpl.java
new file mode 100644
index 0000000..9334c67
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaPropertyImpl.java
@@ -0,0 +1,671 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty;
+import org.eclipse.papyrus.designer.languages.java.profile.java.TrueFalseDefault;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Property</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPropertyImpl#isAbstract <em>Is Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPropertyImpl#isFinal <em>Is Final</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPropertyImpl#getBase_Property <em>Base Property</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPropertyImpl#isTransient <em>Is Transient</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPropertyImpl#getGenerateGetter <em>Generate Getter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPropertyImpl#getGenerateSetter <em>Generate Setter</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPropertyImpl#isStatic <em>Is Static</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPropertyImpl#getExplicitPlainTextRequiredImports <em>Explicit Plain Text Required Imports</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaPropertyImpl#getExplicitRequiredImports <em>Explicit Required Imports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaPropertyImpl extends JavaNamedElementImpl implements JavaProperty {
+	/**
+	 * The default value of the '{@link #isAbstract() <em>Is Abstract</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isAbstract()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_ABSTRACT_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isAbstract() <em>Is Abstract</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isAbstract()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isAbstract = IS_ABSTRACT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isFinal() <em>Is Final</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isFinal()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_FINAL_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isFinal() <em>Is Final</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isFinal()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isFinal = IS_FINAL_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getBase_Property()
+	 * @generated
+	 * @ordered
+	 */
+	protected Property base_Property;
+
+	/**
+	 * The default value of the '{@link #isTransient() <em>Is Transient</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isTransient()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_TRANSIENT_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isTransient() <em>Is Transient</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isTransient()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isTransient = IS_TRANSIENT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getGenerateGetter() <em>Generate Getter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getGenerateGetter()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final TrueFalseDefault GENERATE_GETTER_EDEFAULT = TrueFalseDefault.DEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getGenerateGetter() <em>Generate Getter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getGenerateGetter()
+	 * @generated
+	 * @ordered
+	 */
+	protected TrueFalseDefault generateGetter = GENERATE_GETTER_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getGenerateSetter() <em>Generate Setter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getGenerateSetter()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final TrueFalseDefault GENERATE_SETTER_EDEFAULT = TrueFalseDefault.DEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getGenerateSetter() <em>Generate Setter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getGenerateSetter()
+	 * @generated
+	 * @ordered
+	 */
+	protected TrueFalseDefault generateSetter = GENERATE_SETTER_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isStatic() <em>Is Static</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isStatic()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_STATIC_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isStatic() <em>Is Static</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #isStatic()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean isStatic = IS_STATIC_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getExplicitPlainTextRequiredImports() <em>Explicit Plain Text Required Imports</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getExplicitPlainTextRequiredImports()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<String> explicitPlainTextRequiredImports;
+
+	/**
+	 * The cached value of the '{@link #getExplicitRequiredImports() <em>Explicit Required Imports</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getExplicitRequiredImports()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Classifier> explicitRequiredImports;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected JavaPropertyImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return JavaPackage.Literals.JAVA_PROPERTY;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isAbstract() {
+		return isAbstract;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setIsAbstract(boolean newIsAbstract) {
+		boolean oldIsAbstract = isAbstract;
+		isAbstract = newIsAbstract;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PROPERTY__IS_ABSTRACT, oldIsAbstract, isAbstract));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isFinal() {
+		return isFinal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setIsFinal(boolean newIsFinal) {
+		boolean oldIsFinal = isFinal;
+		isFinal = newIsFinal;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PROPERTY__IS_FINAL, oldIsFinal, isFinal));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Property getBase_Property() {
+		if (base_Property != null && base_Property.eIsProxy()) {
+			InternalEObject oldBase_Property = (InternalEObject) base_Property;
+			base_Property = (Property) eResolveProxy(oldBase_Property);
+			if (base_Property != oldBase_Property) {
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaPackage.JAVA_PROPERTY__BASE_PROPERTY, oldBase_Property, base_Property));
+				}
+			}
+		}
+		return base_Property;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public Property basicGetBase_Property() {
+		return base_Property;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setBase_Property(Property newBase_Property) {
+		Property oldBase_Property = base_Property;
+		base_Property = newBase_Property;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PROPERTY__BASE_PROPERTY, oldBase_Property, base_Property));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isTransient() {
+		return isTransient;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setIsTransient(boolean newIsTransient) {
+		boolean oldIsTransient = isTransient;
+		isTransient = newIsTransient;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PROPERTY__IS_TRANSIENT, oldIsTransient, isTransient));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public TrueFalseDefault getGenerateGetter() {
+		return generateGetter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setGenerateGetter(TrueFalseDefault newGenerateGetter) {
+		TrueFalseDefault oldGenerateGetter = generateGetter;
+		generateGetter = newGenerateGetter == null ? GENERATE_GETTER_EDEFAULT : newGenerateGetter;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PROPERTY__GENERATE_GETTER, oldGenerateGetter, generateGetter));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public TrueFalseDefault getGenerateSetter() {
+		return generateSetter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setGenerateSetter(TrueFalseDefault newGenerateSetter) {
+		TrueFalseDefault oldGenerateSetter = generateSetter;
+		generateSetter = newGenerateSetter == null ? GENERATE_SETTER_EDEFAULT : newGenerateSetter;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PROPERTY__GENERATE_SETTER, oldGenerateSetter, generateSetter));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean isStatic() {
+		return isStatic;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setIsStatic(boolean newIsStatic) {
+		boolean oldIsStatic = isStatic;
+		isStatic = newIsStatic;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_PROPERTY__IS_STATIC, oldIsStatic, isStatic));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EList<String> getExplicitPlainTextRequiredImports() {
+		if (explicitPlainTextRequiredImports == null) {
+			explicitPlainTextRequiredImports = new EDataTypeEList<String>(String.class, this, JavaPackage.JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS);
+		}
+		return explicitPlainTextRequiredImports;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public EList<Classifier> getExplicitRequiredImports() {
+		if (explicitRequiredImports == null) {
+			explicitRequiredImports = new EObjectResolvingEList<Classifier>(Classifier.class, this, JavaPackage.JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS);
+		}
+		return explicitRequiredImports;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Classifier getExplicitRequiredImports(String name) {
+		return getExplicitRequiredImports(name, false, null);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Classifier getExplicitRequiredImports(String name, boolean ignoreCase, EClass eClass) {
+		explicitRequiredImportsLoop: for (Classifier explicitRequiredImports : getExplicitRequiredImports()) {
+			if (eClass != null && !eClass.isInstance(explicitRequiredImports)) {
+				continue explicitRequiredImportsLoop;
+			}
+			if (name != null && !(ignoreCase ? name.equalsIgnoreCase(explicitRequiredImports.getName()) : name.equals(explicitRequiredImports.getName()))) {
+				continue explicitRequiredImportsLoop;
+			}
+			return explicitRequiredImports;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case JavaPackage.JAVA_PROPERTY__IS_ABSTRACT:
+			return isAbstract();
+		case JavaPackage.JAVA_PROPERTY__IS_FINAL:
+			return isFinal();
+		case JavaPackage.JAVA_PROPERTY__BASE_PROPERTY:
+			if (resolve) {
+				return getBase_Property();
+			}
+			return basicGetBase_Property();
+		case JavaPackage.JAVA_PROPERTY__IS_TRANSIENT:
+			return isTransient();
+		case JavaPackage.JAVA_PROPERTY__GENERATE_GETTER:
+			return getGenerateGetter();
+		case JavaPackage.JAVA_PROPERTY__GENERATE_SETTER:
+			return getGenerateSetter();
+		case JavaPackage.JAVA_PROPERTY__IS_STATIC:
+			return isStatic();
+		case JavaPackage.JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+			return getExplicitPlainTextRequiredImports();
+		case JavaPackage.JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS:
+			return getExplicitRequiredImports();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case JavaPackage.JAVA_PROPERTY__IS_ABSTRACT:
+			setIsAbstract((Boolean) newValue);
+			return;
+		case JavaPackage.JAVA_PROPERTY__IS_FINAL:
+			setIsFinal((Boolean) newValue);
+			return;
+		case JavaPackage.JAVA_PROPERTY__BASE_PROPERTY:
+			setBase_Property((Property) newValue);
+			return;
+		case JavaPackage.JAVA_PROPERTY__IS_TRANSIENT:
+			setIsTransient((Boolean) newValue);
+			return;
+		case JavaPackage.JAVA_PROPERTY__GENERATE_GETTER:
+			setGenerateGetter((TrueFalseDefault) newValue);
+			return;
+		case JavaPackage.JAVA_PROPERTY__GENERATE_SETTER:
+			setGenerateSetter((TrueFalseDefault) newValue);
+			return;
+		case JavaPackage.JAVA_PROPERTY__IS_STATIC:
+			setIsStatic((Boolean) newValue);
+			return;
+		case JavaPackage.JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+			getExplicitPlainTextRequiredImports().clear();
+			getExplicitPlainTextRequiredImports().addAll((Collection<? extends String>) newValue);
+			return;
+		case JavaPackage.JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS:
+			getExplicitRequiredImports().clear();
+			getExplicitRequiredImports().addAll((Collection<? extends Classifier>) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_PROPERTY__IS_ABSTRACT:
+			setIsAbstract(IS_ABSTRACT_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_PROPERTY__IS_FINAL:
+			setIsFinal(IS_FINAL_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_PROPERTY__BASE_PROPERTY:
+			setBase_Property((Property) null);
+			return;
+		case JavaPackage.JAVA_PROPERTY__IS_TRANSIENT:
+			setIsTransient(IS_TRANSIENT_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_PROPERTY__GENERATE_GETTER:
+			setGenerateGetter(GENERATE_GETTER_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_PROPERTY__GENERATE_SETTER:
+			setGenerateSetter(GENERATE_SETTER_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_PROPERTY__IS_STATIC:
+			setIsStatic(IS_STATIC_EDEFAULT);
+			return;
+		case JavaPackage.JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+			getExplicitPlainTextRequiredImports().clear();
+			return;
+		case JavaPackage.JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS:
+			getExplicitRequiredImports().clear();
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_PROPERTY__IS_ABSTRACT:
+			return isAbstract != IS_ABSTRACT_EDEFAULT;
+		case JavaPackage.JAVA_PROPERTY__IS_FINAL:
+			return isFinal != IS_FINAL_EDEFAULT;
+		case JavaPackage.JAVA_PROPERTY__BASE_PROPERTY:
+			return base_Property != null;
+		case JavaPackage.JAVA_PROPERTY__IS_TRANSIENT:
+			return isTransient != IS_TRANSIENT_EDEFAULT;
+		case JavaPackage.JAVA_PROPERTY__GENERATE_GETTER:
+			return generateGetter != GENERATE_GETTER_EDEFAULT;
+		case JavaPackage.JAVA_PROPERTY__GENERATE_SETTER:
+			return generateSetter != GENERATE_SETTER_EDEFAULT;
+		case JavaPackage.JAVA_PROPERTY__IS_STATIC:
+			return isStatic != IS_STATIC_EDEFAULT;
+		case JavaPackage.JAVA_PROPERTY__EXPLICIT_PLAIN_TEXT_REQUIRED_IMPORTS:
+			return explicitPlainTextRequiredImports != null && !explicitPlainTextRequiredImports.isEmpty();
+		case JavaPackage.JAVA_PROPERTY__EXPLICIT_REQUIRED_IMPORTS:
+			return explicitRequiredImports != null && !explicitRequiredImports.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) {
+			return super.toString();
+		}
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (isAbstract: ");
+		result.append(isAbstract);
+		result.append(", isFinal: ");
+		result.append(isFinal);
+		result.append(", isTransient: ");
+		result.append(isTransient);
+		result.append(", generateGetter: ");
+		result.append(generateGetter);
+		result.append(", generateSetter: ");
+		result.append(generateSetter);
+		result.append(", isStatic: ");
+		result.append(isStatic);
+		result.append(", explicitPlainTextRequiredImports: ");
+		result.append(explicitPlainTextRequiredImports);
+		result.append(')');
+		return result.toString();
+	}
+
+} // JavaPropertyImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaSrcFolderImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaSrcFolderImpl.java
new file mode 100644
index 0000000..7d30158
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/JavaSrcFolderImpl.java
@@ -0,0 +1,172 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaSrcFolder;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Src Folder</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.JavaSrcFolderImpl#getBase_Package <em>Base Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JavaSrcFolderImpl extends JavaGenImpl implements JavaSrcFolder {
+	/**
+	 * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getBase_Package()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Package base_Package;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected JavaSrcFolderImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return JavaPackage.Literals.JAVA_SRC_FOLDER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.uml2.uml.Package getBase_Package() {
+		if (base_Package != null && base_Package.eIsProxy()) {
+			InternalEObject oldBase_Package = (InternalEObject) base_Package;
+			base_Package = (org.eclipse.uml2.uml.Package) eResolveProxy(oldBase_Package);
+			if (base_Package != oldBase_Package) {
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaPackage.JAVA_SRC_FOLDER__BASE_PACKAGE, oldBase_Package, base_Package));
+				}
+			}
+		}
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+		org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+		base_Package = newBase_Package;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.JAVA_SRC_FOLDER__BASE_PACKAGE, oldBase_Package, base_Package));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case JavaPackage.JAVA_SRC_FOLDER__BASE_PACKAGE:
+			if (resolve) {
+				return getBase_Package();
+			}
+			return basicGetBase_Package();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case JavaPackage.JAVA_SRC_FOLDER__BASE_PACKAGE:
+			setBase_Package((org.eclipse.uml2.uml.Package) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_SRC_FOLDER__BASE_PACKAGE:
+			setBase_Package((org.eclipse.uml2.uml.Package) null);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case JavaPackage.JAVA_SRC_FOLDER__BASE_PACKAGE:
+			return base_Package != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} // JavaSrcFolderImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/PrimitiveTypeImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/PrimitiveTypeImpl.java
new file mode 100644
index 0000000..309caba
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/impl/PrimitiveTypeImpl.java
@@ -0,0 +1,311 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Primitive Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.PrimitiveTypeImpl#getImplementationClass <em>Implementation Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.PrimitiveTypeImpl#getBase_PrimitiveType <em>Base Primitive Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.designer.languages.java.profile.java.impl.PrimitiveTypeImpl#getCollectionImplementationClass <em>Collection Implementation Class</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PrimitiveTypeImpl extends JavaGenImpl implements PrimitiveType {
+	/**
+	 * The default value of the '{@link #getImplementationClass() <em>Implementation Class</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getImplementationClass()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String IMPLEMENTATION_CLASS_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getImplementationClass() <em>Implementation Class</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getImplementationClass()
+	 * @generated
+	 * @ordered
+	 */
+	protected String implementationClass = IMPLEMENTATION_CLASS_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBase_PrimitiveType() <em>Base Primitive Type</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getBase_PrimitiveType()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.PrimitiveType base_PrimitiveType;
+
+	/**
+	 * The default value of the '{@link #getCollectionImplementationClass() <em>Collection Implementation Class</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getCollectionImplementationClass()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String COLLECTION_IMPLEMENTATION_CLASS_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCollectionImplementationClass() <em>Collection Implementation Class</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @see #getCollectionImplementationClass()
+	 * @generated
+	 * @ordered
+	 */
+	protected String collectionImplementationClass = COLLECTION_IMPLEMENTATION_CLASS_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected PrimitiveTypeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return JavaPackage.Literals.PRIMITIVE_TYPE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getImplementationClass() {
+		return implementationClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setImplementationClass(String newImplementationClass) {
+		String oldImplementationClass = implementationClass;
+		implementationClass = newImplementationClass;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.PRIMITIVE_TYPE__IMPLEMENTATION_CLASS, oldImplementationClass, implementationClass));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.uml2.uml.PrimitiveType getBase_PrimitiveType() {
+		if (base_PrimitiveType != null && base_PrimitiveType.eIsProxy()) {
+			InternalEObject oldBase_PrimitiveType = (InternalEObject) base_PrimitiveType;
+			base_PrimitiveType = (org.eclipse.uml2.uml.PrimitiveType) eResolveProxy(oldBase_PrimitiveType);
+			if (base_PrimitiveType != oldBase_PrimitiveType) {
+				if (eNotificationRequired()) {
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, JavaPackage.PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE, oldBase_PrimitiveType, base_PrimitiveType));
+				}
+			}
+		}
+		return base_PrimitiveType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.PrimitiveType basicGetBase_PrimitiveType() {
+		return base_PrimitiveType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setBase_PrimitiveType(org.eclipse.uml2.uml.PrimitiveType newBase_PrimitiveType) {
+		org.eclipse.uml2.uml.PrimitiveType oldBase_PrimitiveType = base_PrimitiveType;
+		base_PrimitiveType = newBase_PrimitiveType;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE, oldBase_PrimitiveType, base_PrimitiveType));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String getCollectionImplementationClass() {
+		return collectionImplementationClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void setCollectionImplementationClass(String newCollectionImplementationClass) {
+		String oldCollectionImplementationClass = collectionImplementationClass;
+		collectionImplementationClass = newCollectionImplementationClass;
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, JavaPackage.PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS, oldCollectionImplementationClass, collectionImplementationClass));
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case JavaPackage.PRIMITIVE_TYPE__IMPLEMENTATION_CLASS:
+			return getImplementationClass();
+		case JavaPackage.PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE:
+			if (resolve) {
+				return getBase_PrimitiveType();
+			}
+			return basicGetBase_PrimitiveType();
+		case JavaPackage.PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS:
+			return getCollectionImplementationClass();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case JavaPackage.PRIMITIVE_TYPE__IMPLEMENTATION_CLASS:
+			setImplementationClass((String) newValue);
+			return;
+		case JavaPackage.PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE:
+			setBase_PrimitiveType((org.eclipse.uml2.uml.PrimitiveType) newValue);
+			return;
+		case JavaPackage.PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS:
+			setCollectionImplementationClass((String) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case JavaPackage.PRIMITIVE_TYPE__IMPLEMENTATION_CLASS:
+			setImplementationClass(IMPLEMENTATION_CLASS_EDEFAULT);
+			return;
+		case JavaPackage.PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE:
+			setBase_PrimitiveType((org.eclipse.uml2.uml.PrimitiveType) null);
+			return;
+		case JavaPackage.PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS:
+			setCollectionImplementationClass(COLLECTION_IMPLEMENTATION_CLASS_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case JavaPackage.PRIMITIVE_TYPE__IMPLEMENTATION_CLASS:
+			return IMPLEMENTATION_CLASS_EDEFAULT == null ? implementationClass != null : !IMPLEMENTATION_CLASS_EDEFAULT.equals(implementationClass);
+		case JavaPackage.PRIMITIVE_TYPE__BASE_PRIMITIVE_TYPE:
+			return base_PrimitiveType != null;
+		case JavaPackage.PRIMITIVE_TYPE__COLLECTION_IMPLEMENTATION_CLASS:
+			return COLLECTION_IMPLEMENTATION_CLASS_EDEFAULT == null ? collectionImplementationClass != null : !COLLECTION_IMPLEMENTATION_CLASS_EDEFAULT.equals(collectionImplementationClass);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) {
+			return super.toString();
+		}
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (implementationClass: ");
+		result.append(implementationClass);
+		result.append(", collectionImplementationClass: ");
+		result.append(collectionImplementationClass);
+		result.append(')');
+		return result.toString();
+	}
+
+} // PrimitiveTypeImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/util/JavaAdapterFactory.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/util/JavaAdapterFactory.java
new file mode 100644
index 0000000..8bd79bf
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/util/JavaAdapterFactory.java
@@ -0,0 +1,321 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaGen;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaProject;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaSrcFolder;
+import org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage
+ * @generated
+ */
+public class JavaAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected static JavaPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public JavaAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = JavaPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject) object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected JavaSwitch<Adapter> modelSwitch =
+			new JavaSwitch<Adapter>() {
+				@Override
+				public Adapter caseJavaClass(JavaClass object) {
+					return createJavaClassAdapter();
+				}
+
+				@Override
+				public Adapter caseJavaGen(JavaGen object) {
+					return createJavaGenAdapter();
+				}
+
+				@Override
+				public Adapter caseJavaNamedElement(JavaNamedElement object) {
+					return createJavaNamedElementAdapter();
+				}
+
+				@Override
+				public Adapter caseJavaPackage_(JavaPackage_ object) {
+					return createJavaPackage_Adapter();
+				}
+
+				@Override
+				public Adapter caseJavaMethod(JavaMethod object) {
+					return createJavaMethodAdapter();
+				}
+
+				@Override
+				public Adapter caseJavaParameter(JavaParameter object) {
+					return createJavaParameterAdapter();
+				}
+
+				@Override
+				public Adapter caseJavaProperty(JavaProperty object) {
+					return createJavaPropertyAdapter();
+				}
+
+				@Override
+				public Adapter casePrimitiveType(PrimitiveType object) {
+					return createPrimitiveTypeAdapter();
+				}
+
+				@Override
+				public Adapter caseJavaProject(JavaProject object) {
+					return createJavaProjectAdapter();
+				}
+
+				@Override
+				public Adapter caseJavaSrcFolder(JavaSrcFolder object) {
+					return createJavaSrcFolderAdapter();
+				}
+
+				@Override
+				public Adapter defaultCase(EObject object) {
+					return createEObjectAdapter();
+				}
+			};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param target
+	 *            the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject) target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass <em>Class</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass
+	 * @generated
+	 */
+	public Adapter createJavaClassAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaGen <em>Gen</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaGen
+	 * @generated
+	 */
+	public Adapter createJavaGenAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement <em>Named Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement
+	 * @generated
+	 */
+	public Adapter createJavaNamedElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_ <em>Package </em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_
+	 * @generated
+	 */
+	public Adapter createJavaPackage_Adapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod <em>Method</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod
+	 * @generated
+	 */
+	public Adapter createJavaMethodAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter <em>Parameter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter
+	 * @generated
+	 */
+	public Adapter createJavaParameterAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty <em>Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty
+	 * @generated
+	 */
+	public Adapter createJavaPropertyAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType <em>Primitive Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType
+	 * @generated
+	 */
+	public Adapter createPrimitiveTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaProject <em>Project</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaProject
+	 * @generated
+	 */
+	public Adapter createJavaProjectAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.languages.java.profile.java.JavaSrcFolder <em>Src Folder</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaSrcFolder
+	 * @generated
+	 */
+	public Adapter createJavaSrcFolderAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} // JavaAdapterFactory
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/util/JavaResourceFactoryImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/util/JavaResourceFactoryImpl.java
new file mode 100644
index 0000000..759aab4
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/util/JavaResourceFactoryImpl.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.util;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource Factory</b> associated with the package.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.util.JavaResourceImpl
+ * @generated
+ */
+public class JavaResourceFactoryImpl extends ResourceFactoryImpl {
+	/**
+	 * Creates an instance of the resource factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public JavaResourceFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * Creates an instance of the resource.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	public Resource createResource(URI uri) {
+		XMLResource result = new JavaResourceImpl(uri);
+		result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+		result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+
+		result.getDefaultSaveOptions().put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);
+
+		result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+		result.getDefaultSaveOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+
+		result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE);
+		return result;
+	}
+
+} // JavaResourceFactoryImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/util/JavaResourceImpl.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/util/JavaResourceImpl.java
new file mode 100644
index 0000000..f375843
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/util/JavaResourceImpl.java
@@ -0,0 +1,34 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.util;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource </b> associated with the package.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.util.JavaResourceFactoryImpl
+ * @generated
+ */
+public class JavaResourceImpl extends XMLResourceImpl {
+	/**
+	 * Creates an instance of the resource.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @param uri
+	 *            the URI of the new resource.
+	 * @generated
+	 */
+	public JavaResourceImpl(URI uri) {
+		super(uri);
+	}
+
+} // JavaResourceImpl
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/util/JavaSwitch.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/util/JavaSwitch.java
new file mode 100644
index 0000000..f3c82bd
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/util/JavaSwitch.java
@@ -0,0 +1,400 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaClass;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaGen;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaMethod;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaNamedElement;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage_;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaParameter;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaProject;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaProperty;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaSrcFolder;
+import org.eclipse.papyrus.designer.languages.java.profile.java.PrimitiveType;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)} to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage
+ * @generated
+ */
+public class JavaSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	protected static JavaPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public JavaSwitch() {
+		if (modelPackage == null) {
+			modelPackage = JavaPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @parameter ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+		case JavaPackage.JAVA_CLASS: {
+			JavaClass javaClass = (JavaClass) theEObject;
+			T result = caseJavaClass(javaClass);
+			if (result == null) {
+				result = caseJavaGen(javaClass);
+			}
+			if (result == null) {
+				result = caseJavaNamedElement(javaClass);
+			}
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		case JavaPackage.JAVA_GEN: {
+			JavaGen javaGen = (JavaGen) theEObject;
+			T result = caseJavaGen(javaGen);
+			if (result == null) {
+				result = caseJavaNamedElement(javaGen);
+			}
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		case JavaPackage.JAVA_NAMED_ELEMENT: {
+			JavaNamedElement javaNamedElement = (JavaNamedElement) theEObject;
+			T result = caseJavaNamedElement(javaNamedElement);
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		case JavaPackage.JAVA_PACKAGE_: {
+			JavaPackage_ javaPackage_ = (JavaPackage_) theEObject;
+			T result = caseJavaPackage_(javaPackage_);
+			if (result == null) {
+				result = caseJavaGen(javaPackage_);
+			}
+			if (result == null) {
+				result = caseJavaNamedElement(javaPackage_);
+			}
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		case JavaPackage.JAVA_METHOD: {
+			JavaMethod javaMethod = (JavaMethod) theEObject;
+			T result = caseJavaMethod(javaMethod);
+			if (result == null) {
+				result = caseJavaNamedElement(javaMethod);
+			}
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		case JavaPackage.JAVA_PARAMETER: {
+			JavaParameter javaParameter = (JavaParameter) theEObject;
+			T result = caseJavaParameter(javaParameter);
+			if (result == null) {
+				result = caseJavaNamedElement(javaParameter);
+			}
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		case JavaPackage.JAVA_PROPERTY: {
+			JavaProperty javaProperty = (JavaProperty) theEObject;
+			T result = caseJavaProperty(javaProperty);
+			if (result == null) {
+				result = caseJavaNamedElement(javaProperty);
+			}
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		case JavaPackage.PRIMITIVE_TYPE: {
+			PrimitiveType primitiveType = (PrimitiveType) theEObject;
+			T result = casePrimitiveType(primitiveType);
+			if (result == null) {
+				result = caseJavaGen(primitiveType);
+			}
+			if (result == null) {
+				result = caseJavaNamedElement(primitiveType);
+			}
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		case JavaPackage.JAVA_PROJECT: {
+			JavaProject javaProject = (JavaProject) theEObject;
+			T result = caseJavaProject(javaProject);
+			if (result == null) {
+				result = caseJavaGen(javaProject);
+			}
+			if (result == null) {
+				result = caseJavaNamedElement(javaProject);
+			}
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		case JavaPackage.JAVA_SRC_FOLDER: {
+			JavaSrcFolder javaSrcFolder = (JavaSrcFolder) theEObject;
+			T result = caseJavaSrcFolder(javaSrcFolder);
+			if (result == null) {
+				result = caseJavaGen(javaSrcFolder);
+			}
+			if (result == null) {
+				result = caseJavaNamedElement(javaSrcFolder);
+			}
+			if (result == null) {
+				result = defaultCase(theEObject);
+			}
+			return result;
+		}
+		default:
+			return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Class</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object
+	 *            the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Class</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseJavaClass(JavaClass object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Gen</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object
+	 *            the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Gen</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseJavaGen(JavaGen object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Named Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object
+	 *            the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Named Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseJavaNamedElement(JavaNamedElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Package </em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object
+	 *            the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Package </em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseJavaPackage_(JavaPackage_ object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Method</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object
+	 *            the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Method</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseJavaMethod(JavaMethod object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Parameter</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object
+	 *            the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Parameter</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseJavaParameter(JavaParameter object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Property</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object
+	 *            the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Property</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseJavaProperty(JavaProperty object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Primitive Type</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object
+	 *            the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Primitive Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePrimitiveType(PrimitiveType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Project</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object
+	 *            the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Project</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseJavaProject(JavaProject object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Src Folder</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object
+	 *            the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Src Folder</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseJavaSrcFolder(JavaSrcFolder object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 *
+	 * @param object
+	 *            the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} // JavaSwitch
diff --git a/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/util/JavaXMLProcessor.java b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/util/JavaXMLProcessor.java
new file mode 100644
index 0000000..3acadee
--- /dev/null
+++ b/languages/java/org.eclipse.papyrus.designer.languages.java.profile/src/org/eclipse/papyrus/designer/languages/java/profile/java/util/JavaXMLProcessor.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.designer.languages.java.profile.java.util;
+
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.util.XMLProcessor;
+import org.eclipse.papyrus.designer.languages.java.profile.java.JavaPackage;
+
+/**
+ * This class contains helper methods to serialize and deserialize XML documents
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class JavaXMLProcessor extends XMLProcessor {
+
+	/**
+	 * Public constructor to instantiate the helper.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	public JavaXMLProcessor() {
+		super((EPackage.Registry.INSTANCE));
+		JavaPackage.eINSTANCE.eClass();
+	}
+
+	/**
+	 * Register for "*" and "xml" file extensions the JavaResourceFactoryImpl factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 *
+	 * @generated
+	 */
+	@Override
+	protected Map<String, Resource.Factory> getRegistrations() {
+		if (registrations == null) {
+			super.getRegistrations();
+			registrations.put(XML_EXTENSION, new JavaResourceFactoryImpl());
+			registrations.put(STAR_EXTENSION, new JavaResourceFactoryImpl());
+		}
+		return registrations;
+	}
+
+} // JavaXMLProcessor
