Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrschnekenbu2010-12-09 13:11:36 +0000
committerrschnekenbu2010-12-09 13:11:36 +0000
commit6b727cdfa9297e7d0f52c1e22a09c1322b3b710c (patch)
treed49f9fc643beb45bfa506f097742ead8919430e4 /plugins/developer/org.eclipse.papyrus.domaincontextcodegen
parent204499c88d7e70cec7308749019efdd93c2b3028 (diff)
downloadorg.eclipse.papyrus-6b727cdfa9297e7d0f52c1e22a09c1322b3b710c.tar.gz
org.eclipse.papyrus-6b727cdfa9297e7d0f52c1e22a09c1322b3b710c.tar.xz
org.eclipse.papyrus-6b727cdfa9297e7d0f52c1e22a09c1322b3b710c.zip
Merged branch 0.7.X changes r2480:3444 into the trunk
Diffstat (limited to 'plugins/developer/org.eclipse.papyrus.domaincontextcodegen')
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/.classpath9
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/.project44
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/META-INF/MANIFEST.MF20
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/about.html26
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/actionsrc/org/eclipse/papyrus/domaincontextcodegen/ElementTypeComparator.java30
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/actionsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateElementTypeModelAction.java95
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/build.acceleo28
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/build.properties17
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/plugin.properties12
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/plugin.xml19
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/resource/DomainContext.ecore73
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/resource/DomainContext.genmodel28
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/AdviceBinding.java177
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/Binding.java115
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/DomainContext.java421
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/DomaincontextcodegenFactory.java101
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/DomaincontextcodegenPackage.java1468
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/ElementType.java205
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/ElementTypes.java46
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/GenHandlers.java176
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/InheritanceKind.java224
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/AdviceBindingImpl.java419
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/BindingImpl.java302
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/DomainContextImpl.java961
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/DomaincontextcodegenFactoryImpl.java233
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/DomaincontextcodegenPackageImpl.java735
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/ElementTypeImpl.java483
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/ElementTypesImpl.java161
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/GenHandlersImpl.java409
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/util/DomaincontextcodegenAdapterFactory.java238
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/util/DomaincontextcodegenSwitch.java269
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateElementTypeClass.java265
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateHandlers.java265
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateTypes.java265
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateXMLElementHandler.java265
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateXMLElementType.java265
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateContextTypeClass.mtl41
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateElementHandler.mtl43
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateElementTypeClass.mtl26
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateHandlers.mtl12
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateHideDomainContext.mtl52
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateTypes.mtl21
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateXMLElementHandler.mtl54
-rw-r--r--plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateXMLElementType.mtl50
45 files changed, 9180 insertions, 0 deletions
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/.classpath b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/.classpath
new file mode 100644
index 00000000000..c9b8d7a2aee
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="actionsrc"/>
+ <classpathentry kind="src" path="transforsrc"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/.project b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/.project
new file mode 100644
index 00000000000..48d749fae59
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/.project
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.domaincontextcodegen</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.acceleo.ide.ui.acceleoBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>compliance</key>
+ <value>pragmatic</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.acceleo.ide.ui.acceleoNature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/.settings/org.eclipse.jdt.core.prefs b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..be0243789ac
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+#Fri Aug 27 15:28:51 CEST 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/META-INF/MANIFEST.MF b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..c62f33b65f6
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.domaincontextcodegen;singleton:=true
+Bundle-Version: 0.7.1.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.papyrus.domaincontextcodegen,
+ org.eclipse.papyrus.domaincontextcodegen.impl,
+ org.eclipse.papyrus.domaincontextcodegen.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.ui;bundle-version="3.6.0",
+ org.eclipse.acceleo.common;bundle-version="3.0.0",
+ org.eclipse.acceleo.engine;bundle-version="3.0.0",
+ org.eclipse.core.resources;bundle-version="3.6.0",
+ org.eclipse.uml2.uml;bundle-version="3.1.0"
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/about.html b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/about.html
new file mode 100644
index 00000000000..a80e9697355
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/about.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>About</title>
+</head><body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body></html> \ No newline at end of file
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/actionsrc/org/eclipse/papyrus/domaincontextcodegen/ElementTypeComparator.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/actionsrc/org/eclipse/papyrus/domaincontextcodegen/ElementTypeComparator.java
new file mode 100644
index 00000000000..fb009427f97
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/actionsrc/org/eclipse/papyrus/domaincontextcodegen/ElementTypeComparator.java
@@ -0,0 +1,30 @@
+/*****************************************************************************
+ * Copyright (c) 2010 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Patrick Tessier (CEA LIST) patrick.tessier@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.domaincontextcodegen;
+
+import java.util.Comparator;
+
+/**
+ * Comparator for element type in order to sort them
+ *
+ */
+public class ElementTypeComparator implements Comparator<ElementType> {
+
+ public int compare(ElementType o1, ElementType o2) {
+ String name1 = o1.getSpecificName();
+ String name2 = o2.getSpecificName();
+ name1.compareTo(name2);
+ return name1.compareTo(name2);
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/actionsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateElementTypeModelAction.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/actionsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateElementTypeModelAction.java
new file mode 100644
index 00000000000..2f9627b6aca
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/actionsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateElementTypeModelAction.java
@@ -0,0 +1,95 @@
+/*****************************************************************************
+ * Copyright (c) 2010 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Patrick Tessier (CEA LIST) patrick.tessier@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.domaincontextcodegen;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+
+import org.eclipse.emf.codegen.util.CodeGenUtil;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+
+/**
+ * <pre>
+ *
+ * Automated generation of ElementTypes (in the domain model), an ElementType generated for
+ * each element of the domain model.
+ *
+ * </pre>
+ */
+public class GenerateElementTypeModelAction implements IObjectActionDelegate {
+
+ protected static final String I_HINTED_TYPE = "org.eclipse.gmf.runtime.emf.type.core.IHintedType";
+
+ protected DomainContext selectedContext = null;
+
+ public GenerateElementTypeModelAction() {
+ }
+
+ public void run(IAction action) {
+
+ ElementTypes elementTypeList = DomaincontextcodegenFactory.eINSTANCE.createElementTypes();
+ selectedContext.setElementTypes(elementTypeList);
+
+ if(selectedContext.getSpecializationOf() == null) {
+ if(selectedContext.getMetamodel() != null) {
+ Iterator<EClassifier> iterClass = selectedContext.getMetamodel().getEClassifiers().iterator();
+ ArrayList<ElementType> result = new ArrayList<ElementType>();
+ while(iterClass.hasNext()) {
+ EClassifier eClassifier = (EClassifier)iterClass.next();
+ if(eClassifier instanceof EClass) {
+ ElementType elemenType = DomaincontextcodegenFactory.eINSTANCE.createElementType();
+ elemenType.setEdithelper_EditHelperAdvicePath(selectedContext.getDefaultHelperPath());
+ elemenType.setKind(I_HINTED_TYPE);
+ elemenType.setMetaClass((EClass)eClassifier);
+
+ // Convert name to upper case with '_' separator between name parts e.g. NamedElement -> NAMED_ELEMENT
+ String formattedName = CodeGenUtil.format(eClassifier.getName(), '_', null, false, true).toUpperCase();
+ elemenType.setSpecificName(formattedName);
+
+ result.add(elemenType);
+ }
+ }
+ System.err.println(result.get(0).getMetaClass().getName());
+ Collections.sort(result, new ElementTypeComparator());
+ System.err.println(result.get(0).getMetaClass().getName());
+ elementTypeList.getTypes().addAll(result);
+
+ }
+ }
+ //to Do in the case of specialization with a profile
+
+ }
+
+ public void selectionChanged(IAction action, ISelection selection) {
+ if(selection instanceof IStructuredSelection) {
+ if(((IStructuredSelection)selection).getFirstElement() instanceof DomainContext) {
+ selectedContext = (DomainContext)((IStructuredSelection)selection).getFirstElement();
+ }
+ }
+
+ }
+
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+ // TODO Auto-generated method stub
+
+ }
+
+}
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/build.acceleo b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/build.acceleo
new file mode 100644
index 00000000000..da659727a93
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/build.acceleo
@@ -0,0 +1,28 @@
+<!-- ===================================================================== -->
+<!-- Custom targets. -->
+<!-- Set customBuildCallbacks = build.acceleo in your build.properties. -->
+<!-- ===================================================================== -->
+<project name="Build Acceleo Module" default="noDefault">
+
+ <!-- ================================================================= -->
+ <!-- Default target -->
+ <!-- ================================================================= -->
+ <target name="noDefault">
+ <echo message="This file must be called with explicit targets" />
+ </target>
+
+ <!-- ================================================================= -->
+ <!-- Steps to do after the target gather.bin.parts -->
+ <!-- Available parameters : -->
+ <!-- build.result.folder - folder containing the build results -->
+ <!-- target.folder - destination folder -->
+ <!-- ================================================================= -->
+
+ <target name="post.gather.bin.parts">
+ <acceleoCompiler
+ sourceFolders="${target.folder}"
+ dependencies="">
+ </acceleoCompiler>
+ </target>
+
+</project>
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/build.properties b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/build.properties
new file mode 100644
index 00000000000..8faaf851b57
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/build.properties
@@ -0,0 +1,17 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ about.html,\
+ build.properties,\
+ resource/
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/plugin.properties b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/plugin.properties
new file mode 100644
index 00000000000..b70620afcc4
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/plugin.properties
@@ -0,0 +1,12 @@
+#################################################################################
+# Copyright (c) 2010 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Patrick Tessier patrick.tessier@cea.fr - Initial API and implementation
+##################################################################################
+pluginName=Acceleo DomainContext Module IDE Plug-in (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/plugin.xml b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/plugin.xml
new file mode 100644
index 00000000000..92e9177d1e1
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/plugin.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.popupMenus">
+ <objectContribution
+ adaptable="true"
+ id="org.eclipse.papyrus.domaincontextcodegen.objectContribution"
+ objectClass="org.eclipse.papyrus.domaincontextcodegen.DomainContext">
+ <action
+ class="org.eclipse.papyrus.domaincontextcodegen.GenerateElementTypeModelAction"
+ enablesFor="1"
+ id="org.eclipse.papyrus.domaincontextcodegen.action1"
+ label="Generate All ElementTypes model">
+ </action>
+ </objectContribution>
+ </extension>
+
+</plugin>
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/resource/DomainContext.ecore b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/resource/DomainContext.ecore
new file mode 100644
index 00000000000..b90ebe76904
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/resource/DomainContext.ecore
@@ -0,0 +1,73 @@
+<?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="domaincontextcodegen"
+ nsURI="http://www.eclipse.org/papyrus/2010/domaincontextcodegen" nsPrefix="domaincontextcodegen">
+ <eClassifiers xsi:type="ecore:EClass" name="DomainContext">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeProjectName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="handlerProjectName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="IClientContextID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metamodel" lowerBound="1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="specializationOf" eType="#//DomainContext"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypeIDPrefix" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypeNamePrefix"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="matcherPatch" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elementTypes" eType="#//ElementTypes"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultHelperPath" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="advicebindings" upperBound="-1"
+ eType="#//AdviceBinding" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="bindings" upperBound="-1"
+ eType="#//Binding" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genHandlers" eType="#//GenHandlers"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="generatedSourceFolder"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementTypes">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="types" upperBound="-1"
+ eType="#//ElementType" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementType">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaClass" lowerBound="1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="specificName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="edithelper_EditHelperAdvicePath"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="specializationof" eType="#//ElementType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="specializationIDof" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AdviceBinding">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="advicePath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="adviceID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="inheritance" eType="#//InheritanceKind"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elementTypeRef" eType="#//ElementType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypeIDref" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="InheritanceKind">
+ <eLiterals name="none"/>
+ <eLiterals name="all" value="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Binding">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="advice" eType="#//AdviceBinding"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypePattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="adviceID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenHandlers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="handlerPackage" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="superClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="superClassPackage" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypeEnumerator"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypeEnumeratorPackage"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/resource/DomainContext.genmodel b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/resource/DomainContext.genmodel
new file mode 100644
index 00000000000..f63597f9e86
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/resource/DomainContext.genmodel
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.papyrus.domaincontextcodegen/src"
+ modelPluginID="org.eclipse.papyrus.domaincontextcodegen" modelName="DomainContext"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false"
+ usedGenPackages="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore">
+ <foreignModel>DomainContext.ecore</foreignModel>
+ <genPackages prefix="Domaincontextcodegen" basePackage="org.eclipse.papyrus" disposableProviderFactory="true"
+ ecorePackage="DomainContext.ecore#/">
+ <genClasses ecoreClass="DomainContext.ecore#//DomainContext">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute DomainContext.ecore#//DomainContext/IClientContextID"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference DomainContext.ecore#//DomainContext/metamodel"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference DomainContext.ecore#//DomainContext/specializationOf"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute DomainContext.ecore#//DomainContext/elementTypeIDPrefix"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute DomainContext.ecore#//DomainContext/elementTypeNamePrefix"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute DomainContext.ecore#//DomainContext/matcherPatch"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference DomainContext.ecore#//DomainContext/elementTypes"/>
+ </genClasses>
+ <genClasses ecoreClass="DomainContext.ecore#//ElementType">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference DomainContext.ecore#//ElementType/eclass"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute DomainContext.ecore#//ElementType/specificName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute DomainContext.ecore#//ElementType/edithelper_EditHelperAdvicePath"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute DomainContext.ecore#//ElementType/kind"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference DomainContext.ecore#//ElementType/specializationof"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/AdviceBinding.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/AdviceBinding.java
new file mode 100644
index 00000000000..ffc522648a9
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/AdviceBinding.java
@@ -0,0 +1,177 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Advice Binding</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getAdvicePath <em>Advice Path</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getAdviceID <em>Advice ID</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getInheritance <em>Inheritance</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getElementTypeRef <em>Element Type Ref</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getElementTypeIDref <em>Element Type IDref</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getAdviceBinding()
+ * @model
+ * @generated
+ */
+public interface AdviceBinding extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Advice Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Advice Path</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Advice Path</em>' attribute.
+ * @see #setAdvicePath(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getAdviceBinding_AdvicePath()
+ * @model
+ * @generated
+ */
+ String getAdvicePath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getAdvicePath <em>Advice Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Advice Path</em>' attribute.
+ * @see #getAdvicePath()
+ * @generated
+ */
+ void setAdvicePath(String value);
+
+ /**
+ * Returns the value of the '<em><b>Advice ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Advice ID</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Advice ID</em>' attribute.
+ * @see #setAdviceID(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getAdviceBinding_AdviceID()
+ * @model
+ * @generated
+ */
+ String getAdviceID();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getAdviceID <em>Advice ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Advice ID</em>' attribute.
+ * @see #getAdviceID()
+ * @generated
+ */
+ void setAdviceID(String value);
+
+ /**
+ * Returns the value of the '<em><b>Inheritance</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.domaincontextcodegen.InheritanceKind}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Inheritance</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Inheritance</em>' attribute.
+ * @see org.eclipse.papyrus.domaincontextcodegen.InheritanceKind
+ * @see #setInheritance(InheritanceKind)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getAdviceBinding_Inheritance()
+ * @model
+ * @generated
+ */
+ InheritanceKind getInheritance();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getInheritance <em>Inheritance</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Inheritance</em>' attribute.
+ * @see org.eclipse.papyrus.domaincontextcodegen.InheritanceKind
+ * @see #getInheritance()
+ * @generated
+ */
+ void setInheritance(InheritanceKind value);
+
+ /**
+ * Returns the value of the '<em><b>Element Type Ref</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element Type Ref</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Element Type Ref</em>' reference.
+ * @see #setElementTypeRef(ElementType)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getAdviceBinding_ElementTypeRef()
+ * @model
+ * @generated
+ */
+ ElementType getElementTypeRef();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getElementTypeRef <em>Element Type Ref</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Element Type Ref</em>' reference.
+ * @see #getElementTypeRef()
+ * @generated
+ */
+ void setElementTypeRef(ElementType value);
+
+ /**
+ * Returns the value of the '<em><b>Element Type IDref</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element Type IDref</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Element Type IDref</em>' attribute.
+ * @see #setElementTypeIDref(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getAdviceBinding_ElementTypeIDref()
+ * @model
+ * @generated
+ */
+ String getElementTypeIDref();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getElementTypeIDref <em>Element Type IDref</em>}'
+ * attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Element Type IDref</em>' attribute.
+ * @see #getElementTypeIDref()
+ * @generated
+ */
+ void setElementTypeIDref(String value);
+
+} // AdviceBinding
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/Binding.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/Binding.java
new file mode 100644
index 00000000000..3ca8762a7b9
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/Binding.java
@@ -0,0 +1,115 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Binding</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.Binding#getAdvice <em>Advice</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.Binding#getElementTypePattern <em>Element Type Pattern</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.Binding#getAdviceID <em>Advice ID</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getBinding()
+ * @model
+ * @generated
+ */
+public interface Binding extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Advice</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Advice</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Advice</em>' reference.
+ * @see #setAdvice(AdviceBinding)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getBinding_Advice()
+ * @model
+ * @generated
+ */
+ AdviceBinding getAdvice();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.Binding#getAdvice <em>Advice</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Advice</em>' reference.
+ * @see #getAdvice()
+ * @generated
+ */
+ void setAdvice(AdviceBinding value);
+
+ /**
+ * Returns the value of the '<em><b>Element Type Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element Type Pattern</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Element Type Pattern</em>' attribute.
+ * @see #setElementTypePattern(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getBinding_ElementTypePattern()
+ * @model
+ * @generated
+ */
+ String getElementTypePattern();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.Binding#getElementTypePattern <em>Element Type Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Element Type Pattern</em>' attribute.
+ * @see #getElementTypePattern()
+ * @generated
+ */
+ void setElementTypePattern(String value);
+
+ /**
+ * Returns the value of the '<em><b>Advice ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Advice ID</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Advice ID</em>' attribute.
+ * @see #setAdviceID(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getBinding_AdviceID()
+ * @model
+ * @generated
+ */
+ String getAdviceID();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.Binding#getAdviceID <em>Advice ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Advice ID</em>' attribute.
+ * @see #getAdviceID()
+ * @generated
+ */
+ void setAdviceID(String value);
+
+} // Binding
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/DomainContext.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/DomainContext.java
new file mode 100644
index 00000000000..ab300922b03
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/DomainContext.java
@@ -0,0 +1,421 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Domain Context</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getTypeProjectName <em>Type Project Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getHandlerProjectName <em>Handler Project Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getIClientContextID <em>IClient Context ID</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getMetamodel <em>Metamodel</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getSpecializationOf <em>Specialization Of</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getElementTypeIDPrefix <em>Element Type ID Prefix</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getElementTypeNamePrefix <em>Element Type Name Prefix</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getMatcherPatch <em>Matcher Patch</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getElementTypes <em>Element Types</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getDefaultHelperPath <em>Default Helper Path</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getAdvicebindings <em>Advicebindings</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getBindings <em>Bindings</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getGenHandlers <em>Gen Handlers</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getGeneratedSourceFolder <em>Generated Source Folder</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getDomainContext()
+ * @model
+ * @generated
+ */
+public interface DomainContext extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Type Project Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type 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>Type Project Name</em>' attribute.
+ * @see #setTypeProjectName(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getDomainContext_TypeProjectName()
+ * @model required="true"
+ * @generated
+ */
+ String getTypeProjectName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getTypeProjectName <em>Type Project Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Type Project Name</em>' attribute.
+ * @see #getTypeProjectName()
+ * @generated
+ */
+ void setTypeProjectName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Handler Project Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Handler 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>Handler Project Name</em>' attribute.
+ * @see #setHandlerProjectName(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getDomainContext_HandlerProjectName()
+ * @model required="true"
+ * @generated
+ */
+ String getHandlerProjectName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getHandlerProjectName <em>Handler Project Name</em>}'
+ * attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Handler Project Name</em>' attribute.
+ * @see #getHandlerProjectName()
+ * @generated
+ */
+ void setHandlerProjectName(String value);
+
+ /**
+ * Returns the value of the '<em><b>IClient Context ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>IClient Context ID</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>IClient Context ID</em>' attribute.
+ * @see #setIClientContextID(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getDomainContext_IClientContextID()
+ * @model
+ * @generated
+ */
+ String getIClientContextID();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getIClientContextID <em>IClient Context ID</em>}'
+ * attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>IClient Context ID</em>' attribute.
+ * @see #getIClientContextID()
+ * @generated
+ */
+ void setIClientContextID(String value);
+
+ /**
+ * Returns the value of the '<em><b>Metamodel</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Metamodel</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Metamodel</em>' reference.
+ * @see #setMetamodel(EPackage)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getDomainContext_Metamodel()
+ * @model required="true"
+ * @generated
+ */
+ EPackage getMetamodel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getMetamodel <em>Metamodel</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Metamodel</em>' reference.
+ * @see #getMetamodel()
+ * @generated
+ */
+ void setMetamodel(EPackage value);
+
+ /**
+ * Returns the value of the '<em><b>Specialization Of</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Specialization Of</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Specialization Of</em>' reference.
+ * @see #setSpecializationOf(DomainContext)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getDomainContext_SpecializationOf()
+ * @model
+ * @generated
+ */
+ DomainContext getSpecializationOf();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getSpecializationOf <em>Specialization Of</em>}'
+ * reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Specialization Of</em>' reference.
+ * @see #getSpecializationOf()
+ * @generated
+ */
+ void setSpecializationOf(DomainContext value);
+
+ /**
+ * Returns the value of the '<em><b>Element Type ID Prefix</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element Type ID Prefix</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Element Type ID Prefix</em>' attribute.
+ * @see #setElementTypeIDPrefix(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getDomainContext_ElementTypeIDPrefix()
+ * @model required="true"
+ * @generated
+ */
+ String getElementTypeIDPrefix();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getElementTypeIDPrefix <em>Element Type ID Prefix</em>}'
+ * attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Element Type ID Prefix</em>' attribute.
+ * @see #getElementTypeIDPrefix()
+ * @generated
+ */
+ void setElementTypeIDPrefix(String value);
+
+ /**
+ * Returns the value of the '<em><b>Element Type Name Prefix</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element Type Name Prefix</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Element Type Name Prefix</em>' attribute.
+ * @see #setElementTypeNamePrefix(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getDomainContext_ElementTypeNamePrefix()
+ * @model required="true"
+ * @generated
+ */
+ String getElementTypeNamePrefix();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getElementTypeNamePrefix
+ * <em>Element Type Name Prefix</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Element Type Name Prefix</em>' attribute.
+ * @see #getElementTypeNamePrefix()
+ * @generated
+ */
+ void setElementTypeNamePrefix(String value);
+
+ /**
+ * Returns the value of the '<em><b>Matcher Patch</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Matcher Patch</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Matcher Patch</em>' attribute.
+ * @see #setMatcherPatch(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getDomainContext_MatcherPatch()
+ * @model required="true"
+ * @generated
+ */
+ String getMatcherPatch();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getMatcherPatch <em>Matcher Patch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Matcher Patch</em>' attribute.
+ * @see #getMatcherPatch()
+ * @generated
+ */
+ void setMatcherPatch(String value);
+
+ /**
+ * Returns the value of the '<em><b>Element Types</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element Types</em>' containment reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Element Types</em>' containment reference.
+ * @see #setElementTypes(ElementTypes)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getDomainContext_ElementTypes()
+ * @model containment="true"
+ * @generated
+ */
+ ElementTypes getElementTypes();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getElementTypes <em>Element Types</em>}' containment
+ * reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Element Types</em>' containment reference.
+ * @see #getElementTypes()
+ * @generated
+ */
+ void setElementTypes(ElementTypes value);
+
+ /**
+ * Returns the value of the '<em><b>Default Helper Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Default Helper Path</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Default Helper Path</em>' attribute.
+ * @see #setDefaultHelperPath(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getDomainContext_DefaultHelperPath()
+ * @model required="true"
+ * @generated
+ */
+ String getDefaultHelperPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getDefaultHelperPath <em>Default Helper Path</em>}'
+ * attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Default Helper Path</em>' attribute.
+ * @see #getDefaultHelperPath()
+ * @generated
+ */
+ void setDefaultHelperPath(String value);
+
+ /**
+ * Returns the value of the '<em><b>Advicebindings</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Advicebindings</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>Advicebindings</em>' containment reference list.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getDomainContext_Advicebindings()
+ * @model containment="true"
+ * @generated
+ */
+ EList<AdviceBinding> getAdvicebindings();
+
+ /**
+ * Returns the value of the '<em><b>Bindings</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.domaincontextcodegen.Binding}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bindings</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>Bindings</em>' containment reference list.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getDomainContext_Bindings()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Binding> getBindings();
+
+ /**
+ * Returns the value of the '<em><b>Gen Handlers</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Gen Handlers</em>' containment reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Gen Handlers</em>' containment reference.
+ * @see #setGenHandlers(GenHandlers)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getDomainContext_GenHandlers()
+ * @model containment="true"
+ * @generated
+ */
+ GenHandlers getGenHandlers();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getGenHandlers <em>Gen Handlers</em>}' containment
+ * reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Gen Handlers</em>' containment reference.
+ * @see #getGenHandlers()
+ * @generated
+ */
+ void setGenHandlers(GenHandlers value);
+
+ /**
+ * Returns the value of the '<em><b>Generated Source Folder</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Generated Source Folder</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Generated Source Folder</em>' attribute.
+ * @see #setGeneratedSourceFolder(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getDomainContext_GeneratedSourceFolder()
+ * @model required="true"
+ * @generated
+ */
+ String getGeneratedSourceFolder();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getGeneratedSourceFolder <em>Generated Source Folder</em>}
+ * ' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Generated Source Folder</em>' attribute.
+ * @see #getGeneratedSourceFolder()
+ * @generated
+ */
+ void setGeneratedSourceFolder(String value);
+
+} // DomainContext
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/DomaincontextcodegenFactory.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/DomaincontextcodegenFactory.java
new file mode 100644
index 00000000000..9f40e077237
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/DomaincontextcodegenFactory.java
@@ -0,0 +1,101 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen;
+
+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.domaincontextcodegen.DomaincontextcodegenPackage
+ * @generated
+ */
+public interface DomaincontextcodegenFactory extends EFactory {
+
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ DomaincontextcodegenFactory eINSTANCE = org.eclipse.papyrus.domaincontextcodegen.impl.DomaincontextcodegenFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Domain Context</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Domain Context</em>'.
+ * @generated
+ */
+ DomainContext createDomainContext();
+
+ /**
+ * Returns a new object of class '<em>Element Types</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Element Types</em>'.
+ * @generated
+ */
+ ElementTypes createElementTypes();
+
+ /**
+ * Returns a new object of class '<em>Element Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Element Type</em>'.
+ * @generated
+ */
+ ElementType createElementType();
+
+ /**
+ * Returns a new object of class '<em>Advice Binding</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Advice Binding</em>'.
+ * @generated
+ */
+ AdviceBinding createAdviceBinding();
+
+ /**
+ * Returns a new object of class '<em>Binding</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Binding</em>'.
+ * @generated
+ */
+ Binding createBinding();
+
+ /**
+ * Returns a new object of class '<em>Gen Handlers</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>Gen Handlers</em>'.
+ * @generated
+ */
+ GenHandlers createGenHandlers();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the package supported by this factory.
+ * @generated
+ */
+ DomaincontextcodegenPackage getDomaincontextcodegenPackage();
+
+} //DomaincontextcodegenFactory
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/DomaincontextcodegenPackage.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/DomaincontextcodegenPackage.java
new file mode 100644
index 00000000000..a31a0c43f46
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/DomaincontextcodegenPackage.java
@@ -0,0 +1,1468 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen;
+
+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.domaincontextcodegen.DomaincontextcodegenFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface DomaincontextcodegenPackage extends EPackage {
+
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNAME = "domaincontextcodegen";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/2010/domaincontextcodegen";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ String eNS_PREFIX = "domaincontextcodegen";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ DomaincontextcodegenPackage eINSTANCE = org.eclipse.papyrus.domaincontextcodegen.impl.DomaincontextcodegenPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl <em>Domain Context</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.DomaincontextcodegenPackageImpl#getDomainContext()
+ * @generated
+ */
+ int DOMAIN_CONTEXT = 0;
+
+ /**
+ * The feature id for the '<em><b>Type Project Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOMAIN_CONTEXT__TYPE_PROJECT_NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Handler Project Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOMAIN_CONTEXT__HANDLER_PROJECT_NAME = 1;
+
+ /**
+ * The feature id for the '<em><b>IClient Context ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOMAIN_CONTEXT__ICLIENT_CONTEXT_ID = 2;
+
+ /**
+ * The feature id for the '<em><b>Metamodel</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOMAIN_CONTEXT__METAMODEL = 3;
+
+ /**
+ * The feature id for the '<em><b>Specialization Of</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOMAIN_CONTEXT__SPECIALIZATION_OF = 4;
+
+ /**
+ * The feature id for the '<em><b>Element Type ID Prefix</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOMAIN_CONTEXT__ELEMENT_TYPE_ID_PREFIX = 5;
+
+ /**
+ * The feature id for the '<em><b>Element Type Name Prefix</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOMAIN_CONTEXT__ELEMENT_TYPE_NAME_PREFIX = 6;
+
+ /**
+ * The feature id for the '<em><b>Matcher Patch</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOMAIN_CONTEXT__MATCHER_PATCH = 7;
+
+ /**
+ * The feature id for the '<em><b>Element Types</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOMAIN_CONTEXT__ELEMENT_TYPES = 8;
+
+ /**
+ * The feature id for the '<em><b>Default Helper Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOMAIN_CONTEXT__DEFAULT_HELPER_PATH = 9;
+
+ /**
+ * The feature id for the '<em><b>Advicebindings</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOMAIN_CONTEXT__ADVICEBINDINGS = 10;
+
+ /**
+ * The feature id for the '<em><b>Bindings</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOMAIN_CONTEXT__BINDINGS = 11;
+
+ /**
+ * The feature id for the '<em><b>Gen Handlers</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOMAIN_CONTEXT__GEN_HANDLERS = 12;
+
+ /**
+ * The feature id for the '<em><b>Generated Source Folder</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOMAIN_CONTEXT__GENERATED_SOURCE_FOLDER = 13;
+
+ /**
+ * The number of structural features of the '<em>Domain Context</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int DOMAIN_CONTEXT_FEATURE_COUNT = 14;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.domaincontextcodegen.impl.ElementTypesImpl <em>Element Types</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.ElementTypesImpl
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.DomaincontextcodegenPackageImpl#getElementTypes()
+ * @generated
+ */
+ int ELEMENT_TYPES = 1;
+
+ /**
+ * The feature id for the '<em><b>Types</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPES__TYPES = 0;
+
+ /**
+ * The number of structural features of the '<em>Element Types</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPES_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.domaincontextcodegen.impl.ElementTypeImpl <em>Element Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.ElementTypeImpl
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.DomaincontextcodegenPackageImpl#getElementType()
+ * @generated
+ */
+ int ELEMENT_TYPE = 2;
+
+ /**
+ * The feature id for the '<em><b>Meta Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE__META_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>Specific Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE__SPECIFIC_NAME = 1;
+
+ /**
+ * The feature id for the '<em><b>Edithelper Edit Helper Advice Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE__EDITHELPER_EDIT_HELPER_ADVICE_PATH = 2;
+
+ /**
+ * The feature id for the '<em><b>Kind</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE__KIND = 3;
+
+ /**
+ * The feature id for the '<em><b>Specializationof</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE__SPECIALIZATIONOF = 4;
+
+ /**
+ * The feature id for the '<em><b>Specialization IDof</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE__SPECIALIZATION_IDOF = 5;
+
+ /**
+ * The number of structural features of the '<em>Element Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ELEMENT_TYPE_FEATURE_COUNT = 6;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.domaincontextcodegen.impl.AdviceBindingImpl <em>Advice Binding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.AdviceBindingImpl
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.DomaincontextcodegenPackageImpl#getAdviceBinding()
+ * @generated
+ */
+ int ADVICE_BINDING = 3;
+
+ /**
+ * The feature id for the '<em><b>Advice Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ADVICE_BINDING__ADVICE_PATH = 0;
+
+ /**
+ * The feature id for the '<em><b>Advice ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ADVICE_BINDING__ADVICE_ID = 1;
+
+ /**
+ * The feature id for the '<em><b>Inheritance</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ADVICE_BINDING__INHERITANCE = 2;
+
+ /**
+ * The feature id for the '<em><b>Element Type Ref</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ADVICE_BINDING__ELEMENT_TYPE_REF = 3;
+
+ /**
+ * The feature id for the '<em><b>Element Type IDref</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ADVICE_BINDING__ELEMENT_TYPE_IDREF = 4;
+
+ /**
+ * The number of structural features of the '<em>Advice Binding</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int ADVICE_BINDING_FEATURE_COUNT = 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.domaincontextcodegen.impl.BindingImpl <em>Binding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.BindingImpl
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.DomaincontextcodegenPackageImpl#getBinding()
+ * @generated
+ */
+ int BINDING = 4;
+
+ /**
+ * The feature id for the '<em><b>Advice</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BINDING__ADVICE = 0;
+
+ /**
+ * The feature id for the '<em><b>Element Type Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BINDING__ELEMENT_TYPE_PATTERN = 1;
+
+ /**
+ * The feature id for the '<em><b>Advice ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BINDING__ADVICE_ID = 2;
+
+ /**
+ * The number of structural features of the '<em>Binding</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int BINDING_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.domaincontextcodegen.impl.GenHandlersImpl <em>Gen Handlers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.GenHandlersImpl
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.DomaincontextcodegenPackageImpl#getGenHandlers()
+ * @generated
+ */
+ int GEN_HANDLERS = 5;
+
+ /**
+ * The feature id for the '<em><b>Handler Package</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int GEN_HANDLERS__HANDLER_PACKAGE = 0;
+
+ /**
+ * The feature id for the '<em><b>Super Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int GEN_HANDLERS__SUPER_CLASS = 1;
+
+ /**
+ * The feature id for the '<em><b>Super Class Package</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int GEN_HANDLERS__SUPER_CLASS_PACKAGE = 2;
+
+ /**
+ * The feature id for the '<em><b>Element Type Enumerator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int GEN_HANDLERS__ELEMENT_TYPE_ENUMERATOR = 3;
+
+ /**
+ * The feature id for the '<em><b>Element Type Enumerator Package</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int GEN_HANDLERS__ELEMENT_TYPE_ENUMERATOR_PACKAGE = 4;
+
+ /**
+ * The number of structural features of the '<em>Gen Handlers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int GEN_HANDLERS_FEATURE_COUNT = 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.domaincontextcodegen.InheritanceKind <em>Inheritance Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.InheritanceKind
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.DomaincontextcodegenPackageImpl#getInheritanceKind()
+ * @generated
+ */
+ int INHERITANCE_KIND = 6;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext <em>Domain Context</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Domain Context</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomainContext
+ * @generated
+ */
+ EClass getDomainContext();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getTypeProjectName
+ * <em>Type Project Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Type Project Name</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomainContext#getTypeProjectName()
+ * @see #getDomainContext()
+ * @generated
+ */
+ EAttribute getDomainContext_TypeProjectName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getHandlerProjectName
+ * <em>Handler Project Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Handler Project Name</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomainContext#getHandlerProjectName()
+ * @see #getDomainContext()
+ * @generated
+ */
+ EAttribute getDomainContext_HandlerProjectName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getIClientContextID
+ * <em>IClient Context ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>IClient Context ID</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomainContext#getIClientContextID()
+ * @see #getDomainContext()
+ * @generated
+ */
+ EAttribute getDomainContext_IClientContextID();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getMetamodel <em>Metamodel</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Metamodel</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomainContext#getMetamodel()
+ * @see #getDomainContext()
+ * @generated
+ */
+ EReference getDomainContext_Metamodel();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getSpecializationOf
+ * <em>Specialization Of</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Specialization Of</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomainContext#getSpecializationOf()
+ * @see #getDomainContext()
+ * @generated
+ */
+ EReference getDomainContext_SpecializationOf();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getElementTypeIDPrefix
+ * <em>Element Type ID Prefix</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Element Type ID Prefix</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomainContext#getElementTypeIDPrefix()
+ * @see #getDomainContext()
+ * @generated
+ */
+ EAttribute getDomainContext_ElementTypeIDPrefix();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getElementTypeNamePrefix
+ * <em>Element Type Name Prefix</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Element Type Name Prefix</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomainContext#getElementTypeNamePrefix()
+ * @see #getDomainContext()
+ * @generated
+ */
+ EAttribute getDomainContext_ElementTypeNamePrefix();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getMatcherPatch
+ * <em>Matcher Patch</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Matcher Patch</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomainContext#getMatcherPatch()
+ * @see #getDomainContext()
+ * @generated
+ */
+ EAttribute getDomainContext_MatcherPatch();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getElementTypes
+ * <em>Element Types</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference '<em>Element Types</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomainContext#getElementTypes()
+ * @see #getDomainContext()
+ * @generated
+ */
+ EReference getDomainContext_ElementTypes();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getDefaultHelperPath
+ * <em>Default Helper Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Default Helper Path</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomainContext#getDefaultHelperPath()
+ * @see #getDomainContext()
+ * @generated
+ */
+ EAttribute getDomainContext_DefaultHelperPath();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getAdvicebindings
+ * <em>Advicebindings</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Advicebindings</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomainContext#getAdvicebindings()
+ * @see #getDomainContext()
+ * @generated
+ */
+ EReference getDomainContext_Advicebindings();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getBindings
+ * <em>Bindings</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Bindings</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomainContext#getBindings()
+ * @see #getDomainContext()
+ * @generated
+ */
+ EReference getDomainContext_Bindings();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getGenHandlers
+ * <em>Gen Handlers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference '<em>Gen Handlers</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomainContext#getGenHandlers()
+ * @see #getDomainContext()
+ * @generated
+ */
+ EReference getDomainContext_GenHandlers();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.DomainContext#getGeneratedSourceFolder
+ * <em>Generated Source Folder</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Generated Source Folder</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomainContext#getGeneratedSourceFolder()
+ * @see #getDomainContext()
+ * @generated
+ */
+ EAttribute getDomainContext_GeneratedSourceFolder();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.domaincontextcodegen.ElementTypes <em>Element Types</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Element Types</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.ElementTypes
+ * @generated
+ */
+ EClass getElementTypes();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.domaincontextcodegen.ElementTypes#getTypes
+ * <em>Types</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the containment reference list '<em>Types</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.ElementTypes#getTypes()
+ * @see #getElementTypes()
+ * @generated
+ */
+ EReference getElementTypes_Types();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.domaincontextcodegen.ElementType <em>Element Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Element Type</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.ElementType
+ * @generated
+ */
+ EClass getElementType();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getMetaClass <em>Meta Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Meta Class</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.ElementType#getMetaClass()
+ * @see #getElementType()
+ * @generated
+ */
+ EReference getElementType_MetaClass();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getSpecificName <em>Specific Name</em>}
+ * '.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Specific Name</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.ElementType#getSpecificName()
+ * @see #getElementType()
+ * @generated
+ */
+ EAttribute getElementType_SpecificName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getEdithelper_EditHelperAdvicePath
+ * <em>Edithelper Edit Helper Advice Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Edithelper Edit Helper Advice Path</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.ElementType#getEdithelper_EditHelperAdvicePath()
+ * @see #getElementType()
+ * @generated
+ */
+ EAttribute getElementType_Edithelper_EditHelperAdvicePath();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getKind <em>Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Kind</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.ElementType#getKind()
+ * @see #getElementType()
+ * @generated
+ */
+ EAttribute getElementType_Kind();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getSpecializationof
+ * <em>Specializationof</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Specializationof</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.ElementType#getSpecializationof()
+ * @see #getElementType()
+ * @generated
+ */
+ EReference getElementType_Specializationof();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getSpecializationIDof
+ * <em>Specialization IDof</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Specialization IDof</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.ElementType#getSpecializationIDof()
+ * @see #getElementType()
+ * @generated
+ */
+ EAttribute getElementType_SpecializationIDof();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding <em>Advice Binding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Advice Binding</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.AdviceBinding
+ * @generated
+ */
+ EClass getAdviceBinding();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getAdvicePath <em>Advice Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Advice Path</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getAdvicePath()
+ * @see #getAdviceBinding()
+ * @generated
+ */
+ EAttribute getAdviceBinding_AdvicePath();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getAdviceID <em>Advice ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Advice ID</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getAdviceID()
+ * @see #getAdviceBinding()
+ * @generated
+ */
+ EAttribute getAdviceBinding_AdviceID();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getInheritance <em>Inheritance</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Inheritance</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getInheritance()
+ * @see #getAdviceBinding()
+ * @generated
+ */
+ EAttribute getAdviceBinding_Inheritance();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getElementTypeRef
+ * <em>Element Type Ref</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Element Type Ref</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getElementTypeRef()
+ * @see #getAdviceBinding()
+ * @generated
+ */
+ EReference getAdviceBinding_ElementTypeRef();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getElementTypeIDref
+ * <em>Element Type IDref</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Element Type IDref</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.AdviceBinding#getElementTypeIDref()
+ * @see #getAdviceBinding()
+ * @generated
+ */
+ EAttribute getAdviceBinding_ElementTypeIDref();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.domaincontextcodegen.Binding <em>Binding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Binding</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.Binding
+ * @generated
+ */
+ EClass getBinding();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.domaincontextcodegen.Binding#getAdvice <em>Advice</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the reference '<em>Advice</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.Binding#getAdvice()
+ * @see #getBinding()
+ * @generated
+ */
+ EReference getBinding_Advice();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.Binding#getElementTypePattern
+ * <em>Element Type Pattern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Element Type Pattern</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.Binding#getElementTypePattern()
+ * @see #getBinding()
+ * @generated
+ */
+ EAttribute getBinding_ElementTypePattern();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.Binding#getAdviceID <em>Advice ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Advice ID</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.Binding#getAdviceID()
+ * @see #getBinding()
+ * @generated
+ */
+ EAttribute getBinding_AdviceID();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers <em>Gen Handlers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>Gen Handlers</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.GenHandlers
+ * @generated
+ */
+ EClass getGenHandlers();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getHandlerPackage
+ * <em>Handler Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Handler Package</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getHandlerPackage()
+ * @see #getGenHandlers()
+ * @generated
+ */
+ EAttribute getGenHandlers_HandlerPackage();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getSuperClass <em>Super Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Super Class</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getSuperClass()
+ * @see #getGenHandlers()
+ * @generated
+ */
+ EAttribute getGenHandlers_SuperClass();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getSuperClassPackage
+ * <em>Super Class Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Super Class Package</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getSuperClassPackage()
+ * @see #getGenHandlers()
+ * @generated
+ */
+ EAttribute getGenHandlers_SuperClassPackage();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getElementTypeEnumerator
+ * <em>Element Type Enumerator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Element Type Enumerator</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getElementTypeEnumerator()
+ * @see #getGenHandlers()
+ * @generated
+ */
+ EAttribute getGenHandlers_ElementTypeEnumerator();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getElementTypeEnumeratorPackage
+ * <em>Element Type Enumerator Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Element Type Enumerator Package</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getElementTypeEnumeratorPackage()
+ * @see #getGenHandlers()
+ * @generated
+ */
+ EAttribute getGenHandlers_ElementTypeEnumeratorPackage();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.domaincontextcodegen.InheritanceKind <em>Inheritance Kind</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for enum '<em>Inheritance Kind</em>'.
+ * @see org.eclipse.papyrus.domaincontextcodegen.InheritanceKind
+ * @generated
+ */
+ EEnum getInheritanceKind();
+
+ /**
+ * 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
+ */
+ DomaincontextcodegenFactory getDomaincontextcodegenFactory();
+
+ /**
+ * <!-- 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.domaincontextcodegen.impl.DomainContextImpl <em>Domain Context</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.DomaincontextcodegenPackageImpl#getDomainContext()
+ * @generated
+ */
+ EClass DOMAIN_CONTEXT = eINSTANCE.getDomainContext();
+
+ /**
+ * The meta object literal for the '<em><b>Type Project Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute DOMAIN_CONTEXT__TYPE_PROJECT_NAME = eINSTANCE.getDomainContext_TypeProjectName();
+
+ /**
+ * The meta object literal for the '<em><b>Handler Project Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute DOMAIN_CONTEXT__HANDLER_PROJECT_NAME = eINSTANCE.getDomainContext_HandlerProjectName();
+
+ /**
+ * The meta object literal for the '<em><b>IClient Context ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute DOMAIN_CONTEXT__ICLIENT_CONTEXT_ID = eINSTANCE.getDomainContext_IClientContextID();
+
+ /**
+ * The meta object literal for the '<em><b>Metamodel</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference DOMAIN_CONTEXT__METAMODEL = eINSTANCE.getDomainContext_Metamodel();
+
+ /**
+ * The meta object literal for the '<em><b>Specialization Of</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference DOMAIN_CONTEXT__SPECIALIZATION_OF = eINSTANCE.getDomainContext_SpecializationOf();
+
+ /**
+ * The meta object literal for the '<em><b>Element Type ID Prefix</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute DOMAIN_CONTEXT__ELEMENT_TYPE_ID_PREFIX = eINSTANCE.getDomainContext_ElementTypeIDPrefix();
+
+ /**
+ * The meta object literal for the '<em><b>Element Type Name Prefix</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute DOMAIN_CONTEXT__ELEMENT_TYPE_NAME_PREFIX = eINSTANCE.getDomainContext_ElementTypeNamePrefix();
+
+ /**
+ * The meta object literal for the '<em><b>Matcher Patch</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute DOMAIN_CONTEXT__MATCHER_PATCH = eINSTANCE.getDomainContext_MatcherPatch();
+
+ /**
+ * The meta object literal for the '<em><b>Element Types</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference DOMAIN_CONTEXT__ELEMENT_TYPES = eINSTANCE.getDomainContext_ElementTypes();
+
+ /**
+ * The meta object literal for the '<em><b>Default Helper Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute DOMAIN_CONTEXT__DEFAULT_HELPER_PATH = eINSTANCE.getDomainContext_DefaultHelperPath();
+
+ /**
+ * The meta object literal for the '<em><b>Advicebindings</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference DOMAIN_CONTEXT__ADVICEBINDINGS = eINSTANCE.getDomainContext_Advicebindings();
+
+ /**
+ * The meta object literal for the '<em><b>Bindings</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference DOMAIN_CONTEXT__BINDINGS = eINSTANCE.getDomainContext_Bindings();
+
+ /**
+ * The meta object literal for the '<em><b>Gen Handlers</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference DOMAIN_CONTEXT__GEN_HANDLERS = eINSTANCE.getDomainContext_GenHandlers();
+
+ /**
+ * The meta object literal for the '<em><b>Generated Source Folder</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute DOMAIN_CONTEXT__GENERATED_SOURCE_FOLDER = eINSTANCE.getDomainContext_GeneratedSourceFolder();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.domaincontextcodegen.impl.ElementTypesImpl <em>Element Types</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.ElementTypesImpl
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.DomaincontextcodegenPackageImpl#getElementTypes()
+ * @generated
+ */
+ EClass ELEMENT_TYPES = eINSTANCE.getElementTypes();
+
+ /**
+ * The meta object literal for the '<em><b>Types</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference ELEMENT_TYPES__TYPES = eINSTANCE.getElementTypes_Types();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.domaincontextcodegen.impl.ElementTypeImpl <em>Element Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.ElementTypeImpl
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.DomaincontextcodegenPackageImpl#getElementType()
+ * @generated
+ */
+ EClass ELEMENT_TYPE = eINSTANCE.getElementType();
+
+ /**
+ * The meta object literal for the '<em><b>Meta Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference ELEMENT_TYPE__META_CLASS = eINSTANCE.getElementType_MetaClass();
+
+ /**
+ * The meta object literal for the '<em><b>Specific Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute ELEMENT_TYPE__SPECIFIC_NAME = eINSTANCE.getElementType_SpecificName();
+
+ /**
+ * The meta object literal for the '<em><b>Edithelper Edit Helper Advice Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute ELEMENT_TYPE__EDITHELPER_EDIT_HELPER_ADVICE_PATH = eINSTANCE.getElementType_Edithelper_EditHelperAdvicePath();
+
+ /**
+ * The meta object literal for the '<em><b>Kind</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute ELEMENT_TYPE__KIND = eINSTANCE.getElementType_Kind();
+
+ /**
+ * The meta object literal for the '<em><b>Specializationof</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference ELEMENT_TYPE__SPECIALIZATIONOF = eINSTANCE.getElementType_Specializationof();
+
+ /**
+ * The meta object literal for the '<em><b>Specialization IDof</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute ELEMENT_TYPE__SPECIALIZATION_IDOF = eINSTANCE.getElementType_SpecializationIDof();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.domaincontextcodegen.impl.AdviceBindingImpl <em>Advice Binding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.AdviceBindingImpl
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.DomaincontextcodegenPackageImpl#getAdviceBinding()
+ * @generated
+ */
+ EClass ADVICE_BINDING = eINSTANCE.getAdviceBinding();
+
+ /**
+ * The meta object literal for the '<em><b>Advice Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute ADVICE_BINDING__ADVICE_PATH = eINSTANCE.getAdviceBinding_AdvicePath();
+
+ /**
+ * The meta object literal for the '<em><b>Advice ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute ADVICE_BINDING__ADVICE_ID = eINSTANCE.getAdviceBinding_AdviceID();
+
+ /**
+ * The meta object literal for the '<em><b>Inheritance</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute ADVICE_BINDING__INHERITANCE = eINSTANCE.getAdviceBinding_Inheritance();
+
+ /**
+ * The meta object literal for the '<em><b>Element Type Ref</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference ADVICE_BINDING__ELEMENT_TYPE_REF = eINSTANCE.getAdviceBinding_ElementTypeRef();
+
+ /**
+ * The meta object literal for the '<em><b>Element Type IDref</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute ADVICE_BINDING__ELEMENT_TYPE_IDREF = eINSTANCE.getAdviceBinding_ElementTypeIDref();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.domaincontextcodegen.impl.BindingImpl <em>Binding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.BindingImpl
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.DomaincontextcodegenPackageImpl#getBinding()
+ * @generated
+ */
+ EClass BINDING = eINSTANCE.getBinding();
+
+ /**
+ * The meta object literal for the '<em><b>Advice</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EReference BINDING__ADVICE = eINSTANCE.getBinding_Advice();
+
+ /**
+ * The meta object literal for the '<em><b>Element Type Pattern</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute BINDING__ELEMENT_TYPE_PATTERN = eINSTANCE.getBinding_ElementTypePattern();
+
+ /**
+ * The meta object literal for the '<em><b>Advice ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute BINDING__ADVICE_ID = eINSTANCE.getBinding_AdviceID();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.domaincontextcodegen.impl.GenHandlersImpl <em>Gen Handlers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.GenHandlersImpl
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.DomaincontextcodegenPackageImpl#getGenHandlers()
+ * @generated
+ */
+ EClass GEN_HANDLERS = eINSTANCE.getGenHandlers();
+
+ /**
+ * The meta object literal for the '<em><b>Handler Package</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute GEN_HANDLERS__HANDLER_PACKAGE = eINSTANCE.getGenHandlers_HandlerPackage();
+
+ /**
+ * The meta object literal for the '<em><b>Super Class</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute GEN_HANDLERS__SUPER_CLASS = eINSTANCE.getGenHandlers_SuperClass();
+
+ /**
+ * The meta object literal for the '<em><b>Super Class Package</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute GEN_HANDLERS__SUPER_CLASS_PACKAGE = eINSTANCE.getGenHandlers_SuperClassPackage();
+
+ /**
+ * The meta object literal for the '<em><b>Element Type Enumerator</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute GEN_HANDLERS__ELEMENT_TYPE_ENUMERATOR = eINSTANCE.getGenHandlers_ElementTypeEnumerator();
+
+ /**
+ * The meta object literal for the '<em><b>Element Type Enumerator Package</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute GEN_HANDLERS__ELEMENT_TYPE_ENUMERATOR_PACKAGE = eINSTANCE.getGenHandlers_ElementTypeEnumeratorPackage();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.domaincontextcodegen.InheritanceKind <em>Inheritance Kind</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.InheritanceKind
+ * @see org.eclipse.papyrus.domaincontextcodegen.impl.DomaincontextcodegenPackageImpl#getInheritanceKind()
+ * @generated
+ */
+ EEnum INHERITANCE_KIND = eINSTANCE.getInheritanceKind();
+
+ }
+
+} //DomaincontextcodegenPackage
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/ElementType.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/ElementType.java
new file mode 100644
index 00000000000..a3149fced91
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/ElementType.java
@@ -0,0 +1,205 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Element Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getMetaClass <em>Meta Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getSpecificName <em>Specific Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getEdithelper_EditHelperAdvicePath <em>Edithelper Edit Helper Advice Path</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getSpecializationof <em>Specializationof</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getSpecializationIDof <em>Specialization IDof</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getElementType()
+ * @model
+ * @generated
+ */
+public interface ElementType extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Meta Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Meta 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>Meta Class</em>' reference.
+ * @see #setMetaClass(EClass)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getElementType_MetaClass()
+ * @model required="true"
+ * @generated
+ */
+ EClass getMetaClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getMetaClass <em>Meta Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Meta Class</em>' reference.
+ * @see #getMetaClass()
+ * @generated
+ */
+ void setMetaClass(EClass value);
+
+ /**
+ * Returns the value of the '<em><b>Specific Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Specific 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>Specific Name</em>' attribute.
+ * @see #setSpecificName(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getElementType_SpecificName()
+ * @model
+ * @generated
+ */
+ String getSpecificName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getSpecificName <em>Specific Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Specific Name</em>' attribute.
+ * @see #getSpecificName()
+ * @generated
+ */
+ void setSpecificName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Edithelper Edit Helper Advice Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Edithelper Edit Helper Advice Path</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Edithelper Edit Helper Advice Path</em>' attribute.
+ * @see #setEdithelper_EditHelperAdvicePath(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getElementType_Edithelper_EditHelperAdvicePath()
+ * @model
+ * @generated
+ */
+ String getEdithelper_EditHelperAdvicePath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getEdithelper_EditHelperAdvicePath
+ * <em>Edithelper Edit Helper Advice Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Edithelper Edit Helper Advice Path</em>' attribute.
+ * @see #getEdithelper_EditHelperAdvicePath()
+ * @generated
+ */
+ void setEdithelper_EditHelperAdvicePath(String value);
+
+ /**
+ * Returns the value of the '<em><b>Kind</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kind</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Kind</em>' attribute.
+ * @see #setKind(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getElementType_Kind()
+ * @model
+ * @generated
+ */
+ String getKind();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getKind <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Kind</em>' attribute.
+ * @see #getKind()
+ * @generated
+ */
+ void setKind(String value);
+
+ /**
+ * Returns the value of the '<em><b>Specializationof</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Specializationof</em>' reference isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Specializationof</em>' reference.
+ * @see #setSpecializationof(ElementType)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getElementType_Specializationof()
+ * @model
+ * @generated
+ */
+ ElementType getSpecializationof();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getSpecializationof <em>Specializationof</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Specializationof</em>' reference.
+ * @see #getSpecializationof()
+ * @generated
+ */
+ void setSpecializationof(ElementType value);
+
+ /**
+ * Returns the value of the '<em><b>Specialization IDof</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Specialization IDof</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Specialization IDof</em>' attribute.
+ * @see #setSpecializationIDof(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getElementType_SpecializationIDof()
+ * @model
+ * @generated
+ */
+ String getSpecializationIDof();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.ElementType#getSpecializationIDof <em>Specialization IDof</em>}'
+ * attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Specialization IDof</em>' attribute.
+ * @see #getSpecializationIDof()
+ * @generated
+ */
+ void setSpecializationIDof(String value);
+
+} // ElementType
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/ElementTypes.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/ElementTypes.java
new file mode 100644
index 00000000000..65203f4edae
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/ElementTypes.java
@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Element Types</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.ElementTypes#getTypes <em>Types</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getElementTypes()
+ * @model
+ * @generated
+ */
+public interface ElementTypes extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Types</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.domaincontextcodegen.ElementType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Types</em>' containment reference list isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Types</em>' containment reference list.
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getElementTypes_Types()
+ * @model containment="true"
+ * @generated
+ */
+ EList<ElementType> getTypes();
+
+} // ElementTypes
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/GenHandlers.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/GenHandlers.java
new file mode 100644
index 00000000000..3a334422512
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/GenHandlers.java
@@ -0,0 +1,176 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen Handlers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getHandlerPackage <em>Handler Package</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getSuperClass <em>Super Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getSuperClassPackage <em>Super Class Package</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getElementTypeEnumerator <em>Element Type Enumerator</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getElementTypeEnumeratorPackage <em>Element Type Enumerator Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getGenHandlers()
+ * @model
+ * @generated
+ */
+public interface GenHandlers extends EObject {
+
+ /**
+ * Returns the value of the '<em><b>Handler Package</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Handler Package</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Handler Package</em>' attribute.
+ * @see #setHandlerPackage(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getGenHandlers_HandlerPackage()
+ * @model
+ * @generated
+ */
+ String getHandlerPackage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getHandlerPackage <em>Handler Package</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Handler Package</em>' attribute.
+ * @see #getHandlerPackage()
+ * @generated
+ */
+ void setHandlerPackage(String value);
+
+ /**
+ * Returns the value of the '<em><b>Super Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Super 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>Super Class</em>' attribute.
+ * @see #setSuperClass(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getGenHandlers_SuperClass()
+ * @model
+ * @generated
+ */
+ String getSuperClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getSuperClass <em>Super Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Super Class</em>' attribute.
+ * @see #getSuperClass()
+ * @generated
+ */
+ void setSuperClass(String value);
+
+ /**
+ * Returns the value of the '<em><b>Super Class Package</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Super Class Package</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Super Class Package</em>' attribute.
+ * @see #setSuperClassPackage(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getGenHandlers_SuperClassPackage()
+ * @model
+ * @generated
+ */
+ String getSuperClassPackage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getSuperClassPackage <em>Super Class Package</em>}'
+ * attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Super Class Package</em>' attribute.
+ * @see #getSuperClassPackage()
+ * @generated
+ */
+ void setSuperClassPackage(String value);
+
+ /**
+ * Returns the value of the '<em><b>Element Type Enumerator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element Type Enumerator</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Element Type Enumerator</em>' attribute.
+ * @see #setElementTypeEnumerator(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getGenHandlers_ElementTypeEnumerator()
+ * @model
+ * @generated
+ */
+ String getElementTypeEnumerator();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getElementTypeEnumerator <em>Element Type Enumerator</em>}'
+ * attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Element Type Enumerator</em>' attribute.
+ * @see #getElementTypeEnumerator()
+ * @generated
+ */
+ void setElementTypeEnumerator(String value);
+
+ /**
+ * Returns the value of the '<em><b>Element Type Enumerator Package</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Element Type Enumerator Package</em>' attribute isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Element Type Enumerator Package</em>' attribute.
+ * @see #setElementTypeEnumeratorPackage(String)
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getGenHandlers_ElementTypeEnumeratorPackage()
+ * @model
+ * @generated
+ */
+ String getElementTypeEnumeratorPackage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers#getElementTypeEnumeratorPackage
+ * <em>Element Type Enumerator Package</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Element Type Enumerator Package</em>' attribute.
+ * @see #getElementTypeEnumeratorPackage()
+ * @generated
+ */
+ void setElementTypeEnumeratorPackage(String value);
+
+} // GenHandlers
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/InheritanceKind.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/InheritanceKind.java
new file mode 100644
index 00000000000..601dff850f8
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/InheritanceKind.java
@@ -0,0 +1,224 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen;
+
+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>Inheritance Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage#getInheritanceKind()
+ * @model
+ * @generated
+ */
+public enum InheritanceKind implements Enumerator {
+ /**
+ * The '<em><b>None</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #NONE_VALUE
+ * @generated
+ * @ordered
+ */
+ NONE(0, "none", "none"), /**
+ * The '<em><b>All</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #ALL_VALUE
+ * @generated
+ * @ordered
+ */
+ ALL(1, "all", "all");
+
+ /**
+ * The '<em><b>None</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>None</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @see #NONE
+ * @model name="none"
+ * @generated
+ * @ordered
+ */
+ public static final int NONE_VALUE = 0;
+
+ /**
+ * The '<em><b>All</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>All</b></em>' literal object isn't clear, there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @see #ALL
+ * @model name="all"
+ * @generated
+ * @ordered
+ */
+ public static final int ALL_VALUE = 1;
+
+ /**
+ * An array of all the '<em><b>Inheritance Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private static final InheritanceKind[] VALUES_ARRAY = new InheritanceKind[]{ NONE, ALL, };
+
+ /**
+ * A public read-only list of all the '<em><b>Inheritance Kind</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static final List<InheritanceKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Inheritance Kind</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static InheritanceKind get(String literal) {
+ for(int i = 0; i < VALUES_ARRAY.length; ++i) {
+ InheritanceKind result = VALUES_ARRAY[i];
+ if(result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Inheritance Kind</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static InheritanceKind getByName(String name) {
+ for(int i = 0; i < VALUES_ARRAY.length; ++i) {
+ InheritanceKind result = VALUES_ARRAY[i];
+ if(result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Inheritance Kind</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static InheritanceKind get(int value) {
+ switch(value) {
+ case NONE_VALUE:
+ return NONE;
+ case ALL_VALUE:
+ return ALL;
+ }
+ 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 InheritanceKind(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ 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;
+ }
+
+} //InheritanceKind
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/AdviceBindingImpl.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/AdviceBindingImpl.java
new file mode 100644
index 00000000000..08c344c4367
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/AdviceBindingImpl.java
@@ -0,0 +1,419 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.domaincontextcodegen.AdviceBinding;
+import org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage;
+import org.eclipse.papyrus.domaincontextcodegen.ElementType;
+import org.eclipse.papyrus.domaincontextcodegen.InheritanceKind;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Advice Binding</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.AdviceBindingImpl#getAdvicePath <em>Advice Path</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.AdviceBindingImpl#getAdviceID <em>Advice ID</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.AdviceBindingImpl#getInheritance <em>Inheritance</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.AdviceBindingImpl#getElementTypeRef <em>Element Type Ref</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.AdviceBindingImpl#getElementTypeIDref <em>Element Type IDref</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AdviceBindingImpl extends EObjectImpl implements AdviceBinding {
+
+ /**
+ * The default value of the '{@link #getAdvicePath() <em>Advice Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getAdvicePath()
+ * @generated
+ * @ordered
+ */
+ protected static final String ADVICE_PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAdvicePath() <em>Advice Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getAdvicePath()
+ * @generated
+ * @ordered
+ */
+ protected String advicePath = ADVICE_PATH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getAdviceID() <em>Advice ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getAdviceID()
+ * @generated
+ * @ordered
+ */
+ protected static final String ADVICE_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAdviceID() <em>Advice ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getAdviceID()
+ * @generated
+ * @ordered
+ */
+ protected String adviceID = ADVICE_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getInheritance() <em>Inheritance</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getInheritance()
+ * @generated
+ * @ordered
+ */
+ protected static final InheritanceKind INHERITANCE_EDEFAULT = InheritanceKind.NONE;
+
+ /**
+ * The cached value of the '{@link #getInheritance() <em>Inheritance</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getInheritance()
+ * @generated
+ * @ordered
+ */
+ protected InheritanceKind inheritance = INHERITANCE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getElementTypeRef() <em>Element Type Ref</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementTypeRef()
+ * @generated
+ * @ordered
+ */
+ protected ElementType elementTypeRef;
+
+ /**
+ * The default value of the '{@link #getElementTypeIDref() <em>Element Type IDref</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementTypeIDref()
+ * @generated
+ * @ordered
+ */
+ protected static final String ELEMENT_TYPE_IDREF_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getElementTypeIDref() <em>Element Type IDref</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementTypeIDref()
+ * @generated
+ * @ordered
+ */
+ protected String elementTypeIDref = ELEMENT_TYPE_IDREF_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected AdviceBindingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return DomaincontextcodegenPackage.Literals.ADVICE_BINDING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getAdvicePath() {
+ return advicePath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setAdvicePath(String newAdvicePath) {
+ String oldAdvicePath = advicePath;
+ advicePath = newAdvicePath;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.ADVICE_BINDING__ADVICE_PATH, oldAdvicePath, advicePath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getAdviceID() {
+ return adviceID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setAdviceID(String newAdviceID) {
+ String oldAdviceID = adviceID;
+ adviceID = newAdviceID;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.ADVICE_BINDING__ADVICE_ID, oldAdviceID, adviceID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public InheritanceKind getInheritance() {
+ return inheritance;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setInheritance(InheritanceKind newInheritance) {
+ InheritanceKind oldInheritance = inheritance;
+ inheritance = newInheritance == null ? INHERITANCE_EDEFAULT : newInheritance;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.ADVICE_BINDING__INHERITANCE, oldInheritance, inheritance));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ElementType getElementTypeRef() {
+ if(elementTypeRef != null && elementTypeRef.eIsProxy()) {
+ InternalEObject oldElementTypeRef = (InternalEObject)elementTypeRef;
+ elementTypeRef = (ElementType)eResolveProxy(oldElementTypeRef);
+ if(elementTypeRef != oldElementTypeRef) {
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DomaincontextcodegenPackage.ADVICE_BINDING__ELEMENT_TYPE_REF, oldElementTypeRef, elementTypeRef));
+ }
+ }
+ return elementTypeRef;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ElementType basicGetElementTypeRef() {
+ return elementTypeRef;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setElementTypeRef(ElementType newElementTypeRef) {
+ ElementType oldElementTypeRef = elementTypeRef;
+ elementTypeRef = newElementTypeRef;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.ADVICE_BINDING__ELEMENT_TYPE_REF, oldElementTypeRef, elementTypeRef));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getElementTypeIDref() {
+ return elementTypeIDref;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setElementTypeIDref(String newElementTypeIDref) {
+ String oldElementTypeIDref = elementTypeIDref;
+ elementTypeIDref = newElementTypeIDref;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.ADVICE_BINDING__ELEMENT_TYPE_IDREF, oldElementTypeIDref, elementTypeIDref));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.ADVICE_BINDING__ADVICE_PATH:
+ return getAdvicePath();
+ case DomaincontextcodegenPackage.ADVICE_BINDING__ADVICE_ID:
+ return getAdviceID();
+ case DomaincontextcodegenPackage.ADVICE_BINDING__INHERITANCE:
+ return getInheritance();
+ case DomaincontextcodegenPackage.ADVICE_BINDING__ELEMENT_TYPE_REF:
+ if(resolve)
+ return getElementTypeRef();
+ return basicGetElementTypeRef();
+ case DomaincontextcodegenPackage.ADVICE_BINDING__ELEMENT_TYPE_IDREF:
+ return getElementTypeIDref();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.ADVICE_BINDING__ADVICE_PATH:
+ setAdvicePath((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.ADVICE_BINDING__ADVICE_ID:
+ setAdviceID((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.ADVICE_BINDING__INHERITANCE:
+ setInheritance((InheritanceKind)newValue);
+ return;
+ case DomaincontextcodegenPackage.ADVICE_BINDING__ELEMENT_TYPE_REF:
+ setElementTypeRef((ElementType)newValue);
+ return;
+ case DomaincontextcodegenPackage.ADVICE_BINDING__ELEMENT_TYPE_IDREF:
+ setElementTypeIDref((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.ADVICE_BINDING__ADVICE_PATH:
+ setAdvicePath(ADVICE_PATH_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.ADVICE_BINDING__ADVICE_ID:
+ setAdviceID(ADVICE_ID_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.ADVICE_BINDING__INHERITANCE:
+ setInheritance(INHERITANCE_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.ADVICE_BINDING__ELEMENT_TYPE_REF:
+ setElementTypeRef((ElementType)null);
+ return;
+ case DomaincontextcodegenPackage.ADVICE_BINDING__ELEMENT_TYPE_IDREF:
+ setElementTypeIDref(ELEMENT_TYPE_IDREF_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.ADVICE_BINDING__ADVICE_PATH:
+ return ADVICE_PATH_EDEFAULT == null ? advicePath != null : !ADVICE_PATH_EDEFAULT.equals(advicePath);
+ case DomaincontextcodegenPackage.ADVICE_BINDING__ADVICE_ID:
+ return ADVICE_ID_EDEFAULT == null ? adviceID != null : !ADVICE_ID_EDEFAULT.equals(adviceID);
+ case DomaincontextcodegenPackage.ADVICE_BINDING__INHERITANCE:
+ return inheritance != INHERITANCE_EDEFAULT;
+ case DomaincontextcodegenPackage.ADVICE_BINDING__ELEMENT_TYPE_REF:
+ return elementTypeRef != null;
+ case DomaincontextcodegenPackage.ADVICE_BINDING__ELEMENT_TYPE_IDREF:
+ return ELEMENT_TYPE_IDREF_EDEFAULT == null ? elementTypeIDref != null : !ELEMENT_TYPE_IDREF_EDEFAULT.equals(elementTypeIDref);
+ }
+ 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(" (advicePath: ");
+ result.append(advicePath);
+ result.append(", adviceID: ");
+ result.append(adviceID);
+ result.append(", inheritance: ");
+ result.append(inheritance);
+ result.append(", elementTypeIDref: ");
+ result.append(elementTypeIDref);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AdviceBindingImpl
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/BindingImpl.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/BindingImpl.java
new file mode 100644
index 00000000000..c359f226f6d
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/BindingImpl.java
@@ -0,0 +1,302 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.domaincontextcodegen.AdviceBinding;
+import org.eclipse.papyrus.domaincontextcodegen.Binding;
+import org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Binding</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.BindingImpl#getAdvice <em>Advice</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.BindingImpl#getElementTypePattern <em>Element Type Pattern</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.BindingImpl#getAdviceID <em>Advice ID</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BindingImpl extends EObjectImpl implements Binding {
+
+ /**
+ * The cached value of the '{@link #getAdvice() <em>Advice</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getAdvice()
+ * @generated
+ * @ordered
+ */
+ protected AdviceBinding advice;
+
+ /**
+ * The default value of the '{@link #getElementTypePattern() <em>Element Type Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementTypePattern()
+ * @generated
+ * @ordered
+ */
+ protected static final String ELEMENT_TYPE_PATTERN_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getElementTypePattern() <em>Element Type Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementTypePattern()
+ * @generated
+ * @ordered
+ */
+ protected String elementTypePattern = ELEMENT_TYPE_PATTERN_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getAdviceID() <em>Advice ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getAdviceID()
+ * @generated
+ * @ordered
+ */
+ protected static final String ADVICE_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAdviceID() <em>Advice ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getAdviceID()
+ * @generated
+ * @ordered
+ */
+ protected String adviceID = ADVICE_ID_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected BindingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return DomaincontextcodegenPackage.Literals.BINDING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public AdviceBinding getAdvice() {
+ if(advice != null && advice.eIsProxy()) {
+ InternalEObject oldAdvice = (InternalEObject)advice;
+ advice = (AdviceBinding)eResolveProxy(oldAdvice);
+ if(advice != oldAdvice) {
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DomaincontextcodegenPackage.BINDING__ADVICE, oldAdvice, advice));
+ }
+ }
+ return advice;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public AdviceBinding basicGetAdvice() {
+ return advice;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setAdvice(AdviceBinding newAdvice) {
+ AdviceBinding oldAdvice = advice;
+ advice = newAdvice;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.BINDING__ADVICE, oldAdvice, advice));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getElementTypePattern() {
+ return elementTypePattern;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setElementTypePattern(String newElementTypePattern) {
+ String oldElementTypePattern = elementTypePattern;
+ elementTypePattern = newElementTypePattern;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.BINDING__ELEMENT_TYPE_PATTERN, oldElementTypePattern, elementTypePattern));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getAdviceID() {
+ return adviceID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setAdviceID(String newAdviceID) {
+ String oldAdviceID = adviceID;
+ adviceID = newAdviceID;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.BINDING__ADVICE_ID, oldAdviceID, adviceID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.BINDING__ADVICE:
+ if(resolve)
+ return getAdvice();
+ return basicGetAdvice();
+ case DomaincontextcodegenPackage.BINDING__ELEMENT_TYPE_PATTERN:
+ return getElementTypePattern();
+ case DomaincontextcodegenPackage.BINDING__ADVICE_ID:
+ return getAdviceID();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.BINDING__ADVICE:
+ setAdvice((AdviceBinding)newValue);
+ return;
+ case DomaincontextcodegenPackage.BINDING__ELEMENT_TYPE_PATTERN:
+ setElementTypePattern((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.BINDING__ADVICE_ID:
+ setAdviceID((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.BINDING__ADVICE:
+ setAdvice((AdviceBinding)null);
+ return;
+ case DomaincontextcodegenPackage.BINDING__ELEMENT_TYPE_PATTERN:
+ setElementTypePattern(ELEMENT_TYPE_PATTERN_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.BINDING__ADVICE_ID:
+ setAdviceID(ADVICE_ID_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.BINDING__ADVICE:
+ return advice != null;
+ case DomaincontextcodegenPackage.BINDING__ELEMENT_TYPE_PATTERN:
+ return ELEMENT_TYPE_PATTERN_EDEFAULT == null ? elementTypePattern != null : !ELEMENT_TYPE_PATTERN_EDEFAULT.equals(elementTypePattern);
+ case DomaincontextcodegenPackage.BINDING__ADVICE_ID:
+ return ADVICE_ID_EDEFAULT == null ? adviceID != null : !ADVICE_ID_EDEFAULT.equals(adviceID);
+ }
+ 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(" (elementTypePattern: ");
+ result.append(elementTypePattern);
+ result.append(", adviceID: ");
+ result.append(adviceID);
+ result.append(')');
+ return result.toString();
+ }
+
+} //BindingImpl
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/DomainContextImpl.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/DomainContextImpl.java
new file mode 100644
index 00000000000..1b4484b475c
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/DomainContextImpl.java
@@ -0,0 +1,961 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.papyrus.domaincontextcodegen.AdviceBinding;
+import org.eclipse.papyrus.domaincontextcodegen.Binding;
+import org.eclipse.papyrus.domaincontextcodegen.DomainContext;
+import org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage;
+import org.eclipse.papyrus.domaincontextcodegen.ElementTypes;
+import org.eclipse.papyrus.domaincontextcodegen.GenHandlers;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Domain Context</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl#getTypeProjectName <em>Type Project Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl#getHandlerProjectName <em>Handler Project Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl#getIClientContextID <em>IClient Context ID</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl#getMetamodel <em>Metamodel</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl#getSpecializationOf <em>Specialization Of</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl#getElementTypeIDPrefix <em>Element Type ID Prefix</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl#getElementTypeNamePrefix <em>Element Type Name Prefix</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl#getMatcherPatch <em>Matcher Patch</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl#getElementTypes <em>Element Types</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl#getDefaultHelperPath <em>Default Helper Path</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl#getAdvicebindings <em>Advicebindings</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl#getBindings <em>Bindings</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl#getGenHandlers <em>Gen Handlers</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.DomainContextImpl#getGeneratedSourceFolder <em>Generated Source Folder</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DomainContextImpl extends EObjectImpl implements DomainContext {
+
+ /**
+ * The default value of the '{@link #getTypeProjectName() <em>Type Project Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getTypeProjectName()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_PROJECT_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTypeProjectName() <em>Type Project Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getTypeProjectName()
+ * @generated
+ * @ordered
+ */
+ protected String typeProjectName = TYPE_PROJECT_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getHandlerProjectName() <em>Handler Project Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getHandlerProjectName()
+ * @generated
+ * @ordered
+ */
+ protected static final String HANDLER_PROJECT_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getHandlerProjectName() <em>Handler Project Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getHandlerProjectName()
+ * @generated
+ * @ordered
+ */
+ protected String handlerProjectName = HANDLER_PROJECT_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIClientContextID() <em>IClient Context ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getIClientContextID()
+ * @generated
+ * @ordered
+ */
+ protected static final String ICLIENT_CONTEXT_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getIClientContextID() <em>IClient Context ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getIClientContextID()
+ * @generated
+ * @ordered
+ */
+ protected String iClientContextID = ICLIENT_CONTEXT_ID_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getMetamodel() <em>Metamodel</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getMetamodel()
+ * @generated
+ * @ordered
+ */
+ protected EPackage metamodel;
+
+ /**
+ * The cached value of the '{@link #getSpecializationOf() <em>Specialization Of</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSpecializationOf()
+ * @generated
+ * @ordered
+ */
+ protected DomainContext specializationOf;
+
+ /**
+ * The default value of the '{@link #getElementTypeIDPrefix() <em>Element Type ID Prefix</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementTypeIDPrefix()
+ * @generated
+ * @ordered
+ */
+ protected static final String ELEMENT_TYPE_ID_PREFIX_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getElementTypeIDPrefix() <em>Element Type ID Prefix</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementTypeIDPrefix()
+ * @generated
+ * @ordered
+ */
+ protected String elementTypeIDPrefix = ELEMENT_TYPE_ID_PREFIX_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getElementTypeNamePrefix() <em>Element Type Name Prefix</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementTypeNamePrefix()
+ * @generated
+ * @ordered
+ */
+ protected static final String ELEMENT_TYPE_NAME_PREFIX_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getElementTypeNamePrefix() <em>Element Type Name Prefix</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementTypeNamePrefix()
+ * @generated
+ * @ordered
+ */
+ protected String elementTypeNamePrefix = ELEMENT_TYPE_NAME_PREFIX_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMatcherPatch() <em>Matcher Patch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getMatcherPatch()
+ * @generated
+ * @ordered
+ */
+ protected static final String MATCHER_PATCH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getMatcherPatch() <em>Matcher Patch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getMatcherPatch()
+ * @generated
+ * @ordered
+ */
+ protected String matcherPatch = MATCHER_PATCH_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getElementTypes() <em>Element Types</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementTypes()
+ * @generated
+ * @ordered
+ */
+ protected ElementTypes elementTypes;
+
+ /**
+ * The default value of the '{@link #getDefaultHelperPath() <em>Default Helper Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getDefaultHelperPath()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEFAULT_HELPER_PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDefaultHelperPath() <em>Default Helper Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getDefaultHelperPath()
+ * @generated
+ * @ordered
+ */
+ protected String defaultHelperPath = DEFAULT_HELPER_PATH_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getAdvicebindings() <em>Advicebindings</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getAdvicebindings()
+ * @generated
+ * @ordered
+ */
+ protected EList<AdviceBinding> advicebindings;
+
+ /**
+ * The cached value of the '{@link #getBindings() <em>Bindings</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getBindings()
+ * @generated
+ * @ordered
+ */
+ protected EList<Binding> bindings;
+
+ /**
+ * The cached value of the '{@link #getGenHandlers() <em>Gen Handlers</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getGenHandlers()
+ * @generated
+ * @ordered
+ */
+ protected GenHandlers genHandlers;
+
+ /**
+ * The default value of the '{@link #getGeneratedSourceFolder() <em>Generated Source Folder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getGeneratedSourceFolder()
+ * @generated
+ * @ordered
+ */
+ protected static final String GENERATED_SOURCE_FOLDER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getGeneratedSourceFolder() <em>Generated Source Folder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getGeneratedSourceFolder()
+ * @generated
+ * @ordered
+ */
+ protected String generatedSourceFolder = GENERATED_SOURCE_FOLDER_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected DomainContextImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return DomaincontextcodegenPackage.Literals.DOMAIN_CONTEXT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getTypeProjectName() {
+ return typeProjectName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setTypeProjectName(String newTypeProjectName) {
+ String oldTypeProjectName = typeProjectName;
+ typeProjectName = newTypeProjectName;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.DOMAIN_CONTEXT__TYPE_PROJECT_NAME, oldTypeProjectName, typeProjectName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getHandlerProjectName() {
+ return handlerProjectName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setHandlerProjectName(String newHandlerProjectName) {
+ String oldHandlerProjectName = handlerProjectName;
+ handlerProjectName = newHandlerProjectName;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.DOMAIN_CONTEXT__HANDLER_PROJECT_NAME, oldHandlerProjectName, handlerProjectName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getIClientContextID() {
+ return iClientContextID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setIClientContextID(String newIClientContextID) {
+ String oldIClientContextID = iClientContextID;
+ iClientContextID = newIClientContextID;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.DOMAIN_CONTEXT__ICLIENT_CONTEXT_ID, oldIClientContextID, iClientContextID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EPackage getMetamodel() {
+ if(metamodel != null && metamodel.eIsProxy()) {
+ InternalEObject oldMetamodel = (InternalEObject)metamodel;
+ metamodel = (EPackage)eResolveProxy(oldMetamodel);
+ if(metamodel != oldMetamodel) {
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DomaincontextcodegenPackage.DOMAIN_CONTEXT__METAMODEL, oldMetamodel, metamodel));
+ }
+ }
+ return metamodel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EPackage basicGetMetamodel() {
+ return metamodel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setMetamodel(EPackage newMetamodel) {
+ EPackage oldMetamodel = metamodel;
+ metamodel = newMetamodel;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.DOMAIN_CONTEXT__METAMODEL, oldMetamodel, metamodel));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public DomainContext getSpecializationOf() {
+ if(specializationOf != null && specializationOf.eIsProxy()) {
+ InternalEObject oldSpecializationOf = (InternalEObject)specializationOf;
+ specializationOf = (DomainContext)eResolveProxy(oldSpecializationOf);
+ if(specializationOf != oldSpecializationOf) {
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DomaincontextcodegenPackage.DOMAIN_CONTEXT__SPECIALIZATION_OF, oldSpecializationOf, specializationOf));
+ }
+ }
+ return specializationOf;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public DomainContext basicGetSpecializationOf() {
+ return specializationOf;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setSpecializationOf(DomainContext newSpecializationOf) {
+ DomainContext oldSpecializationOf = specializationOf;
+ specializationOf = newSpecializationOf;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.DOMAIN_CONTEXT__SPECIALIZATION_OF, oldSpecializationOf, specializationOf));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getElementTypeIDPrefix() {
+ return elementTypeIDPrefix;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setElementTypeIDPrefix(String newElementTypeIDPrefix) {
+ String oldElementTypeIDPrefix = elementTypeIDPrefix;
+ elementTypeIDPrefix = newElementTypeIDPrefix;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPE_ID_PREFIX, oldElementTypeIDPrefix, elementTypeIDPrefix));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getElementTypeNamePrefix() {
+ return elementTypeNamePrefix;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setElementTypeNamePrefix(String newElementTypeNamePrefix) {
+ String oldElementTypeNamePrefix = elementTypeNamePrefix;
+ elementTypeNamePrefix = newElementTypeNamePrefix;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPE_NAME_PREFIX, oldElementTypeNamePrefix, elementTypeNamePrefix));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getMatcherPatch() {
+ return matcherPatch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setMatcherPatch(String newMatcherPatch) {
+ String oldMatcherPatch = matcherPatch;
+ matcherPatch = newMatcherPatch;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.DOMAIN_CONTEXT__MATCHER_PATCH, oldMatcherPatch, matcherPatch));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ElementTypes getElementTypes() {
+ return elementTypes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetElementTypes(ElementTypes newElementTypes, NotificationChain msgs) {
+ ElementTypes oldElementTypes = elementTypes;
+ elementTypes = newElementTypes;
+ if(eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPES, oldElementTypes, newElementTypes);
+ if(msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setElementTypes(ElementTypes newElementTypes) {
+ if(newElementTypes != elementTypes) {
+ NotificationChain msgs = null;
+ if(elementTypes != null)
+ msgs = ((InternalEObject)elementTypes).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPES, null, msgs);
+ if(newElementTypes != null)
+ msgs = ((InternalEObject)newElementTypes).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPES, null, msgs);
+ msgs = basicSetElementTypes(newElementTypes, msgs);
+ if(msgs != null)
+ msgs.dispatch();
+ } else if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPES, newElementTypes, newElementTypes));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getDefaultHelperPath() {
+ return defaultHelperPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setDefaultHelperPath(String newDefaultHelperPath) {
+ String oldDefaultHelperPath = defaultHelperPath;
+ defaultHelperPath = newDefaultHelperPath;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.DOMAIN_CONTEXT__DEFAULT_HELPER_PATH, oldDefaultHelperPath, defaultHelperPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<AdviceBinding> getAdvicebindings() {
+ if(advicebindings == null) {
+ advicebindings = new EObjectContainmentEList<AdviceBinding>(AdviceBinding.class, this, DomaincontextcodegenPackage.DOMAIN_CONTEXT__ADVICEBINDINGS);
+ }
+ return advicebindings;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<Binding> getBindings() {
+ if(bindings == null) {
+ bindings = new EObjectContainmentEList<Binding>(Binding.class, this, DomaincontextcodegenPackage.DOMAIN_CONTEXT__BINDINGS);
+ }
+ return bindings;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public GenHandlers getGenHandlers() {
+ return genHandlers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public NotificationChain basicSetGenHandlers(GenHandlers newGenHandlers, NotificationChain msgs) {
+ GenHandlers oldGenHandlers = genHandlers;
+ genHandlers = newGenHandlers;
+ if(eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.DOMAIN_CONTEXT__GEN_HANDLERS, oldGenHandlers, newGenHandlers);
+ if(msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setGenHandlers(GenHandlers newGenHandlers) {
+ if(newGenHandlers != genHandlers) {
+ NotificationChain msgs = null;
+ if(genHandlers != null)
+ msgs = ((InternalEObject)genHandlers).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DomaincontextcodegenPackage.DOMAIN_CONTEXT__GEN_HANDLERS, null, msgs);
+ if(newGenHandlers != null)
+ msgs = ((InternalEObject)newGenHandlers).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DomaincontextcodegenPackage.DOMAIN_CONTEXT__GEN_HANDLERS, null, msgs);
+ msgs = basicSetGenHandlers(newGenHandlers, msgs);
+ if(msgs != null)
+ msgs.dispatch();
+ } else if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.DOMAIN_CONTEXT__GEN_HANDLERS, newGenHandlers, newGenHandlers));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getGeneratedSourceFolder() {
+ return generatedSourceFolder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setGeneratedSourceFolder(String newGeneratedSourceFolder) {
+ String oldGeneratedSourceFolder = generatedSourceFolder;
+ generatedSourceFolder = newGeneratedSourceFolder;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.DOMAIN_CONTEXT__GENERATED_SOURCE_FOLDER, oldGeneratedSourceFolder, generatedSourceFolder));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPES:
+ return basicSetElementTypes(null, msgs);
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ADVICEBINDINGS:
+ return ((InternalEList<?>)getAdvicebindings()).basicRemove(otherEnd, msgs);
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__BINDINGS:
+ return ((InternalEList<?>)getBindings()).basicRemove(otherEnd, msgs);
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__GEN_HANDLERS:
+ return basicSetGenHandlers(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__TYPE_PROJECT_NAME:
+ return getTypeProjectName();
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__HANDLER_PROJECT_NAME:
+ return getHandlerProjectName();
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ICLIENT_CONTEXT_ID:
+ return getIClientContextID();
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__METAMODEL:
+ if(resolve)
+ return getMetamodel();
+ return basicGetMetamodel();
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__SPECIALIZATION_OF:
+ if(resolve)
+ return getSpecializationOf();
+ return basicGetSpecializationOf();
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPE_ID_PREFIX:
+ return getElementTypeIDPrefix();
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPE_NAME_PREFIX:
+ return getElementTypeNamePrefix();
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__MATCHER_PATCH:
+ return getMatcherPatch();
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPES:
+ return getElementTypes();
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__DEFAULT_HELPER_PATH:
+ return getDefaultHelperPath();
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ADVICEBINDINGS:
+ return getAdvicebindings();
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__BINDINGS:
+ return getBindings();
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__GEN_HANDLERS:
+ return getGenHandlers();
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__GENERATED_SOURCE_FOLDER:
+ return getGeneratedSourceFolder();
+ }
+ 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 DomaincontextcodegenPackage.DOMAIN_CONTEXT__TYPE_PROJECT_NAME:
+ setTypeProjectName((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__HANDLER_PROJECT_NAME:
+ setHandlerProjectName((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ICLIENT_CONTEXT_ID:
+ setIClientContextID((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__METAMODEL:
+ setMetamodel((EPackage)newValue);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__SPECIALIZATION_OF:
+ setSpecializationOf((DomainContext)newValue);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPE_ID_PREFIX:
+ setElementTypeIDPrefix((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPE_NAME_PREFIX:
+ setElementTypeNamePrefix((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__MATCHER_PATCH:
+ setMatcherPatch((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPES:
+ setElementTypes((ElementTypes)newValue);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__DEFAULT_HELPER_PATH:
+ setDefaultHelperPath((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ADVICEBINDINGS:
+ getAdvicebindings().clear();
+ getAdvicebindings().addAll((Collection<? extends AdviceBinding>)newValue);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__BINDINGS:
+ getBindings().clear();
+ getBindings().addAll((Collection<? extends Binding>)newValue);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__GEN_HANDLERS:
+ setGenHandlers((GenHandlers)newValue);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__GENERATED_SOURCE_FOLDER:
+ setGeneratedSourceFolder((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__TYPE_PROJECT_NAME:
+ setTypeProjectName(TYPE_PROJECT_NAME_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__HANDLER_PROJECT_NAME:
+ setHandlerProjectName(HANDLER_PROJECT_NAME_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ICLIENT_CONTEXT_ID:
+ setIClientContextID(ICLIENT_CONTEXT_ID_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__METAMODEL:
+ setMetamodel((EPackage)null);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__SPECIALIZATION_OF:
+ setSpecializationOf((DomainContext)null);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPE_ID_PREFIX:
+ setElementTypeIDPrefix(ELEMENT_TYPE_ID_PREFIX_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPE_NAME_PREFIX:
+ setElementTypeNamePrefix(ELEMENT_TYPE_NAME_PREFIX_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__MATCHER_PATCH:
+ setMatcherPatch(MATCHER_PATCH_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPES:
+ setElementTypes((ElementTypes)null);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__DEFAULT_HELPER_PATH:
+ setDefaultHelperPath(DEFAULT_HELPER_PATH_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ADVICEBINDINGS:
+ getAdvicebindings().clear();
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__BINDINGS:
+ getBindings().clear();
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__GEN_HANDLERS:
+ setGenHandlers((GenHandlers)null);
+ return;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__GENERATED_SOURCE_FOLDER:
+ setGeneratedSourceFolder(GENERATED_SOURCE_FOLDER_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__TYPE_PROJECT_NAME:
+ return TYPE_PROJECT_NAME_EDEFAULT == null ? typeProjectName != null : !TYPE_PROJECT_NAME_EDEFAULT.equals(typeProjectName);
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__HANDLER_PROJECT_NAME:
+ return HANDLER_PROJECT_NAME_EDEFAULT == null ? handlerProjectName != null : !HANDLER_PROJECT_NAME_EDEFAULT.equals(handlerProjectName);
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ICLIENT_CONTEXT_ID:
+ return ICLIENT_CONTEXT_ID_EDEFAULT == null ? iClientContextID != null : !ICLIENT_CONTEXT_ID_EDEFAULT.equals(iClientContextID);
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__METAMODEL:
+ return metamodel != null;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__SPECIALIZATION_OF:
+ return specializationOf != null;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPE_ID_PREFIX:
+ return ELEMENT_TYPE_ID_PREFIX_EDEFAULT == null ? elementTypeIDPrefix != null : !ELEMENT_TYPE_ID_PREFIX_EDEFAULT.equals(elementTypeIDPrefix);
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPE_NAME_PREFIX:
+ return ELEMENT_TYPE_NAME_PREFIX_EDEFAULT == null ? elementTypeNamePrefix != null : !ELEMENT_TYPE_NAME_PREFIX_EDEFAULT.equals(elementTypeNamePrefix);
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__MATCHER_PATCH:
+ return MATCHER_PATCH_EDEFAULT == null ? matcherPatch != null : !MATCHER_PATCH_EDEFAULT.equals(matcherPatch);
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ELEMENT_TYPES:
+ return elementTypes != null;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__DEFAULT_HELPER_PATH:
+ return DEFAULT_HELPER_PATH_EDEFAULT == null ? defaultHelperPath != null : !DEFAULT_HELPER_PATH_EDEFAULT.equals(defaultHelperPath);
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__ADVICEBINDINGS:
+ return advicebindings != null && !advicebindings.isEmpty();
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__BINDINGS:
+ return bindings != null && !bindings.isEmpty();
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__GEN_HANDLERS:
+ return genHandlers != null;
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT__GENERATED_SOURCE_FOLDER:
+ return GENERATED_SOURCE_FOLDER_EDEFAULT == null ? generatedSourceFolder != null : !GENERATED_SOURCE_FOLDER_EDEFAULT.equals(generatedSourceFolder);
+ }
+ 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(" (typeProjectName: ");
+ result.append(typeProjectName);
+ result.append(", handlerProjectName: ");
+ result.append(handlerProjectName);
+ result.append(", IClientContextID: ");
+ result.append(iClientContextID);
+ result.append(", elementTypeIDPrefix: ");
+ result.append(elementTypeIDPrefix);
+ result.append(", elementTypeNamePrefix: ");
+ result.append(elementTypeNamePrefix);
+ result.append(", matcherPatch: ");
+ result.append(matcherPatch);
+ result.append(", defaultHelperPath: ");
+ result.append(defaultHelperPath);
+ result.append(", generatedSourceFolder: ");
+ result.append(generatedSourceFolder);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DomainContextImpl
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/DomaincontextcodegenFactoryImpl.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/DomaincontextcodegenFactoryImpl.java
new file mode 100644
index 00000000000..302940d5f26
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/DomaincontextcodegenFactoryImpl.java
@@ -0,0 +1,233 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen.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.domaincontextcodegen.AdviceBinding;
+import org.eclipse.papyrus.domaincontextcodegen.Binding;
+import org.eclipse.papyrus.domaincontextcodegen.DomainContext;
+import org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenFactory;
+import org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage;
+import org.eclipse.papyrus.domaincontextcodegen.ElementType;
+import org.eclipse.papyrus.domaincontextcodegen.ElementTypes;
+import org.eclipse.papyrus.domaincontextcodegen.GenHandlers;
+import org.eclipse.papyrus.domaincontextcodegen.InheritanceKind;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class DomaincontextcodegenFactoryImpl extends EFactoryImpl implements DomaincontextcodegenFactory {
+
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public static DomaincontextcodegenFactory init() {
+ try {
+ DomaincontextcodegenFactory theDomaincontextcodegenFactory = (DomaincontextcodegenFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/papyrus/2010/domaincontextcodegen");
+ if(theDomaincontextcodegenFactory != null) {
+ return theDomaincontextcodegenFactory;
+ }
+ } catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new DomaincontextcodegenFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public DomaincontextcodegenFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch(eClass.getClassifierID()) {
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT:
+ return createDomainContext();
+ case DomaincontextcodegenPackage.ELEMENT_TYPES:
+ return createElementTypes();
+ case DomaincontextcodegenPackage.ELEMENT_TYPE:
+ return createElementType();
+ case DomaincontextcodegenPackage.ADVICE_BINDING:
+ return createAdviceBinding();
+ case DomaincontextcodegenPackage.BINDING:
+ return createBinding();
+ case DomaincontextcodegenPackage.GEN_HANDLERS:
+ return createGenHandlers();
+ 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 DomaincontextcodegenPackage.INHERITANCE_KIND:
+ return createInheritanceKindFromString(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 DomaincontextcodegenPackage.INHERITANCE_KIND:
+ return convertInheritanceKindToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public DomainContext createDomainContext() {
+ DomainContextImpl domainContext = new DomainContextImpl();
+ return domainContext;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ElementTypes createElementTypes() {
+ ElementTypesImpl elementTypes = new ElementTypesImpl();
+ return elementTypes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ElementType createElementType() {
+ ElementTypeImpl elementType = new ElementTypeImpl();
+ return elementType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public AdviceBinding createAdviceBinding() {
+ AdviceBindingImpl adviceBinding = new AdviceBindingImpl();
+ return adviceBinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public Binding createBinding() {
+ BindingImpl binding = new BindingImpl();
+ return binding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public GenHandlers createGenHandlers() {
+ GenHandlersImpl genHandlers = new GenHandlersImpl();
+ return genHandlers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public InheritanceKind createInheritanceKindFromString(EDataType eDataType, String initialValue) {
+ InheritanceKind result = InheritanceKind.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 convertInheritanceKindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public DomaincontextcodegenPackage getDomaincontextcodegenPackage() {
+ return (DomaincontextcodegenPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static DomaincontextcodegenPackage getPackage() {
+ return DomaincontextcodegenPackage.eINSTANCE;
+ }
+
+} //DomaincontextcodegenFactoryImpl
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/DomaincontextcodegenPackageImpl.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/DomaincontextcodegenPackageImpl.java
new file mode 100644
index 00000000000..9c731fb89c8
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/DomaincontextcodegenPackageImpl.java
@@ -0,0 +1,735 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen.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.EcorePackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.papyrus.domaincontextcodegen.AdviceBinding;
+import org.eclipse.papyrus.domaincontextcodegen.Binding;
+import org.eclipse.papyrus.domaincontextcodegen.DomainContext;
+import org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenFactory;
+import org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage;
+import org.eclipse.papyrus.domaincontextcodegen.ElementType;
+import org.eclipse.papyrus.domaincontextcodegen.ElementTypes;
+import org.eclipse.papyrus.domaincontextcodegen.GenHandlers;
+import org.eclipse.papyrus.domaincontextcodegen.InheritanceKind;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class DomaincontextcodegenPackageImpl extends EPackageImpl implements DomaincontextcodegenPackage {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass domainContextEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass elementTypesEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass elementTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass adviceBindingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass bindingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass genHandlersEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EEnum inheritanceKindEEnum = 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.domaincontextcodegen.DomaincontextcodegenPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private DomaincontextcodegenPackageImpl() {
+ super(eNS_URI, DomaincontextcodegenFactory.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 DomaincontextcodegenPackage#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 DomaincontextcodegenPackage init() {
+ if(isInited)
+ return (DomaincontextcodegenPackage)EPackage.Registry.INSTANCE.getEPackage(DomaincontextcodegenPackage.eNS_URI);
+
+ // Obtain or create and register package
+ DomaincontextcodegenPackageImpl theDomaincontextcodegenPackage = (DomaincontextcodegenPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof DomaincontextcodegenPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new DomaincontextcodegenPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theDomaincontextcodegenPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theDomaincontextcodegenPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theDomaincontextcodegenPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(DomaincontextcodegenPackage.eNS_URI, theDomaincontextcodegenPackage);
+ return theDomaincontextcodegenPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getDomainContext() {
+ return domainContextEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getDomainContext_TypeProjectName() {
+ return (EAttribute)domainContextEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getDomainContext_HandlerProjectName() {
+ return (EAttribute)domainContextEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getDomainContext_IClientContextID() {
+ return (EAttribute)domainContextEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getDomainContext_Metamodel() {
+ return (EReference)domainContextEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getDomainContext_SpecializationOf() {
+ return (EReference)domainContextEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getDomainContext_ElementTypeIDPrefix() {
+ return (EAttribute)domainContextEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getDomainContext_ElementTypeNamePrefix() {
+ return (EAttribute)domainContextEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getDomainContext_MatcherPatch() {
+ return (EAttribute)domainContextEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getDomainContext_ElementTypes() {
+ return (EReference)domainContextEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getDomainContext_DefaultHelperPath() {
+ return (EAttribute)domainContextEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getDomainContext_Advicebindings() {
+ return (EReference)domainContextEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getDomainContext_Bindings() {
+ return (EReference)domainContextEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getDomainContext_GenHandlers() {
+ return (EReference)domainContextEClass.getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getDomainContext_GeneratedSourceFolder() {
+ return (EAttribute)domainContextEClass.getEStructuralFeatures().get(13);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getElementTypes() {
+ return elementTypesEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getElementTypes_Types() {
+ return (EReference)elementTypesEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getElementType() {
+ return elementTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getElementType_MetaClass() {
+ return (EReference)elementTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getElementType_SpecificName() {
+ return (EAttribute)elementTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getElementType_Edithelper_EditHelperAdvicePath() {
+ return (EAttribute)elementTypeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getElementType_Kind() {
+ return (EAttribute)elementTypeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getElementType_Specializationof() {
+ return (EReference)elementTypeEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getElementType_SpecializationIDof() {
+ return (EAttribute)elementTypeEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getAdviceBinding() {
+ return adviceBindingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getAdviceBinding_AdvicePath() {
+ return (EAttribute)adviceBindingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getAdviceBinding_AdviceID() {
+ return (EAttribute)adviceBindingEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getAdviceBinding_Inheritance() {
+ return (EAttribute)adviceBindingEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getAdviceBinding_ElementTypeRef() {
+ return (EReference)adviceBindingEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getAdviceBinding_ElementTypeIDref() {
+ return (EAttribute)adviceBindingEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getBinding() {
+ return bindingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EReference getBinding_Advice() {
+ return (EReference)bindingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getBinding_ElementTypePattern() {
+ return (EAttribute)bindingEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getBinding_AdviceID() {
+ return (EAttribute)bindingEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getGenHandlers() {
+ return genHandlersEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getGenHandlers_HandlerPackage() {
+ return (EAttribute)genHandlersEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getGenHandlers_SuperClass() {
+ return (EAttribute)genHandlersEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getGenHandlers_SuperClassPackage() {
+ return (EAttribute)genHandlersEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getGenHandlers_ElementTypeEnumerator() {
+ return (EAttribute)genHandlersEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EAttribute getGenHandlers_ElementTypeEnumeratorPackage() {
+ return (EAttribute)genHandlersEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EEnum getInheritanceKind() {
+ return inheritanceKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public DomaincontextcodegenFactory getDomaincontextcodegenFactory() {
+ return (DomaincontextcodegenFactory)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
+ domainContextEClass = createEClass(DOMAIN_CONTEXT);
+ createEAttribute(domainContextEClass, DOMAIN_CONTEXT__TYPE_PROJECT_NAME);
+ createEAttribute(domainContextEClass, DOMAIN_CONTEXT__HANDLER_PROJECT_NAME);
+ createEAttribute(domainContextEClass, DOMAIN_CONTEXT__ICLIENT_CONTEXT_ID);
+ createEReference(domainContextEClass, DOMAIN_CONTEXT__METAMODEL);
+ createEReference(domainContextEClass, DOMAIN_CONTEXT__SPECIALIZATION_OF);
+ createEAttribute(domainContextEClass, DOMAIN_CONTEXT__ELEMENT_TYPE_ID_PREFIX);
+ createEAttribute(domainContextEClass, DOMAIN_CONTEXT__ELEMENT_TYPE_NAME_PREFIX);
+ createEAttribute(domainContextEClass, DOMAIN_CONTEXT__MATCHER_PATCH);
+ createEReference(domainContextEClass, DOMAIN_CONTEXT__ELEMENT_TYPES);
+ createEAttribute(domainContextEClass, DOMAIN_CONTEXT__DEFAULT_HELPER_PATH);
+ createEReference(domainContextEClass, DOMAIN_CONTEXT__ADVICEBINDINGS);
+ createEReference(domainContextEClass, DOMAIN_CONTEXT__BINDINGS);
+ createEReference(domainContextEClass, DOMAIN_CONTEXT__GEN_HANDLERS);
+ createEAttribute(domainContextEClass, DOMAIN_CONTEXT__GENERATED_SOURCE_FOLDER);
+
+ elementTypesEClass = createEClass(ELEMENT_TYPES);
+ createEReference(elementTypesEClass, ELEMENT_TYPES__TYPES);
+
+ elementTypeEClass = createEClass(ELEMENT_TYPE);
+ createEReference(elementTypeEClass, ELEMENT_TYPE__META_CLASS);
+ createEAttribute(elementTypeEClass, ELEMENT_TYPE__SPECIFIC_NAME);
+ createEAttribute(elementTypeEClass, ELEMENT_TYPE__EDITHELPER_EDIT_HELPER_ADVICE_PATH);
+ createEAttribute(elementTypeEClass, ELEMENT_TYPE__KIND);
+ createEReference(elementTypeEClass, ELEMENT_TYPE__SPECIALIZATIONOF);
+ createEAttribute(elementTypeEClass, ELEMENT_TYPE__SPECIALIZATION_IDOF);
+
+ adviceBindingEClass = createEClass(ADVICE_BINDING);
+ createEAttribute(adviceBindingEClass, ADVICE_BINDING__ADVICE_PATH);
+ createEAttribute(adviceBindingEClass, ADVICE_BINDING__ADVICE_ID);
+ createEAttribute(adviceBindingEClass, ADVICE_BINDING__INHERITANCE);
+ createEReference(adviceBindingEClass, ADVICE_BINDING__ELEMENT_TYPE_REF);
+ createEAttribute(adviceBindingEClass, ADVICE_BINDING__ELEMENT_TYPE_IDREF);
+
+ bindingEClass = createEClass(BINDING);
+ createEReference(bindingEClass, BINDING__ADVICE);
+ createEAttribute(bindingEClass, BINDING__ELEMENT_TYPE_PATTERN);
+ createEAttribute(bindingEClass, BINDING__ADVICE_ID);
+
+ genHandlersEClass = createEClass(GEN_HANDLERS);
+ createEAttribute(genHandlersEClass, GEN_HANDLERS__HANDLER_PACKAGE);
+ createEAttribute(genHandlersEClass, GEN_HANDLERS__SUPER_CLASS);
+ createEAttribute(genHandlersEClass, GEN_HANDLERS__SUPER_CLASS_PACKAGE);
+ createEAttribute(genHandlersEClass, GEN_HANDLERS__ELEMENT_TYPE_ENUMERATOR);
+ createEAttribute(genHandlersEClass, GEN_HANDLERS__ELEMENT_TYPE_ENUMERATOR_PACKAGE);
+
+ // Create enums
+ inheritanceKindEEnum = createEEnum(INHERITANCE_KIND);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void initializePackageContents() {
+ if(isInitialized)
+ return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(domainContextEClass, DomainContext.class, "DomainContext", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDomainContext_TypeProjectName(), ecorePackage.getEString(), "typeProjectName", null, 1, 1, DomainContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDomainContext_HandlerProjectName(), ecorePackage.getEString(), "handlerProjectName", null, 1, 1, DomainContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDomainContext_IClientContextID(), ecorePackage.getEString(), "IClientContextID", null, 0, 1, DomainContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDomainContext_Metamodel(), ecorePackage.getEPackage(), null, "metamodel", null, 1, 1, DomainContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDomainContext_SpecializationOf(), this.getDomainContext(), null, "specializationOf", null, 0, 1, DomainContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDomainContext_ElementTypeIDPrefix(), ecorePackage.getEString(), "elementTypeIDPrefix", null, 1, 1, DomainContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDomainContext_ElementTypeNamePrefix(), ecorePackage.getEString(), "elementTypeNamePrefix", null, 1, 1, DomainContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDomainContext_MatcherPatch(), ecorePackage.getEString(), "matcherPatch", null, 1, 1, DomainContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDomainContext_ElementTypes(), this.getElementTypes(), null, "elementTypes", null, 0, 1, DomainContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDomainContext_DefaultHelperPath(), ecorePackage.getEString(), "defaultHelperPath", null, 1, 1, DomainContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDomainContext_Advicebindings(), this.getAdviceBinding(), null, "advicebindings", null, 0, -1, DomainContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDomainContext_Bindings(), this.getBinding(), null, "bindings", null, 0, -1, DomainContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getDomainContext_GenHandlers(), this.getGenHandlers(), null, "genHandlers", null, 0, 1, DomainContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getDomainContext_GeneratedSourceFolder(), ecorePackage.getEString(), "generatedSourceFolder", null, 1, 1, DomainContext.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(elementTypesEClass, ElementTypes.class, "ElementTypes", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getElementTypes_Types(), this.getElementType(), null, "types", null, 0, -1, ElementTypes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(elementTypeEClass, ElementType.class, "ElementType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getElementType_MetaClass(), ecorePackage.getEClass(), null, "metaClass", null, 1, 1, ElementType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getElementType_SpecificName(), ecorePackage.getEString(), "specificName", null, 0, 1, ElementType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getElementType_Edithelper_EditHelperAdvicePath(), ecorePackage.getEString(), "edithelper_EditHelperAdvicePath", null, 0, 1, ElementType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getElementType_Kind(), ecorePackage.getEString(), "kind", null, 0, 1, ElementType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getElementType_Specializationof(), this.getElementType(), null, "specializationof", null, 0, 1, ElementType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getElementType_SpecializationIDof(), ecorePackage.getEString(), "specializationIDof", null, 0, 1, ElementType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(adviceBindingEClass, AdviceBinding.class, "AdviceBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAdviceBinding_AdvicePath(), ecorePackage.getEString(), "advicePath", null, 0, 1, AdviceBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAdviceBinding_AdviceID(), ecorePackage.getEString(), "adviceID", null, 0, 1, AdviceBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAdviceBinding_Inheritance(), this.getInheritanceKind(), "inheritance", null, 0, 1, AdviceBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAdviceBinding_ElementTypeRef(), this.getElementType(), null, "elementTypeRef", null, 0, 1, AdviceBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAdviceBinding_ElementTypeIDref(), ecorePackage.getEString(), "elementTypeIDref", null, 0, 1, AdviceBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(bindingEClass, Binding.class, "Binding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getBinding_Advice(), this.getAdviceBinding(), null, "advice", null, 0, 1, Binding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getBinding_ElementTypePattern(), ecorePackage.getEString(), "elementTypePattern", null, 0, 1, Binding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getBinding_AdviceID(), ecorePackage.getEString(), "adviceID", null, 0, 1, Binding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(genHandlersEClass, GenHandlers.class, "GenHandlers", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getGenHandlers_HandlerPackage(), ecorePackage.getEString(), "handlerPackage", null, 0, 1, GenHandlers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getGenHandlers_SuperClass(), ecorePackage.getEString(), "superClass", null, 0, 1, GenHandlers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getGenHandlers_SuperClassPackage(), ecorePackage.getEString(), "superClassPackage", null, 0, 1, GenHandlers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getGenHandlers_ElementTypeEnumerator(), ecorePackage.getEString(), "elementTypeEnumerator", null, 0, 1, GenHandlers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getGenHandlers_ElementTypeEnumeratorPackage(), ecorePackage.getEString(), "elementTypeEnumeratorPackage", null, 0, 1, GenHandlers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(inheritanceKindEEnum, InheritanceKind.class, "InheritanceKind");
+ addEEnumLiteral(inheritanceKindEEnum, InheritanceKind.NONE);
+ addEEnumLiteral(inheritanceKindEEnum, InheritanceKind.ALL);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //DomaincontextcodegenPackageImpl
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/ElementTypeImpl.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/ElementTypeImpl.java
new file mode 100644
index 00000000000..5d4d4b71181
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/ElementTypeImpl.java
@@ -0,0 +1,483 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage;
+import org.eclipse.papyrus.domaincontextcodegen.ElementType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Element Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.ElementTypeImpl#getMetaClass <em>Meta Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.ElementTypeImpl#getSpecificName <em>Specific Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.ElementTypeImpl#getEdithelper_EditHelperAdvicePath <em>Edithelper Edit Helper Advice Path
+ * </em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.ElementTypeImpl#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.ElementTypeImpl#getSpecializationof <em>Specializationof</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.ElementTypeImpl#getSpecializationIDof <em>Specialization IDof</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ElementTypeImpl extends EObjectImpl implements ElementType {
+
+ /**
+ * The cached value of the '{@link #getMetaClass() <em>Meta Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getMetaClass()
+ * @generated
+ * @ordered
+ */
+ protected EClass metaClass;
+
+ /**
+ * The default value of the '{@link #getSpecificName() <em>Specific Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSpecificName()
+ * @generated
+ * @ordered
+ */
+ protected static final String SPECIFIC_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSpecificName() <em>Specific Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSpecificName()
+ * @generated
+ * @ordered
+ */
+ protected String specificName = SPECIFIC_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getEdithelper_EditHelperAdvicePath() <em>Edithelper Edit Helper Advice Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getEdithelper_EditHelperAdvicePath()
+ * @generated
+ * @ordered
+ */
+ protected static final String EDITHELPER_EDIT_HELPER_ADVICE_PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getEdithelper_EditHelperAdvicePath() <em>Edithelper Edit Helper Advice Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getEdithelper_EditHelperAdvicePath()
+ * @generated
+ * @ordered
+ */
+ protected String edithelper_EditHelperAdvicePath = EDITHELPER_EDIT_HELPER_ADVICE_PATH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected static final String KIND_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected String kind = KIND_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSpecializationof() <em>Specializationof</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSpecializationof()
+ * @generated
+ * @ordered
+ */
+ protected ElementType specializationof;
+
+ /**
+ * The default value of the '{@link #getSpecializationIDof() <em>Specialization IDof</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSpecializationIDof()
+ * @generated
+ * @ordered
+ */
+ protected static final String SPECIALIZATION_IDOF_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSpecializationIDof() <em>Specialization IDof</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSpecializationIDof()
+ * @generated
+ * @ordered
+ */
+ protected String specializationIDof = SPECIALIZATION_IDOF_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ElementTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return DomaincontextcodegenPackage.Literals.ELEMENT_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass getMetaClass() {
+ if(metaClass != null && metaClass.eIsProxy()) {
+ InternalEObject oldMetaClass = (InternalEObject)metaClass;
+ metaClass = (EClass)eResolveProxy(oldMetaClass);
+ if(metaClass != oldMetaClass) {
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DomaincontextcodegenPackage.ELEMENT_TYPE__META_CLASS, oldMetaClass, metaClass));
+ }
+ }
+ return metaClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EClass basicGetMetaClass() {
+ return metaClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setMetaClass(EClass newMetaClass) {
+ EClass oldMetaClass = metaClass;
+ metaClass = newMetaClass;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.ELEMENT_TYPE__META_CLASS, oldMetaClass, metaClass));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getSpecificName() {
+ return specificName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setSpecificName(String newSpecificName) {
+ String oldSpecificName = specificName;
+ specificName = newSpecificName;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.ELEMENT_TYPE__SPECIFIC_NAME, oldSpecificName, specificName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getEdithelper_EditHelperAdvicePath() {
+ return edithelper_EditHelperAdvicePath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setEdithelper_EditHelperAdvicePath(String newEdithelper_EditHelperAdvicePath) {
+ String oldEdithelper_EditHelperAdvicePath = edithelper_EditHelperAdvicePath;
+ edithelper_EditHelperAdvicePath = newEdithelper_EditHelperAdvicePath;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.ELEMENT_TYPE__EDITHELPER_EDIT_HELPER_ADVICE_PATH, oldEdithelper_EditHelperAdvicePath, edithelper_EditHelperAdvicePath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getKind() {
+ return kind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setKind(String newKind) {
+ String oldKind = kind;
+ kind = newKind;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.ELEMENT_TYPE__KIND, oldKind, kind));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ElementType getSpecializationof() {
+ if(specializationof != null && specializationof.eIsProxy()) {
+ InternalEObject oldSpecializationof = (InternalEObject)specializationof;
+ specializationof = (ElementType)eResolveProxy(oldSpecializationof);
+ if(specializationof != oldSpecializationof) {
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DomaincontextcodegenPackage.ELEMENT_TYPE__SPECIALIZATIONOF, oldSpecializationof, specializationof));
+ }
+ }
+ return specializationof;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public ElementType basicGetSpecializationof() {
+ return specializationof;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setSpecializationof(ElementType newSpecializationof) {
+ ElementType oldSpecializationof = specializationof;
+ specializationof = newSpecializationof;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.ELEMENT_TYPE__SPECIALIZATIONOF, oldSpecializationof, specializationof));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getSpecializationIDof() {
+ return specializationIDof;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setSpecializationIDof(String newSpecializationIDof) {
+ String oldSpecializationIDof = specializationIDof;
+ specializationIDof = newSpecializationIDof;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.ELEMENT_TYPE__SPECIALIZATION_IDOF, oldSpecializationIDof, specializationIDof));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__META_CLASS:
+ if(resolve)
+ return getMetaClass();
+ return basicGetMetaClass();
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__SPECIFIC_NAME:
+ return getSpecificName();
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__EDITHELPER_EDIT_HELPER_ADVICE_PATH:
+ return getEdithelper_EditHelperAdvicePath();
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__KIND:
+ return getKind();
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__SPECIALIZATIONOF:
+ if(resolve)
+ return getSpecializationof();
+ return basicGetSpecializationof();
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__SPECIALIZATION_IDOF:
+ return getSpecializationIDof();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__META_CLASS:
+ setMetaClass((EClass)newValue);
+ return;
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__SPECIFIC_NAME:
+ setSpecificName((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__EDITHELPER_EDIT_HELPER_ADVICE_PATH:
+ setEdithelper_EditHelperAdvicePath((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__KIND:
+ setKind((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__SPECIALIZATIONOF:
+ setSpecializationof((ElementType)newValue);
+ return;
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__SPECIALIZATION_IDOF:
+ setSpecializationIDof((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__META_CLASS:
+ setMetaClass((EClass)null);
+ return;
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__SPECIFIC_NAME:
+ setSpecificName(SPECIFIC_NAME_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__EDITHELPER_EDIT_HELPER_ADVICE_PATH:
+ setEdithelper_EditHelperAdvicePath(EDITHELPER_EDIT_HELPER_ADVICE_PATH_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__KIND:
+ setKind(KIND_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__SPECIALIZATIONOF:
+ setSpecializationof((ElementType)null);
+ return;
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__SPECIALIZATION_IDOF:
+ setSpecializationIDof(SPECIALIZATION_IDOF_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__META_CLASS:
+ return metaClass != null;
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__SPECIFIC_NAME:
+ return SPECIFIC_NAME_EDEFAULT == null ? specificName != null : !SPECIFIC_NAME_EDEFAULT.equals(specificName);
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__EDITHELPER_EDIT_HELPER_ADVICE_PATH:
+ return EDITHELPER_EDIT_HELPER_ADVICE_PATH_EDEFAULT == null ? edithelper_EditHelperAdvicePath != null : !EDITHELPER_EDIT_HELPER_ADVICE_PATH_EDEFAULT.equals(edithelper_EditHelperAdvicePath);
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__KIND:
+ return KIND_EDEFAULT == null ? kind != null : !KIND_EDEFAULT.equals(kind);
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__SPECIALIZATIONOF:
+ return specializationof != null;
+ case DomaincontextcodegenPackage.ELEMENT_TYPE__SPECIALIZATION_IDOF:
+ return SPECIALIZATION_IDOF_EDEFAULT == null ? specializationIDof != null : !SPECIALIZATION_IDOF_EDEFAULT.equals(specializationIDof);
+ }
+ 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(" (specificName: ");
+ result.append(specificName);
+ result.append(", edithelper_EditHelperAdvicePath: ");
+ result.append(edithelper_EditHelperAdvicePath);
+ result.append(", kind: ");
+ result.append(kind);
+ result.append(", specializationIDof: ");
+ result.append(specializationIDof);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ElementTypeImpl
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/ElementTypesImpl.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/ElementTypesImpl.java
new file mode 100644
index 00000000000..bc4a3ce3772
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/ElementTypesImpl.java
@@ -0,0 +1,161 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage;
+import org.eclipse.papyrus.domaincontextcodegen.ElementType;
+import org.eclipse.papyrus.domaincontextcodegen.ElementTypes;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Element Types</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.ElementTypesImpl#getTypes <em>Types</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ElementTypesImpl extends EObjectImpl implements ElementTypes {
+
+ /**
+ * The cached value of the '{@link #getTypes() <em>Types</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getTypes()
+ * @generated
+ * @ordered
+ */
+ protected EList<ElementType> types;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected ElementTypesImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return DomaincontextcodegenPackage.Literals.ELEMENT_TYPES;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EList<ElementType> getTypes() {
+ if(types == null) {
+ types = new EObjectContainmentEList<ElementType>(ElementType.class, this, DomaincontextcodegenPackage.ELEMENT_TYPES__TYPES);
+ }
+ return types;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.ELEMENT_TYPES__TYPES:
+ return ((InternalEList<?>)getTypes()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.ELEMENT_TYPES__TYPES:
+ return getTypes();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.ELEMENT_TYPES__TYPES:
+ getTypes().clear();
+ getTypes().addAll((Collection<? extends ElementType>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.ELEMENT_TYPES__TYPES:
+ getTypes().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.ELEMENT_TYPES__TYPES:
+ return types != null && !types.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ElementTypesImpl
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/GenHandlersImpl.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/GenHandlersImpl.java
new file mode 100644
index 00000000000..8b0d6ed1be3
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/impl/GenHandlersImpl.java
@@ -0,0 +1,409 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen.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.domaincontextcodegen.DomaincontextcodegenPackage;
+import org.eclipse.papyrus.domaincontextcodegen.GenHandlers;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gen Handlers</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.GenHandlersImpl#getHandlerPackage <em>Handler Package</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.GenHandlersImpl#getSuperClass <em>Super Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.GenHandlersImpl#getSuperClassPackage <em>Super Class Package</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.GenHandlersImpl#getElementTypeEnumerator <em>Element Type Enumerator</em>}</li>
+ * <li>{@link org.eclipse.papyrus.domaincontextcodegen.impl.GenHandlersImpl#getElementTypeEnumeratorPackage <em>Element Type Enumerator Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GenHandlersImpl extends EObjectImpl implements GenHandlers {
+
+ /**
+ * The default value of the '{@link #getHandlerPackage() <em>Handler Package</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getHandlerPackage()
+ * @generated
+ * @ordered
+ */
+ protected static final String HANDLER_PACKAGE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getHandlerPackage() <em>Handler Package</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getHandlerPackage()
+ * @generated
+ * @ordered
+ */
+ protected String handlerPackage = HANDLER_PACKAGE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSuperClass() <em>Super Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSuperClass()
+ * @generated
+ * @ordered
+ */
+ protected static final String SUPER_CLASS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSuperClass() <em>Super Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSuperClass()
+ * @generated
+ * @ordered
+ */
+ protected String superClass = SUPER_CLASS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSuperClassPackage() <em>Super Class Package</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSuperClassPackage()
+ * @generated
+ * @ordered
+ */
+ protected static final String SUPER_CLASS_PACKAGE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSuperClassPackage() <em>Super Class Package</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getSuperClassPackage()
+ * @generated
+ * @ordered
+ */
+ protected String superClassPackage = SUPER_CLASS_PACKAGE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getElementTypeEnumerator() <em>Element Type Enumerator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementTypeEnumerator()
+ * @generated
+ * @ordered
+ */
+ protected static final String ELEMENT_TYPE_ENUMERATOR_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getElementTypeEnumerator() <em>Element Type Enumerator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementTypeEnumerator()
+ * @generated
+ * @ordered
+ */
+ protected String elementTypeEnumerator = ELEMENT_TYPE_ENUMERATOR_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getElementTypeEnumeratorPackage() <em>Element Type Enumerator Package</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementTypeEnumeratorPackage()
+ * @generated
+ * @ordered
+ */
+ protected static final String ELEMENT_TYPE_ENUMERATOR_PACKAGE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getElementTypeEnumeratorPackage() <em>Element Type Enumerator Package</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementTypeEnumeratorPackage()
+ * @generated
+ * @ordered
+ */
+ protected String elementTypeEnumeratorPackage = ELEMENT_TYPE_ENUMERATOR_PACKAGE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected GenHandlersImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return DomaincontextcodegenPackage.Literals.GEN_HANDLERS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getHandlerPackage() {
+ return handlerPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setHandlerPackage(String newHandlerPackage) {
+ String oldHandlerPackage = handlerPackage;
+ handlerPackage = newHandlerPackage;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.GEN_HANDLERS__HANDLER_PACKAGE, oldHandlerPackage, handlerPackage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getSuperClass() {
+ return superClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setSuperClass(String newSuperClass) {
+ String oldSuperClass = superClass;
+ superClass = newSuperClass;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.GEN_HANDLERS__SUPER_CLASS, oldSuperClass, superClass));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getSuperClassPackage() {
+ return superClassPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setSuperClassPackage(String newSuperClassPackage) {
+ String oldSuperClassPackage = superClassPackage;
+ superClassPackage = newSuperClassPackage;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.GEN_HANDLERS__SUPER_CLASS_PACKAGE, oldSuperClassPackage, superClassPackage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getElementTypeEnumerator() {
+ return elementTypeEnumerator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setElementTypeEnumerator(String newElementTypeEnumerator) {
+ String oldElementTypeEnumerator = elementTypeEnumerator;
+ elementTypeEnumerator = newElementTypeEnumerator;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.GEN_HANDLERS__ELEMENT_TYPE_ENUMERATOR, oldElementTypeEnumerator, elementTypeEnumerator));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public String getElementTypeEnumeratorPackage() {
+ return elementTypeEnumeratorPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public void setElementTypeEnumeratorPackage(String newElementTypeEnumeratorPackage) {
+ String oldElementTypeEnumeratorPackage = elementTypeEnumeratorPackage;
+ elementTypeEnumeratorPackage = newElementTypeEnumeratorPackage;
+ if(eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DomaincontextcodegenPackage.GEN_HANDLERS__ELEMENT_TYPE_ENUMERATOR_PACKAGE, oldElementTypeEnumeratorPackage, elementTypeEnumeratorPackage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.GEN_HANDLERS__HANDLER_PACKAGE:
+ return getHandlerPackage();
+ case DomaincontextcodegenPackage.GEN_HANDLERS__SUPER_CLASS:
+ return getSuperClass();
+ case DomaincontextcodegenPackage.GEN_HANDLERS__SUPER_CLASS_PACKAGE:
+ return getSuperClassPackage();
+ case DomaincontextcodegenPackage.GEN_HANDLERS__ELEMENT_TYPE_ENUMERATOR:
+ return getElementTypeEnumerator();
+ case DomaincontextcodegenPackage.GEN_HANDLERS__ELEMENT_TYPE_ENUMERATOR_PACKAGE:
+ return getElementTypeEnumeratorPackage();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.GEN_HANDLERS__HANDLER_PACKAGE:
+ setHandlerPackage((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.GEN_HANDLERS__SUPER_CLASS:
+ setSuperClass((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.GEN_HANDLERS__SUPER_CLASS_PACKAGE:
+ setSuperClassPackage((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.GEN_HANDLERS__ELEMENT_TYPE_ENUMERATOR:
+ setElementTypeEnumerator((String)newValue);
+ return;
+ case DomaincontextcodegenPackage.GEN_HANDLERS__ELEMENT_TYPE_ENUMERATOR_PACKAGE:
+ setElementTypeEnumeratorPackage((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.GEN_HANDLERS__HANDLER_PACKAGE:
+ setHandlerPackage(HANDLER_PACKAGE_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.GEN_HANDLERS__SUPER_CLASS:
+ setSuperClass(SUPER_CLASS_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.GEN_HANDLERS__SUPER_CLASS_PACKAGE:
+ setSuperClassPackage(SUPER_CLASS_PACKAGE_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.GEN_HANDLERS__ELEMENT_TYPE_ENUMERATOR:
+ setElementTypeEnumerator(ELEMENT_TYPE_ENUMERATOR_EDEFAULT);
+ return;
+ case DomaincontextcodegenPackage.GEN_HANDLERS__ELEMENT_TYPE_ENUMERATOR_PACKAGE:
+ setElementTypeEnumeratorPackage(ELEMENT_TYPE_ENUMERATOR_PACKAGE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch(featureID) {
+ case DomaincontextcodegenPackage.GEN_HANDLERS__HANDLER_PACKAGE:
+ return HANDLER_PACKAGE_EDEFAULT == null ? handlerPackage != null : !HANDLER_PACKAGE_EDEFAULT.equals(handlerPackage);
+ case DomaincontextcodegenPackage.GEN_HANDLERS__SUPER_CLASS:
+ return SUPER_CLASS_EDEFAULT == null ? superClass != null : !SUPER_CLASS_EDEFAULT.equals(superClass);
+ case DomaincontextcodegenPackage.GEN_HANDLERS__SUPER_CLASS_PACKAGE:
+ return SUPER_CLASS_PACKAGE_EDEFAULT == null ? superClassPackage != null : !SUPER_CLASS_PACKAGE_EDEFAULT.equals(superClassPackage);
+ case DomaincontextcodegenPackage.GEN_HANDLERS__ELEMENT_TYPE_ENUMERATOR:
+ return ELEMENT_TYPE_ENUMERATOR_EDEFAULT == null ? elementTypeEnumerator != null : !ELEMENT_TYPE_ENUMERATOR_EDEFAULT.equals(elementTypeEnumerator);
+ case DomaincontextcodegenPackage.GEN_HANDLERS__ELEMENT_TYPE_ENUMERATOR_PACKAGE:
+ return ELEMENT_TYPE_ENUMERATOR_PACKAGE_EDEFAULT == null ? elementTypeEnumeratorPackage != null : !ELEMENT_TYPE_ENUMERATOR_PACKAGE_EDEFAULT.equals(elementTypeEnumeratorPackage);
+ }
+ 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(" (handlerPackage: ");
+ result.append(handlerPackage);
+ result.append(", superClass: ");
+ result.append(superClass);
+ result.append(", superClassPackage: ");
+ result.append(superClassPackage);
+ result.append(", elementTypeEnumerator: ");
+ result.append(elementTypeEnumerator);
+ result.append(", elementTypeEnumeratorPackage: ");
+ result.append(elementTypeEnumeratorPackage);
+ result.append(')');
+ return result.toString();
+ }
+
+} //GenHandlersImpl
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/util/DomaincontextcodegenAdapterFactory.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/util/DomaincontextcodegenAdapterFactory.java
new file mode 100644
index 00000000000..5a28d76365a
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/util/DomaincontextcodegenAdapterFactory.java
@@ -0,0 +1,238 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen.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.domaincontextcodegen.AdviceBinding;
+import org.eclipse.papyrus.domaincontextcodegen.Binding;
+import org.eclipse.papyrus.domaincontextcodegen.DomainContext;
+import org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage;
+import org.eclipse.papyrus.domaincontextcodegen.ElementType;
+import org.eclipse.papyrus.domaincontextcodegen.ElementTypes;
+import org.eclipse.papyrus.domaincontextcodegen.GenHandlers;
+
+/**
+ * <!-- 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.domaincontextcodegen.DomaincontextcodegenPackage
+ * @generated
+ */
+public class DomaincontextcodegenAdapterFactory extends AdapterFactoryImpl {
+
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static DomaincontextcodegenPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public DomaincontextcodegenAdapterFactory() {
+ if(modelPackage == null) {
+ modelPackage = DomaincontextcodegenPackage.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 DomaincontextcodegenSwitch<Adapter> modelSwitch = new DomaincontextcodegenSwitch<Adapter>() {
+
+ @Override
+ public Adapter caseDomainContext(DomainContext object) {
+ return createDomainContextAdapter();
+ }
+
+ @Override
+ public Adapter caseElementTypes(ElementTypes object) {
+ return createElementTypesAdapter();
+ }
+
+ @Override
+ public Adapter caseElementType(ElementType object) {
+ return createElementTypeAdapter();
+ }
+
+ @Override
+ public Adapter caseAdviceBinding(AdviceBinding object) {
+ return createAdviceBindingAdapter();
+ }
+
+ @Override
+ public Adapter caseBinding(Binding object) {
+ return createBindingAdapter();
+ }
+
+ @Override
+ public Adapter caseGenHandlers(GenHandlers object) {
+ return createGenHandlersAdapter();
+ }
+
+ @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.domaincontextcodegen.DomainContext <em>Domain Context</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.domaincontextcodegen.DomainContext
+ * @generated
+ */
+ public Adapter createDomainContextAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.domaincontextcodegen.ElementTypes <em>Element Types</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.domaincontextcodegen.ElementTypes
+ * @generated
+ */
+ public Adapter createElementTypesAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.domaincontextcodegen.ElementType <em>Element 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.domaincontextcodegen.ElementType
+ * @generated
+ */
+ public Adapter createElementTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.domaincontextcodegen.AdviceBinding <em>Advice 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.domaincontextcodegen.AdviceBinding
+ * @generated
+ */
+ public Adapter createAdviceBindingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.domaincontextcodegen.Binding <em>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.domaincontextcodegen.Binding
+ * @generated
+ */
+ public Adapter createBindingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.domaincontextcodegen.GenHandlers <em>Gen Handlers</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.domaincontextcodegen.GenHandlers
+ * @generated
+ */
+ public Adapter createGenHandlersAdapter() {
+ 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;
+ }
+
+} //DomaincontextcodegenAdapterFactory
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/util/DomaincontextcodegenSwitch.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/util/DomaincontextcodegenSwitch.java
new file mode 100644
index 00000000000..7343b9ed0ac
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/src/org/eclipse/papyrus/domaincontextcodegen/util/DomaincontextcodegenSwitch.java
@@ -0,0 +1,269 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.domaincontextcodegen.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.domaincontextcodegen.AdviceBinding;
+import org.eclipse.papyrus.domaincontextcodegen.Binding;
+import org.eclipse.papyrus.domaincontextcodegen.DomainContext;
+import org.eclipse.papyrus.domaincontextcodegen.DomaincontextcodegenPackage;
+import org.eclipse.papyrus.domaincontextcodegen.ElementType;
+import org.eclipse.papyrus.domaincontextcodegen.ElementTypes;
+import org.eclipse.papyrus.domaincontextcodegen.GenHandlers;
+
+/**
+ * <!-- 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.domaincontextcodegen.DomaincontextcodegenPackage
+ * @generated
+ */
+public class DomaincontextcodegenSwitch<T> {
+
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected static DomaincontextcodegenPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public DomaincontextcodegenSwitch() {
+ if(modelPackage == null) {
+ modelPackage = DomaincontextcodegenPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * 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
+ */
+ public T doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * 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
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject) {
+ if(theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ } else {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return eSuperTypes.isEmpty() ? defaultCase(theEObject) : doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * 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
+ */
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch(classifierID) {
+ case DomaincontextcodegenPackage.DOMAIN_CONTEXT:
+ {
+ DomainContext domainContext = (DomainContext)theEObject;
+ T result = caseDomainContext(domainContext);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case DomaincontextcodegenPackage.ELEMENT_TYPES:
+ {
+ ElementTypes elementTypes = (ElementTypes)theEObject;
+ T result = caseElementTypes(elementTypes);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case DomaincontextcodegenPackage.ELEMENT_TYPE:
+ {
+ ElementType elementType = (ElementType)theEObject;
+ T result = caseElementType(elementType);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case DomaincontextcodegenPackage.ADVICE_BINDING:
+ {
+ AdviceBinding adviceBinding = (AdviceBinding)theEObject;
+ T result = caseAdviceBinding(adviceBinding);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case DomaincontextcodegenPackage.BINDING:
+ {
+ Binding binding = (Binding)theEObject;
+ T result = caseBinding(binding);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case DomaincontextcodegenPackage.GEN_HANDLERS:
+ {
+ GenHandlers genHandlers = (GenHandlers)theEObject;
+ T result = caseGenHandlers(genHandlers);
+ if(result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ default:
+ return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Domain Context</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>Domain Context</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDomainContext(DomainContext object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Element Types</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>Element Types</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseElementTypes(ElementTypes object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Element 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>Element Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseElementType(ElementType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Advice 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>Advice Binding</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAdviceBinding(AdviceBinding object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>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>Binding</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBinding(Binding object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Gen Handlers</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 Handlers</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGenHandlers(GenHandlers 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
+ */
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //DomaincontextcodegenSwitch
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateElementTypeClass.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateElementTypeClass.java
new file mode 100644
index 00000000000..0717170a46e
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateElementTypeClass.java
@@ -0,0 +1,265 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2010 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.domaincontextcodegen;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.acceleo.engine.event.IAcceleoTextGenerationListener;
+import org.eclipse.acceleo.engine.generation.strategy.IAcceleoGenerationStrategy;
+import org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator;
+import org.eclipse.emf.common.util.BasicMonitor;
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+/**
+ * Entry point of the 'GenerateElementTypeClass' generation module.
+ *
+ * @generated
+ */
+public class GenerateElementTypeClass extends AbstractAcceleoGenerator {
+
+ /**
+ * The name of the module.
+ *
+ * @generated
+ */
+ public static final String MODULE_FILE_NAME = "generateElementTypeClass";
+
+ /**
+ * The name of the templates that are to be generated.
+ *
+ * @generated
+ */
+ public static final String[] TEMPLATE_NAMES = { "generateElementTypeClass", };
+
+ /**
+ * Allows the public constructor to be used. Note that a generator created
+ * this way cannot be used to launch generations before one of {@link #initialize(EObject, File, List)} or {@link #initialize(URI, File, List)} is
+ * called.
+ * <p>
+ * The main reason for this constructor is to allow clients of this generation to call it from another Java file, as it allows for the retrieval
+ * of {@link #getProperties()} and {@link #getGenerationListeners()}.
+ * </p>
+ *
+ * @generated
+ */
+ public GenerateElementTypeClass() {
+ // Empty implementation
+ }
+
+ /**
+ * This allows clients to instantiates a generator with all required information.
+ *
+ * @param modelURI
+ * URI where the model on which this generator will be used is located.
+ * @param targetFolder
+ * This will be used as the output folder for this generation : it will be the base path
+ * against which all file block URLs will be resolved.
+ * @param arguments
+ * If the template which will be called requires more than one argument taken from the model,
+ * pass them here.
+ * @throws IOException
+ * This can be thrown in three scenarios : the module cannot be found, it cannot be loaded, or
+ * the model cannot be loaded.
+ * @generated
+ */
+ public GenerateElementTypeClass(URI modelURI, File targetFolder, List<? extends Object> arguments) throws IOException {
+ initialize(modelURI, targetFolder, arguments);
+ }
+
+ /**
+ * This allows clients to instantiates a generator with all required information.
+ *
+ * @param model
+ * We'll iterate over the content of this element to find Objects matching the first parameter
+ * of the template we need to call.
+ * @param targetFolder
+ * This will be used as the output folder for this generation : it will be the base path
+ * against which all file block URLs will be resolved.
+ * @param arguments
+ * If the template which will be called requires more than one argument taken from the model,
+ * pass them here.
+ * @throws IOException
+ * This can be thrown in two scenarios : the module cannot be found, or it cannot be loaded.
+ * @generated
+ */
+ public GenerateElementTypeClass(EObject model, File targetFolder, List<? extends Object> arguments) throws IOException {
+ initialize(model, targetFolder, arguments);
+ }
+
+ /**
+ * This can be used to launch the generation from a standalone application.
+ *
+ * @param args
+ * Arguments of the generation.
+ * @generated
+ */
+ public static void main(String[] args) {
+ try {
+ if(args.length < 2) {
+ System.out.println("Arguments not valid : {model, folder}.");
+ } else {
+ URI modelURI = URI.createFileURI(args[0]);
+ File folder = new File(args[1]);
+ List<String> arguments = new ArrayList<String>();
+ for(int i = 2; i < args.length; i++) {
+ arguments.add(args[i]);
+ }
+ GenerateElementTypeClass generator = new GenerateElementTypeClass(modelURI, folder, arguments);
+ generator.doGenerate(new BasicMonitor());
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Launches the generation described by this instance.
+ *
+ * @param monitor
+ * This will be used to display progress information to the user.
+ * @throws IOException
+ * This will be thrown if any of the output files cannot be saved to disk.
+ * @generated
+ */
+ @Override
+ public void doGenerate(Monitor monitor) throws IOException {
+ /*
+ * TODO if you wish to change the generation as a whole, override this.
+ * The default behavior should be sufficient in most cases.
+ */
+ super.doGenerate(monitor);
+ }
+
+ /**
+ * If this generator needs to listen to text generation events, listeners can be returned from here.
+ *
+ * @return List of listeners that are to be notified when text is generated through this launch.
+ * @generated
+ */
+ @Override
+ public List<IAcceleoTextGenerationListener> getGenerationListeners() {
+ List<IAcceleoTextGenerationListener> listeners = super.getGenerationListeners();
+ // TODO if you need to listen to generation event, add listeners to the list here
+ return listeners;
+ }
+
+ /**
+ * If you need to change the way files are generated, this is your entry point.
+ * <p>
+ * The default is {@link org.eclipse.acceleo.engine.generation.strategy.DefaultStrategy}; it generates files on the fly. If you only need to
+ * preview the results, return a new {@link org.eclipse.acceleo.engine.generation.strategy.PreviewStrategy}. Both of these aren't aware of the
+ * running Eclipse and can be used standalone.
+ * </p>
+ * <p>
+ * If you need the file generation to be aware of the workspace (A typical example is when you wanna override files that are under clear case or
+ * any other VCS that could forbid the overriding), then return a new
+ * {@link org.eclipse.acceleo.engine.generation.strategy.WorkspaceAwareStrategy}. <b>Note</b>, however, that this <b>cannot</b> be used
+ * standalone.
+ * </p>
+ * <p>
+ * All three of these default strategies support merging through JMerge.
+ * </p>
+ *
+ * @return The generation strategy that is to be used for generations launched through this launcher.
+ * @generated
+ */
+ public IAcceleoGenerationStrategy getGenerationStrategy() {
+ return super.getGenerationStrategy();
+ }
+
+ /**
+ * This will be called in order to find and load the module that will be launched through this launcher.
+ * We expect this name not to contain file extension, and the module to be located beside the launcher.
+ *
+ * @return The name of the module that is to be launched.
+ * @generated
+ */
+ @Override
+ public String getModuleName() {
+ return MODULE_FILE_NAME;
+ }
+
+ /**
+ * If the module(s) called by this launcher require properties files, return their qualified path from
+ * here.Take note that the first added properties files will take precedence over subsequent ones if they
+ * contain conflicting keys.
+ * <p>
+ * Properties need to be in source folders, the path that we expect to get as a result of this call are of the form &lt;package>.&lt;properties
+ * file name without extension>. For example, if you have a file named "messages.properties" in package "org.eclipse.acceleo.sample", the path
+ * that needs be returned by a call to {@link #getProperties()} is "org.eclipse.acceleo.sample.messages".
+ * </p>
+ *
+ * @return The list of properties file we need to add to the generation context.
+ * @see java.util.ResourceBundle#getBundle(String)
+ * @generated
+ */
+ @Override
+ public List<String> getProperties() {
+ List<String> propertiesFiles = super.getProperties();
+ /*
+ * TODO if your generation module requires access to properties files,
+ * add their qualified path to the list here. Properties files are
+ * expected to be in source folders, and the path here to be the
+ * qualified path as if referring to a Java class. For example, if you
+ * have a file named "messages.properties" in package
+ * "org.eclipse.acceleo.sample", the path that needs be added to this
+ * list is "org.eclipse.acceleo.sample.messages".
+ */
+ return propertiesFiles;
+ }
+
+ /**
+ * This will be used to get the list of templates that are to be launched by this launcher.
+ *
+ * @return The list of templates to call on the module {@link #getModuleName()}.
+ * @generated
+ */
+ @Override
+ public String[] getTemplateNames() {
+ return TEMPLATE_NAMES;
+ }
+
+ /**
+ * This can be used to update the resource set's package registry with all needed EPackages.
+ *
+ * @param resourceSet
+ * The resource set which registry has to be updated.
+ * @generated
+ */
+ @Override
+ public void registerPackages(ResourceSet resourceSet) {
+ super.registerPackages(resourceSet);
+ resourceSet.getPackageRegistry().put(org.eclipse.emf.ecore.EcorePackage.eINSTANCE.getNsURI(), org.eclipse.emf.ecore.EcorePackage.eINSTANCE);
+ // TODO If you need additional package registrations, do them here. The following line is an example for UML.
+ // resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
+ }
+
+ /**
+ * This can be used to update the resource set's resource factory registry with all needed factories.
+ *
+ * @param resourceSet
+ * The resource set which registry has to be updated.
+ * @generated
+ */
+ @Override
+ public void registerResourceFactories(ResourceSet resourceSet) {
+ super.registerResourceFactories(resourceSet);
+ // TODO If you need additional resource factories registrations, do them here. The following line is an example for UML.
+ // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
+ }
+
+}
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateHandlers.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateHandlers.java
new file mode 100644
index 00000000000..dba8a6d772f
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateHandlers.java
@@ -0,0 +1,265 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2010 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.domaincontextcodegen;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.acceleo.engine.event.IAcceleoTextGenerationListener;
+import org.eclipse.acceleo.engine.generation.strategy.IAcceleoGenerationStrategy;
+import org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator;
+import org.eclipse.emf.common.util.BasicMonitor;
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+/**
+ * Entry point of the 'Generate' generation module.
+ *
+ * @generated
+ */
+public class GenerateHandlers extends AbstractAcceleoGenerator {
+
+ /**
+ * The name of the module.
+ *
+ * @generated
+ */
+ public static final String MODULE_FILE_NAME = "generateHandlers";
+
+ /**
+ * The name of the templates that are to be generated.
+ *
+ * @generated
+ */
+ public static final String[] TEMPLATE_NAMES = { "generateHandlers", };
+
+ /**
+ * Allows the public constructor to be used. Note that a generator created
+ * this way cannot be used to launch generations before one of {@link #initialize(EObject, File, List)} or {@link #initialize(URI, File, List)} is
+ * called.
+ * <p>
+ * The main reason for this constructor is to allow clients of this generation to call it from another Java file, as it allows for the retrieval
+ * of {@link #getProperties()} and {@link #getGenerationListeners()}.
+ * </p>
+ *
+ * @generated
+ */
+ public GenerateHandlers() {
+ // Empty implementation
+ }
+
+ /**
+ * This allows clients to instantiates a generator with all required information.
+ *
+ * @param modelURI
+ * URI where the model on which this generator will be used is located.
+ * @param targetFolder
+ * This will be used as the output folder for this generation : it will be the base path
+ * against which all file block URLs will be resolved.
+ * @param arguments
+ * If the template which will be called requires more than one argument taken from the model,
+ * pass them here.
+ * @throws IOException
+ * This can be thrown in three scenarios : the module cannot be found, it cannot be loaded, or
+ * the model cannot be loaded.
+ * @generated
+ */
+ public GenerateHandlers(URI modelURI, File targetFolder, List<? extends Object> arguments) throws IOException {
+ initialize(modelURI, targetFolder, arguments);
+ }
+
+ /**
+ * This allows clients to instantiates a generator with all required information.
+ *
+ * @param model
+ * We'll iterate over the content of this element to find Objects matching the first parameter
+ * of the template we need to call.
+ * @param targetFolder
+ * This will be used as the output folder for this generation : it will be the base path
+ * against which all file block URLs will be resolved.
+ * @param arguments
+ * If the template which will be called requires more than one argument taken from the model,
+ * pass them here.
+ * @throws IOException
+ * This can be thrown in two scenarios : the module cannot be found, or it cannot be loaded.
+ * @generated
+ */
+ public GenerateHandlers(EObject model, File targetFolder, List<? extends Object> arguments) throws IOException {
+ initialize(model, targetFolder, arguments);
+ }
+
+ /**
+ * This can be used to launch the generation from a standalone application.
+ *
+ * @param args
+ * Arguments of the generation.
+ * @generated
+ */
+ public static void main(String[] args) {
+ try {
+ if(args.length < 2) {
+ System.out.println("Arguments not valid : {model, folder}.");
+ } else {
+ URI modelURI = URI.createFileURI(args[0]);
+ File folder = new File(args[1]);
+ List<String> arguments = new ArrayList<String>();
+ for(int i = 2; i < args.length; i++) {
+ arguments.add(args[i]);
+ }
+ GenerateHandlers generator = new GenerateHandlers(modelURI, folder, arguments);
+ generator.doGenerate(new BasicMonitor());
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Launches the generation described by this instance.
+ *
+ * @param monitor
+ * This will be used to display progress information to the user.
+ * @throws IOException
+ * This will be thrown if any of the output files cannot be saved to disk.
+ * @generated
+ */
+ @Override
+ public void doGenerate(Monitor monitor) throws IOException {
+ /*
+ * TODO if you wish to change the generation as a whole, override this.
+ * The default behavior should be sufficient in most cases.
+ */
+ super.doGenerate(monitor);
+ }
+
+ /**
+ * If this generator needs to listen to text generation events, listeners can be returned from here.
+ *
+ * @return List of listeners that are to be notified when text is generated through this launch.
+ * @generated
+ */
+ @Override
+ public List<IAcceleoTextGenerationListener> getGenerationListeners() {
+ List<IAcceleoTextGenerationListener> listeners = super.getGenerationListeners();
+ // TODO if you need to listen to generation event, add listeners to the list here
+ return listeners;
+ }
+
+ /**
+ * If you need to change the way files are generated, this is your entry point.
+ * <p>
+ * The default is {@link org.eclipse.acceleo.engine.generation.strategy.DefaultStrategy}; it generates files on the fly. If you only need to
+ * preview the results, return a new {@link org.eclipse.acceleo.engine.generation.strategy.PreviewStrategy}. Both of these aren't aware of the
+ * running Eclipse and can be used standalone.
+ * </p>
+ * <p>
+ * If you need the file generation to be aware of the workspace (A typical example is when you wanna override files that are under clear case or
+ * any other VCS that could forbid the overriding), then return a new
+ * {@link org.eclipse.acceleo.engine.generation.strategy.WorkspaceAwareStrategy}. <b>Note</b>, however, that this <b>cannot</b> be used
+ * standalone.
+ * </p>
+ * <p>
+ * All three of these default strategies support merging through JMerge.
+ * </p>
+ *
+ * @return The generation strategy that is to be used for generations launched through this launcher.
+ * @generated
+ */
+ public IAcceleoGenerationStrategy getGenerationStrategy() {
+ return super.getGenerationStrategy();
+ }
+
+ /**
+ * This will be called in order to find and load the module that will be launched through this launcher.
+ * We expect this name not to contain file extension, and the module to be located beside the launcher.
+ *
+ * @return The name of the module that is to be launched.
+ * @generated
+ */
+ @Override
+ public String getModuleName() {
+ return MODULE_FILE_NAME;
+ }
+
+ /**
+ * If the module(s) called by this launcher require properties files, return their qualified path from
+ * here.Take note that the first added properties files will take precedence over subsequent ones if they
+ * contain conflicting keys.
+ * <p>
+ * Properties need to be in source folders, the path that we expect to get as a result of this call are of the form &lt;package>.&lt;properties
+ * file name without extension>. For example, if you have a file named "messages.properties" in package "org.eclipse.acceleo.sample", the path
+ * that needs be returned by a call to {@link #getProperties()} is "org.eclipse.acceleo.sample.messages".
+ * </p>
+ *
+ * @return The list of properties file we need to add to the generation context.
+ * @see java.util.ResourceBundle#getBundle(String)
+ * @generated
+ */
+ @Override
+ public List<String> getProperties() {
+ List<String> propertiesFiles = super.getProperties();
+ /*
+ * TODO if your generation module requires access to properties files,
+ * add their qualified path to the list here. Properties files are
+ * expected to be in source folders, and the path here to be the
+ * qualified path as if referring to a Java class. For example, if you
+ * have a file named "messages.properties" in package
+ * "org.eclipse.acceleo.sample", the path that needs be added to this
+ * list is "org.eclipse.acceleo.sample.messages".
+ */
+ return propertiesFiles;
+ }
+
+ /**
+ * This will be used to get the list of templates that are to be launched by this launcher.
+ *
+ * @return The list of templates to call on the module {@link #getModuleName()}.
+ * @generated
+ */
+ @Override
+ public String[] getTemplateNames() {
+ return TEMPLATE_NAMES;
+ }
+
+ /**
+ * This can be used to update the resource set's package registry with all needed EPackages.
+ *
+ * @param resourceSet
+ * The resource set which registry has to be updated.
+ * @generated
+ */
+ @Override
+ public void registerPackages(ResourceSet resourceSet) {
+ super.registerPackages(resourceSet);
+ resourceSet.getPackageRegistry().put(org.eclipse.emf.ecore.EcorePackage.eINSTANCE.getNsURI(), org.eclipse.emf.ecore.EcorePackage.eINSTANCE);
+ // TODO If you need additional package registrations, do them here. The following line is an example for UML.
+ // resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
+ }
+
+ /**
+ * This can be used to update the resource set's resource factory registry with all needed factories.
+ *
+ * @param resourceSet
+ * The resource set which registry has to be updated.
+ * @generated
+ */
+ @Override
+ public void registerResourceFactories(ResourceSet resourceSet) {
+ super.registerResourceFactories(resourceSet);
+ // TODO If you need additional resource factories registrations, do them here. The following line is an example for UML.
+ // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
+ }
+
+}
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateTypes.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateTypes.java
new file mode 100644
index 00000000000..96436444537
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateTypes.java
@@ -0,0 +1,265 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2010 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.domaincontextcodegen;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.acceleo.engine.event.IAcceleoTextGenerationListener;
+import org.eclipse.acceleo.engine.generation.strategy.IAcceleoGenerationStrategy;
+import org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator;
+import org.eclipse.emf.common.util.BasicMonitor;
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+/**
+ * Entry point of the 'Generate' generation module.
+ *
+ * @generated
+ */
+public class GenerateTypes extends AbstractAcceleoGenerator {
+
+ /**
+ * The name of the module.
+ *
+ * @generated
+ */
+ public static final String MODULE_FILE_NAME = "generateTypes";
+
+ /**
+ * The name of the templates that are to be generated.
+ *
+ * @generated
+ */
+ public static final String[] TEMPLATE_NAMES = { "generate", };
+
+ /**
+ * Allows the public constructor to be used. Note that a generator created
+ * this way cannot be used to launch generations before one of {@link #initialize(EObject, File, List)} or {@link #initialize(URI, File, List)} is
+ * called.
+ * <p>
+ * The main reason for this constructor is to allow clients of this generation to call it from another Java file, as it allows for the retrieval
+ * of {@link #getProperties()} and {@link #getGenerationListeners()}.
+ * </p>
+ *
+ * @generated
+ */
+ public GenerateTypes() {
+ // Empty implementation
+ }
+
+ /**
+ * This allows clients to instantiates a generator with all required information.
+ *
+ * @param modelURI
+ * URI where the model on which this generator will be used is located.
+ * @param targetFolder
+ * This will be used as the output folder for this generation : it will be the base path
+ * against which all file block URLs will be resolved.
+ * @param arguments
+ * If the template which will be called requires more than one argument taken from the model,
+ * pass them here.
+ * @throws IOException
+ * This can be thrown in three scenarios : the module cannot be found, it cannot be loaded, or
+ * the model cannot be loaded.
+ * @generated
+ */
+ public GenerateTypes(URI modelURI, File targetFolder, List<? extends Object> arguments) throws IOException {
+ initialize(modelURI, targetFolder, arguments);
+ }
+
+ /**
+ * This allows clients to instantiates a generator with all required information.
+ *
+ * @param model
+ * We'll iterate over the content of this element to find Objects matching the first parameter
+ * of the template we need to call.
+ * @param targetFolder
+ * This will be used as the output folder for this generation : it will be the base path
+ * against which all file block URLs will be resolved.
+ * @param arguments
+ * If the template which will be called requires more than one argument taken from the model,
+ * pass them here.
+ * @throws IOException
+ * This can be thrown in two scenarios : the module cannot be found, or it cannot be loaded.
+ * @generated
+ */
+ public GenerateTypes(EObject model, File targetFolder, List<? extends Object> arguments) throws IOException {
+ initialize(model, targetFolder, arguments);
+ }
+
+ /**
+ * This can be used to launch the generation from a standalone application.
+ *
+ * @param args
+ * Arguments of the generation.
+ * @generated
+ */
+ public static void main(String[] args) {
+ try {
+ if(args.length < 2) {
+ System.out.println("Arguments not valid : {model, folder}.");
+ } else {
+ URI modelURI = URI.createFileURI(args[0]);
+ File folder = new File(args[1]);
+ List<String> arguments = new ArrayList<String>();
+ for(int i = 2; i < args.length; i++) {
+ arguments.add(args[i]);
+ }
+ GenerateTypes generator = new GenerateTypes(modelURI, folder, arguments);
+ generator.doGenerate(new BasicMonitor());
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Launches the generation described by this instance.
+ *
+ * @param monitor
+ * This will be used to display progress information to the user.
+ * @throws IOException
+ * This will be thrown if any of the output files cannot be saved to disk.
+ * @generated
+ */
+ @Override
+ public void doGenerate(Monitor monitor) throws IOException {
+ /*
+ * TODO if you wish to change the generation as a whole, override this.
+ * The default behavior should be sufficient in most cases.
+ */
+ super.doGenerate(monitor);
+ }
+
+ /**
+ * If this generator needs to listen to text generation events, listeners can be returned from here.
+ *
+ * @return List of listeners that are to be notified when text is generated through this launch.
+ * @generated
+ */
+ @Override
+ public List<IAcceleoTextGenerationListener> getGenerationListeners() {
+ List<IAcceleoTextGenerationListener> listeners = super.getGenerationListeners();
+ // TODO if you need to listen to generation event, add listeners to the list here
+ return listeners;
+ }
+
+ /**
+ * If you need to change the way files are generated, this is your entry point.
+ * <p>
+ * The default is {@link org.eclipse.acceleo.engine.generation.strategy.DefaultStrategy}; it generates files on the fly. If you only need to
+ * preview the results, return a new {@link org.eclipse.acceleo.engine.generation.strategy.PreviewStrategy}. Both of these aren't aware of the
+ * running Eclipse and can be used standalone.
+ * </p>
+ * <p>
+ * If you need the file generation to be aware of the workspace (A typical example is when you wanna override files that are under clear case or
+ * any other VCS that could forbid the overriding), then return a new
+ * {@link org.eclipse.acceleo.engine.generation.strategy.WorkspaceAwareStrategy}. <b>Note</b>, however, that this <b>cannot</b> be used
+ * standalone.
+ * </p>
+ * <p>
+ * All three of these default strategies support merging through JMerge.
+ * </p>
+ *
+ * @return The generation strategy that is to be used for generations launched through this launcher.
+ * @generated
+ */
+ public IAcceleoGenerationStrategy getGenerationStrategy() {
+ return super.getGenerationStrategy();
+ }
+
+ /**
+ * This will be called in order to find and load the module that will be launched through this launcher.
+ * We expect this name not to contain file extension, and the module to be located beside the launcher.
+ *
+ * @return The name of the module that is to be launched.
+ * @generated
+ */
+ @Override
+ public String getModuleName() {
+ return MODULE_FILE_NAME;
+ }
+
+ /**
+ * If the module(s) called by this launcher require properties files, return their qualified path from
+ * here.Take note that the first added properties files will take precedence over subsequent ones if they
+ * contain conflicting keys.
+ * <p>
+ * Properties need to be in source folders, the path that we expect to get as a result of this call are of the form &lt;package>.&lt;properties
+ * file name without extension>. For example, if you have a file named "messages.properties" in package "org.eclipse.acceleo.sample", the path
+ * that needs be returned by a call to {@link #getProperties()} is "org.eclipse.acceleo.sample.messages".
+ * </p>
+ *
+ * @return The list of properties file we need to add to the generation context.
+ * @see java.util.ResourceBundle#getBundle(String)
+ * @generated
+ */
+ @Override
+ public List<String> getProperties() {
+ List<String> propertiesFiles = super.getProperties();
+ /*
+ * TODO if your generation module requires access to properties files,
+ * add their qualified path to the list here. Properties files are
+ * expected to be in source folders, and the path here to be the
+ * qualified path as if referring to a Java class. For example, if you
+ * have a file named "messages.properties" in package
+ * "org.eclipse.acceleo.sample", the path that needs be added to this
+ * list is "org.eclipse.acceleo.sample.messages".
+ */
+ return propertiesFiles;
+ }
+
+ /**
+ * This will be used to get the list of templates that are to be launched by this launcher.
+ *
+ * @return The list of templates to call on the module {@link #getModuleName()}.
+ * @generated
+ */
+ @Override
+ public String[] getTemplateNames() {
+ return TEMPLATE_NAMES;
+ }
+
+ /**
+ * This can be used to update the resource set's package registry with all needed EPackages.
+ *
+ * @param resourceSet
+ * The resource set which registry has to be updated.
+ * @generated
+ */
+ @Override
+ public void registerPackages(ResourceSet resourceSet) {
+ super.registerPackages(resourceSet);
+ resourceSet.getPackageRegistry().put(org.eclipse.emf.ecore.EcorePackage.eINSTANCE.getNsURI(), org.eclipse.emf.ecore.EcorePackage.eINSTANCE);
+ // TODO If you need additional package registrations, do them here. The following line is an example for UML.
+ // resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
+ }
+
+ /**
+ * This can be used to update the resource set's resource factory registry with all needed factories.
+ *
+ * @param resourceSet
+ * The resource set which registry has to be updated.
+ * @generated
+ */
+ @Override
+ public void registerResourceFactories(ResourceSet resourceSet) {
+ super.registerResourceFactories(resourceSet);
+ // TODO If you need additional resource factories registrations, do them here. The following line is an example for UML.
+ // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
+ }
+
+}
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateXMLElementHandler.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateXMLElementHandler.java
new file mode 100644
index 00000000000..9980cd33578
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateXMLElementHandler.java
@@ -0,0 +1,265 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2010 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.domaincontextcodegen;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.acceleo.engine.event.IAcceleoTextGenerationListener;
+import org.eclipse.acceleo.engine.generation.strategy.IAcceleoGenerationStrategy;
+import org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator;
+import org.eclipse.emf.common.util.BasicMonitor;
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+/**
+ * Entry point of the 'GenerateXMLElementHandlers' generation module.
+ *
+ * @generated
+ */
+public class GenerateXMLElementHandler extends AbstractAcceleoGenerator {
+
+ /**
+ * The name of the module.
+ *
+ * @generated
+ */
+ public static final String MODULE_FILE_NAME = "generateXMLElementHandler";
+
+ /**
+ * The name of the templates that are to be generated.
+ *
+ * @generated
+ */
+ public static final String[] TEMPLATE_NAMES = { "generateXMLElementHandler", };
+
+ /**
+ * Allows the public constructor to be used. Note that a generator created
+ * this way cannot be used to launch generations before one of {@link #initialize(EObject, File, List)} or {@link #initialize(URI, File, List)} is
+ * called.
+ * <p>
+ * The main reason for this constructor is to allow clients of this generation to call it from another Java file, as it allows for the retrieval
+ * of {@link #getProperties()} and {@link #getGenerationListeners()}.
+ * </p>
+ *
+ * @generated
+ */
+ public GenerateXMLElementHandler() {
+ // Empty implementation
+ }
+
+ /**
+ * This allows clients to instantiates a generator with all required information.
+ *
+ * @param modelURI
+ * URI where the model on which this generator will be used is located.
+ * @param targetFolder
+ * This will be used as the output folder for this generation : it will be the base path
+ * against which all file block URLs will be resolved.
+ * @param arguments
+ * If the template which will be called requires more than one argument taken from the model,
+ * pass them here.
+ * @throws IOException
+ * This can be thrown in three scenarios : the module cannot be found, it cannot be loaded, or
+ * the model cannot be loaded.
+ * @generated
+ */
+ public GenerateXMLElementHandler(URI modelURI, File targetFolder, List<? extends Object> arguments) throws IOException {
+ initialize(modelURI, targetFolder, arguments);
+ }
+
+ /**
+ * This allows clients to instantiates a generator with all required information.
+ *
+ * @param model
+ * We'll iterate over the content of this element to find Objects matching the first parameter
+ * of the template we need to call.
+ * @param targetFolder
+ * This will be used as the output folder for this generation : it will be the base path
+ * against which all file block URLs will be resolved.
+ * @param arguments
+ * If the template which will be called requires more than one argument taken from the model,
+ * pass them here.
+ * @throws IOException
+ * This can be thrown in two scenarios : the module cannot be found, or it cannot be loaded.
+ * @generated
+ */
+ public GenerateXMLElementHandler(EObject model, File targetFolder, List<? extends Object> arguments) throws IOException {
+ initialize(model, targetFolder, arguments);
+ }
+
+ /**
+ * This can be used to launch the generation from a standalone application.
+ *
+ * @param args
+ * Arguments of the generation.
+ * @generated
+ */
+ public static void main(String[] args) {
+ try {
+ if(args.length < 2) {
+ System.out.println("Arguments not valid : {model, folder}.");
+ } else {
+ URI modelURI = URI.createFileURI(args[0]);
+ File folder = new File(args[1]);
+ List<String> arguments = new ArrayList<String>();
+ for(int i = 2; i < args.length; i++) {
+ arguments.add(args[i]);
+ }
+ GenerateXMLElementHandler generator = new GenerateXMLElementHandler(modelURI, folder, arguments);
+ generator.doGenerate(new BasicMonitor());
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Launches the generation described by this instance.
+ *
+ * @param monitor
+ * This will be used to display progress information to the user.
+ * @throws IOException
+ * This will be thrown if any of the output files cannot be saved to disk.
+ * @generated
+ */
+ @Override
+ public void doGenerate(Monitor monitor) throws IOException {
+ /*
+ * TODO if you wish to change the generation as a whole, override this.
+ * The default behavior should be sufficient in most cases.
+ */
+ super.doGenerate(monitor);
+ }
+
+ /**
+ * If this generator needs to listen to text generation events, listeners can be returned from here.
+ *
+ * @return List of listeners that are to be notified when text is generated through this launch.
+ * @generated
+ */
+ @Override
+ public List<IAcceleoTextGenerationListener> getGenerationListeners() {
+ List<IAcceleoTextGenerationListener> listeners = super.getGenerationListeners();
+ // TODO if you need to listen to generation event, add listeners to the list here
+ return listeners;
+ }
+
+ /**
+ * If you need to change the way files are generated, this is your entry point.
+ * <p>
+ * The default is {@link org.eclipse.acceleo.engine.generation.strategy.DefaultStrategy}; it generates files on the fly. If you only need to
+ * preview the results, return a new {@link org.eclipse.acceleo.engine.generation.strategy.PreviewStrategy}. Both of these aren't aware of the
+ * running Eclipse and can be used standalone.
+ * </p>
+ * <p>
+ * If you need the file generation to be aware of the workspace (A typical example is when you wanna override files that are under clear case or
+ * any other VCS that could forbid the overriding), then return a new
+ * {@link org.eclipse.acceleo.engine.generation.strategy.WorkspaceAwareStrategy}. <b>Note</b>, however, that this <b>cannot</b> be used
+ * standalone.
+ * </p>
+ * <p>
+ * All three of these default strategies support merging through JMerge.
+ * </p>
+ *
+ * @return The generation strategy that is to be used for generations launched through this launcher.
+ * @generated
+ */
+ public IAcceleoGenerationStrategy getGenerationStrategy() {
+ return super.getGenerationStrategy();
+ }
+
+ /**
+ * This will be called in order to find and load the module that will be launched through this launcher.
+ * We expect this name not to contain file extension, and the module to be located beside the launcher.
+ *
+ * @return The name of the module that is to be launched.
+ * @generated
+ */
+ @Override
+ public String getModuleName() {
+ return MODULE_FILE_NAME;
+ }
+
+ /**
+ * If the module(s) called by this launcher require properties files, return their qualified path from
+ * here.Take note that the first added properties files will take precedence over subsequent ones if they
+ * contain conflicting keys.
+ * <p>
+ * Properties need to be in source folders, the path that we expect to get as a result of this call are of the form &lt;package>.&lt;properties
+ * file name without extension>. For example, if you have a file named "messages.properties" in package "org.eclipse.acceleo.sample", the path
+ * that needs be returned by a call to {@link #getProperties()} is "org.eclipse.acceleo.sample.messages".
+ * </p>
+ *
+ * @return The list of properties file we need to add to the generation context.
+ * @see java.util.ResourceBundle#getBundle(String)
+ * @generated
+ */
+ @Override
+ public List<String> getProperties() {
+ List<String> propertiesFiles = super.getProperties();
+ /*
+ * TODO if your generation module requires access to properties files,
+ * add their qualified path to the list here. Properties files are
+ * expected to be in source folders, and the path here to be the
+ * qualified path as if referring to a Java class. For example, if you
+ * have a file named "messages.properties" in package
+ * "org.eclipse.acceleo.sample", the path that needs be added to this
+ * list is "org.eclipse.acceleo.sample.messages".
+ */
+ return propertiesFiles;
+ }
+
+ /**
+ * This will be used to get the list of templates that are to be launched by this launcher.
+ *
+ * @return The list of templates to call on the module {@link #getModuleName()}.
+ * @generated
+ */
+ @Override
+ public String[] getTemplateNames() {
+ return TEMPLATE_NAMES;
+ }
+
+ /**
+ * This can be used to update the resource set's package registry with all needed EPackages.
+ *
+ * @param resourceSet
+ * The resource set which registry has to be updated.
+ * @generated
+ */
+ @Override
+ public void registerPackages(ResourceSet resourceSet) {
+ super.registerPackages(resourceSet);
+ resourceSet.getPackageRegistry().put(org.eclipse.emf.ecore.EcorePackage.eINSTANCE.getNsURI(), org.eclipse.emf.ecore.EcorePackage.eINSTANCE);
+ // TODO If you need additional package registrations, do them here. The following line is an example for UML.
+ // resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
+ }
+
+ /**
+ * This can be used to update the resource set's resource factory registry with all needed factories.
+ *
+ * @param resourceSet
+ * The resource set which registry has to be updated.
+ * @generated
+ */
+ @Override
+ public void registerResourceFactories(ResourceSet resourceSet) {
+ super.registerResourceFactories(resourceSet);
+ // TODO If you need additional resource factories registrations, do them here. The following line is an example for UML.
+ // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
+ }
+
+}
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateXMLElementType.java b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateXMLElementType.java
new file mode 100644
index 00000000000..3775531fa03
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/GenerateXMLElementType.java
@@ -0,0 +1,265 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2010 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.domaincontextcodegen;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.acceleo.engine.event.IAcceleoTextGenerationListener;
+import org.eclipse.acceleo.engine.generation.strategy.IAcceleoGenerationStrategy;
+import org.eclipse.acceleo.engine.service.AbstractAcceleoGenerator;
+import org.eclipse.emf.common.util.BasicMonitor;
+import org.eclipse.emf.common.util.Monitor;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+/**
+ * Entry point of the 'GenerateXMLElementType' generation module.
+ *
+ * @generated
+ */
+public class GenerateXMLElementType extends AbstractAcceleoGenerator {
+
+ /**
+ * The name of the module.
+ *
+ * @generated
+ */
+ public static final String MODULE_FILE_NAME = "generateXMLElementType";
+
+ /**
+ * The name of the templates that are to be generated.
+ *
+ * @generated
+ */
+ public static final String[] TEMPLATE_NAMES = { "generateXMLElementType", };
+
+ /**
+ * Allows the public constructor to be used. Note that a generator created
+ * this way cannot be used to launch generations before one of {@link #initialize(EObject, File, List)} or {@link #initialize(URI, File, List)} is
+ * called.
+ * <p>
+ * The main reason for this constructor is to allow clients of this generation to call it from another Java file, as it allows for the retrieval
+ * of {@link #getProperties()} and {@link #getGenerationListeners()}.
+ * </p>
+ *
+ * @generated
+ */
+ public GenerateXMLElementType() {
+ // Empty implementation
+ }
+
+ /**
+ * This allows clients to instantiates a generator with all required information.
+ *
+ * @param modelURI
+ * URI where the model on which this generator will be used is located.
+ * @param targetFolder
+ * This will be used as the output folder for this generation : it will be the base path
+ * against which all file block URLs will be resolved.
+ * @param arguments
+ * If the template which will be called requires more than one argument taken from the model,
+ * pass them here.
+ * @throws IOException
+ * This can be thrown in three scenarios : the module cannot be found, it cannot be loaded, or
+ * the model cannot be loaded.
+ * @generated
+ */
+ public GenerateXMLElementType(URI modelURI, File targetFolder, List<? extends Object> arguments) throws IOException {
+ initialize(modelURI, targetFolder, arguments);
+ }
+
+ /**
+ * This allows clients to instantiates a generator with all required information.
+ *
+ * @param model
+ * We'll iterate over the content of this element to find Objects matching the first parameter
+ * of the template we need to call.
+ * @param targetFolder
+ * This will be used as the output folder for this generation : it will be the base path
+ * against which all file block URLs will be resolved.
+ * @param arguments
+ * If the template which will be called requires more than one argument taken from the model,
+ * pass them here.
+ * @throws IOException
+ * This can be thrown in two scenarios : the module cannot be found, or it cannot be loaded.
+ * @generated
+ */
+ public GenerateXMLElementType(EObject model, File targetFolder, List<? extends Object> arguments) throws IOException {
+ initialize(model, targetFolder, arguments);
+ }
+
+ /**
+ * This can be used to launch the generation from a standalone application.
+ *
+ * @param args
+ * Arguments of the generation.
+ * @generated
+ */
+ public static void main(String[] args) {
+ try {
+ if(args.length < 2) {
+ System.out.println("Arguments not valid : {model, folder}.");
+ } else {
+ URI modelURI = URI.createFileURI(args[0]);
+ File folder = new File(args[1]);
+ List<String> arguments = new ArrayList<String>();
+ for(int i = 2; i < args.length; i++) {
+ arguments.add(args[i]);
+ }
+ GenerateXMLElementType generator = new GenerateXMLElementType(modelURI, folder, arguments);
+ generator.doGenerate(new BasicMonitor());
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Launches the generation described by this instance.
+ *
+ * @param monitor
+ * This will be used to display progress information to the user.
+ * @throws IOException
+ * This will be thrown if any of the output files cannot be saved to disk.
+ * @generated
+ */
+ @Override
+ public void doGenerate(Monitor monitor) throws IOException {
+ /*
+ * TODO if you wish to change the generation as a whole, override this.
+ * The default behavior should be sufficient in most cases.
+ */
+ super.doGenerate(monitor);
+ }
+
+ /**
+ * If this generator needs to listen to text generation events, listeners can be returned from here.
+ *
+ * @return List of listeners that are to be notified when text is generated through this launch.
+ * @generated
+ */
+ @Override
+ public List<IAcceleoTextGenerationListener> getGenerationListeners() {
+ List<IAcceleoTextGenerationListener> listeners = super.getGenerationListeners();
+ // TODO if you need to listen to generation event, add listeners to the list here
+ return listeners;
+ }
+
+ /**
+ * If you need to change the way files are generated, this is your entry point.
+ * <p>
+ * The default is {@link org.eclipse.acceleo.engine.generation.strategy.DefaultStrategy}; it generates files on the fly. If you only need to
+ * preview the results, return a new {@link org.eclipse.acceleo.engine.generation.strategy.PreviewStrategy}. Both of these aren't aware of the
+ * running Eclipse and can be used standalone.
+ * </p>
+ * <p>
+ * If you need the file generation to be aware of the workspace (A typical example is when you wanna override files that are under clear case or
+ * any other VCS that could forbid the overriding), then return a new
+ * {@link org.eclipse.acceleo.engine.generation.strategy.WorkspaceAwareStrategy}. <b>Note</b>, however, that this <b>cannot</b> be used
+ * standalone.
+ * </p>
+ * <p>
+ * All three of these default strategies support merging through JMerge.
+ * </p>
+ *
+ * @return The generation strategy that is to be used for generations launched through this launcher.
+ * @generated
+ */
+ public IAcceleoGenerationStrategy getGenerationStrategy() {
+ return super.getGenerationStrategy();
+ }
+
+ /**
+ * This will be called in order to find and load the module that will be launched through this launcher.
+ * We expect this name not to contain file extension, and the module to be located beside the launcher.
+ *
+ * @return The name of the module that is to be launched.
+ * @generated
+ */
+ @Override
+ public String getModuleName() {
+ return MODULE_FILE_NAME;
+ }
+
+ /**
+ * If the module(s) called by this launcher require properties files, return their qualified path from
+ * here.Take note that the first added properties files will take precedence over subsequent ones if they
+ * contain conflicting keys.
+ * <p>
+ * Properties need to be in source folders, the path that we expect to get as a result of this call are of the form &lt;package>.&lt;properties
+ * file name without extension>. For example, if you have a file named "messages.properties" in package "org.eclipse.acceleo.sample", the path
+ * that needs be returned by a call to {@link #getProperties()} is "org.eclipse.acceleo.sample.messages".
+ * </p>
+ *
+ * @return The list of properties file we need to add to the generation context.
+ * @see java.util.ResourceBundle#getBundle(String)
+ * @generated
+ */
+ @Override
+ public List<String> getProperties() {
+ List<String> propertiesFiles = super.getProperties();
+ /*
+ * TODO if your generation module requires access to properties files,
+ * add their qualified path to the list here. Properties files are
+ * expected to be in source folders, and the path here to be the
+ * qualified path as if referring to a Java class. For example, if you
+ * have a file named "messages.properties" in package
+ * "org.eclipse.acceleo.sample", the path that needs be added to this
+ * list is "org.eclipse.acceleo.sample.messages".
+ */
+ return propertiesFiles;
+ }
+
+ /**
+ * This will be used to get the list of templates that are to be launched by this launcher.
+ *
+ * @return The list of templates to call on the module {@link #getModuleName()}.
+ * @generated
+ */
+ @Override
+ public String[] getTemplateNames() {
+ return TEMPLATE_NAMES;
+ }
+
+ /**
+ * This can be used to update the resource set's package registry with all needed EPackages.
+ *
+ * @param resourceSet
+ * The resource set which registry has to be updated.
+ * @generated
+ */
+ @Override
+ public void registerPackages(ResourceSet resourceSet) {
+ super.registerPackages(resourceSet);
+ resourceSet.getPackageRegistry().put(org.eclipse.emf.ecore.EcorePackage.eINSTANCE.getNsURI(), org.eclipse.emf.ecore.EcorePackage.eINSTANCE);
+ // TODO If you need additional package registrations, do them here. The following line is an example for UML.
+ // resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
+ }
+
+ /**
+ * This can be used to update the resource set's resource factory registry with all needed factories.
+ *
+ * @param resourceSet
+ * The resource set which registry has to be updated.
+ * @generated
+ */
+ @Override
+ public void registerResourceFactories(ResourceSet resourceSet) {
+ super.registerResourceFactories(resourceSet);
+ // TODO If you need additional resource factories registrations, do them here. The following line is an example for UML.
+ // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
+ }
+
+}
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateContextTypeClass.mtl b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateContextTypeClass.mtl
new file mode 100644
index 00000000000..df22af91da1
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateContextTypeClass.mtl
@@ -0,0 +1,41 @@
+[comment deprecated /]
+[comment encoding = UTF-8 /]
+[module generateContextTypeClass('http://www.eclipse.org/papyrus/2010/domaincontextcodegen','http://www.eclipse.org/emf/2002/Ecore')/]
+
+[template public generateContextTypeClass(domain : DomainContext)]
+ [comment this template is used to generate a class to obtain the client context/]
+ [file (domain.typeProjectName.substituteAll('.', '/').concat('/element/'+domain.elementTypeNamePrefix.concat('TypeContext.java')), false, 'UTF-8')]
+
+ package [ domain.typeProjectName.concat('.element')/];
+
+ import org.eclipse.gmf.runtime.emf.type.core.ClientContextManager;
+ import org.eclipse.gmf.runtime.emf.type.core.IClientContext;
+
+ /**
+ * This is a [domain.elementTypeNamePrefix/] context in order to call helper for UML
+ *
+ */
+ public class [domain.elementTypeNamePrefix/]TypeContext {
+
+ /**
+ * the ID if [domain.elementTypeNamePrefix/] Type Context
+ */
+ public static final String ID = "[domain.IClientContextID/]"; //$NON-NLS-1$
+ /**
+ * Used to obtain the [domain.elementTypeNamePrefix/] context
+ * @return the [domain.elementTypeNamePrefix/] context
+ * @throws Exception if the context is not found
+ */
+ public static IClientContext getContext() throws Exception {
+ IClientContext context = ClientContextManager.getInstance().getClientContext(ID);
+ if(context == null) {
+ throw new Exception("Could not retrieve context : "+ID+".");
+ }
+
+ return context;
+ }
+
+ }
+ [/file]
+
+[/template]
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateElementHandler.mtl b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateElementHandler.mtl
new file mode 100644
index 00000000000..f3488bb82cb
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateElementHandler.mtl
@@ -0,0 +1,43 @@
+[comment encoding = UTF-8 /]
+[module generateElementHandler('http://www.eclipse.org/papyrus/2010/domaincontextcodegen','http://www.eclipse.org/emf/2002/Ecore')/]
+
+[template public generateElementHandler(domain : DomainContext)]
+
+[comment this template is used to generate an enumeration of all handlers + an abstract handler/]
+
+[for (type:ElementType |domain.elementTypes.types)]
+[file (domain.handlerProjectName+'/'+domain.generatedSourceFolder+'/'+domain.handlerProjectName.substituteAll('.', '/').concat('/handler/'+type.metaClass.name.concat('Handler.java')), false, 'UTF-8')]
+package [domain.genHandlers.handlerPackage/];
+
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import [domain.genHandlers.elementTypeEnumeratorPackage/].[domain.genHandlers.elementTypeEnumerator/];
+import [domain.genHandlers.superClassPackage/].[domain.genHandlers.superClass/];
+
+/**
+ * <pre>
+ * Command handler for [type.metaClass.name/] creation
+ *
+ * </pre>
+ * @generated
+ */
+public class [type.metaClass.name/]Handler extends [domain.genHandlers.superClass/] implements IHandler {
+
+ /**
+ * <pre>
+ * @see org.eclipse.papyrus.uml.service.creation.handler.CreateHandler#getElementTypeToCreate()
+ *
+ * @return the IElementType this handler is supposed to create
+ *
+ * </pre>
+ * @generated
+ */
+ protected IElementType getElementTypeToCreate() {
+ return [domain.genHandlers.elementTypeEnumerator/].[type.specificName/];
+ }
+}
+
+[/file]
+[/for]
+
+[/template]
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateElementTypeClass.mtl b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateElementTypeClass.mtl
new file mode 100644
index 00000000000..50ec33bc053
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateElementTypeClass.mtl
@@ -0,0 +1,26 @@
+[comment encoding = UTF-8 /]
+[module generateElementTypeClass('http://www.eclipse.org/papyrus/2010/domaincontextcodegen','http://www.eclipse.org/emf/2002/Ecore')/]
+
+[template public generateElementTypeClass(domain : DomainContext)]
+
+ [comment @main /]
+ [comment this template is used to generate an enumeration of all elementtypes/]
+
+[file (domain.typeProjectName+'/'+domain.generatedSourceFolder+'/'+domain.typeProjectName.substituteAll('.', '/').concat('/element/'+domain.elementTypeNamePrefix.concat('ElementTypes.java')), false, 'UTF-8')]
+
+package [ domain.typeProjectName.concat('.element')/];
+import org.eclipse.gmf.runtime.emf.type.core.AbstractElementTypeEnumerator;
+import org.eclipse.gmf.runtime.emf.type.core.IHintedType;
+
+/** Convenient utility class listing IElementType declared in plugin.xml */
+public class [domain.elementTypeNamePrefix/]ElementTypes extends AbstractElementTypeEnumerator {
+
+[for (type:ElementType|domain.elementTypes.types)]
+ /** IElementType for [domain.elementTypeNamePrefix /] [ type.metaClass.name/] */
+ public static final IHintedType [type.specificName/] = (IHintedType)getElementType("[domain.elementTypeIDPrefix.concat('.'+type.metaClass.name)/]");
+
+[/for ]
+}
+[/file]
+
+[/template]
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateHandlers.mtl b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateHandlers.mtl
new file mode 100644
index 00000000000..855029ac017
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateHandlers.mtl
@@ -0,0 +1,12 @@
+[comment encoding = UTF-8 /]
+[module generateHandlers('http://www.eclipse.org/papyrus/2010/domaincontextcodegen','http://www.eclipse.org/emf/2002/Ecore')/]
+
+[import org::eclipse::papyrus::domaincontextcodegen::generateElementHandler/]
+[import org::eclipse::papyrus::domaincontextcodegen::generateXMLElementHandler/]
+
+[template public generateHandlers(domain : DomainContext)]
+
+ [domain.generateElementHandler()/]
+ [domain.generateXMLElementHandler()/]
+
+[/template]
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateHideDomainContext.mtl b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateHideDomainContext.mtl
new file mode 100644
index 00000000000..c2a89416860
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateHideDomainContext.mtl
@@ -0,0 +1,52 @@
+[comment deprecated /]
+[comment encoding = UTF-8 /]
+[module generateHideDomainContext('http://www.eclipse.org/papyrus/2010/domaincontextcodegen','http://www.eclipse.org/emf/2002/Ecore')/]
+
+[template public generateHideDomainContext(domain : DomainContext)]
+ [comment this template is used to generate a filter to hide element type attached to the context
+ to finish/]
+ [file (domain.typeProjectName.substituteAll('.', '/').concat('/helper/Hide'+domain.elementTypeNamePrefix.concat('Context.java')), false, 'UTF-8')]
+
+ package [domain.typeProjectName/].helper;
+
+ import org.eclipse.core.commands.ExecutionException;
+ import org.eclipse.core.runtime.IAdaptable;
+ import org.eclipse.core.runtime.IProgressMonitor;
+ import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+ import org.eclipse.gmf.runtime.common.core.command.ICommand;
+ import org.eclipse.gmf.runtime.emf.type.core.commands.ConfigureElementCommand;
+ import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
+ import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+ import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
+ import org.eclipse.papyrus.diagram.common.helper.NamedElementHelper;
+ import org.eclipse.papyrus.service.creation.PapyrusClientContextManager;
+ import org.eclipse.papyrus.service.creation.PapyrusEditHelperFilter;
+
+
+ /**
+ * This is an advice helper use to hide [domain.elementTypeNamePrefix/] domain context
+ */
+ public class Hide[domain.elementTypeNamePrefix/]Context extends PapyrusEditHelperFilter {
+
+
+ @Override
+ protected ICommand getAfterConfigureCommand(final ConfigureRequest request) {
+ return new ConfigureElementCommand(request) {
+ protected CommandResult doExecuteWithResult(IProgressMonitor progressMonitor, IAdaptable info) throws ExecutionException {
+
+ return CommandResult.newOKCommandResult();
+ }
+ };
+ }
+
+ @Override
+ public boolean validateRequest(IEditCommandRequest request) {
+
+ return true;
+ }
+
+}
+
+ [/file]
+
+[/template]
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateTypes.mtl b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateTypes.mtl
new file mode 100644
index 00000000000..28c7d67c11e
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateTypes.mtl
@@ -0,0 +1,21 @@
+[comment encoding = UTF-8 /]
+[module generateTypes('http://www.eclipse.org/papyrus/2010/domaincontextcodegen','http://www.eclipse.org/emf/2002/Ecore')/]
+
+[import org::eclipse::papyrus::domaincontextcodegen::generateElementTypeClass/]
+[import org::eclipse::papyrus::domaincontextcodegen::generateContextTypeClass /]
+[import org::eclipse::papyrus::domaincontextcodegen::generateElementHandler/]
+[import org::eclipse::papyrus::domaincontextcodegen::generateHideDomainContext/]
+[import org::eclipse::papyrus::domaincontextcodegen::generateXMLElementType/]
+
+
+[template public generate(domain : DomainContext)]
+
+ [comment @main /]
+ [comment this template is used to generate all the plugin/]
+
+ [domain.generateElementTypeClass()/]
+ [comment domain.generateContextTypeClass()/]
+ [comment domain.generateElementHandler()/]
+ [comment domain.generateHideDomainContext()/]
+ [domain.generateXMLElementType()/]
+[/template]
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateXMLElementHandler.mtl b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateXMLElementHandler.mtl
new file mode 100644
index 00000000000..75653522d3f
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateXMLElementHandler.mtl
@@ -0,0 +1,54 @@
+[comment encoding = UTF-8 /]
+[module generateXMLElementHandler('http://www.eclipse.org/papyrus/2010/domaincontextcodegen','http://www.eclipse.org/emf/2002/Ecore')/]
+
+[template public generateXMLElementHandler(domain : DomainContext)]
+ [comment @main /]
+ [comment this template is used to generate the plugin.xml /]
+
+[file (domain.handlerProjectName+'/'+'xmlElementHandlers.xml', false, 'UTF-8')]
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+[comment generation of all command attached to an handler /]
+<!-- Creation command declarations -->
+<extension point="org.eclipse.ui.commands">
+[for (type:ElementType|domain.elementTypes.types)]
+ [if (type.metaClass.abstract=false)]
+ <!-- Creation command for [type.metaClass.name/] -->
+ <command categoryId="org.eclipse.papyrus.editor.category"
+ id="[domain.handlerProjectName+'.'+type.metaClass.name+'CreateCommand'/]"
+ name="Create a new [type.metaClass.name/]" description="Create a new [type.metaClass.name/]"
+ defaultHandler="[domain.handlerProjectName.concat('.handler.')+type.metaClass.name/]Handler">
+ </command>
+
+ [/if]
+[/for ]
+</extension>
+
+[comment generation of all menus /]
+
+<!-- UI Menu declaration for creation commands -->
+<extension point="org.eclipse.ui.menus">
+
+ <menuContribution locationURI="popup:org.eclipse.papyrus.modelexplorer.popupmenu.createchild"
+ allPopups="false">
+
+ [for (type:ElementType|domain.elementTypes.types)]
+ [if (type.metaClass.abstract=false)]
+ <!-- Creation menu action for [type.metaClass.name/] -->
+ <command commandId="[domain.handlerProjectName+'.'+type.metaClass.name+'CreateCommand'/]"
+ label="Create a new [type.metaClass.name/]" tooltip="Create a new [type.metaClass.name/]" style="push"
+ icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/[type.metaClass.name/].gif" >
+ <visibleWhen checkEnabled="true"/>
+ </command>
+
+ [/if]
+ [/for ]
+ </menuContribution>
+
+</extension>
+</plugin>
+[/file]
+
+[/template]
diff --git a/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateXMLElementType.mtl b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateXMLElementType.mtl
new file mode 100644
index 00000000000..a5726f7448e
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.domaincontextcodegen/transforsrc/org/eclipse/papyrus/domaincontextcodegen/generateXMLElementType.mtl
@@ -0,0 +1,50 @@
+[comment encoding = UTF-8 /]
+[module generateXMLElementType('http://www.eclipse.org/papyrus/2010/domaincontextcodegen','http://www.eclipse.org/emf/2002/Ecore')/]
+
+[template public generateXMLElementType(domain : DomainContext)]
+ [comment @main /]
+ [comment this template is used to generate the plugin.xml /]
+
+[file (domain.typeProjectName+'/'+'xmlElementTypes.xml', false, 'UTF-8')]
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+[comment generation of all elementType/]
+<extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypes">
+
+ <metamodel nsURI="[domain.metamodel.nsURI/]">
+
+ <!-- Declaration of IElementTypes -->
+
+[for (type:ElementType|domain.elementTypes.types)]
+ <!-- IElementTypes for [type.metaClass.name/] -->
+ <metamodelType eclass="[type.metaClass.name/]" id="[domain.elementTypeIDPrefix+'.'+type.metaClass.name/]"
+ edithelper="[type.edithelper_EditHelperAdvicePath/]"
+ kind="[type.kind/]" name="[domain.elementTypeNamePrefix+'::'+type.metaClass.name/]">
+ <param name="semanticHint" value="[domain.elementTypeNamePrefix+'::'+type.metaClass.name/]"/>
+ </metamodelType>
+
+[/for]
+
+[comment generation of all advicebindings/]
+ <!-- Declaration of AdviceBindings -->
+
+[for (advice: AdviceBinding|domain.advicebindings)]
+ <!-- AdviceBinding for [advice.adviceID/] -->
+ <adviceBinding id="[advice.adviceID/]"
+ class="[advice.advicePath/]" inheritance="[advice.inheritance/]"
+ typeId="[domain.elementTypeIDPrefix+'.'+advice.elementTypeRef.metaClass.name/]">
+ </adviceBinding>
+
+[/for]
+
+ </metamodel>
+
+</extension>
+
+</plugin>
+
+[/file]
+
+[/template]

Back to the top