Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuentin Le Menez2018-03-11 16:28:18 +0000
committerQuentin Le Menez2018-03-11 22:39:35 +0000
commit6a85d3a05d3bd942dba8e71edf82e97dce813b91 (patch)
treec58695b63c497d3af16b69f1634d3eb2de0deb49 /plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension
parentba98ab1ef4202d0489df0ae2dd2aee8fe6f378d4 (diff)
downloadorg.eclipse.papyrus-6a85d3a05d3bd942dba8e71edf82e97dce813b91.tar.gz
org.eclipse.papyrus-6a85d3a05d3bd942dba8e71edf82e97dce813b91.tar.xz
org.eclipse.papyrus-6a85d3a05d3bd942dba8e71edf82e97dce813b91.zip
[Releng] [Photon] Delete old Dev framework and add a new Toolsmiths one
- Delete the old Dev releng profile and replace it with a Toolsmith one - Add new features: Junit, Releng, Diagramgen and Debug to be released - Move the junit framework at the root of the junit test folder - Remove Toolsmiths from the main build as it will have its own - Repopulate the SDK feature and distribute the excess features in theit own root parent - Add a new views feature - Moved the assistants to the toolsmiths folder and put them in the toolsmiths build Change-Id: I1c0331b25607baaf1cfcc635d9c7b0d9c6d73e63 Signed-off-by: Quentin Le Menez <quentin.lemenez@cea.fr>
Diffstat (limited to 'plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension')
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.classpath7
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.project47
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.core.runtime.prefs2
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.jdt.core.prefs292
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.pde.api.tools.prefs98
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/META-INF/MANIFEST.MF21
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/about.html26
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/build.properties17
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/GenerateMetamodelType.gifbin0 -> 547 bytes
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/PapyrusLogo16x16.gifbin0 -> 561 bytes
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/none_comp_vis.gifbin0 -> 115 bytes
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/palette_view.gifbin0 -> 633 bytes
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/updateElementType.gifbin0 -> 330 bytes
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/model/gmfgneExtension.uml169
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.ecore202
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.genmodel111
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/plugin.properties12
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/plugin.xml309
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/pom.xml14
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AdditionalEditPartCandies.java59
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateCanvas.java125
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenLink.java88
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenTopLevelNode.java88
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CommentedElement.java59
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentTitleVisibilityPreference.java84
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentVisibilityPreference.java84
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ConstrainedByReferenceCompartmentItemSemanticEditPolicy.java52
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CustomDiagramUpdaterSingleton.java59
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingDeleteService.java87
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingReorientService.java87
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExtendedGenView.java185
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExternalHook.java64
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenNodeConstraint.java80
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenVisualTypeProvider.java115
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenerateUsingElementTypeCreationCommand.java27
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/LabelVisibilityPreference.java161
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/MutatingCanvas.java50
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/OwnedEditpart.java59
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusExtensionRootNode.java50
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionFactory.java277
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionPackage.java2740
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PropertyRefreshHook.java93
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificDiagramUpdater.java74
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocator.java66
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocatorExternalLabel.java66
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificNodePlate.java114
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/VisualIDOverride.java108
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AdditionalEditPartCandiesImpl.java172
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateCanvasImpl.java324
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenLinkImpl.java247
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenTopLevelNodeImpl.java247
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CommentedElementImpl.java173
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentTitleVisibilityPreferenceImpl.java215
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentVisibilityPreferenceImpl.java215
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl.java143
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CustomDiagramUpdaterSingletonImpl.java172
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingDeleteServiceImpl.java215
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingReorientServiceImpl.java215
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExtendedGenViewImpl.java438
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalHookImpl.java172
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenNodeConstraintImpl.java209
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenVisualTypeProviderImpl.java172
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenerateUsingElementTypeCreationCommandImpl.java47
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/LabelVisibilityPreferenceImpl.java358
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/MutatingCanvasImpl.java160
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/OwnedEditpartImpl.java172
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusExtensionRootNodeImpl.java160
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionFactoryImpl.java380
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionPackageImpl.java1278
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PropertyRefreshHookImpl.java226
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificDiagramUpdaterImpl.java167
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorExternalLabelImpl.java143
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorImpl.java143
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificNodePlateImpl.java269
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/VisualIDOverrideImpl.java293
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/Action.java182
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddDefaultNamedElementAction.java163
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddExternalNodeFloatingLabelDisplayBehavior.java223
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddExternalNodeStereotypeDisplayBehavior.java167
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddGenLinkStereotypeDisplayBehavior.java221
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddHyperLinkPopupBarBehavior.java70
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeQualifiedNameBehavior.java69
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeShowHideCompartmentBehavior.java56
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeShowHideContentsBehavior.java51
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeShowHideLabelsBehavior.java53
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeStereotypeDisplayBehavior.java69
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddOrUpdateCommentEditParts.java577
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddSemanticElementTypeInGenericTopNode.java191
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddShapeNamedElementAction.java173
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddSmallAndLargeIconForPaletteAction.java215
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/DisplayReport.java147
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/EditpartGenHelper.java259
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/Messages.java51
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/SetCompartmentNeedsTitleToTrueAction.java66
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/SetVisualIDWithUnusedValue.java123
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/TestCodeSetGeneration.java204
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/UpdateElementTypeToMatchGenericType.java256
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/messages.properties5
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionAdapterFactory.java580
-rw-r--r--plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionSwitch.java674
102 files changed, 18568 insertions, 0 deletions
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.classpath b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.classpath
new file mode 100644
index 00000000000..eca7bdba8f0
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.project b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.project
new file mode 100644
index 00000000000..cd19c4b2ade
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.project
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.gmfgenextension</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.oomph.version.VersionBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>check.maven.pom</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>ignore.lower.bound.dependency.ranges</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>release.path</key>
+ <value>/org.eclipse.papyrus.releng.dev.release/release.xml</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.oomph.version.VersionNature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.core.resources.prefs b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..896a9a53a53
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8 \ No newline at end of file
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.core.runtime.prefs b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 00000000000..5a0ad22d2a7
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.jdt.core.prefs b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..41b887bd50e
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,292 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.jdt.ui.prefs b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.pde.api.tools.prefs b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 00000000000..23fb95e120f
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,98 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Ignore
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Ignore
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=Enabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Warning
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/META-INF/MANIFEST.MF b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..fde22ead007
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.12.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.12.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.codegen.ecore;bundle-version="[2.12.0,3.0.0)";visibility:=reexport,
+ org.eclipse.gmf.codegen;bundle-version="[2.11.0,3.0.0)";visibility:=reexport,
+ org.eclipse.ui;bundle-version="[3.107.0,4.0.0)",
+ org.eclipse.uml2.uml.edit;bundle-version="[5.3.0,6.0.0)",
+ org.eclipse.uml2.codegen.ecore;bundle-version="[2.3.0,3.0.0)"
+Export-Package: org.eclipse.papyrus.papyrusgmfgenextension,
+ org.eclipse.papyrus.papyrusgmfgenextension.impl,
+ org.eclipse.papyrus.papyrusgmfgenextension.popupaction,
+ org.eclipse.papyrus.papyrusgmfgenextension.util
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 2.0.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.gmfgenextension;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/about.html b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/about.html
new file mode 100644
index 00000000000..23506a4bae1
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/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/toolsmiths/org.eclipse.papyrus.gmfgenextension/build.properties b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/build.properties
new file mode 100644
index 00000000000..dde0974666b
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/build.properties
@@ -0,0 +1,17 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ icons/,\
+ about.html
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/GenerateMetamodelType.gif b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/GenerateMetamodelType.gif
new file mode 100644
index 00000000000..b6831627209
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/GenerateMetamodelType.gif
Binary files differ
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/PapyrusLogo16x16.gif b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/PapyrusLogo16x16.gif
new file mode 100644
index 00000000000..8a31f458379
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/PapyrusLogo16x16.gif
Binary files differ
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/none_comp_vis.gif b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/none_comp_vis.gif
new file mode 100644
index 00000000000..a2017d01c82
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/none_comp_vis.gif
Binary files differ
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/palette_view.gif b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/palette_view.gif
new file mode 100644
index 00000000000..80c152ab6b4
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/palette_view.gif
Binary files differ
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/updateElementType.gif b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/updateElementType.gif
new file mode 100644
index 00000000000..e3831471a65
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/icons/updateElementType.gif
Binary files differ
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/model/gmfgneExtension.uml b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/model/gmfgneExtension.uml
new file mode 100644
index 00000000000..3cd33f24df3
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/model/gmfgneExtension.uml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.1.0/UML" xmi:id="_Qh1r8N5PEd2H5qD714qFTA" name="PapyrusGmfgenExtension">
+ <ownedComment xmi:id="_-rSu4N5TEd2H5qD714qFTA" annotatedElement="_YeINEN5PEd2H5qD714qFTA">
+ <body>This element is always linked to a genNode (topLevel, or child)&#xD;
+Used set if an editPart is abstract.&#xD;
+SuperGenNodes is a list of all superEditPart.&#xD;
+&#xD;
+Thanks to this, it is possible to factorize code and to decrease the number of generated classes.</body>
+ </ownedComment>
+ <ownedComment xmi:id="_ngQ9QN5UEd2H5qD714qFTA" annotatedElement="_qPNzoN5QEd2H5qD714qFTA">
+ <body>All extended classes have a comment in order to describe the puprose of this extension</body>
+ </ownedComment>
+ <ownedComment xmi:id="_lxYf8N5cEd2H5qD714qFTA" annotatedElement="_hmemwN5REd2H5qD714qFTA">
+ <body>The purpose of this class is point to an external class (for example java classes).&#xD;
+the classpath is the path to the this extenal class.</body>
+ </ownedComment>
+ <ownedComment xmi:id="_N_m3YN5dEd2H5qD714qFTA" annotatedElement="_8_kJsN5PEd2H5qD714qFTA">
+ <body>This class is used to refresh the figure by taking in account a property of domain element (in the case of Ecore, it can be an Efeature or EReference)&#xD;
+The triggeringCondtion describe the needed condition to launch the action on the figure. these two properties can be code lines.&#xD;
+&#xD;
+For instance we would like to display active class when the efeature class is &quot;active&quot;. Or display composite kind of the association when the kind of the property end is &quot;composite&quot;.</body>
+ </ownedComment>
+ <ownedComment xmi:id="_WHoR8N5eEd2H5qD714qFTA" annotatedElement="_J6ZzAN5REd2H5qD714qFTA">
+ <body>The purpose of this class is to define our own initializer.&#xD;
+For example in the case of UML, the intialize for name may be &quot;name&quot;_'number&quot;.&#xD;
+The initAction is code that call this helper use to fill static method &quot; String name_Metaclass_VisualID(Metaclass self) &quot;</body>
+ </ownedComment>
+ <ownedComment xmi:id="_jUDagN5fEd2H5qD714qFTA" annotatedElement="_N3We0N5TEd2H5qD714qFTA">
+ <body>This class is used to precise itw own locator used for the border item, like port or template.&#xD;
+&#xD;
+for example, in the case of templateSignature of ClassEditPart in the method protected boolean addFixedChild(EditPart childEditPart):&#xD;
+replacement of the general BorderItemLocator is needed in order to constrain the movement. &#xD;
+&#xD;
+if (childEditPart instanceof RedefinableTemplateSignatureEditPart) {&#xD;
+ // BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.NORTH);&#xD;
+ BorderItemLocator locator = new TemplateClassifierBorderItemLocator(getMainFigure(), PositionConstants.NORTH);&#xD;
+ getBorderedFigure().getBorderItemContainer().add(((RedefinableTemplateSignatureEditPart) childEditPart).getFigure(), locator);&#xD;
+ return true;&#xD;
+}</body>
+ </ownedComment>
+ <packageImport xmi:id="_Qh1r8d5PEd2H5qD714qFTA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Class" xmi:id="_RD9hkN5PEd2H5qD714qFTA" name="GenNode"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_YeINEN5PEd2H5qD714qFTA" name="ExtendedGenNode">
+ <generalization xmi:id="_wR5u0N5QEd2H5qD714qFTA" general="_nji3kN5QEd2H5qD714qFTA"/>
+ <ownedAttribute xmi:id="_e-KyoN5PEd2H5qD714qFTA" name="genNode" type="_RD9hkN5PEd2H5qD714qFTA" isUnique="false" association="_e-BosN5PEd2H5qD714qFTA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_e-Ujod5PEd2H5qD714qFTA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_e-UjoN5PEd2H5qD714qFTA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_id1-gN5PEd2H5qD714qFTA" name="isAbstract" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p9N6Id5PEd2H5qD714qFTA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p9N6IN5PEd2H5qD714qFTA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_p9N6It5PEd2H5qD714qFTA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_wg_wMd5PEd2H5qD714qFTA" name="superGenNodes" type="_RD9hkN5PEd2H5qD714qFTA" isUnique="false" association="_wg_wMN5PEd2H5qD714qFTA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wg_wM95PEd2H5qD714qFTA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wg_wMt5PEd2H5qD714qFTA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_IDYccd5QEd2H5qD714qFTA" name="propRefreshHook" type="_8_kJsN5PEd2H5qD714qFTA" isUnique="false" aggregation="composite" association="_IDYccN5QEd2H5qD714qFTA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IDiNcd5QEd2H5qD714qFTA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IDiNcN5QEd2H5qD714qFTA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Cj0nAN5REd2H5qD714qFTA" name="intialilization" isUnique="false"/>
+ <ownedAttribute xmi:id="_XxMjsd5REd2H5qD714qFTA" name="nameInitHook" type="_J6ZzAN5REd2H5qD714qFTA" isUnique="false" association="_XxMjsN5REd2H5qD714qFTA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XxVtod5REd2H5qD714qFTA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XxVtoN5REd2H5qD714qFTA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_e-BosN5PEd2H5qD714qFTA" name="A_ExtendedGenNode_GenNode" memberEnd="_e-KyoN5PEd2H5qD714qFTA _e-Ujot5PEd2H5qD714qFTA">
+ <ownedEnd xmi:id="_e-Ujot5PEd2H5qD714qFTA" name="extendedGenNode" type="_YeINEN5PEd2H5qD714qFTA" isUnique="false" association="_e-BosN5PEd2H5qD714qFTA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_e-Ujo95PEd2H5qD714qFTA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_e-UjpN5PEd2H5qD714qFTA"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_wg_wMN5PEd2H5qD714qFTA" name="A_ExtendedGenNode_GenNode" memberEnd="_wg_wMd5PEd2H5qD714qFTA _wg_wNN5PEd2H5qD714qFTA">
+ <ownedEnd xmi:id="_wg_wNN5PEd2H5qD714qFTA" name="extendedGenNode" type="_YeINEN5PEd2H5qD714qFTA" isUnique="false" association="_wg_wMN5PEd2H5qD714qFTA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wg_wNd5PEd2H5qD714qFTA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_whJhMN5PEd2H5qD714qFTA"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_8_kJsN5PEd2H5qD714qFTA" name="PropertyRefreshHook">
+ <generalization xmi:id="_mX9YwN5REd2H5qD714qFTA" general="_hmemwN5REd2H5qD714qFTA"/>
+ <ownedAttribute xmi:id="_0KMK0N5XEd2H5qD714qFTA" name="triggeringCondition" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_5N2R8d5XEd2H5qD714qFTA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5N2R8N5XEd2H5qD714qFTA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_5N2R8t5XEd2H5qD714qFTA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mET_0N5YEd2H5qD714qFTA" name="action" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qv_EwN5YEd2H5qD714qFTA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qv1TwN5YEd2H5qD714qFTA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_qv_Ewd5YEd2H5qD714qFTA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_IDYccN5QEd2H5qD714qFTA" name="A_ExtendedGenNode_FeatureBehaviour" memberEnd="_IDYccd5QEd2H5qD714qFTA _IDiNct5QEd2H5qD714qFTA">
+ <ownedEnd xmi:id="_IDiNct5QEd2H5qD714qFTA" name="extendedGenNode" type="_YeINEN5PEd2H5qD714qFTA" isUnique="false" association="_IDYccN5QEd2H5qD714qFTA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IDiNc95QEd2H5qD714qFTA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IDiNdN5QEd2H5qD714qFTA"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_nji3kN5QEd2H5qD714qFTA" name="CommentedElement">
+ <ownedAttribute xmi:id="_qPNzoN5QEd2H5qD714qFTA" name="comment" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tB4vkN5QEd2H5qD714qFTA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tBu-kN5QEd2H5qD714qFTA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_tB4vkd5QEd2H5qD714qFTA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_J6ZzAN5REd2H5qD714qFTA" name="NameInitalizerHook">
+ <generalization xmi:id="_nBrrMN5REd2H5qD714qFTA" general="_hmemwN5REd2H5qD714qFTA"/>
+ <ownedAttribute xmi:id="_QeekAN5REd2H5qD714qFTA" name="initAction" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_did9wd5cEd2H5qD714qFTA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_did9wN5cEd2H5qD714qFTA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_WZkpcN5REd2H5qD714qFTA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_XxMjsN5REd2H5qD714qFTA" name="A_ExtendedGenNode_NameInitializer" memberEnd="_XxMjsd5REd2H5qD714qFTA _XxVtot5REd2H5qD714qFTA">
+ <ownedEnd xmi:id="_XxVtot5REd2H5qD714qFTA" name="extendedGenNode" type="_YeINEN5PEd2H5qD714qFTA" isUnique="false" association="_XxMjsN5REd2H5qD714qFTA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XxVto95REd2H5qD714qFTA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XxVtpN5REd2H5qD714qFTA"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_hmemwN5REd2H5qD714qFTA" name="ExternalHook">
+ <generalization xmi:id="_JkuMAN5TEd2H5qD714qFTA" general="_nji3kN5QEd2H5qD714qFTA"/>
+ <ownedAttribute xmi:id="_NrW8IN5REd2H5qD714qFTA" name="classpath" visibility="public" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eud20d5cEd2H5qD714qFTA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eud20N5cEd2H5qD714qFTA"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_Uv7LEd5REd2H5qD714qFTA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_gmqTEN5SEd2H5qD714qFTA" name="GenChildSideAffixedNode">
+ <ownedAttribute xmi:id="_R68QEd5TEd2H5qD714qFTA" name="specificLocator" type="_N3We0N5TEd2H5qD714qFTA" isUnique="false" association="_R68QEN5TEd2H5qD714qFTA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R7FaAd5TEd2H5qD714qFTA" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R7FaAN5TEd2H5qD714qFTA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_N3We0N5TEd2H5qD714qFTA" name="SpecificLocator">
+ <generalization xmi:id="_RQxRsN5TEd2H5qD714qFTA" general="_hmemwN5REd2H5qD714qFTA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_R68QEN5TEd2H5qD714qFTA" name="A_GenChildSideAffixedNode_SpecificLocator" memberEnd="_R68QEd5TEd2H5qD714qFTA _R7FaAt5TEd2H5qD714qFTA">
+ <ownedEnd xmi:id="_R7FaAt5TEd2H5qD714qFTA" name="genChildSideAffixedNode" type="_gmqTEN5SEd2H5qD714qFTA" isUnique="false" association="_R68QEN5TEd2H5qD714qFTA">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R7FaA95TEd2H5qD714qFTA" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R7FaBN5TEd2H5qD714qFTA"/>
+ </ownedEnd>
+ </packagedElement>
+ <profileApplication xmi:id="_Qh1r8t5PEd2H5qD714qFTA">
+ <eAnnotations xmi:id="_Qh1r895PEd2H5qD714qFTA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/schemas/Standard/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+</uml:Model>
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.ecore b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.ecore
new file mode 100644
index 00000000000..7fd23e8fef4
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.ecore
@@ -0,0 +1,202 @@
+<?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="papyrusgmfgenextension" nsURI="http://www.eclipse.org/papyrus/2009/papyrusgmfgenextension"
+ nsPrefix="papyrusgmfgenextension">
+ <eClassifiers xsi:type="ecore:EClass" name="ExtendedGenView" eSuperTypes="#//CommentedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This element is always linked to a genView (topLevel, or child)&#xD;&#xA;Used set if an editPart is abstract.&#xD;&#xA;SuperGenViews is a list of all superEditPart.&#xD;&#xA;&#xD;&#xA;Thanks to this, it is possible to factorize code and to decrease the number of generated classes."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genView" ordered="false"
+ unique="false" lowerBound="1" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenCommonBase"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="superGenViews" ordered="false"
+ unique="false" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenCommonBase"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="propRefreshHook" ordered="false"
+ unique="false" eType="#//PropertyRefreshHook" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="superOwnedEditPart" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CommentedElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="comment" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="All extended classes have a comment in order to describe the puprose of this extension"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PropertyRefreshHook" eSuperTypes="#//ExternalHook">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This class is used to refresh the figure by taking in account a property of domain element (in the case of Ecore, it can be an Efeature or EReference)&#xD;&#xA;The triggeringCondtion describe the needed condition to launch the action on the figure. these two properties can be code lines.&#xD;&#xA;&#xD;&#xA;For instance we would like to display active class when the efeature class is &quot;active&quot;. Or display composite kind of the association when the kind of the property end is &quot;composite&quot;."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="triggeringCondition" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="action" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExternalHook" eSuperTypes="#//CommentedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The purpose of this class is point to an external class (for example java classes).&#xD;&#xA;the classpath is the path to the this extenal class."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classpath" ordered="false"
+ unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SpecificLocator" eSuperTypes="#//ExternalHook">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This class is used to precise itw own locator used for the border item, like port or template.&#xD;&#xA;&#xD;&#xA;for example, in the case of templateSignature of ClassEditPart in the method protected boolean addFixedChild(EditPart childEditPart):&#xD;&#xA;replacement of the general BorderItemLocator is needed in order to constrain the movement. &#xD;&#xA;&#xD;&#xA;if (childEditPart instanceof RedefinableTemplateSignatureEditPart) {&#xD;&#xA; // BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.NORTH);&#xD;&#xA; BorderItemLocator locator = new TemplateClassifierBorderItemLocator(getMainFigure(), PositionConstants.NORTH);&#xD;&#xA; getBorderedFigure().getBorderItemContainer().add(((RedefinableTemplateSignatureEditPart) childEditPart).getFigure(), locator);&#xD;&#xA; return true;&#xD;&#xA;}"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genChildSideAffixedNode"
+ upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenChildSideAffixedNode"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PapyrusExtensionRootNode" eSuperTypes="#//CommentedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="extensionNodes" upperBound="-1"
+ eType="#//CommentedElement" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AlternateCanvas" eSuperTypes="#//CommentedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainDiagramElement" lowerBound="1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="alternateTopLevelNodes"
+ upperBound="-1" eType="#//AlternateGenTopLevelNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="alternateLinkNodes" upperBound="-1"
+ eType="#//AlternateGenLink" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenDiagram"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AlternateGenTopLevelNode" eSuperTypes="#//CommentedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genTopLevelNode" lowerBound="1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenTopLevelNode"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeModelFacet" lowerBound="1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//TypeModelFacet"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AlternateGenLink" eSuperTypes="#//CommentedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genLinkNode" lowerBound="1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenLink"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeModelFacet" lowerBound="1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//TypeModelFacet"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MutatingCanvas" eSuperTypes="#//CommentedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="alternateCanvases" upperBound="-1"
+ eType="#//AlternateCanvas" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OwnedEditpart" eSuperTypes="#//ExternalHook">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SpecificDiagramUpdater" eSuperTypes="#//ExternalHook">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This class is used to precise itw own locator used for the border item, like port or template.&#xD;&#xA;&#xD;&#xA;for example, in the case of templateSignature of ClassEditPart in the method protected boolean addFixedChild(EditPart childEditPart):&#xD;&#xA;replacement of the general BorderItemLocator is needed in order to constrain the movement. &#xD;&#xA;&#xD;&#xA;if (childEditPart instanceof RedefinableTemplateSignatureEditPart) {&#xD;&#xA; // BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.NORTH);&#xD;&#xA; BorderItemLocator locator = new TemplateClassifierBorderItemLocator(getMainFigure(), PositionConstants.NORTH);&#xD;&#xA; getBorderedFigure().getBorderItemContainer().add(((RedefinableTemplateSignatureEditPart) childEditPart).getFigure(), locator);&#xD;&#xA; return true;&#xD;&#xA;}"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genNode" eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenCommonBase"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNodeConstraint" eSuperTypes="#//CommentedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genNode" upperBound="-1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenNode"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genConstraint" eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenConstraint"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SpecificLocatorExternalLabel" eSuperTypes="#//ExternalHook">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This class is used to precise itw own locator used for the border item, like port or template.&#xD;&#xA;&#xD;&#xA;for example, in the case of templateSignature of ClassEditPart in the method protected boolean addFixedChild(EditPart childEditPart):&#xD;&#xA;replacement of the general BorderItemLocator is needed in order to constrain the movement. &#xD;&#xA;&#xD;&#xA;if (childEditPart instanceof RedefinableTemplateSignatureEditPart) {&#xD;&#xA; // BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.NORTH);&#xD;&#xA; BorderItemLocator locator = new TemplateClassifierBorderItemLocator(getMainFigure(), PositionConstants.NORTH);&#xD;&#xA; getBorderedFigure().getBorderItemContainer().add(((RedefinableTemplateSignatureEditPart) childEditPart).getFigure(), locator);&#xD;&#xA; return true;&#xD;&#xA;}"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genExternalNodeLabel" upperBound="-1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenExternalNodeLabel"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AdditionalEditPartCandies" eSuperTypes="#//CommentedElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseEditHelperPackage"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditPartUsingDeleteService" eSuperTypes="#//CommentedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This element is always linked to a genView (topLevel, or child)&#xD;&#xA;Used set if an editPart is abstract.&#xD;&#xA;SuperGenViews is a list of all superEditPart.&#xD;&#xA;&#xD;&#xA;Thanks to this, it is possible to factorize code and to decrease the number of generated classes."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genView" ordered="false"
+ unique="false" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenCommonBase"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditPartUsingReorientService" eSuperTypes="#//CommentedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This element is always linked to a genView (topLevel, or child)&#xD;&#xA;Used set if an editPart is abstract.&#xD;&#xA;SuperGenViews is a list of all superEditPart.&#xD;&#xA;&#xD;&#xA;Thanks to this, it is possible to factorize code and to decrease the number of generated classes."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genView" ordered="false"
+ unique="false" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenLink"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelVisibilityPreference" eSuperTypes="#//CommentedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This element is always linked with link Label and External Node Label.&#xD;&#xA;role : the role of the Label (Stereotype, Source Multiplicity, Target Multiplicity, Name, ...)&#xD;&#xA;iconPath : an icon illustrating the role of the Label&#xD;&#xA;visibleByDefault : if false, the label is not visible when the element is created&#xD;&#xA;&#xD;&#xA;These informations are used by the action Show/Hide Label."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="role" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconPathRole" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="linkLabels" upperBound="-1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenLinkLabel"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="externalNodeLabels" upperBound="-1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenExternalNodeLabel"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibleByDefault" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompartmentVisibilityPreference" eSuperTypes="#//CommentedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This element allows to define the compartments which are hidden (or visible) by default"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibleByDefault" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenCompartment"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompartmentTitleVisibilityPreference"
+ eSuperTypes="#//CommentedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This element allows to define the compartment's title which are hidden (or visible) by default"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibleByDefault" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenCompartment"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConstrainedByReferenceCompartmentItemSemanticEditPolicy"
+ eSuperTypes="#//CommentedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="Documentation" value="Add constraint on Compartment Item Semantic Policy in order to prevent move into compartment of elements which can be contained. This constraint used the child node define in the GMF Model in order to define the correspoding EReference. When a move is executed the item semantic policy will fisrt check that the element can be conatined/referenced by this EReference?"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genView" upperBound="-1"
+ eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenCommonBase"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenerateUsingElementTypeCreationCommand"
+ eSuperTypes="#//CommentedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="Documentation" value="flag that indicated if the code generation should rely on the creation command generated by gmf tooling of the creation commands based on UML.edit framework"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomDiagramUpdaterSingleton" eSuperTypes="#//CommentedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="Documentation" value="This object is used to register the diagram updater instance to use in the code. &#xD;&#xA;The class must extends the generated diagram updater.&#xD;&#xA;&#xD;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="singletonPath" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SpecificNodePlate" eSuperTypes="#//CommentedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This element is always linked to a genView (topLevel, or child)&#xD;&#xA;Used set if an editPart is abstract.&#xD;&#xA;SuperGenViews is a list of all superEditPart.&#xD;&#xA;&#xD;&#xA;Thanks to this, it is possible to factorize code and to decrease the number of generated classes."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editParts" ordered="false"
+ unique="false" lowerBound="1" upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenNode"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nodePlateQualifiedName"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenVisualTypeProvider" eSuperTypes="#//CommentedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Configuration of this diagram's provider to the Visual Type Service,&#xA;which enables canonical view synchronization, drag-and-drop, and&#xA;possibly other capabilities."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="UMLVisualTypeProvider"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="VisualIDOverride">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genView" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenCommonBase"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualID" lowerBound="1"
+ eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="child" upperBound="-1"
+ eType="#//VisualIDOverride" containment="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.genmodel b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.genmodel
new file mode 100644
index 00000000000..570c095dbcf
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/model/papyrusGmfgenExtension.genmodel
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2015 CEA LIST and others.&#xA;&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA;Contributors:&#xA; CEA LIST - Initial API and implementation&#xA;"
+ modelDirectory="/org.eclipse.papyrus.gmfgenextension/src" modelPluginID="org.eclipse.papyrus.gmfgenextension"
+ modelName="PapyrusGmfgenExtension" importerID="org.eclipse.emf.importer.ecore"
+ complianceLevel="8.0" copyrightFields="false" usedGenPackages="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore platform:/plugin/org.eclipse.emf.codegen.ecore/model/GenModel.genmodel#//genmodel platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.genmodel#//gmfgen">
+ <foreignModel>papyrusGmfgenExtension.ecore</foreignModel>
+ <genPackages prefix="Papyrusgmfgenextension" basePackage="org.eclipse.papyrus" disposableProviderFactory="true"
+ ecorePackage="papyrusGmfgenExtension.ecore#/">
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//ExtendedGenView">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//ExtendedGenView/genView"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//ExtendedGenView/isAbstract"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//ExtendedGenView/superGenViews"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//ExtendedGenView/propRefreshHook"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//ExtendedGenView/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//ExtendedGenView/superOwnedEditPart"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="papyrusGmfgenExtension.ecore#//CommentedElement">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//CommentedElement/comment"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//PropertyRefreshHook">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//PropertyRefreshHook/triggeringCondition"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//PropertyRefreshHook/action"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//ExternalHook">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//ExternalHook/classpath"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//SpecificLocator">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//SpecificLocator/genChildSideAffixedNode"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//PapyrusExtensionRootNode">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//PapyrusExtensionRootNode/extensionNodes"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//AlternateCanvas">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//AlternateCanvas/domainDiagramElement"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//AlternateCanvas/alternateTopLevelNodes"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//AlternateCanvas/alternateLinkNodes"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//AlternateCanvas/diagram"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//AlternateGenTopLevelNode">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//AlternateGenTopLevelNode/genTopLevelNode"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//AlternateGenTopLevelNode/typeModelFacet"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//AlternateGenLink">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//AlternateGenLink/genLinkNode"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//AlternateGenLink/typeModelFacet"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//MutatingCanvas">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//MutatingCanvas/alternateCanvases"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//OwnedEditpart">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//OwnedEditpart/name"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//SpecificDiagramUpdater">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//SpecificDiagramUpdater/genNode"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//GenNodeConstraint">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//GenNodeConstraint/genNode"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//GenNodeConstraint/genConstraint"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//SpecificLocatorExternalLabel">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//SpecificLocatorExternalLabel/genExternalNodeLabel"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//AdditionalEditPartCandies">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//AdditionalEditPartCandies/baseEditHelperPackage"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//EditPartUsingDeleteService">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//EditPartUsingDeleteService/name"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//EditPartUsingDeleteService/genView"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//EditPartUsingReorientService">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//EditPartUsingReorientService/name"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//EditPartUsingReorientService/genView"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//LabelVisibilityPreference">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//LabelVisibilityPreference/role"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//LabelVisibilityPreference/iconPathRole"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//LabelVisibilityPreference/linkLabels"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//LabelVisibilityPreference/externalNodeLabels"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//LabelVisibilityPreference/visibleByDefault"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//CompartmentVisibilityPreference">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//CompartmentVisibilityPreference/visibleByDefault"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//CompartmentVisibilityPreference/compartments"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//CompartmentTitleVisibilityPreference">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//CompartmentTitleVisibilityPreference/visibleByDefault"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//CompartmentTitleVisibilityPreference/compartments"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//ConstrainedByReferenceCompartmentItemSemanticEditPolicy">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//ConstrainedByReferenceCompartmentItemSemanticEditPolicy/genView"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//GenerateUsingElementTypeCreationCommand"/>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//CustomDiagramUpdaterSingleton">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//CustomDiagramUpdaterSingleton/singletonPath"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//SpecificNodePlate">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//SpecificNodePlate/editParts"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//SpecificNodePlate/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//SpecificNodePlate/nodePlateQualifiedName"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//GenVisualTypeProvider">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//GenVisualTypeProvider/className"/>
+ </genClasses>
+ <genClasses ecoreClass="papyrusGmfgenExtension.ecore#//VisualIDOverride">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//VisualIDOverride/genView"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute papyrusGmfgenExtension.ecore#//VisualIDOverride/visualID"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference papyrusGmfgenExtension.ecore#//VisualIDOverride/child"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/plugin.properties b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/plugin.properties
new file mode 100644
index 00000000000..3cb5c9b9859
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/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 = Papyrus Extensions to the GMFGen Model Plugin
+providerName=Eclipse Modeling Project
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/plugin.xml b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/plugin.xml
new file mode 100644
index 00000000000..62640bd7662
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/plugin.xml
@@ -0,0 +1,309 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://www.eclipse.org/papyrus/2009/papyrusgmfgenextension"
+ class="org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage"
+ genModel="model/papyrusGmfgenExtension.genmodel"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.popupMenus">
+
+ <objectContribution
+ adaptable="true"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupactions"
+ objectClass="org.eclipse.emf.ecore.EObject">
+ <menu
+ icon="icons/PapyrusLogo16x16.gif"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus"
+ label="Papyrus GMFGen Tools"
+ path="papyrus">
+ </menu>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddNodeQualifiedNameBehavior"
+ enablesFor="*"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddNodeQualifiedNameBehavior"
+ label="Add behavior to display qualified name"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/AddNodeQualifiedNameBehavior">
+ <enablement>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenNode">
+ </objectClass>
+ </enablement>
+ </action>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddNodeStereotypeDisplayBehavior"
+ enablesFor="*"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddNodeStereotypeDisplayBehavior"
+ label="Add behavior to display applied stereotype for a node"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/AddNodeStereotypeDisplayBehavior">
+ <enablement>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenNode">
+ </objectClass>
+ </enablement>
+ </action>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddNodeShowHideCompartmentBehavior"
+ enablesFor="*"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddNodeShowHideBehavior"
+ label="Add behavior to show/hide compartments"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/AddNodeShowHideBehavior">
+ <enablement>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenNode">
+ </objectClass>
+ </enablement>
+ </action>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddNodeShowHideContentsBehavior"
+ enablesFor="*"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddNodeShowHideBehavior"
+ label="Add behavior to show/hide classifiers contents"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/AddNodeShowHideBehavior">
+ <enablement>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenNode">
+ </objectClass>
+ </enablement>
+ </action>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddNodeShowHideLabelsBehavior"
+ enablesFor="*"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddNodeShowHideLabelBehavior"
+ label="Add behavior to show/hide labels"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/AddNodeShowHideBehavior">
+ <enablement>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenNode">
+ </objectClass>
+ </enablement>
+ </action>
+
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddGenLinkStereotypeDisplayBehavior"
+ enablesFor="*"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddGenLinkStereotypeDisplayBehavior"
+ label="Add label to display applied stereotype for a link"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/AddGenLinkStereotypeDisplayBehavior">
+ <enablement>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenLink">
+ </objectClass>
+ </enablement>
+ </action>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddExternalNodeStereotypeDisplayBehavior"
+ enablesFor="*"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddExternalNodeStereotypeDisplayBehavior"
+ label="Add label to display applied stereotype as an external node label"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/AddExternalNodeStereotypeDisplayBehavior">
+ <enablement>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenNode">
+ </objectClass>
+ </enablement>
+ </action>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddExternalNodeFloatingLabelDisplayBehavior"
+ enablesFor="*"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddExternalNodeFloatingNameDisplayBehavior"
+ label="Add label to display Label as an external Floating node label"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/AddExternalNodeFloatingNameDisplayBehavior">
+ <enablement>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenNode">
+ </objectClass>
+ </enablement>
+ </action>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddHyperLinkPopupBarBehavior"
+ enablesFor="*"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddHyperLinkPopupBarBehavior"
+ label="Add hyperlink PopupBar Behavior"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/AddHyperLinkPopupBarBehavior">
+ <enablement>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenNode">
+ </objectClass>
+ </enablement>
+ </action>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.SetVisualIDWithUnusedValue"
+ enablesFor="*"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.SetVisualIDWithUnusedValue"
+ label="Set VisualID with unused value"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/SetVisualIDWithUnusedValue">
+ <enablement>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenCommonBase">
+ </objectClass>
+ </enablement>
+ </action>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddSmallAndLargeIconForPaletteAction"
+ enablesFor="*"
+ icon="icons/palette_view.gif"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.addsmallandlargeiconstopalette"
+ label="Add Icons to Palette Elements"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/iconsManagement">
+ <enablement>
+ <or>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.ToolGroup">
+ </objectClass>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.Palette">
+ </objectClass>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.ToolEntry">
+ </objectClass>
+ </or>
+ </enablement>
+ </action>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddOrUpdateCommentEditParts"
+ enablesFor="*"
+ icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Comment.gif"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddOrUpdateCommentEditParts"
+ label="Update Comments For multi label management"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/AddOrUpdateCommentEditParts">
+ <enablement>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator">
+ </objectClass>
+ </enablement>
+ </action>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddDefaultNamedElementAction"
+ enablesFor="*"
+ icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Class.gif"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddDefaultNamedElementAction"
+ label="Add DefaultNamedElement EditPart"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/AddHyperLinkPopupBarBehavior">
+ <enablement>
+ <or>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator">
+ </objectClass>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenDiagram">
+ </objectClass>
+ </or>
+ </enablement>
+ </action>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddShapeNamedElementAction"
+ enablesFor="*"
+ icon="platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/Image.gif"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddShapeNamedElementAction"
+ label="Add ShapeNamedElement EditPart"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/AddHyperLinkPopupBarBehavior">
+ <enablement>
+ <or>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator">
+ </objectClass>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenDiagram">
+ </objectClass>
+ </or>
+ </enablement>
+ </action>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.SetCompartmentNeedsTitleToTrueAction"
+ icon="icons/none_comp_vis.gif"
+ id="org.eclipse.papyrus.gmfgenextension.action1"
+ label="Set Compartment &quot;Needs Title&quot; to true"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/AddHyperLinkPopupBarBehavior"
+ tooltip="Create Compartment Title Visibility Node (and change &quot;Needs Title&quot; to true)">
+ <enablement>
+ <or>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenCompartment">
+ </objectClass>
+ </or>
+ </enablement>
+ </action>
+
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.AddSemanticElementTypeInGenericTopNode"
+ icon="icons/GenerateMetamodelType.gif"
+ id="org.eclipse.papyrus.gmfgenextension.addSemanticElementTypeInGenericTopNode"
+ label="Add Semantic Element Type In Generic Top Node"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/AddSemanticElementTypeInGenericTopNode"
+ tooltip="Generate Sermantic Metamodel types for UML metamodel">
+ <enablement>
+ <or>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenDiagram">
+ </objectClass>
+ </or>
+ </enablement>
+ </action>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.UpdateElementTypeToMatchGenericType"
+ icon="icons/updateElementType.gif"
+ id="org.eclipse.papyrus.gmfgenextension.updateElementTypeToMatchGenericType"
+ label="Update ElementType To Match Generic Type"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/UpdateElementTypeToMatchGenericType"
+ tooltip="Update ElementType To Match Generic Type">
+ <enablement>
+ <or>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.MetamodelType">
+ </objectClass>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.SpecializationType">
+ </objectClass>
+ </or>
+ </enablement>
+ </action>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.DisplayReport"
+ enablesFor="*"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.TopNodeRepor"
+ label="Display TopNodeReport"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/TopNodeReport">
+ <enablement>
+ <or>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator">
+ </objectClass>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenDiagram">
+ </objectClass>
+ </or>
+ </enablement>
+ </action>
+ <action
+ class="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.TestCodeSetGeneration"
+ enablesFor="*"
+ id="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.TopNodeRepor"
+ label="Display test subsetCode"
+ menubarPath="org.eclipse.papyrus.papyrusgmfgenextension.popupaction.MenuPapyrus/testSubsetCode">
+ <enablement>
+ <or>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator">
+ </objectClass>
+ <objectClass
+ name="org.eclipse.gmf.codegen.gmfgen.GenDiagram">
+ </objectClass>
+ </or>
+ </enablement>
+ </action>
+ </objectContribution>
+ </extension>
+
+</plugin>
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/pom.xml b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/pom.xml
new file mode 100644
index 00000000000..dd626a40851
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus-toolsmiths</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>org.eclipse.papyrus.gmfgenextension</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>2.0.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project> \ No newline at end of file
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AdditionalEditPartCandies.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AdditionalEditPartCandies.java
new file mode 100644
index 00000000000..fa5610e385a
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AdditionalEditPartCandies.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Additional Edit Part Candies</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AdditionalEditPartCandies#getBaseEditHelperPackage <em>Base Edit Helper Package</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAdditionalEditPartCandies()
+ * @model
+ * @generated
+ */
+public interface AdditionalEditPartCandies extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Base Edit Helper Package</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Edit Helper 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>Base Edit Helper Package</em>' attribute.
+ * @see #setBaseEditHelperPackage(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAdditionalEditPartCandies_BaseEditHelperPackage()
+ * @model
+ * @generated
+ */
+ String getBaseEditHelperPackage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.AdditionalEditPartCandies#getBaseEditHelperPackage <em>Base Edit Helper Package</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Edit Helper Package</em>' attribute.
+ * @see #getBaseEditHelperPackage()
+ * @generated
+ */
+ void setBaseEditHelperPackage(String value);
+
+} // AdditionalEditPartCandies
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateCanvas.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateCanvas.java
new file mode 100644
index 00000000000..0a981c98c32
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateCanvas.java
@@ -0,0 +1,125 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Alternate Canvas</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getDomainDiagramElement <em>Domain Diagram Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getAlternateTopLevelNodes <em>Alternate Top Level Nodes</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getAlternateLinkNodes <em>Alternate Link Nodes</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getDiagram <em>Diagram</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAlternateCanvas()
+ * @model
+ * @generated
+ */
+public interface AlternateCanvas extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Domain Diagram Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Domain Diagram Element</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Domain Diagram Element</em>' reference.
+ * @see #setDomainDiagramElement(GenClass)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAlternateCanvas_DomainDiagramElement()
+ * @model required="true"
+ * @generated
+ */
+ GenClass getDomainDiagramElement();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getDomainDiagramElement <em>Domain Diagram Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Domain Diagram Element</em>' reference.
+ * @see #getDomainDiagramElement()
+ * @generated
+ */
+ void setDomainDiagramElement(GenClass value);
+
+ /**
+ * Returns the value of the '<em><b>Alternate Top Level Nodes</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Alternate Top Level Nodes</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>Alternate Top Level Nodes</em>' containment reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAlternateCanvas_AlternateTopLevelNodes()
+ * @model containment="true"
+ * @generated
+ */
+ EList<AlternateGenTopLevelNode> getAlternateTopLevelNodes();
+
+ /**
+ * Returns the value of the '<em><b>Alternate Link Nodes</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Alternate Link Nodes</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>Alternate Link Nodes</em>' containment reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAlternateCanvas_AlternateLinkNodes()
+ * @model containment="true"
+ * @generated
+ */
+ EList<AlternateGenLink> getAlternateLinkNodes();
+
+ /**
+ * Returns the value of the '<em><b>Diagram</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Diagram</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Diagram</em>' reference.
+ * @see #setDiagram(GenDiagram)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAlternateCanvas_Diagram()
+ * @model required="true"
+ * @generated
+ */
+ GenDiagram getDiagram();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getDiagram <em>Diagram</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Diagram</em>' reference.
+ * @see #getDiagram()
+ * @generated
+ */
+ void setDiagram(GenDiagram value);
+
+} // AlternateCanvas
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenLink.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenLink.java
new file mode 100644
index 00000000000..3288cdddf01
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenLink.java
@@ -0,0 +1,88 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Alternate Gen Link</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink#getGenLinkNode <em>Gen Link Node</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink#getTypeModelFacet <em>Type Model Facet</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAlternateGenLink()
+ * @model
+ * @generated
+ */
+public interface AlternateGenLink extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Gen Link Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Gen Link Node</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Gen Link Node</em>' reference.
+ * @see #setGenLinkNode(GenLink)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAlternateGenLink_GenLinkNode()
+ * @model required="true"
+ * @generated
+ */
+ GenLink getGenLinkNode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink#getGenLinkNode <em>Gen Link Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Gen Link Node</em>' reference.
+ * @see #getGenLinkNode()
+ * @generated
+ */
+ void setGenLinkNode(GenLink value);
+
+ /**
+ * Returns the value of the '<em><b>Type Model Facet</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type Model Facet</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>Type Model Facet</em>' containment reference.
+ * @see #setTypeModelFacet(TypeModelFacet)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAlternateGenLink_TypeModelFacet()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ TypeModelFacet getTypeModelFacet();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink#getTypeModelFacet <em>Type Model Facet</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type Model Facet</em>' containment reference.
+ * @see #getTypeModelFacet()
+ * @generated
+ */
+ void setTypeModelFacet(TypeModelFacet value);
+
+} // AlternateGenLink
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenTopLevelNode.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenTopLevelNode.java
new file mode 100644
index 00000000000..d45bf2f8e3c
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/AlternateGenTopLevelNode.java
@@ -0,0 +1,88 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Alternate Gen Top Level Node</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode#getGenTopLevelNode <em>Gen Top Level Node</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode#getTypeModelFacet <em>Type Model Facet</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAlternateGenTopLevelNode()
+ * @model
+ * @generated
+ */
+public interface AlternateGenTopLevelNode extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Gen Top Level Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Gen Top Level Node</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Gen Top Level Node</em>' reference.
+ * @see #setGenTopLevelNode(GenTopLevelNode)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAlternateGenTopLevelNode_GenTopLevelNode()
+ * @model required="true"
+ * @generated
+ */
+ GenTopLevelNode getGenTopLevelNode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode#getGenTopLevelNode <em>Gen Top Level Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Gen Top Level Node</em>' reference.
+ * @see #getGenTopLevelNode()
+ * @generated
+ */
+ void setGenTopLevelNode(GenTopLevelNode value);
+
+ /**
+ * Returns the value of the '<em><b>Type Model Facet</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type Model Facet</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>Type Model Facet</em>' containment reference.
+ * @see #setTypeModelFacet(TypeModelFacet)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getAlternateGenTopLevelNode_TypeModelFacet()
+ * @model containment="true" required="true"
+ * @generated
+ */
+ TypeModelFacet getTypeModelFacet();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode#getTypeModelFacet <em>Type Model Facet</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type Model Facet</em>' containment reference.
+ * @see #getTypeModelFacet()
+ * @generated
+ */
+ void setTypeModelFacet(TypeModelFacet value);
+
+} // AlternateGenTopLevelNode
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CommentedElement.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CommentedElement.java
new file mode 100644
index 00000000000..bf417e51bc3
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CommentedElement.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Commented Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.CommentedElement#getComment <em>Comment</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getCommentedElement()
+ * @model
+ * @generated
+ */
+public interface CommentedElement extends EObject {
+ /**
+ * Returns the value of the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * All extended classes have a comment in order to describe the puprose of this extension
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Comment</em>' attribute.
+ * @see #setComment(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getCommentedElement_Comment()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ String getComment();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.CommentedElement#getComment <em>Comment</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Comment</em>' attribute.
+ * @see #getComment()
+ * @generated
+ */
+ void setComment(String value);
+
+} // CommentedElement
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentTitleVisibilityPreference.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentTitleVisibilityPreference.java
new file mode 100644
index 00000000000..46501b29817
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentTitleVisibilityPreference.java
@@ -0,0 +1,84 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Compartment Title Visibility Preference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This element allows to define the compartment's title which are hidden (or visible) by default
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentTitleVisibilityPreference#isVisibleByDefault <em>Visible By Default</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentTitleVisibilityPreference#getCompartments <em>Compartments</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getCompartmentTitleVisibilityPreference()
+ * @model
+ * @generated
+ */
+public interface CompartmentTitleVisibilityPreference extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Visible By Default</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Visible By Default</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Visible By Default</em>' attribute.
+ * @see #setVisibleByDefault(boolean)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getCompartmentTitleVisibilityPreference_VisibleByDefault()
+ * @model default="true"
+ * @generated
+ */
+ boolean isVisibleByDefault();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentTitleVisibilityPreference#isVisibleByDefault <em>Visible By Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Visible By Default</em>' attribute.
+ * @see #isVisibleByDefault()
+ * @generated
+ */
+ void setVisibleByDefault(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Compartments</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenCompartment}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Compartments</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>Compartments</em>' reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getCompartmentTitleVisibilityPreference_Compartments()
+ * @model
+ * @generated
+ */
+ EList<GenCompartment> getCompartments();
+
+} // CompartmentTitleVisibilityPreference
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentVisibilityPreference.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentVisibilityPreference.java
new file mode 100644
index 00000000000..4b5fafff2a7
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CompartmentVisibilityPreference.java
@@ -0,0 +1,84 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Compartment Visibility Preference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This element allows to define the compartments which are hidden (or visible) by default
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentVisibilityPreference#isVisibleByDefault <em>Visible By Default</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentVisibilityPreference#getCompartments <em>Compartments</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getCompartmentVisibilityPreference()
+ * @model
+ * @generated
+ */
+public interface CompartmentVisibilityPreference extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Visible By Default</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Visible By Default</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Visible By Default</em>' attribute.
+ * @see #setVisibleByDefault(boolean)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getCompartmentVisibilityPreference_VisibleByDefault()
+ * @model default="true"
+ * @generated
+ */
+ boolean isVisibleByDefault();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentVisibilityPreference#isVisibleByDefault <em>Visible By Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Visible By Default</em>' attribute.
+ * @see #isVisibleByDefault()
+ * @generated
+ */
+ void setVisibleByDefault(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Compartments</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenCompartment}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Compartments</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>Compartments</em>' reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getCompartmentVisibilityPreference_Compartments()
+ * @model
+ * @generated
+ */
+ EList<GenCompartment> getCompartments();
+
+} // CompartmentVisibilityPreference
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ConstrainedByReferenceCompartmentItemSemanticEditPolicy.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ConstrainedByReferenceCompartmentItemSemanticEditPolicy.java
new file mode 100644
index 00000000000..b4f402dfe28
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ConstrainedByReferenceCompartmentItemSemanticEditPolicy.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Constrained By Reference Compartment Item Semantic Edit Policy</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.ConstrainedByReferenceCompartmentItemSemanticEditPolicy#getGenView <em>Gen View</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getConstrainedByReferenceCompartmentItemSemanticEditPolicy()
+ * @model annotation="http://www.eclipse.org/emf/2002/GenModel Documentation='Add constraint on Compartment Item Semantic Policy in order to prevent move into compartment of elements which can be contained. This constraint used the child node define in the GMF Model in order to define the correspoding EReference. When a move is executed the item semantic policy will fisrt check that the element can be conatined/referenced by this EReference?'"
+ * @generated
+ */
+public interface ConstrainedByReferenceCompartmentItemSemanticEditPolicy extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Gen View</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenCommonBase}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Gen View</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>Gen View</em>' reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getConstrainedByReferenceCompartmentItemSemanticEditPolicy_GenView()
+ * @model
+ * @generated
+ */
+ EList<GenCommonBase> getGenView();
+
+} // ConstrainedByReferenceCompartmentItemSemanticEditPolicy
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CustomDiagramUpdaterSingleton.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CustomDiagramUpdaterSingleton.java
new file mode 100644
index 00000000000..da501b32c22
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/CustomDiagramUpdaterSingleton.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Custom Diagram Updater Singleton</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.CustomDiagramUpdaterSingleton#getSingletonPath <em>Singleton Path</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getCustomDiagramUpdaterSingleton()
+ * @model annotation="http://www.eclipse.org/emf/2002/GenModel Documentation='This object is used to register the diagram updater instance to use in the code. \r\nThe class must extends the generated diagram updater.\r\n\r\n'"
+ * @generated
+ */
+public interface CustomDiagramUpdaterSingleton extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Singleton Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Singleton 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>Singleton Path</em>' attribute.
+ * @see #setSingletonPath(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getCustomDiagramUpdaterSingleton_SingletonPath()
+ * @model required="true"
+ * @generated
+ */
+ String getSingletonPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.CustomDiagramUpdaterSingleton#getSingletonPath <em>Singleton Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Singleton Path</em>' attribute.
+ * @see #getSingletonPath()
+ * @generated
+ */
+ void setSingletonPath(String value);
+
+} // CustomDiagramUpdaterSingleton
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingDeleteService.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingDeleteService.java
new file mode 100644
index 00000000000..1c92dd1f4aa
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingDeleteService.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Edit Part Using Delete Service</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This element is always linked to a genView (topLevel, or child)
+ * Used set if an editPart is abstract.
+ * SuperGenViews is a list of all superEditPart.
+ *
+ * Thanks to this, it is possible to factorize code and to decrease the number of generated classes.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService#getGenView <em>Gen View</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getEditPartUsingDeleteService()
+ * @model
+ * @generated
+ */
+public interface EditPartUsingDeleteService extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getEditPartUsingDeleteService_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Gen View</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenCommonBase}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Gen View</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>Gen View</em>' reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getEditPartUsingDeleteService_GenView()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<GenCommonBase> getGenView();
+
+} // EditPartUsingDeleteService
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingReorientService.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingReorientService.java
new file mode 100644
index 00000000000..12de25dc4f7
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/EditPartUsingReorientService.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Edit Part Using Reorient Service</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This element is always linked to a genView (topLevel, or child)
+ * Used set if an editPart is abstract.
+ * SuperGenViews is a list of all superEditPart.
+ *
+ * Thanks to this, it is possible to factorize code and to decrease the number of generated classes.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService#getGenView <em>Gen View</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getEditPartUsingReorientService()
+ * @model
+ * @generated
+ */
+public interface EditPartUsingReorientService extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getEditPartUsingReorientService_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Gen View</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenLink}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Gen View</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>Gen View</em>' reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getEditPartUsingReorientService_GenView()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<GenLink> getGenView();
+
+} // EditPartUsingReorientService
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExtendedGenView.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExtendedGenView.java
new file mode 100644
index 00000000000..77fdbb7bb74
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExtendedGenView.java
@@ -0,0 +1,185 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Extended Gen View</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This element is always linked to a genView (topLevel, or child)
+ * Used set if an editPart is abstract.
+ * SuperGenViews is a list of all superEditPart.
+ *
+ * Thanks to this, it is possible to factorize code and to decrease the number of generated classes.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getGenView <em>Gen View</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#isIsAbstract <em>Is Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getSuperGenViews <em>Super Gen Views</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getPropRefreshHook <em>Prop Refresh Hook</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getSuperOwnedEditPart <em>Super Owned Edit Part</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getExtendedGenView()
+ * @model
+ * @generated
+ */
+public interface ExtendedGenView extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Gen View</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenCommonBase}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Gen View</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>Gen View</em>' reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getExtendedGenView_GenView()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ EList<GenCommonBase> getGenView();
+
+ /**
+ * Returns the value of the '<em><b>Is Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Abstract</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Is Abstract</em>' attribute.
+ * @see #setIsAbstract(boolean)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getExtendedGenView_IsAbstract()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ boolean isIsAbstract();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#isIsAbstract <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Is Abstract</em>' attribute.
+ * @see #isIsAbstract()
+ * @generated
+ */
+ void setIsAbstract(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Super Gen Views</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenCommonBase}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Super Gen Views</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Super Gen Views</em>' reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getExtendedGenView_SuperGenViews()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<GenCommonBase> getSuperGenViews();
+
+ /**
+ * Returns the value of the '<em><b>Prop Refresh Hook</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Prop Refresh Hook</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>Prop Refresh Hook</em>' containment reference.
+ * @see #setPropRefreshHook(PropertyRefreshHook)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getExtendedGenView_PropRefreshHook()
+ * @model containment="true" ordered="false"
+ * @generated
+ */
+ PropertyRefreshHook getPropRefreshHook();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getPropRefreshHook <em>Prop Refresh Hook</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Prop Refresh Hook</em>' containment reference.
+ * @see #getPropRefreshHook()
+ * @generated
+ */
+ void setPropRefreshHook(PropertyRefreshHook value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getExtendedGenView_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Super Owned Edit Part</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Super Owned Edit Part</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 Owned Edit Part</em>' attribute.
+ * @see #setSuperOwnedEditPart(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getExtendedGenView_SuperOwnedEditPart()
+ * @model
+ * @generated
+ */
+ String getSuperOwnedEditPart();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getSuperOwnedEditPart <em>Super Owned Edit Part</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Super Owned Edit Part</em>' attribute.
+ * @see #getSuperOwnedEditPart()
+ * @generated
+ */
+ void setSuperOwnedEditPart(String value);
+
+} // ExtendedGenView
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExternalHook.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExternalHook.java
new file mode 100644
index 00000000000..f88baabdf90
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/ExternalHook.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>External Hook</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * The purpose of this class is point to an external class (for example java classes).
+ * the classpath is the path to the this extenal class.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.ExternalHook#getClasspath <em>Classpath</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getExternalHook()
+ * @model
+ * @generated
+ */
+public interface ExternalHook extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Classpath</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Classpath</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Classpath</em>' attribute.
+ * @see #setClasspath(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getExternalHook_Classpath()
+ * @model unique="false" ordered="false"
+ * @generated
+ */
+ String getClasspath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.ExternalHook#getClasspath <em>Classpath</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Classpath</em>' attribute.
+ * @see #getClasspath()
+ * @generated
+ */
+ void setClasspath(String value);
+
+} // ExternalHook
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenNodeConstraint.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenNodeConstraint.java
new file mode 100644
index 00000000000..cd5ff3d4838
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenNodeConstraint.java
@@ -0,0 +1,80 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenConstraint;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen Node Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.GenNodeConstraint#getGenNode <em>Gen Node</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.GenNodeConstraint#getGenConstraint <em>Gen Constraint</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getGenNodeConstraint()
+ * @model
+ * @generated
+ */
+public interface GenNodeConstraint extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Gen Node</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenNode}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Gen Node</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>Gen Node</em>' reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getGenNodeConstraint_GenNode()
+ * @model
+ * @generated
+ */
+ EList<GenNode> getGenNode();
+
+ /**
+ * Returns the value of the '<em><b>Gen Constraint</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Gen Constraint</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Gen Constraint</em>' reference.
+ * @see #setGenConstraint(GenConstraint)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getGenNodeConstraint_GenConstraint()
+ * @model
+ * @generated
+ */
+ GenConstraint getGenConstraint();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.GenNodeConstraint#getGenConstraint <em>Gen Constraint</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Gen Constraint</em>' reference.
+ * @see #getGenConstraint()
+ * @generated
+ */
+ void setGenConstraint(GenConstraint value);
+
+} // GenNodeConstraint
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenVisualTypeProvider.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenVisualTypeProvider.java
new file mode 100644
index 00000000000..4c8872760a4
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenVisualTypeProvider.java
@@ -0,0 +1,115 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import java.util.Optional;
+
+import org.eclipse.emf.common.util.ECollections;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Gen Visual Type Provider</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Configuration of this diagram's provider to the Visual Type Service,
+ * which enables canonical view synchronization, drag-and-drop, and
+ * possibly other capabilities.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider#getClassName <em>Class Name</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getGenVisualTypeProvider()
+ * @model
+ * @generated
+ */
+public interface GenVisualTypeProvider extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Class Name</b></em>' attribute.
+ * The default value is <code>"UMLVisualTypeProvider"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Class Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ *
+ * @return the value of the '<em>Class Name</em>' attribute.
+ * @see #setClassName(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getGenVisualTypeProvider_ClassName()
+ * @model default="UMLVisualTypeProvider"
+ * @generated
+ */
+ String getClassName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider#getClassName <em>Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Class Name</em>' attribute.
+ * @see #getClassName()
+ * @generated
+ */
+ void setClassName(String value);
+
+ /**
+ * Obtains the class name to generate for the Visual Type Provider
+ * extension of the given {@code diagram}, which defaults to
+ * {@code "UMLVisualTypeProvider"} in the case that either there
+ * is no visual type provider in the GMFGen model or it does not
+ * have a class name.
+ *
+ * @param diagram
+ * a diagram generator model element
+ * @return the provider class name
+ * @generated NOT
+ */
+ static String getClassName(GenDiagram diagram) {
+ return Optional.ofNullable(diagram.eResource())
+ .map(Resource::getContents)
+ .orElse(ECollections.<EObject> emptyEList())
+ .stream()
+ .filter(PapyrusExtensionRootNode.class::isInstance).map(PapyrusExtensionRootNode.class::cast)
+ .findFirst()
+ .map(PapyrusExtensionRootNode::getExtensionNodes)
+ .filter(GenVisualTypeProvider.class::isInstance).map(GenVisualTypeProvider.class::cast)
+ .map(GenVisualTypeProvider::getClassName)
+ .orElse(PapyrusgmfgenextensionPackage.Literals.GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME.getDefaultValueLiteral());
+ }
+
+ /**
+ * Obtains the qualified class name to generate for the Visual Type Provider
+ * extension of the given {@code diagram}.
+ *
+ * @param diagram
+ * a diagram generator model element
+ * @return the qualified provider class name
+ * @generated NOT
+ */
+ static String getQualifiedClassName(GenDiagram diagram) {
+ String className = getClassName(diagram);
+
+ return String.format("%s.%s", diagram.getProvidersPackageName(), className);
+ }
+
+} // GenVisualTypeProvider
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenerateUsingElementTypeCreationCommand.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenerateUsingElementTypeCreationCommand.java
new file mode 100644
index 00000000000..d2d26579bde
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/GenerateUsingElementTypeCreationCommand.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Generate Using Element Type Creation Command</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getGenerateUsingElementTypeCreationCommand()
+ * @model annotation="http://www.eclipse.org/emf/2002/GenModel Documentation='flag that indicated if the code generation should rely on the creation command generated by gmf tooling of the creation commands based on UML.edit framework'"
+ * @generated
+ */
+public interface GenerateUsingElementTypeCreationCommand extends CommentedElement {
+} // GenerateUsingElementTypeCreationCommand
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/LabelVisibilityPreference.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/LabelVisibilityPreference.java
new file mode 100644
index 00000000000..17400de80c1
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/LabelVisibilityPreference.java
@@ -0,0 +1,161 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Label Visibility Preference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This element is always linked with link Label and External Node Label.
+ * role : the role of the Label (Stereotype, Source Multiplicity, Target Multiplicity, Name, ...)
+ * iconPath : an icon illustrating the role of the Label
+ * visibleByDefault : if false, the label is not visible when the element is created
+ *
+ * These informations are used by the action Show/Hide Label.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getRole <em>Role</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getIconPathRole <em>Icon Path Role</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getLinkLabels <em>Link Labels</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getExternalNodeLabels <em>External Node Labels</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#isVisibleByDefault <em>Visible By Default</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getLabelVisibilityPreference()
+ * @model
+ * @generated
+ */
+public interface LabelVisibilityPreference extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Role</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Role</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Role</em>' attribute.
+ * @see #setRole(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getLabelVisibilityPreference_Role()
+ * @model required="true"
+ * @generated
+ */
+ String getRole();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getRole <em>Role</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Role</em>' attribute.
+ * @see #getRole()
+ * @generated
+ */
+ void setRole(String value);
+
+ /**
+ * Returns the value of the '<em><b>Icon Path Role</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Icon Path Role</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Icon Path Role</em>' attribute.
+ * @see #setIconPathRole(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getLabelVisibilityPreference_IconPathRole()
+ * @model
+ * @generated
+ */
+ String getIconPathRole();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getIconPathRole <em>Icon Path Role</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Icon Path Role</em>' attribute.
+ * @see #getIconPathRole()
+ * @generated
+ */
+ void setIconPathRole(String value);
+
+ /**
+ * Returns the value of the '<em><b>Link Labels</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenLinkLabel}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Link Labels</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>Link Labels</em>' reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getLabelVisibilityPreference_LinkLabels()
+ * @model
+ * @generated
+ */
+ EList<GenLinkLabel> getLinkLabels();
+
+ /**
+ * Returns the value of the '<em><b>External Node Labels</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>External Node Labels</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>External Node Labels</em>' reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getLabelVisibilityPreference_ExternalNodeLabels()
+ * @model
+ * @generated
+ */
+ EList<GenExternalNodeLabel> getExternalNodeLabels();
+
+ /**
+ * Returns the value of the '<em><b>Visible By Default</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Visible By Default</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Visible By Default</em>' attribute.
+ * @see #setVisibleByDefault(boolean)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getLabelVisibilityPreference_VisibleByDefault()
+ * @model default="true"
+ * @generated
+ */
+ boolean isVisibleByDefault();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#isVisibleByDefault <em>Visible By Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Visible By Default</em>' attribute.
+ * @see #isVisibleByDefault()
+ * @generated
+ */
+ void setVisibleByDefault(boolean value);
+
+} // LabelVisibilityPreference
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/MutatingCanvas.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/MutatingCanvas.java
new file mode 100644
index 00000000000..5a358d280ad
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/MutatingCanvas.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Mutating Canvas</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.MutatingCanvas#getAlternateCanvases <em>Alternate Canvases</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getMutatingCanvas()
+ * @model
+ * @generated
+ */
+public interface MutatingCanvas extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Alternate Canvases</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Alternate Canvases</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>Alternate Canvases</em>' containment reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getMutatingCanvas_AlternateCanvases()
+ * @model containment="true"
+ * @generated
+ */
+ EList<AlternateCanvas> getAlternateCanvases();
+
+} // MutatingCanvas
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/OwnedEditpart.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/OwnedEditpart.java
new file mode 100644
index 00000000000..dcfed56b322
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/OwnedEditpart.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Owned Editpart</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.OwnedEditpart#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getOwnedEditpart()
+ * @model
+ * @generated
+ */
+public interface OwnedEditpart extends ExternalHook {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getOwnedEditpart_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.OwnedEditpart#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // OwnedEditpart
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusExtensionRootNode.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusExtensionRootNode.java
new file mode 100644
index 00000000000..a3d3d69eba5
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusExtensionRootNode.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Papyrus Extension Root Node</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.PapyrusExtensionRootNode#getExtensionNodes <em>Extension Nodes</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getPapyrusExtensionRootNode()
+ * @model
+ * @generated
+ */
+public interface PapyrusExtensionRootNode extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Extension Nodes</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.papyrusgmfgenextension.CommentedElement}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Extension Nodes</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>Extension Nodes</em>' containment reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getPapyrusExtensionRootNode_ExtensionNodes()
+ * @model containment="true"
+ * @generated
+ */
+ EList<CommentedElement> getExtensionNodes();
+
+} // PapyrusExtensionRootNode
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionFactory.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionFactory.java
new file mode 100644
index 00000000000..b445fec8f53
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionFactory.java
@@ -0,0 +1,277 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+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.papyrusgmfgenextension.PapyrusgmfgenextensionPackage
+ * @generated
+ */
+public interface PapyrusgmfgenextensionFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ PapyrusgmfgenextensionFactory eINSTANCE = org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Extended Gen View</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Extended Gen View</em>'.
+ * @generated
+ */
+ ExtendedGenView createExtendedGenView();
+
+ /**
+ * Returns a new object of class '<em>Commented Element</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Commented Element</em>'.
+ * @generated
+ */
+ CommentedElement createCommentedElement();
+
+ /**
+ * Returns a new object of class '<em>Property Refresh Hook</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Property Refresh Hook</em>'.
+ * @generated
+ */
+ PropertyRefreshHook createPropertyRefreshHook();
+
+ /**
+ * Returns a new object of class '<em>External Hook</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>External Hook</em>'.
+ * @generated
+ */
+ ExternalHook createExternalHook();
+
+ /**
+ * Returns a new object of class '<em>Specific Locator</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Specific Locator</em>'.
+ * @generated
+ */
+ SpecificLocator createSpecificLocator();
+
+ /**
+ * Returns a new object of class '<em>Papyrus Extension Root Node</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Papyrus Extension Root Node</em>'.
+ * @generated
+ */
+ PapyrusExtensionRootNode createPapyrusExtensionRootNode();
+
+ /**
+ * Returns a new object of class '<em>Alternate Canvas</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Alternate Canvas</em>'.
+ * @generated
+ */
+ AlternateCanvas createAlternateCanvas();
+
+ /**
+ * Returns a new object of class '<em>Alternate Gen Top Level Node</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Alternate Gen Top Level Node</em>'.
+ * @generated
+ */
+ AlternateGenTopLevelNode createAlternateGenTopLevelNode();
+
+ /**
+ * Returns a new object of class '<em>Alternate Gen Link</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Alternate Gen Link</em>'.
+ * @generated
+ */
+ AlternateGenLink createAlternateGenLink();
+
+ /**
+ * Returns a new object of class '<em>Mutating Canvas</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Mutating Canvas</em>'.
+ * @generated
+ */
+ MutatingCanvas createMutatingCanvas();
+
+ /**
+ * Returns a new object of class '<em>Owned Editpart</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Owned Editpart</em>'.
+ * @generated
+ */
+ OwnedEditpart createOwnedEditpart();
+
+ /**
+ * Returns a new object of class '<em>Specific Diagram Updater</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Specific Diagram Updater</em>'.
+ * @generated
+ */
+ SpecificDiagramUpdater createSpecificDiagramUpdater();
+
+ /**
+ * Returns a new object of class '<em>Gen Node Constraint</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Gen Node Constraint</em>'.
+ * @generated
+ */
+ GenNodeConstraint createGenNodeConstraint();
+
+ /**
+ * Returns a new object of class '<em>Specific Locator External Label</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Specific Locator External Label</em>'.
+ * @generated
+ */
+ SpecificLocatorExternalLabel createSpecificLocatorExternalLabel();
+
+ /**
+ * Returns a new object of class '<em>Additional Edit Part Candies</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Additional Edit Part Candies</em>'.
+ * @generated
+ */
+ AdditionalEditPartCandies createAdditionalEditPartCandies();
+
+ /**
+ * Returns a new object of class '<em>Edit Part Using Delete Service</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Edit Part Using Delete Service</em>'.
+ * @generated
+ */
+ EditPartUsingDeleteService createEditPartUsingDeleteService();
+
+ /**
+ * Returns a new object of class '<em>Edit Part Using Reorient Service</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Edit Part Using Reorient Service</em>'.
+ * @generated
+ */
+ EditPartUsingReorientService createEditPartUsingReorientService();
+
+ /**
+ * Returns a new object of class '<em>Label Visibility Preference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Label Visibility Preference</em>'.
+ * @generated
+ */
+ LabelVisibilityPreference createLabelVisibilityPreference();
+
+ /**
+ * Returns a new object of class '<em>Compartment Visibility Preference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Compartment Visibility Preference</em>'.
+ * @generated
+ */
+ CompartmentVisibilityPreference createCompartmentVisibilityPreference();
+
+ /**
+ * Returns a new object of class '<em>Compartment Title Visibility Preference</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Compartment Title Visibility Preference</em>'.
+ * @generated
+ */
+ CompartmentTitleVisibilityPreference createCompartmentTitleVisibilityPreference();
+
+ /**
+ * Returns a new object of class '<em>Constrained By Reference Compartment Item Semantic Edit Policy</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Constrained By Reference Compartment Item Semantic Edit Policy</em>'.
+ * @generated
+ */
+ ConstrainedByReferenceCompartmentItemSemanticEditPolicy createConstrainedByReferenceCompartmentItemSemanticEditPolicy();
+
+ /**
+ * Returns a new object of class '<em>Generate Using Element Type Creation Command</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Generate Using Element Type Creation Command</em>'.
+ * @generated
+ */
+ GenerateUsingElementTypeCreationCommand createGenerateUsingElementTypeCreationCommand();
+
+ /**
+ * Returns a new object of class '<em>Custom Diagram Updater Singleton</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Custom Diagram Updater Singleton</em>'.
+ * @generated
+ */
+ CustomDiagramUpdaterSingleton createCustomDiagramUpdaterSingleton();
+
+ /**
+ * Returns a new object of class '<em>Specific Node Plate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Specific Node Plate</em>'.
+ * @generated
+ */
+ SpecificNodePlate createSpecificNodePlate();
+
+ /**
+ * Returns a new object of class '<em>Gen Visual Type Provider</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Gen Visual Type Provider</em>'.
+ * @generated
+ */
+ GenVisualTypeProvider createGenVisualTypeProvider();
+
+ /**
+ * Returns a new object of class '<em>Visual ID Override</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Visual ID Override</em>'.
+ * @generated
+ */
+ VisualIDOverride createVisualIDOverride();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ PapyrusgmfgenextensionPackage getPapyrusgmfgenextensionPackage();
+
+} //PapyrusgmfgenextensionFactory
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionPackage.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionPackage.java
new file mode 100644
index 00000000000..cb170ece28e
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PapyrusgmfgenextensionPackage.java
@@ -0,0 +1,2740 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface PapyrusgmfgenextensionPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "papyrusgmfgenextension";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/2009/papyrusgmfgenextension";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "papyrusgmfgenextension";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ PapyrusgmfgenextensionPackage eINSTANCE = org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CommentedElementImpl <em>Commented Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.CommentedElementImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getCommentedElement()
+ * @generated
+ */
+ int COMMENTED_ELEMENT = 1;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMMENTED_ELEMENT__COMMENT = 0;
+
+ /**
+ * The number of structural features of the '<em>Commented Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMMENTED_ELEMENT_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExtendedGenViewImpl <em>Extended Gen View</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.ExtendedGenViewImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getExtendedGenView()
+ * @generated
+ */
+ int EXTENDED_GEN_VIEW = 0;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTENDED_GEN_VIEW__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Gen View</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTENDED_GEN_VIEW__GEN_VIEW = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Is Abstract</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTENDED_GEN_VIEW__IS_ABSTRACT = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Super Gen Views</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTENDED_GEN_VIEW__SUPER_GEN_VIEWS = COMMENTED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Prop Refresh Hook</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTENDED_GEN_VIEW__PROP_REFRESH_HOOK = COMMENTED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTENDED_GEN_VIEW__NAME = COMMENTED_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Super Owned Edit Part</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTENDED_GEN_VIEW__SUPER_OWNED_EDIT_PART = COMMENTED_ELEMENT_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Extended Gen View</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTENDED_GEN_VIEW_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExternalHookImpl <em>External Hook</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.ExternalHookImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getExternalHook()
+ * @generated
+ */
+ int EXTERNAL_HOOK = 3;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTERNAL_HOOK__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Classpath</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTERNAL_HOOK__CLASSPATH = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>External Hook</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EXTERNAL_HOOK_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.PropertyRefreshHookImpl <em>Property Refresh Hook</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PropertyRefreshHookImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getPropertyRefreshHook()
+ * @generated
+ */
+ int PROPERTY_REFRESH_HOOK = 2;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_REFRESH_HOOK__COMMENT = EXTERNAL_HOOK__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Classpath</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_REFRESH_HOOK__CLASSPATH = EXTERNAL_HOOK__CLASSPATH;
+
+ /**
+ * The feature id for the '<em><b>Triggering Condition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_REFRESH_HOOK__TRIGGERING_CONDITION = EXTERNAL_HOOK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_REFRESH_HOOK__ACTION = EXTERNAL_HOOK_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Property Refresh Hook</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_REFRESH_HOOK_FEATURE_COUNT = EXTERNAL_HOOK_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificLocatorImpl <em>Specific Locator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificLocatorImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getSpecificLocator()
+ * @generated
+ */
+ int SPECIFIC_LOCATOR = 4;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_LOCATOR__COMMENT = EXTERNAL_HOOK__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Classpath</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_LOCATOR__CLASSPATH = EXTERNAL_HOOK__CLASSPATH;
+
+ /**
+ * The feature id for the '<em><b>Gen Child Side Affixed Node</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_LOCATOR__GEN_CHILD_SIDE_AFFIXED_NODE = EXTERNAL_HOOK_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Specific Locator</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_LOCATOR_FEATURE_COUNT = EXTERNAL_HOOK_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusExtensionRootNodeImpl <em>Papyrus Extension Root Node</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusExtensionRootNodeImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getPapyrusExtensionRootNode()
+ * @generated
+ */
+ int PAPYRUS_EXTENSION_ROOT_NODE = 5;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_EXTENSION_ROOT_NODE__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Extension Nodes</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_EXTENSION_ROOT_NODE__EXTENSION_NODES = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Papyrus Extension Root Node</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAPYRUS_EXTENSION_ROOT_NODE_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateCanvasImpl <em>Alternate Canvas</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateCanvasImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getAlternateCanvas()
+ * @generated
+ */
+ int ALTERNATE_CANVAS = 6;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALTERNATE_CANVAS__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Domain Diagram Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALTERNATE_CANVAS__DOMAIN_DIAGRAM_ELEMENT = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Alternate Top Level Nodes</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALTERNATE_CANVAS__ALTERNATE_TOP_LEVEL_NODES = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Alternate Link Nodes</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALTERNATE_CANVAS__ALTERNATE_LINK_NODES = COMMENTED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Diagram</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALTERNATE_CANVAS__DIAGRAM = COMMENTED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Alternate Canvas</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALTERNATE_CANVAS_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateGenTopLevelNodeImpl <em>Alternate Gen Top Level Node</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateGenTopLevelNodeImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getAlternateGenTopLevelNode()
+ * @generated
+ */
+ int ALTERNATE_GEN_TOP_LEVEL_NODE = 7;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALTERNATE_GEN_TOP_LEVEL_NODE__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Gen Top Level Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALTERNATE_GEN_TOP_LEVEL_NODE__GEN_TOP_LEVEL_NODE = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Type Model Facet</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALTERNATE_GEN_TOP_LEVEL_NODE__TYPE_MODEL_FACET = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Alternate Gen Top Level Node</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALTERNATE_GEN_TOP_LEVEL_NODE_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateGenLinkImpl <em>Alternate Gen Link</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateGenLinkImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getAlternateGenLink()
+ * @generated
+ */
+ int ALTERNATE_GEN_LINK = 8;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALTERNATE_GEN_LINK__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Gen Link Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALTERNATE_GEN_LINK__GEN_LINK_NODE = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Type Model Facet</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALTERNATE_GEN_LINK__TYPE_MODEL_FACET = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Alternate Gen Link</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALTERNATE_GEN_LINK_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.MutatingCanvasImpl <em>Mutating Canvas</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.MutatingCanvasImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getMutatingCanvas()
+ * @generated
+ */
+ int MUTATING_CANVAS = 9;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTATING_CANVAS__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Alternate Canvases</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTATING_CANVAS__ALTERNATE_CANVASES = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Mutating Canvas</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MUTATING_CANVAS_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.OwnedEditpartImpl <em>Owned Editpart</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.OwnedEditpartImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getOwnedEditpart()
+ * @generated
+ */
+ int OWNED_EDITPART = 10;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OWNED_EDITPART__COMMENT = EXTERNAL_HOOK__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Classpath</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OWNED_EDITPART__CLASSPATH = EXTERNAL_HOOK__CLASSPATH;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OWNED_EDITPART__NAME = EXTERNAL_HOOK_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Owned Editpart</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OWNED_EDITPART_FEATURE_COUNT = EXTERNAL_HOOK_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificDiagramUpdaterImpl <em>Specific Diagram Updater</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificDiagramUpdaterImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getSpecificDiagramUpdater()
+ * @generated
+ */
+ int SPECIFIC_DIAGRAM_UPDATER = 11;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_DIAGRAM_UPDATER__COMMENT = EXTERNAL_HOOK__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Classpath</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_DIAGRAM_UPDATER__CLASSPATH = EXTERNAL_HOOK__CLASSPATH;
+
+ /**
+ * The feature id for the '<em><b>Gen Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_DIAGRAM_UPDATER__GEN_NODE = EXTERNAL_HOOK_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Specific Diagram Updater</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_DIAGRAM_UPDATER_FEATURE_COUNT = EXTERNAL_HOOK_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.GenNodeConstraintImpl <em>Gen Node Constraint</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.GenNodeConstraintImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getGenNodeConstraint()
+ * @generated
+ */
+ int GEN_NODE_CONSTRAINT = 12;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_NODE_CONSTRAINT__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Gen Node</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_NODE_CONSTRAINT__GEN_NODE = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Gen Constraint</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_NODE_CONSTRAINT__GEN_CONSTRAINT = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Gen Node Constraint</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_NODE_CONSTRAINT_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificLocatorExternalLabelImpl <em>Specific Locator External Label</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificLocatorExternalLabelImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getSpecificLocatorExternalLabel()
+ * @generated
+ */
+ int SPECIFIC_LOCATOR_EXTERNAL_LABEL = 13;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_LOCATOR_EXTERNAL_LABEL__COMMENT = EXTERNAL_HOOK__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Classpath</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_LOCATOR_EXTERNAL_LABEL__CLASSPATH = EXTERNAL_HOOK__CLASSPATH;
+
+ /**
+ * The feature id for the '<em><b>Gen External Node Label</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_LOCATOR_EXTERNAL_LABEL__GEN_EXTERNAL_NODE_LABEL = EXTERNAL_HOOK_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Specific Locator External Label</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_LOCATOR_EXTERNAL_LABEL_FEATURE_COUNT = EXTERNAL_HOOK_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AdditionalEditPartCandiesImpl <em>Additional Edit Part Candies</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.AdditionalEditPartCandiesImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getAdditionalEditPartCandies()
+ * @generated
+ */
+ int ADDITIONAL_EDIT_PART_CANDIES = 14;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDITIONAL_EDIT_PART_CANDIES__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Base Edit Helper Package</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDITIONAL_EDIT_PART_CANDIES__BASE_EDIT_HELPER_PACKAGE = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Additional Edit Part Candies</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDITIONAL_EDIT_PART_CANDIES_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.EditPartUsingDeleteServiceImpl <em>Edit Part Using Delete Service</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.EditPartUsingDeleteServiceImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getEditPartUsingDeleteService()
+ * @generated
+ */
+ int EDIT_PART_USING_DELETE_SERVICE = 15;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EDIT_PART_USING_DELETE_SERVICE__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EDIT_PART_USING_DELETE_SERVICE__NAME = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Gen View</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EDIT_PART_USING_DELETE_SERVICE__GEN_VIEW = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Edit Part Using Delete Service</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EDIT_PART_USING_DELETE_SERVICE_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.EditPartUsingReorientServiceImpl <em>Edit Part Using Reorient Service</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.EditPartUsingReorientServiceImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getEditPartUsingReorientService()
+ * @generated
+ */
+ int EDIT_PART_USING_REORIENT_SERVICE = 16;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EDIT_PART_USING_REORIENT_SERVICE__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EDIT_PART_USING_REORIENT_SERVICE__NAME = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Gen View</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EDIT_PART_USING_REORIENT_SERVICE__GEN_VIEW = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Edit Part Using Reorient Service</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EDIT_PART_USING_REORIENT_SERVICE_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.LabelVisibilityPreferenceImpl <em>Label Visibility Preference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.LabelVisibilityPreferenceImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getLabelVisibilityPreference()
+ * @generated
+ */
+ int LABEL_VISIBILITY_PREFERENCE = 17;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LABEL_VISIBILITY_PREFERENCE__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Role</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LABEL_VISIBILITY_PREFERENCE__ROLE = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Icon Path Role</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LABEL_VISIBILITY_PREFERENCE__ICON_PATH_ROLE = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Link Labels</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LABEL_VISIBILITY_PREFERENCE__LINK_LABELS = COMMENTED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>External Node Labels</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LABEL_VISIBILITY_PREFERENCE__EXTERNAL_NODE_LABELS = COMMENTED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Visible By Default</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LABEL_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT = COMMENTED_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Label Visibility Preference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LABEL_VISIBILITY_PREFERENCE_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CompartmentVisibilityPreferenceImpl <em>Compartment Visibility Preference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.CompartmentVisibilityPreferenceImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getCompartmentVisibilityPreference()
+ * @generated
+ */
+ int COMPARTMENT_VISIBILITY_PREFERENCE = 18;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARTMENT_VISIBILITY_PREFERENCE__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Visible By Default</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARTMENT_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Compartments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARTMENT_VISIBILITY_PREFERENCE__COMPARTMENTS = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Compartment Visibility Preference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARTMENT_VISIBILITY_PREFERENCE_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CompartmentTitleVisibilityPreferenceImpl <em>Compartment Title Visibility Preference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.CompartmentTitleVisibilityPreferenceImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getCompartmentTitleVisibilityPreference()
+ * @generated
+ */
+ int COMPARTMENT_TITLE_VISIBILITY_PREFERENCE = 19;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Visible By Default</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Compartments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__COMPARTMENTS = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Compartment Title Visibility Preference</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPARTMENT_TITLE_VISIBILITY_PREFERENCE_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl <em>Constrained By Reference Compartment Item Semantic Edit Policy</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getConstrainedByReferenceCompartmentItemSemanticEditPolicy()
+ * @generated
+ */
+ int CONSTRAINED_BY_REFERENCE_COMPARTMENT_ITEM_SEMANTIC_EDIT_POLICY = 20;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINED_BY_REFERENCE_COMPARTMENT_ITEM_SEMANTIC_EDIT_POLICY__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Gen View</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINED_BY_REFERENCE_COMPARTMENT_ITEM_SEMANTIC_EDIT_POLICY__GEN_VIEW = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Constrained By Reference Compartment Item Semantic Edit Policy</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINED_BY_REFERENCE_COMPARTMENT_ITEM_SEMANTIC_EDIT_POLICY_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.GenerateUsingElementTypeCreationCommandImpl <em>Generate Using Element Type Creation Command</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.GenerateUsingElementTypeCreationCommandImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getGenerateUsingElementTypeCreationCommand()
+ * @generated
+ */
+ int GENERATE_USING_ELEMENT_TYPE_CREATION_COMMAND = 21;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERATE_USING_ELEMENT_TYPE_CREATION_COMMAND__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The number of structural features of the '<em>Generate Using Element Type Creation Command</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GENERATE_USING_ELEMENT_TYPE_CREATION_COMMAND_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CustomDiagramUpdaterSingletonImpl <em>Custom Diagram Updater Singleton</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.CustomDiagramUpdaterSingletonImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getCustomDiagramUpdaterSingleton()
+ * @generated
+ */
+ int CUSTOM_DIAGRAM_UPDATER_SINGLETON = 22;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOM_DIAGRAM_UPDATER_SINGLETON__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Singleton Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOM_DIAGRAM_UPDATER_SINGLETON__SINGLETON_PATH = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Custom Diagram Updater Singleton</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOM_DIAGRAM_UPDATER_SINGLETON_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificNodePlateImpl <em>Specific Node Plate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificNodePlateImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getSpecificNodePlate()
+ * @generated
+ */
+ int SPECIFIC_NODE_PLATE = 23;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_NODE_PLATE__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Edit Parts</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_NODE_PLATE__EDIT_PARTS = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_NODE_PLATE__NAME = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Node Plate Qualified Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_NODE_PLATE__NODE_PLATE_QUALIFIED_NAME = COMMENTED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Specific Node Plate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPECIFIC_NODE_PLATE_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.GenVisualTypeProviderImpl <em>Gen Visual Type Provider</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.GenVisualTypeProviderImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getGenVisualTypeProvider()
+ * @generated
+ */
+ int GEN_VISUAL_TYPE_PROVIDER = 24;
+
+ /**
+ * The feature id for the '<em><b>Comment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_VISUAL_TYPE_PROVIDER__COMMENT = COMMENTED_ELEMENT__COMMENT;
+
+ /**
+ * The feature id for the '<em><b>Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME = COMMENTED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Gen Visual Type Provider</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GEN_VISUAL_TYPE_PROVIDER_FEATURE_COUNT = COMMENTED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.VisualIDOverrideImpl <em>Visual ID Override</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.VisualIDOverrideImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getVisualIDOverride()
+ * @generated
+ */
+ int VISUAL_ID_OVERRIDE = 25;
+
+ /**
+ * The feature id for the '<em><b>Gen View</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISUAL_ID_OVERRIDE__GEN_VIEW = 0;
+
+ /**
+ * The feature id for the '<em><b>Visual ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISUAL_ID_OVERRIDE__VISUAL_ID = 1;
+
+ /**
+ * The feature id for the '<em><b>Child</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISUAL_ID_OVERRIDE__CHILD = 2;
+
+ /**
+ * The number of structural features of the '<em>Visual ID Override</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISUAL_ID_OVERRIDE_FEATURE_COUNT = 3;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView <em>Extended Gen View</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Extended Gen View</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView
+ * @generated
+ */
+ EClass getExtendedGenView();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getGenView <em>Gen View</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Gen View</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getGenView()
+ * @see #getExtendedGenView()
+ * @generated
+ */
+ EReference getExtendedGenView_GenView();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#isIsAbstract <em>Is Abstract</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Is Abstract</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#isIsAbstract()
+ * @see #getExtendedGenView()
+ * @generated
+ */
+ EAttribute getExtendedGenView_IsAbstract();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getSuperGenViews <em>Super Gen Views</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Super Gen Views</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getSuperGenViews()
+ * @see #getExtendedGenView()
+ * @generated
+ */
+ EReference getExtendedGenView_SuperGenViews();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getPropRefreshHook <em>Prop Refresh Hook</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Prop Refresh Hook</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getPropRefreshHook()
+ * @see #getExtendedGenView()
+ * @generated
+ */
+ EReference getExtendedGenView_PropRefreshHook();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getName()
+ * @see #getExtendedGenView()
+ * @generated
+ */
+ EAttribute getExtendedGenView_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getSuperOwnedEditPart <em>Super Owned Edit Part</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Super Owned Edit Part</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView#getSuperOwnedEditPart()
+ * @see #getExtendedGenView()
+ * @generated
+ */
+ EAttribute getExtendedGenView_SuperOwnedEditPart();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.CommentedElement <em>Commented Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Commented Element</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.CommentedElement
+ * @generated
+ */
+ EClass getCommentedElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.CommentedElement#getComment <em>Comment</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Comment</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.CommentedElement#getComment()
+ * @see #getCommentedElement()
+ * @generated
+ */
+ EAttribute getCommentedElement_Comment();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook <em>Property Refresh Hook</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Property Refresh Hook</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook
+ * @generated
+ */
+ EClass getPropertyRefreshHook();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook#getTriggeringCondition <em>Triggering Condition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Triggering Condition</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook#getTriggeringCondition()
+ * @see #getPropertyRefreshHook()
+ * @generated
+ */
+ EAttribute getPropertyRefreshHook_TriggeringCondition();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook#getAction <em>Action</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Action</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook#getAction()
+ * @see #getPropertyRefreshHook()
+ * @generated
+ */
+ EAttribute getPropertyRefreshHook_Action();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.ExternalHook <em>External Hook</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>External Hook</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.ExternalHook
+ * @generated
+ */
+ EClass getExternalHook();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.ExternalHook#getClasspath <em>Classpath</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Classpath</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.ExternalHook#getClasspath()
+ * @see #getExternalHook()
+ * @generated
+ */
+ EAttribute getExternalHook_Classpath();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocator <em>Specific Locator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Specific Locator</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocator
+ * @generated
+ */
+ EClass getSpecificLocator();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocator#getGenChildSideAffixedNode <em>Gen Child Side Affixed Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Gen Child Side Affixed Node</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocator#getGenChildSideAffixedNode()
+ * @see #getSpecificLocator()
+ * @generated
+ */
+ EReference getSpecificLocator_GenChildSideAffixedNode();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.PapyrusExtensionRootNode <em>Papyrus Extension Root Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Papyrus Extension Root Node</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusExtensionRootNode
+ * @generated
+ */
+ EClass getPapyrusExtensionRootNode();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.PapyrusExtensionRootNode#getExtensionNodes <em>Extension Nodes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Extension Nodes</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusExtensionRootNode#getExtensionNodes()
+ * @see #getPapyrusExtensionRootNode()
+ * @generated
+ */
+ EReference getPapyrusExtensionRootNode_ExtensionNodes();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas <em>Alternate Canvas</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Alternate Canvas</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas
+ * @generated
+ */
+ EClass getAlternateCanvas();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getDomainDiagramElement <em>Domain Diagram Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Domain Diagram Element</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getDomainDiagramElement()
+ * @see #getAlternateCanvas()
+ * @generated
+ */
+ EReference getAlternateCanvas_DomainDiagramElement();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getAlternateTopLevelNodes <em>Alternate Top Level Nodes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Alternate Top Level Nodes</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getAlternateTopLevelNodes()
+ * @see #getAlternateCanvas()
+ * @generated
+ */
+ EReference getAlternateCanvas_AlternateTopLevelNodes();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getAlternateLinkNodes <em>Alternate Link Nodes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Alternate Link Nodes</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getAlternateLinkNodes()
+ * @see #getAlternateCanvas()
+ * @generated
+ */
+ EReference getAlternateCanvas_AlternateLinkNodes();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getDiagram <em>Diagram</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Diagram</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas#getDiagram()
+ * @see #getAlternateCanvas()
+ * @generated
+ */
+ EReference getAlternateCanvas_Diagram();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode <em>Alternate Gen Top Level Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Alternate Gen Top Level Node</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode
+ * @generated
+ */
+ EClass getAlternateGenTopLevelNode();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode#getGenTopLevelNode <em>Gen Top Level Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Gen Top Level Node</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode#getGenTopLevelNode()
+ * @see #getAlternateGenTopLevelNode()
+ * @generated
+ */
+ EReference getAlternateGenTopLevelNode_GenTopLevelNode();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode#getTypeModelFacet <em>Type Model Facet</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Type Model Facet</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode#getTypeModelFacet()
+ * @see #getAlternateGenTopLevelNode()
+ * @generated
+ */
+ EReference getAlternateGenTopLevelNode_TypeModelFacet();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink <em>Alternate Gen Link</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Alternate Gen Link</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink
+ * @generated
+ */
+ EClass getAlternateGenLink();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink#getGenLinkNode <em>Gen Link Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Gen Link Node</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink#getGenLinkNode()
+ * @see #getAlternateGenLink()
+ * @generated
+ */
+ EReference getAlternateGenLink_GenLinkNode();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink#getTypeModelFacet <em>Type Model Facet</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Type Model Facet</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink#getTypeModelFacet()
+ * @see #getAlternateGenLink()
+ * @generated
+ */
+ EReference getAlternateGenLink_TypeModelFacet();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.MutatingCanvas <em>Mutating Canvas</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Mutating Canvas</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.MutatingCanvas
+ * @generated
+ */
+ EClass getMutatingCanvas();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.MutatingCanvas#getAlternateCanvases <em>Alternate Canvases</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Alternate Canvases</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.MutatingCanvas#getAlternateCanvases()
+ * @see #getMutatingCanvas()
+ * @generated
+ */
+ EReference getMutatingCanvas_AlternateCanvases();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.OwnedEditpart <em>Owned Editpart</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Owned Editpart</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.OwnedEditpart
+ * @generated
+ */
+ EClass getOwnedEditpart();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.OwnedEditpart#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.OwnedEditpart#getName()
+ * @see #getOwnedEditpart()
+ * @generated
+ */
+ EAttribute getOwnedEditpart_Name();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificDiagramUpdater <em>Specific Diagram Updater</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Specific Diagram Updater</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.SpecificDiagramUpdater
+ * @generated
+ */
+ EClass getSpecificDiagramUpdater();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificDiagramUpdater#getGenNode <em>Gen Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Gen Node</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.SpecificDiagramUpdater#getGenNode()
+ * @see #getSpecificDiagramUpdater()
+ * @generated
+ */
+ EReference getSpecificDiagramUpdater_GenNode();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.GenNodeConstraint <em>Gen Node Constraint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Gen Node Constraint</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.GenNodeConstraint
+ * @generated
+ */
+ EClass getGenNodeConstraint();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.GenNodeConstraint#getGenNode <em>Gen Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Gen Node</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.GenNodeConstraint#getGenNode()
+ * @see #getGenNodeConstraint()
+ * @generated
+ */
+ EReference getGenNodeConstraint_GenNode();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.papyrusgmfgenextension.GenNodeConstraint#getGenConstraint <em>Gen Constraint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Gen Constraint</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.GenNodeConstraint#getGenConstraint()
+ * @see #getGenNodeConstraint()
+ * @generated
+ */
+ EReference getGenNodeConstraint_GenConstraint();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocatorExternalLabel <em>Specific Locator External Label</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Specific Locator External Label</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocatorExternalLabel
+ * @generated
+ */
+ EClass getSpecificLocatorExternalLabel();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocatorExternalLabel#getGenExternalNodeLabel <em>Gen External Node Label</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Gen External Node Label</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocatorExternalLabel#getGenExternalNodeLabel()
+ * @see #getSpecificLocatorExternalLabel()
+ * @generated
+ */
+ EReference getSpecificLocatorExternalLabel_GenExternalNodeLabel();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.AdditionalEditPartCandies <em>Additional Edit Part Candies</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Additional Edit Part Candies</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.AdditionalEditPartCandies
+ * @generated
+ */
+ EClass getAdditionalEditPartCandies();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.AdditionalEditPartCandies#getBaseEditHelperPackage <em>Base Edit Helper Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Base Edit Helper Package</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.AdditionalEditPartCandies#getBaseEditHelperPackage()
+ * @see #getAdditionalEditPartCandies()
+ * @generated
+ */
+ EAttribute getAdditionalEditPartCandies_BaseEditHelperPackage();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService <em>Edit Part Using Delete Service</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Edit Part Using Delete Service</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService
+ * @generated
+ */
+ EClass getEditPartUsingDeleteService();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService#getName()
+ * @see #getEditPartUsingDeleteService()
+ * @generated
+ */
+ EAttribute getEditPartUsingDeleteService_Name();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService#getGenView <em>Gen View</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Gen View</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService#getGenView()
+ * @see #getEditPartUsingDeleteService()
+ * @generated
+ */
+ EReference getEditPartUsingDeleteService_GenView();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService <em>Edit Part Using Reorient Service</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Edit Part Using Reorient Service</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService
+ * @generated
+ */
+ EClass getEditPartUsingReorientService();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService#getName()
+ * @see #getEditPartUsingReorientService()
+ * @generated
+ */
+ EAttribute getEditPartUsingReorientService_Name();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService#getGenView <em>Gen View</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Gen View</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService#getGenView()
+ * @see #getEditPartUsingReorientService()
+ * @generated
+ */
+ EReference getEditPartUsingReorientService_GenView();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference <em>Label Visibility Preference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Label Visibility Preference</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference
+ * @generated
+ */
+ EClass getLabelVisibilityPreference();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getRole <em>Role</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Role</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getRole()
+ * @see #getLabelVisibilityPreference()
+ * @generated
+ */
+ EAttribute getLabelVisibilityPreference_Role();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getIconPathRole <em>Icon Path Role</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Icon Path Role</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getIconPathRole()
+ * @see #getLabelVisibilityPreference()
+ * @generated
+ */
+ EAttribute getLabelVisibilityPreference_IconPathRole();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getLinkLabels <em>Link Labels</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Link Labels</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getLinkLabels()
+ * @see #getLabelVisibilityPreference()
+ * @generated
+ */
+ EReference getLabelVisibilityPreference_LinkLabels();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getExternalNodeLabels <em>External Node Labels</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>External Node Labels</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#getExternalNodeLabels()
+ * @see #getLabelVisibilityPreference()
+ * @generated
+ */
+ EReference getLabelVisibilityPreference_ExternalNodeLabels();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#isVisibleByDefault <em>Visible By Default</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Visible By Default</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference#isVisibleByDefault()
+ * @see #getLabelVisibilityPreference()
+ * @generated
+ */
+ EAttribute getLabelVisibilityPreference_VisibleByDefault();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentVisibilityPreference <em>Compartment Visibility Preference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Compartment Visibility Preference</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.CompartmentVisibilityPreference
+ * @generated
+ */
+ EClass getCompartmentVisibilityPreference();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentVisibilityPreference#isVisibleByDefault <em>Visible By Default</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Visible By Default</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.CompartmentVisibilityPreference#isVisibleByDefault()
+ * @see #getCompartmentVisibilityPreference()
+ * @generated
+ */
+ EAttribute getCompartmentVisibilityPreference_VisibleByDefault();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentVisibilityPreference#getCompartments <em>Compartments</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Compartments</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.CompartmentVisibilityPreference#getCompartments()
+ * @see #getCompartmentVisibilityPreference()
+ * @generated
+ */
+ EReference getCompartmentVisibilityPreference_Compartments();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentTitleVisibilityPreference <em>Compartment Title Visibility Preference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Compartment Title Visibility Preference</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.CompartmentTitleVisibilityPreference
+ * @generated
+ */
+ EClass getCompartmentTitleVisibilityPreference();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentTitleVisibilityPreference#isVisibleByDefault <em>Visible By Default</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Visible By Default</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.CompartmentTitleVisibilityPreference#isVisibleByDefault()
+ * @see #getCompartmentTitleVisibilityPreference()
+ * @generated
+ */
+ EAttribute getCompartmentTitleVisibilityPreference_VisibleByDefault();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentTitleVisibilityPreference#getCompartments <em>Compartments</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Compartments</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.CompartmentTitleVisibilityPreference#getCompartments()
+ * @see #getCompartmentTitleVisibilityPreference()
+ * @generated
+ */
+ EReference getCompartmentTitleVisibilityPreference_Compartments();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.ConstrainedByReferenceCompartmentItemSemanticEditPolicy <em>Constrained By Reference Compartment Item Semantic Edit Policy</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Constrained By Reference Compartment Item Semantic Edit Policy</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.ConstrainedByReferenceCompartmentItemSemanticEditPolicy
+ * @generated
+ */
+ EClass getConstrainedByReferenceCompartmentItemSemanticEditPolicy();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.ConstrainedByReferenceCompartmentItemSemanticEditPolicy#getGenView <em>Gen View</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Gen View</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.ConstrainedByReferenceCompartmentItemSemanticEditPolicy#getGenView()
+ * @see #getConstrainedByReferenceCompartmentItemSemanticEditPolicy()
+ * @generated
+ */
+ EReference getConstrainedByReferenceCompartmentItemSemanticEditPolicy_GenView();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.GenerateUsingElementTypeCreationCommand <em>Generate Using Element Type Creation Command</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Generate Using Element Type Creation Command</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.GenerateUsingElementTypeCreationCommand
+ * @generated
+ */
+ EClass getGenerateUsingElementTypeCreationCommand();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.CustomDiagramUpdaterSingleton <em>Custom Diagram Updater Singleton</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Custom Diagram Updater Singleton</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.CustomDiagramUpdaterSingleton
+ * @generated
+ */
+ EClass getCustomDiagramUpdaterSingleton();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.CustomDiagramUpdaterSingleton#getSingletonPath <em>Singleton Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Singleton Path</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.CustomDiagramUpdaterSingleton#getSingletonPath()
+ * @see #getCustomDiagramUpdaterSingleton()
+ * @generated
+ */
+ EAttribute getCustomDiagramUpdaterSingleton_SingletonPath();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate <em>Specific Node Plate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Specific Node Plate</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate
+ * @generated
+ */
+ EClass getSpecificNodePlate();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate#getEditParts <em>Edit Parts</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Edit Parts</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate#getEditParts()
+ * @see #getSpecificNodePlate()
+ * @generated
+ */
+ EReference getSpecificNodePlate_EditParts();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate#getName()
+ * @see #getSpecificNodePlate()
+ * @generated
+ */
+ EAttribute getSpecificNodePlate_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate#getNodePlateQualifiedName <em>Node Plate Qualified Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Node Plate Qualified Name</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate#getNodePlateQualifiedName()
+ * @see #getSpecificNodePlate()
+ * @generated
+ */
+ EAttribute getSpecificNodePlate_NodePlateQualifiedName();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider <em>Gen Visual Type Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Gen Visual Type Provider</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider
+ * @generated
+ */
+ EClass getGenVisualTypeProvider();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider#getClassName <em>Class Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Class Name</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider#getClassName()
+ * @see #getGenVisualTypeProvider()
+ * @generated
+ */
+ EAttribute getGenVisualTypeProvider_ClassName();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride <em>Visual ID Override</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Visual ID Override</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride
+ * @generated
+ */
+ EClass getVisualIDOverride();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride#getGenView <em>Gen View</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Gen View</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride#getGenView()
+ * @see #getVisualIDOverride()
+ * @generated
+ */
+ EReference getVisualIDOverride_GenView();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride#getVisualID <em>Visual ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Visual ID</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride#getVisualID()
+ * @see #getVisualIDOverride()
+ * @generated
+ */
+ EAttribute getVisualIDOverride_VisualID();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride#getChild <em>Child</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Child</em>'.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride#getChild()
+ * @see #getVisualIDOverride()
+ * @generated
+ */
+ EReference getVisualIDOverride_Child();
+
+ /**
+ * 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
+ */
+ PapyrusgmfgenextensionFactory getPapyrusgmfgenextensionFactory();
+
+ /**
+ * <!-- 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.papyrusgmfgenextension.impl.ExtendedGenViewImpl <em>Extended Gen View</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.ExtendedGenViewImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getExtendedGenView()
+ * @generated
+ */
+ EClass EXTENDED_GEN_VIEW = eINSTANCE.getExtendedGenView();
+
+ /**
+ * The meta object literal for the '<em><b>Gen View</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EXTENDED_GEN_VIEW__GEN_VIEW = eINSTANCE.getExtendedGenView_GenView();
+
+ /**
+ * The meta object literal for the '<em><b>Is Abstract</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EXTENDED_GEN_VIEW__IS_ABSTRACT = eINSTANCE.getExtendedGenView_IsAbstract();
+
+ /**
+ * The meta object literal for the '<em><b>Super Gen Views</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EXTENDED_GEN_VIEW__SUPER_GEN_VIEWS = eINSTANCE.getExtendedGenView_SuperGenViews();
+
+ /**
+ * The meta object literal for the '<em><b>Prop Refresh Hook</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EXTENDED_GEN_VIEW__PROP_REFRESH_HOOK = eINSTANCE.getExtendedGenView_PropRefreshHook();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EXTENDED_GEN_VIEW__NAME = eINSTANCE.getExtendedGenView_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Super Owned Edit Part</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EXTENDED_GEN_VIEW__SUPER_OWNED_EDIT_PART = eINSTANCE.getExtendedGenView_SuperOwnedEditPart();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CommentedElementImpl <em>Commented Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.CommentedElementImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getCommentedElement()
+ * @generated
+ */
+ EClass COMMENTED_ELEMENT = eINSTANCE.getCommentedElement();
+
+ /**
+ * The meta object literal for the '<em><b>Comment</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COMMENTED_ELEMENT__COMMENT = eINSTANCE.getCommentedElement_Comment();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.PropertyRefreshHookImpl <em>Property Refresh Hook</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PropertyRefreshHookImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getPropertyRefreshHook()
+ * @generated
+ */
+ EClass PROPERTY_REFRESH_HOOK = eINSTANCE.getPropertyRefreshHook();
+
+ /**
+ * The meta object literal for the '<em><b>Triggering Condition</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PROPERTY_REFRESH_HOOK__TRIGGERING_CONDITION = eINSTANCE.getPropertyRefreshHook_TriggeringCondition();
+
+ /**
+ * The meta object literal for the '<em><b>Action</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PROPERTY_REFRESH_HOOK__ACTION = eINSTANCE.getPropertyRefreshHook_Action();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExternalHookImpl <em>External Hook</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.ExternalHookImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getExternalHook()
+ * @generated
+ */
+ EClass EXTERNAL_HOOK = eINSTANCE.getExternalHook();
+
+ /**
+ * The meta object literal for the '<em><b>Classpath</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EXTERNAL_HOOK__CLASSPATH = eINSTANCE.getExternalHook_Classpath();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificLocatorImpl <em>Specific Locator</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificLocatorImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getSpecificLocator()
+ * @generated
+ */
+ EClass SPECIFIC_LOCATOR = eINSTANCE.getSpecificLocator();
+
+ /**
+ * The meta object literal for the '<em><b>Gen Child Side Affixed Node</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SPECIFIC_LOCATOR__GEN_CHILD_SIDE_AFFIXED_NODE = eINSTANCE.getSpecificLocator_GenChildSideAffixedNode();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusExtensionRootNodeImpl <em>Papyrus Extension Root Node</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusExtensionRootNodeImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getPapyrusExtensionRootNode()
+ * @generated
+ */
+ EClass PAPYRUS_EXTENSION_ROOT_NODE = eINSTANCE.getPapyrusExtensionRootNode();
+
+ /**
+ * The meta object literal for the '<em><b>Extension Nodes</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PAPYRUS_EXTENSION_ROOT_NODE__EXTENSION_NODES = eINSTANCE.getPapyrusExtensionRootNode_ExtensionNodes();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateCanvasImpl <em>Alternate Canvas</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateCanvasImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getAlternateCanvas()
+ * @generated
+ */
+ EClass ALTERNATE_CANVAS = eINSTANCE.getAlternateCanvas();
+
+ /**
+ * The meta object literal for the '<em><b>Domain Diagram Element</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ALTERNATE_CANVAS__DOMAIN_DIAGRAM_ELEMENT = eINSTANCE.getAlternateCanvas_DomainDiagramElement();
+
+ /**
+ * The meta object literal for the '<em><b>Alternate Top Level Nodes</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ALTERNATE_CANVAS__ALTERNATE_TOP_LEVEL_NODES = eINSTANCE.getAlternateCanvas_AlternateTopLevelNodes();
+
+ /**
+ * The meta object literal for the '<em><b>Alternate Link Nodes</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ALTERNATE_CANVAS__ALTERNATE_LINK_NODES = eINSTANCE.getAlternateCanvas_AlternateLinkNodes();
+
+ /**
+ * The meta object literal for the '<em><b>Diagram</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ALTERNATE_CANVAS__DIAGRAM = eINSTANCE.getAlternateCanvas_Diagram();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateGenTopLevelNodeImpl <em>Alternate Gen Top Level Node</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateGenTopLevelNodeImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getAlternateGenTopLevelNode()
+ * @generated
+ */
+ EClass ALTERNATE_GEN_TOP_LEVEL_NODE = eINSTANCE.getAlternateGenTopLevelNode();
+
+ /**
+ * The meta object literal for the '<em><b>Gen Top Level Node</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ALTERNATE_GEN_TOP_LEVEL_NODE__GEN_TOP_LEVEL_NODE = eINSTANCE.getAlternateGenTopLevelNode_GenTopLevelNode();
+
+ /**
+ * The meta object literal for the '<em><b>Type Model Facet</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ALTERNATE_GEN_TOP_LEVEL_NODE__TYPE_MODEL_FACET = eINSTANCE.getAlternateGenTopLevelNode_TypeModelFacet();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateGenLinkImpl <em>Alternate Gen Link</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateGenLinkImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getAlternateGenLink()
+ * @generated
+ */
+ EClass ALTERNATE_GEN_LINK = eINSTANCE.getAlternateGenLink();
+
+ /**
+ * The meta object literal for the '<em><b>Gen Link Node</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ALTERNATE_GEN_LINK__GEN_LINK_NODE = eINSTANCE.getAlternateGenLink_GenLinkNode();
+
+ /**
+ * The meta object literal for the '<em><b>Type Model Facet</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ALTERNATE_GEN_LINK__TYPE_MODEL_FACET = eINSTANCE.getAlternateGenLink_TypeModelFacet();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.MutatingCanvasImpl <em>Mutating Canvas</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.MutatingCanvasImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getMutatingCanvas()
+ * @generated
+ */
+ EClass MUTATING_CANVAS = eINSTANCE.getMutatingCanvas();
+
+ /**
+ * The meta object literal for the '<em><b>Alternate Canvases</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MUTATING_CANVAS__ALTERNATE_CANVASES = eINSTANCE.getMutatingCanvas_AlternateCanvases();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.OwnedEditpartImpl <em>Owned Editpart</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.OwnedEditpartImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getOwnedEditpart()
+ * @generated
+ */
+ EClass OWNED_EDITPART = eINSTANCE.getOwnedEditpart();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute OWNED_EDITPART__NAME = eINSTANCE.getOwnedEditpart_Name();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificDiagramUpdaterImpl <em>Specific Diagram Updater</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificDiagramUpdaterImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getSpecificDiagramUpdater()
+ * @generated
+ */
+ EClass SPECIFIC_DIAGRAM_UPDATER = eINSTANCE.getSpecificDiagramUpdater();
+
+ /**
+ * The meta object literal for the '<em><b>Gen Node</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SPECIFIC_DIAGRAM_UPDATER__GEN_NODE = eINSTANCE.getSpecificDiagramUpdater_GenNode();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.GenNodeConstraintImpl <em>Gen Node Constraint</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.GenNodeConstraintImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getGenNodeConstraint()
+ * @generated
+ */
+ EClass GEN_NODE_CONSTRAINT = eINSTANCE.getGenNodeConstraint();
+
+ /**
+ * The meta object literal for the '<em><b>Gen Node</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference GEN_NODE_CONSTRAINT__GEN_NODE = eINSTANCE.getGenNodeConstraint_GenNode();
+
+ /**
+ * The meta object literal for the '<em><b>Gen Constraint</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference GEN_NODE_CONSTRAINT__GEN_CONSTRAINT = eINSTANCE.getGenNodeConstraint_GenConstraint();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificLocatorExternalLabelImpl <em>Specific Locator External Label</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificLocatorExternalLabelImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getSpecificLocatorExternalLabel()
+ * @generated
+ */
+ EClass SPECIFIC_LOCATOR_EXTERNAL_LABEL = eINSTANCE.getSpecificLocatorExternalLabel();
+
+ /**
+ * The meta object literal for the '<em><b>Gen External Node Label</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SPECIFIC_LOCATOR_EXTERNAL_LABEL__GEN_EXTERNAL_NODE_LABEL = eINSTANCE.getSpecificLocatorExternalLabel_GenExternalNodeLabel();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AdditionalEditPartCandiesImpl <em>Additional Edit Part Candies</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.AdditionalEditPartCandiesImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getAdditionalEditPartCandies()
+ * @generated
+ */
+ EClass ADDITIONAL_EDIT_PART_CANDIES = eINSTANCE.getAdditionalEditPartCandies();
+
+ /**
+ * The meta object literal for the '<em><b>Base Edit Helper Package</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADDITIONAL_EDIT_PART_CANDIES__BASE_EDIT_HELPER_PACKAGE = eINSTANCE.getAdditionalEditPartCandies_BaseEditHelperPackage();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.EditPartUsingDeleteServiceImpl <em>Edit Part Using Delete Service</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.EditPartUsingDeleteServiceImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getEditPartUsingDeleteService()
+ * @generated
+ */
+ EClass EDIT_PART_USING_DELETE_SERVICE = eINSTANCE.getEditPartUsingDeleteService();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EDIT_PART_USING_DELETE_SERVICE__NAME = eINSTANCE.getEditPartUsingDeleteService_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Gen View</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EDIT_PART_USING_DELETE_SERVICE__GEN_VIEW = eINSTANCE.getEditPartUsingDeleteService_GenView();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.EditPartUsingReorientServiceImpl <em>Edit Part Using Reorient Service</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.EditPartUsingReorientServiceImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getEditPartUsingReorientService()
+ * @generated
+ */
+ EClass EDIT_PART_USING_REORIENT_SERVICE = eINSTANCE.getEditPartUsingReorientService();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EDIT_PART_USING_REORIENT_SERVICE__NAME = eINSTANCE.getEditPartUsingReorientService_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Gen View</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EDIT_PART_USING_REORIENT_SERVICE__GEN_VIEW = eINSTANCE.getEditPartUsingReorientService_GenView();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.LabelVisibilityPreferenceImpl <em>Label Visibility Preference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.LabelVisibilityPreferenceImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getLabelVisibilityPreference()
+ * @generated
+ */
+ EClass LABEL_VISIBILITY_PREFERENCE = eINSTANCE.getLabelVisibilityPreference();
+
+ /**
+ * The meta object literal for the '<em><b>Role</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LABEL_VISIBILITY_PREFERENCE__ROLE = eINSTANCE.getLabelVisibilityPreference_Role();
+
+ /**
+ * The meta object literal for the '<em><b>Icon Path Role</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LABEL_VISIBILITY_PREFERENCE__ICON_PATH_ROLE = eINSTANCE.getLabelVisibilityPreference_IconPathRole();
+
+ /**
+ * The meta object literal for the '<em><b>Link Labels</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LABEL_VISIBILITY_PREFERENCE__LINK_LABELS = eINSTANCE.getLabelVisibilityPreference_LinkLabels();
+
+ /**
+ * The meta object literal for the '<em><b>External Node Labels</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LABEL_VISIBILITY_PREFERENCE__EXTERNAL_NODE_LABELS = eINSTANCE.getLabelVisibilityPreference_ExternalNodeLabels();
+
+ /**
+ * The meta object literal for the '<em><b>Visible By Default</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LABEL_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT = eINSTANCE.getLabelVisibilityPreference_VisibleByDefault();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CompartmentVisibilityPreferenceImpl <em>Compartment Visibility Preference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.CompartmentVisibilityPreferenceImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getCompartmentVisibilityPreference()
+ * @generated
+ */
+ EClass COMPARTMENT_VISIBILITY_PREFERENCE = eINSTANCE.getCompartmentVisibilityPreference();
+
+ /**
+ * The meta object literal for the '<em><b>Visible By Default</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COMPARTMENT_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT = eINSTANCE.getCompartmentVisibilityPreference_VisibleByDefault();
+
+ /**
+ * The meta object literal for the '<em><b>Compartments</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPARTMENT_VISIBILITY_PREFERENCE__COMPARTMENTS = eINSTANCE.getCompartmentVisibilityPreference_Compartments();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CompartmentTitleVisibilityPreferenceImpl <em>Compartment Title Visibility Preference</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.CompartmentTitleVisibilityPreferenceImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getCompartmentTitleVisibilityPreference()
+ * @generated
+ */
+ EClass COMPARTMENT_TITLE_VISIBILITY_PREFERENCE = eINSTANCE.getCompartmentTitleVisibilityPreference();
+
+ /**
+ * The meta object literal for the '<em><b>Visible By Default</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT = eINSTANCE.getCompartmentTitleVisibilityPreference_VisibleByDefault();
+
+ /**
+ * The meta object literal for the '<em><b>Compartments</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__COMPARTMENTS = eINSTANCE.getCompartmentTitleVisibilityPreference_Compartments();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl <em>Constrained By Reference Compartment Item Semantic Edit Policy</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getConstrainedByReferenceCompartmentItemSemanticEditPolicy()
+ * @generated
+ */
+ EClass CONSTRAINED_BY_REFERENCE_COMPARTMENT_ITEM_SEMANTIC_EDIT_POLICY = eINSTANCE.getConstrainedByReferenceCompartmentItemSemanticEditPolicy();
+
+ /**
+ * The meta object literal for the '<em><b>Gen View</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CONSTRAINED_BY_REFERENCE_COMPARTMENT_ITEM_SEMANTIC_EDIT_POLICY__GEN_VIEW = eINSTANCE.getConstrainedByReferenceCompartmentItemSemanticEditPolicy_GenView();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.GenerateUsingElementTypeCreationCommandImpl <em>Generate Using Element Type Creation Command</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.GenerateUsingElementTypeCreationCommandImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getGenerateUsingElementTypeCreationCommand()
+ * @generated
+ */
+ EClass GENERATE_USING_ELEMENT_TYPE_CREATION_COMMAND = eINSTANCE.getGenerateUsingElementTypeCreationCommand();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CustomDiagramUpdaterSingletonImpl <em>Custom Diagram Updater Singleton</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.CustomDiagramUpdaterSingletonImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getCustomDiagramUpdaterSingleton()
+ * @generated
+ */
+ EClass CUSTOM_DIAGRAM_UPDATER_SINGLETON = eINSTANCE.getCustomDiagramUpdaterSingleton();
+
+ /**
+ * The meta object literal for the '<em><b>Singleton Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CUSTOM_DIAGRAM_UPDATER_SINGLETON__SINGLETON_PATH = eINSTANCE.getCustomDiagramUpdaterSingleton_SingletonPath();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificNodePlateImpl <em>Specific Node Plate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificNodePlateImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getSpecificNodePlate()
+ * @generated
+ */
+ EClass SPECIFIC_NODE_PLATE = eINSTANCE.getSpecificNodePlate();
+
+ /**
+ * The meta object literal for the '<em><b>Edit Parts</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SPECIFIC_NODE_PLATE__EDIT_PARTS = eINSTANCE.getSpecificNodePlate_EditParts();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SPECIFIC_NODE_PLATE__NAME = eINSTANCE.getSpecificNodePlate_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Node Plate Qualified Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SPECIFIC_NODE_PLATE__NODE_PLATE_QUALIFIED_NAME = eINSTANCE.getSpecificNodePlate_NodePlateQualifiedName();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.GenVisualTypeProviderImpl <em>Gen Visual Type Provider</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.GenVisualTypeProviderImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getGenVisualTypeProvider()
+ * @generated
+ */
+ EClass GEN_VISUAL_TYPE_PROVIDER = eINSTANCE.getGenVisualTypeProvider();
+
+ /**
+ * The meta object literal for the '<em><b>Class Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME = eINSTANCE.getGenVisualTypeProvider_ClassName();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.VisualIDOverrideImpl <em>Visual ID Override</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.VisualIDOverrideImpl
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusgmfgenextensionPackageImpl#getVisualIDOverride()
+ * @generated
+ */
+ EClass VISUAL_ID_OVERRIDE = eINSTANCE.getVisualIDOverride();
+
+ /**
+ * The meta object literal for the '<em><b>Gen View</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VISUAL_ID_OVERRIDE__GEN_VIEW = eINSTANCE.getVisualIDOverride_GenView();
+
+ /**
+ * The meta object literal for the '<em><b>Visual ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VISUAL_ID_OVERRIDE__VISUAL_ID = eINSTANCE.getVisualIDOverride_VisualID();
+
+ /**
+ * The meta object literal for the '<em><b>Child</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference VISUAL_ID_OVERRIDE__CHILD = eINSTANCE.getVisualIDOverride_Child();
+
+ }
+
+} //PapyrusgmfgenextensionPackage
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PropertyRefreshHook.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PropertyRefreshHook.java
new file mode 100644
index 00000000000..f6941ddbb7a
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/PropertyRefreshHook.java
@@ -0,0 +1,93 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Property Refresh Hook</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This class is used to refresh the figure by taking in account a property of domain element (in the case of Ecore, it can be an Efeature or EReference)
+ * The triggeringCondtion describe the needed condition to launch the action on the figure. these two properties can be code lines.
+ *
+ * For instance we would like to display active class when the efeature class is "active". Or display composite kind of the association when the kind of the property end is "composite".
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook#getTriggeringCondition <em>Triggering Condition</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook#getAction <em>Action</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getPropertyRefreshHook()
+ * @model
+ * @generated
+ */
+public interface PropertyRefreshHook extends ExternalHook {
+ /**
+ * Returns the value of the '<em><b>Triggering Condition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Triggering Condition</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Triggering Condition</em>' attribute.
+ * @see #setTriggeringCondition(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getPropertyRefreshHook_TriggeringCondition()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ String getTriggeringCondition();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook#getTriggeringCondition <em>Triggering Condition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Triggering Condition</em>' attribute.
+ * @see #getTriggeringCondition()
+ * @generated
+ */
+ void setTriggeringCondition(String value);
+
+ /**
+ * Returns the value of the '<em><b>Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Action</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Action</em>' attribute.
+ * @see #setAction(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getPropertyRefreshHook_Action()
+ * @model unique="false" required="true" ordered="false"
+ * @generated
+ */
+ String getAction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook#getAction <em>Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Action</em>' attribute.
+ * @see #getAction()
+ * @generated
+ */
+ void setAction(String value);
+
+} // PropertyRefreshHook
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificDiagramUpdater.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificDiagramUpdater.java
new file mode 100644
index 00000000000..ef4577c90c3
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificDiagramUpdater.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Specific Diagram Updater</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This class is used to precise itw own locator used for the border item, like port or template.
+ *
+ * for example, in the case of templateSignature of ClassEditPart in the method protected boolean addFixedChild(EditPart childEditPart):
+ * replacement of the general BorderItemLocator is needed in order to constrain the movement.
+ *
+ * if (childEditPart instanceof RedefinableTemplateSignatureEditPart) {
+ * // BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.NORTH);
+ * BorderItemLocator locator = new TemplateClassifierBorderItemLocator(getMainFigure(), PositionConstants.NORTH);
+ * getBorderedFigure().getBorderItemContainer().add(((RedefinableTemplateSignatureEditPart) childEditPart).getFigure(), locator);
+ * return true;
+ * }
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificDiagramUpdater#getGenNode <em>Gen Node</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getSpecificDiagramUpdater()
+ * @model
+ * @generated
+ */
+public interface SpecificDiagramUpdater extends ExternalHook {
+ /**
+ * Returns the value of the '<em><b>Gen Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Gen Node</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Gen Node</em>' reference.
+ * @see #setGenNode(GenCommonBase)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getSpecificDiagramUpdater_GenNode()
+ * @model
+ * @generated
+ */
+ GenCommonBase getGenNode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificDiagramUpdater#getGenNode <em>Gen Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Gen Node</em>' reference.
+ * @see #getGenNode()
+ * @generated
+ */
+ void setGenNode(GenCommonBase value);
+
+} // SpecificDiagramUpdater
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocator.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocator.java
new file mode 100644
index 00000000000..8b861108f3d
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocator.java
@@ -0,0 +1,66 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Specific Locator</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This class is used to precise itw own locator used for the border item, like port or template.
+ *
+ * for example, in the case of templateSignature of ClassEditPart in the method protected boolean addFixedChild(EditPart childEditPart):
+ * replacement of the general BorderItemLocator is needed in order to constrain the movement.
+ *
+ * if (childEditPart instanceof RedefinableTemplateSignatureEditPart) {
+ * // BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.NORTH);
+ * BorderItemLocator locator = new TemplateClassifierBorderItemLocator(getMainFigure(), PositionConstants.NORTH);
+ * getBorderedFigure().getBorderItemContainer().add(((RedefinableTemplateSignatureEditPart) childEditPart).getFigure(), locator);
+ * return true;
+ * }
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocator#getGenChildSideAffixedNode <em>Gen Child Side Affixed Node</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getSpecificLocator()
+ * @model
+ * @generated
+ */
+public interface SpecificLocator extends ExternalHook {
+ /**
+ * Returns the value of the '<em><b>Gen Child Side Affixed Node</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Gen Child Side Affixed Node</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>Gen Child Side Affixed Node</em>' reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getSpecificLocator_GenChildSideAffixedNode()
+ * @model
+ * @generated
+ */
+ EList<GenChildSideAffixedNode> getGenChildSideAffixedNode();
+
+} // SpecificLocator
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocatorExternalLabel.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocatorExternalLabel.java
new file mode 100644
index 00000000000..784ea0d51f5
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificLocatorExternalLabel.java
@@ -0,0 +1,66 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Specific Locator External Label</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This class is used to precise itw own locator used for the border item, like port or template.
+ *
+ * for example, in the case of templateSignature of ClassEditPart in the method protected boolean addFixedChild(EditPart childEditPart):
+ * replacement of the general BorderItemLocator is needed in order to constrain the movement.
+ *
+ * if (childEditPart instanceof RedefinableTemplateSignatureEditPart) {
+ * // BorderItemLocator locator = new BorderItemLocator(getMainFigure(), PositionConstants.NORTH);
+ * BorderItemLocator locator = new TemplateClassifierBorderItemLocator(getMainFigure(), PositionConstants.NORTH);
+ * getBorderedFigure().getBorderItemContainer().add(((RedefinableTemplateSignatureEditPart) childEditPart).getFigure(), locator);
+ * return true;
+ * }
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocatorExternalLabel#getGenExternalNodeLabel <em>Gen External Node Label</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getSpecificLocatorExternalLabel()
+ * @model
+ * @generated
+ */
+public interface SpecificLocatorExternalLabel extends ExternalHook {
+ /**
+ * Returns the value of the '<em><b>Gen External Node Label</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Gen External Node Label</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>Gen External Node Label</em>' reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getSpecificLocatorExternalLabel_GenExternalNodeLabel()
+ * @model
+ * @generated
+ */
+ EList<GenExternalNodeLabel> getGenExternalNodeLabel();
+
+} // SpecificLocatorExternalLabel
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificNodePlate.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificNodePlate.java
new file mode 100644
index 00000000000..75036932973
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/SpecificNodePlate.java
@@ -0,0 +1,114 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Specific Node Plate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This element is always linked to a genView (topLevel, or child)
+ * Used set if an editPart is abstract.
+ * SuperGenViews is a list of all superEditPart.
+ *
+ * Thanks to this, it is possible to factorize code and to decrease the number of generated classes.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate#getEditParts <em>Edit Parts</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate#getNodePlateQualifiedName <em>Node Plate Qualified Name</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getSpecificNodePlate()
+ * @model
+ * @generated
+ */
+public interface SpecificNodePlate extends CommentedElement {
+ /**
+ * Returns the value of the '<em><b>Edit Parts</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.gmf.codegen.gmfgen.GenNode}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Edit Parts</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>Edit Parts</em>' reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getSpecificNodePlate_EditParts()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ EList<GenNode> getEditParts();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getSpecificNodePlate_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Node Plate Qualified Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Node Plate Qualified 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>Node Plate Qualified Name</em>' attribute.
+ * @see #setNodePlateQualifiedName(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getSpecificNodePlate_NodePlateQualifiedName()
+ * @model
+ * @generated
+ */
+ String getNodePlateQualifiedName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate#getNodePlateQualifiedName <em>Node Plate Qualified Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Node Plate Qualified Name</em>' attribute.
+ * @see #getNodePlateQualifiedName()
+ * @generated
+ */
+ void setNodePlateQualifiedName(String value);
+
+} // SpecificNodePlate
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/VisualIDOverride.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/VisualIDOverride.java
new file mode 100644
index 00000000000..9bb861d0970
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/VisualIDOverride.java
@@ -0,0 +1,108 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Visual ID Override</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride#getGenView <em>Gen View</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride#getVisualID <em>Visual ID</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride#getChild <em>Child</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getVisualIDOverride()
+ * @model
+ * @generated
+ */
+public interface VisualIDOverride extends EObject {
+ /**
+ * Returns the value of the '<em><b>Gen View</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Gen View</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Gen View</em>' reference.
+ * @see #setGenView(GenCommonBase)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getVisualIDOverride_GenView()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ GenCommonBase getGenView();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride#getGenView <em>Gen View</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Gen View</em>' reference.
+ * @see #getGenView()
+ * @generated
+ */
+ void setGenView(GenCommonBase value);
+
+ /**
+ * Returns the value of the '<em><b>Visual ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Visual 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>Visual ID</em>' attribute.
+ * @see #setVisualID(String)
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getVisualIDOverride_VisualID()
+ * @model required="true"
+ * @generated
+ */
+ String getVisualID();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride#getVisualID <em>Visual ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Visual ID</em>' attribute.
+ * @see #getVisualID()
+ * @generated
+ */
+ void setVisualID(String value);
+
+ /**
+ * Returns the value of the '<em><b>Child</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Child</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>Child</em>' containment reference list.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#getVisualIDOverride_Child()
+ * @model containment="true"
+ * @generated
+ */
+ EList<VisualIDOverride> getChild();
+
+} // VisualIDOverride
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AdditionalEditPartCandiesImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AdditionalEditPartCandiesImpl.java
new file mode 100644
index 00000000000..a35a95963b6
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AdditionalEditPartCandiesImpl.java
@@ -0,0 +1,172 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.AdditionalEditPartCandies;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Additional Edit Part Candies</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AdditionalEditPartCandiesImpl#getBaseEditHelperPackage <em>Base Edit Helper Package</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AdditionalEditPartCandiesImpl extends CommentedElementImpl implements AdditionalEditPartCandies {
+ /**
+ * The default value of the '{@link #getBaseEditHelperPackage() <em>Base Edit Helper Package</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBaseEditHelperPackage()
+ * @generated
+ * @ordered
+ */
+ protected static final String BASE_EDIT_HELPER_PACKAGE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBaseEditHelperPackage() <em>Base Edit Helper Package</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBaseEditHelperPackage()
+ * @generated
+ * @ordered
+ */
+ protected String baseEditHelperPackage = BASE_EDIT_HELPER_PACKAGE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdditionalEditPartCandiesImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.ADDITIONAL_EDIT_PART_CANDIES;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getBaseEditHelperPackage() {
+ return baseEditHelperPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBaseEditHelperPackage(String newBaseEditHelperPackage) {
+ String oldBaseEditHelperPackage = baseEditHelperPackage;
+ baseEditHelperPackage = newBaseEditHelperPackage;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.ADDITIONAL_EDIT_PART_CANDIES__BASE_EDIT_HELPER_PACKAGE, oldBaseEditHelperPackage, baseEditHelperPackage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.ADDITIONAL_EDIT_PART_CANDIES__BASE_EDIT_HELPER_PACKAGE:
+ return getBaseEditHelperPackage();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.ADDITIONAL_EDIT_PART_CANDIES__BASE_EDIT_HELPER_PACKAGE:
+ setBaseEditHelperPackage((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.ADDITIONAL_EDIT_PART_CANDIES__BASE_EDIT_HELPER_PACKAGE:
+ setBaseEditHelperPackage(BASE_EDIT_HELPER_PACKAGE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.ADDITIONAL_EDIT_PART_CANDIES__BASE_EDIT_HELPER_PACKAGE:
+ return BASE_EDIT_HELPER_PACKAGE_EDEFAULT == null ? baseEditHelperPackage != null : !BASE_EDIT_HELPER_PACKAGE_EDEFAULT.equals(baseEditHelperPackage);
+ }
+ 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(" (baseEditHelperPackage: ");
+ result.append(baseEditHelperPackage);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AdditionalEditPartCandiesImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateCanvasImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateCanvasImpl.java
new file mode 100644
index 00000000000..ac658947328
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateCanvasImpl.java
@@ -0,0 +1,324 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas;
+import org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink;
+import org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Alternate Canvas</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateCanvasImpl#getDomainDiagramElement <em>Domain Diagram Element</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateCanvasImpl#getAlternateTopLevelNodes <em>Alternate Top Level Nodes</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateCanvasImpl#getAlternateLinkNodes <em>Alternate Link Nodes</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateCanvasImpl#getDiagram <em>Diagram</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AlternateCanvasImpl extends CommentedElementImpl implements AlternateCanvas {
+ /**
+ * The cached value of the '{@link #getDomainDiagramElement() <em>Domain Diagram Element</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDomainDiagramElement()
+ * @generated
+ * @ordered
+ */
+ protected GenClass domainDiagramElement;
+
+ /**
+ * The cached value of the '{@link #getAlternateTopLevelNodes() <em>Alternate Top Level Nodes</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAlternateTopLevelNodes()
+ * @generated
+ * @ordered
+ */
+ protected EList<AlternateGenTopLevelNode> alternateTopLevelNodes;
+
+ /**
+ * The cached value of the '{@link #getAlternateLinkNodes() <em>Alternate Link Nodes</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAlternateLinkNodes()
+ * @generated
+ * @ordered
+ */
+ protected EList<AlternateGenLink> alternateLinkNodes;
+
+ /**
+ * The cached value of the '{@link #getDiagram() <em>Diagram</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDiagram()
+ * @generated
+ * @ordered
+ */
+ protected GenDiagram diagram;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AlternateCanvasImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.ALTERNATE_CANVAS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenClass getDomainDiagramElement() {
+ if (domainDiagramElement != null && domainDiagramElement.eIsProxy()) {
+ InternalEObject oldDomainDiagramElement = (InternalEObject)domainDiagramElement;
+ domainDiagramElement = (GenClass)eResolveProxy(oldDomainDiagramElement);
+ if (domainDiagramElement != oldDomainDiagramElement) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__DOMAIN_DIAGRAM_ELEMENT, oldDomainDiagramElement, domainDiagramElement));
+ }
+ }
+ return domainDiagramElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenClass basicGetDomainDiagramElement() {
+ return domainDiagramElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDomainDiagramElement(GenClass newDomainDiagramElement) {
+ GenClass oldDomainDiagramElement = domainDiagramElement;
+ domainDiagramElement = newDomainDiagramElement;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__DOMAIN_DIAGRAM_ELEMENT, oldDomainDiagramElement, domainDiagramElement));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AlternateGenTopLevelNode> getAlternateTopLevelNodes() {
+ if (alternateTopLevelNodes == null) {
+ alternateTopLevelNodes = new EObjectContainmentEList<AlternateGenTopLevelNode>(AlternateGenTopLevelNode.class, this, PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__ALTERNATE_TOP_LEVEL_NODES);
+ }
+ return alternateTopLevelNodes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AlternateGenLink> getAlternateLinkNodes() {
+ if (alternateLinkNodes == null) {
+ alternateLinkNodes = new EObjectContainmentEList<AlternateGenLink>(AlternateGenLink.class, this, PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__ALTERNATE_LINK_NODES);
+ }
+ return alternateLinkNodes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenDiagram getDiagram() {
+ if (diagram != null && diagram.eIsProxy()) {
+ InternalEObject oldDiagram = (InternalEObject)diagram;
+ diagram = (GenDiagram)eResolveProxy(oldDiagram);
+ if (diagram != oldDiagram) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__DIAGRAM, oldDiagram, diagram));
+ }
+ }
+ return diagram;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenDiagram basicGetDiagram() {
+ return diagram;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDiagram(GenDiagram newDiagram) {
+ GenDiagram oldDiagram = diagram;
+ diagram = newDiagram;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__DIAGRAM, oldDiagram, diagram));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__ALTERNATE_TOP_LEVEL_NODES:
+ return ((InternalEList<?>)getAlternateTopLevelNodes()).basicRemove(otherEnd, msgs);
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__ALTERNATE_LINK_NODES:
+ return ((InternalEList<?>)getAlternateLinkNodes()).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 PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__DOMAIN_DIAGRAM_ELEMENT:
+ if (resolve) return getDomainDiagramElement();
+ return basicGetDomainDiagramElement();
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__ALTERNATE_TOP_LEVEL_NODES:
+ return getAlternateTopLevelNodes();
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__ALTERNATE_LINK_NODES:
+ return getAlternateLinkNodes();
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__DIAGRAM:
+ if (resolve) return getDiagram();
+ return basicGetDiagram();
+ }
+ 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 PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__DOMAIN_DIAGRAM_ELEMENT:
+ setDomainDiagramElement((GenClass)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__ALTERNATE_TOP_LEVEL_NODES:
+ getAlternateTopLevelNodes().clear();
+ getAlternateTopLevelNodes().addAll((Collection<? extends AlternateGenTopLevelNode>)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__ALTERNATE_LINK_NODES:
+ getAlternateLinkNodes().clear();
+ getAlternateLinkNodes().addAll((Collection<? extends AlternateGenLink>)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__DIAGRAM:
+ setDiagram((GenDiagram)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__DOMAIN_DIAGRAM_ELEMENT:
+ setDomainDiagramElement((GenClass)null);
+ return;
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__ALTERNATE_TOP_LEVEL_NODES:
+ getAlternateTopLevelNodes().clear();
+ return;
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__ALTERNATE_LINK_NODES:
+ getAlternateLinkNodes().clear();
+ return;
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__DIAGRAM:
+ setDiagram((GenDiagram)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__DOMAIN_DIAGRAM_ELEMENT:
+ return domainDiagramElement != null;
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__ALTERNATE_TOP_LEVEL_NODES:
+ return alternateTopLevelNodes != null && !alternateTopLevelNodes.isEmpty();
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__ALTERNATE_LINK_NODES:
+ return alternateLinkNodes != null && !alternateLinkNodes.isEmpty();
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS__DIAGRAM:
+ return diagram != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //AlternateCanvasImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenLinkImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenLinkImpl.java
new file mode 100644
index 00000000000..ad482930f08
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenLinkImpl.java
@@ -0,0 +1,247 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Alternate Gen Link</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateGenLinkImpl#getGenLinkNode <em>Gen Link Node</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateGenLinkImpl#getTypeModelFacet <em>Type Model Facet</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AlternateGenLinkImpl extends CommentedElementImpl implements AlternateGenLink {
+ /**
+ * The cached value of the '{@link #getGenLinkNode() <em>Gen Link Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenLinkNode()
+ * @generated
+ * @ordered
+ */
+ protected GenLink genLinkNode;
+
+ /**
+ * The cached value of the '{@link #getTypeModelFacet() <em>Type Model Facet</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypeModelFacet()
+ * @generated
+ * @ordered
+ */
+ protected TypeModelFacet typeModelFacet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AlternateGenLinkImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.ALTERNATE_GEN_LINK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenLink getGenLinkNode() {
+ if (genLinkNode != null && genLinkNode.eIsProxy()) {
+ InternalEObject oldGenLinkNode = (InternalEObject)genLinkNode;
+ genLinkNode = (GenLink)eResolveProxy(oldGenLinkNode);
+ if (genLinkNode != oldGenLinkNode) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK__GEN_LINK_NODE, oldGenLinkNode, genLinkNode));
+ }
+ }
+ return genLinkNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenLink basicGetGenLinkNode() {
+ return genLinkNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGenLinkNode(GenLink newGenLinkNode) {
+ GenLink oldGenLinkNode = genLinkNode;
+ genLinkNode = newGenLinkNode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK__GEN_LINK_NODE, oldGenLinkNode, genLinkNode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TypeModelFacet getTypeModelFacet() {
+ return typeModelFacet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTypeModelFacet(TypeModelFacet newTypeModelFacet, NotificationChain msgs) {
+ TypeModelFacet oldTypeModelFacet = typeModelFacet;
+ typeModelFacet = newTypeModelFacet;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK__TYPE_MODEL_FACET, oldTypeModelFacet, newTypeModelFacet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTypeModelFacet(TypeModelFacet newTypeModelFacet) {
+ if (newTypeModelFacet != typeModelFacet) {
+ NotificationChain msgs = null;
+ if (typeModelFacet != null)
+ msgs = ((InternalEObject)typeModelFacet).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK__TYPE_MODEL_FACET, null, msgs);
+ if (newTypeModelFacet != null)
+ msgs = ((InternalEObject)newTypeModelFacet).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK__TYPE_MODEL_FACET, null, msgs);
+ msgs = basicSetTypeModelFacet(newTypeModelFacet, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK__TYPE_MODEL_FACET, newTypeModelFacet, newTypeModelFacet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK__TYPE_MODEL_FACET:
+ return basicSetTypeModelFacet(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 PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK__GEN_LINK_NODE:
+ if (resolve) return getGenLinkNode();
+ return basicGetGenLinkNode();
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK__TYPE_MODEL_FACET:
+ return getTypeModelFacet();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK__GEN_LINK_NODE:
+ setGenLinkNode((GenLink)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK__TYPE_MODEL_FACET:
+ setTypeModelFacet((TypeModelFacet)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK__GEN_LINK_NODE:
+ setGenLinkNode((GenLink)null);
+ return;
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK__TYPE_MODEL_FACET:
+ setTypeModelFacet((TypeModelFacet)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK__GEN_LINK_NODE:
+ return genLinkNode != null;
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK__TYPE_MODEL_FACET:
+ return typeModelFacet != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //AlternateGenLinkImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenTopLevelNodeImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenTopLevelNodeImpl.java
new file mode 100644
index 00000000000..4bcf080d011
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/AlternateGenTopLevelNodeImpl.java
@@ -0,0 +1,247 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Alternate Gen Top Level Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateGenTopLevelNodeImpl#getGenTopLevelNode <em>Gen Top Level Node</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.AlternateGenTopLevelNodeImpl#getTypeModelFacet <em>Type Model Facet</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AlternateGenTopLevelNodeImpl extends CommentedElementImpl implements AlternateGenTopLevelNode {
+ /**
+ * The cached value of the '{@link #getGenTopLevelNode() <em>Gen Top Level Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenTopLevelNode()
+ * @generated
+ * @ordered
+ */
+ protected GenTopLevelNode genTopLevelNode;
+
+ /**
+ * The cached value of the '{@link #getTypeModelFacet() <em>Type Model Facet</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypeModelFacet()
+ * @generated
+ * @ordered
+ */
+ protected TypeModelFacet typeModelFacet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AlternateGenTopLevelNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.ALTERNATE_GEN_TOP_LEVEL_NODE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenTopLevelNode getGenTopLevelNode() {
+ if (genTopLevelNode != null && genTopLevelNode.eIsProxy()) {
+ InternalEObject oldGenTopLevelNode = (InternalEObject)genTopLevelNode;
+ genTopLevelNode = (GenTopLevelNode)eResolveProxy(oldGenTopLevelNode);
+ if (genTopLevelNode != oldGenTopLevelNode) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE__GEN_TOP_LEVEL_NODE, oldGenTopLevelNode, genTopLevelNode));
+ }
+ }
+ return genTopLevelNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenTopLevelNode basicGetGenTopLevelNode() {
+ return genTopLevelNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGenTopLevelNode(GenTopLevelNode newGenTopLevelNode) {
+ GenTopLevelNode oldGenTopLevelNode = genTopLevelNode;
+ genTopLevelNode = newGenTopLevelNode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE__GEN_TOP_LEVEL_NODE, oldGenTopLevelNode, genTopLevelNode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TypeModelFacet getTypeModelFacet() {
+ return typeModelFacet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTypeModelFacet(TypeModelFacet newTypeModelFacet, NotificationChain msgs) {
+ TypeModelFacet oldTypeModelFacet = typeModelFacet;
+ typeModelFacet = newTypeModelFacet;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE__TYPE_MODEL_FACET, oldTypeModelFacet, newTypeModelFacet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTypeModelFacet(TypeModelFacet newTypeModelFacet) {
+ if (newTypeModelFacet != typeModelFacet) {
+ NotificationChain msgs = null;
+ if (typeModelFacet != null)
+ msgs = ((InternalEObject)typeModelFacet).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE__TYPE_MODEL_FACET, null, msgs);
+ if (newTypeModelFacet != null)
+ msgs = ((InternalEObject)newTypeModelFacet).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE__TYPE_MODEL_FACET, null, msgs);
+ msgs = basicSetTypeModelFacet(newTypeModelFacet, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE__TYPE_MODEL_FACET, newTypeModelFacet, newTypeModelFacet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE__TYPE_MODEL_FACET:
+ return basicSetTypeModelFacet(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 PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE__GEN_TOP_LEVEL_NODE:
+ if (resolve) return getGenTopLevelNode();
+ return basicGetGenTopLevelNode();
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE__TYPE_MODEL_FACET:
+ return getTypeModelFacet();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE__GEN_TOP_LEVEL_NODE:
+ setGenTopLevelNode((GenTopLevelNode)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE__TYPE_MODEL_FACET:
+ setTypeModelFacet((TypeModelFacet)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE__GEN_TOP_LEVEL_NODE:
+ setGenTopLevelNode((GenTopLevelNode)null);
+ return;
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE__TYPE_MODEL_FACET:
+ setTypeModelFacet((TypeModelFacet)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE__GEN_TOP_LEVEL_NODE:
+ return genTopLevelNode != null;
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE__TYPE_MODEL_FACET:
+ return typeModelFacet != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //AlternateGenTopLevelNodeImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CommentedElementImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CommentedElementImpl.java
new file mode 100644
index 00000000000..ed05be024b1
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CommentedElementImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.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.papyrusgmfgenextension.CommentedElement;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Commented Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CommentedElementImpl#getComment <em>Comment</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CommentedElementImpl extends EObjectImpl implements CommentedElement {
+ /**
+ * The default value of the '{@link #getComment() <em>Comment</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getComment()
+ * @generated
+ * @ordered
+ */
+ protected static final String COMMENT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getComment() <em>Comment</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getComment()
+ * @generated
+ * @ordered
+ */
+ protected String comment = COMMENT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CommentedElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.COMMENTED_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getComment() {
+ return comment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setComment(String newComment) {
+ String oldComment = comment;
+ comment = newComment;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.COMMENTED_ELEMENT__COMMENT, oldComment, comment));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.COMMENTED_ELEMENT__COMMENT:
+ return getComment();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.COMMENTED_ELEMENT__COMMENT:
+ setComment((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.COMMENTED_ELEMENT__COMMENT:
+ setComment(COMMENT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.COMMENTED_ELEMENT__COMMENT:
+ return COMMENT_EDEFAULT == null ? comment != null : !COMMENT_EDEFAULT.equals(comment);
+ }
+ 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(" (comment: ");
+ result.append(comment);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CommentedElementImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentTitleVisibilityPreferenceImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentTitleVisibilityPreferenceImpl.java
new file mode 100644
index 00000000000..4c5fb414537
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentTitleVisibilityPreferenceImpl.java
@@ -0,0 +1,215 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.CompartmentTitleVisibilityPreference;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Compartment Title Visibility Preference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CompartmentTitleVisibilityPreferenceImpl#isVisibleByDefault <em>Visible By Default</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CompartmentTitleVisibilityPreferenceImpl#getCompartments <em>Compartments</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CompartmentTitleVisibilityPreferenceImpl extends CommentedElementImpl implements CompartmentTitleVisibilityPreference {
+ /**
+ * The default value of the '{@link #isVisibleByDefault() <em>Visible By Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isVisibleByDefault()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean VISIBLE_BY_DEFAULT_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isVisibleByDefault() <em>Visible By Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isVisibleByDefault()
+ * @generated
+ * @ordered
+ */
+ protected boolean visibleByDefault = VISIBLE_BY_DEFAULT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getCompartments() <em>Compartments</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompartments()
+ * @generated
+ * @ordered
+ */
+ protected EList<GenCompartment> compartments;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompartmentTitleVisibilityPreferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.COMPARTMENT_TITLE_VISIBILITY_PREFERENCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isVisibleByDefault() {
+ return visibleByDefault;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVisibleByDefault(boolean newVisibleByDefault) {
+ boolean oldVisibleByDefault = visibleByDefault;
+ visibleByDefault = newVisibleByDefault;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT, oldVisibleByDefault, visibleByDefault));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenCompartment> getCompartments() {
+ if (compartments == null) {
+ compartments = new EObjectResolvingEList<GenCompartment>(GenCompartment.class, this, PapyrusgmfgenextensionPackage.COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__COMPARTMENTS);
+ }
+ return compartments;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT:
+ return isVisibleByDefault();
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__COMPARTMENTS:
+ return getCompartments();
+ }
+ 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 PapyrusgmfgenextensionPackage.COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT:
+ setVisibleByDefault((Boolean)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__COMPARTMENTS:
+ getCompartments().clear();
+ getCompartments().addAll((Collection<? extends GenCompartment>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT:
+ setVisibleByDefault(VISIBLE_BY_DEFAULT_EDEFAULT);
+ return;
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__COMPARTMENTS:
+ getCompartments().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT:
+ return visibleByDefault != VISIBLE_BY_DEFAULT_EDEFAULT;
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__COMPARTMENTS:
+ return compartments != null && !compartments.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (visibleByDefault: ");
+ result.append(visibleByDefault);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CompartmentTitleVisibilityPreferenceImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentVisibilityPreferenceImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentVisibilityPreferenceImpl.java
new file mode 100644
index 00000000000..43d344b69f2
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CompartmentVisibilityPreferenceImpl.java
@@ -0,0 +1,215 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.CompartmentVisibilityPreference;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Compartment Visibility Preference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CompartmentVisibilityPreferenceImpl#isVisibleByDefault <em>Visible By Default</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CompartmentVisibilityPreferenceImpl#getCompartments <em>Compartments</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CompartmentVisibilityPreferenceImpl extends CommentedElementImpl implements CompartmentVisibilityPreference {
+ /**
+ * The default value of the '{@link #isVisibleByDefault() <em>Visible By Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isVisibleByDefault()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean VISIBLE_BY_DEFAULT_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isVisibleByDefault() <em>Visible By Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isVisibleByDefault()
+ * @generated
+ * @ordered
+ */
+ protected boolean visibleByDefault = VISIBLE_BY_DEFAULT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getCompartments() <em>Compartments</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompartments()
+ * @generated
+ * @ordered
+ */
+ protected EList<GenCompartment> compartments;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompartmentVisibilityPreferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.COMPARTMENT_VISIBILITY_PREFERENCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isVisibleByDefault() {
+ return visibleByDefault;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVisibleByDefault(boolean newVisibleByDefault) {
+ boolean oldVisibleByDefault = visibleByDefault;
+ visibleByDefault = newVisibleByDefault;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.COMPARTMENT_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT, oldVisibleByDefault, visibleByDefault));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenCompartment> getCompartments() {
+ if (compartments == null) {
+ compartments = new EObjectResolvingEList<GenCompartment>(GenCompartment.class, this, PapyrusgmfgenextensionPackage.COMPARTMENT_VISIBILITY_PREFERENCE__COMPARTMENTS);
+ }
+ return compartments;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT:
+ return isVisibleByDefault();
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_VISIBILITY_PREFERENCE__COMPARTMENTS:
+ return getCompartments();
+ }
+ 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 PapyrusgmfgenextensionPackage.COMPARTMENT_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT:
+ setVisibleByDefault((Boolean)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_VISIBILITY_PREFERENCE__COMPARTMENTS:
+ getCompartments().clear();
+ getCompartments().addAll((Collection<? extends GenCompartment>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT:
+ setVisibleByDefault(VISIBLE_BY_DEFAULT_EDEFAULT);
+ return;
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_VISIBILITY_PREFERENCE__COMPARTMENTS:
+ getCompartments().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT:
+ return visibleByDefault != VISIBLE_BY_DEFAULT_EDEFAULT;
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_VISIBILITY_PREFERENCE__COMPARTMENTS:
+ return compartments != null && !compartments.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (visibleByDefault: ");
+ result.append(visibleByDefault);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CompartmentVisibilityPreferenceImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl.java
new file mode 100644
index 00000000000..5dcb4368ef1
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl.java
@@ -0,0 +1,143 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.ConstrainedByReferenceCompartmentItemSemanticEditPolicy;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Constrained By Reference Compartment Item Semantic Edit Policy</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl#getGenView <em>Gen View</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl extends CommentedElementImpl implements ConstrainedByReferenceCompartmentItemSemanticEditPolicy {
+ /**
+ * The cached value of the '{@link #getGenView() <em>Gen View</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenView()
+ * @generated
+ * @ordered
+ */
+ protected EList<GenCommonBase> genView;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.CONSTRAINED_BY_REFERENCE_COMPARTMENT_ITEM_SEMANTIC_EDIT_POLICY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenCommonBase> getGenView() {
+ if (genView == null) {
+ genView = new EObjectResolvingEList<GenCommonBase>(GenCommonBase.class, this, PapyrusgmfgenextensionPackage.CONSTRAINED_BY_REFERENCE_COMPARTMENT_ITEM_SEMANTIC_EDIT_POLICY__GEN_VIEW);
+ }
+ return genView;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.CONSTRAINED_BY_REFERENCE_COMPARTMENT_ITEM_SEMANTIC_EDIT_POLICY__GEN_VIEW:
+ return getGenView();
+ }
+ 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 PapyrusgmfgenextensionPackage.CONSTRAINED_BY_REFERENCE_COMPARTMENT_ITEM_SEMANTIC_EDIT_POLICY__GEN_VIEW:
+ getGenView().clear();
+ getGenView().addAll((Collection<? extends GenCommonBase>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.CONSTRAINED_BY_REFERENCE_COMPARTMENT_ITEM_SEMANTIC_EDIT_POLICY__GEN_VIEW:
+ getGenView().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.CONSTRAINED_BY_REFERENCE_COMPARTMENT_ITEM_SEMANTIC_EDIT_POLICY__GEN_VIEW:
+ return genView != null && !genView.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CustomDiagramUpdaterSingletonImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CustomDiagramUpdaterSingletonImpl.java
new file mode 100644
index 00000000000..390b7ff2be3
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/CustomDiagramUpdaterSingletonImpl.java
@@ -0,0 +1,172 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.CustomDiagramUpdaterSingleton;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Custom Diagram Updater Singleton</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.CustomDiagramUpdaterSingletonImpl#getSingletonPath <em>Singleton Path</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CustomDiagramUpdaterSingletonImpl extends CommentedElementImpl implements CustomDiagramUpdaterSingleton {
+ /**
+ * The default value of the '{@link #getSingletonPath() <em>Singleton Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSingletonPath()
+ * @generated
+ * @ordered
+ */
+ protected static final String SINGLETON_PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSingletonPath() <em>Singleton Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSingletonPath()
+ * @generated
+ * @ordered
+ */
+ protected String singletonPath = SINGLETON_PATH_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CustomDiagramUpdaterSingletonImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.CUSTOM_DIAGRAM_UPDATER_SINGLETON;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSingletonPath() {
+ return singletonPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSingletonPath(String newSingletonPath) {
+ String oldSingletonPath = singletonPath;
+ singletonPath = newSingletonPath;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.CUSTOM_DIAGRAM_UPDATER_SINGLETON__SINGLETON_PATH, oldSingletonPath, singletonPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.CUSTOM_DIAGRAM_UPDATER_SINGLETON__SINGLETON_PATH:
+ return getSingletonPath();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.CUSTOM_DIAGRAM_UPDATER_SINGLETON__SINGLETON_PATH:
+ setSingletonPath((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.CUSTOM_DIAGRAM_UPDATER_SINGLETON__SINGLETON_PATH:
+ setSingletonPath(SINGLETON_PATH_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.CUSTOM_DIAGRAM_UPDATER_SINGLETON__SINGLETON_PATH:
+ return SINGLETON_PATH_EDEFAULT == null ? singletonPath != null : !SINGLETON_PATH_EDEFAULT.equals(singletonPath);
+ }
+ 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(" (singletonPath: ");
+ result.append(singletonPath);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CustomDiagramUpdaterSingletonImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingDeleteServiceImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingDeleteServiceImpl.java
new file mode 100644
index 00000000000..6f6b056b2e4
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingDeleteServiceImpl.java
@@ -0,0 +1,215 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Edit Part Using Delete Service</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.EditPartUsingDeleteServiceImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.EditPartUsingDeleteServiceImpl#getGenView <em>Gen View</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class EditPartUsingDeleteServiceImpl extends CommentedElementImpl implements EditPartUsingDeleteService {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getGenView() <em>Gen View</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenView()
+ * @generated
+ * @ordered
+ */
+ protected EList<GenCommonBase> genView;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EditPartUsingDeleteServiceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.EDIT_PART_USING_DELETE_SERVICE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.EDIT_PART_USING_DELETE_SERVICE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenCommonBase> getGenView() {
+ if (genView == null) {
+ genView = new EObjectResolvingEList<GenCommonBase>(GenCommonBase.class, this, PapyrusgmfgenextensionPackage.EDIT_PART_USING_DELETE_SERVICE__GEN_VIEW);
+ }
+ return genView;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_DELETE_SERVICE__NAME:
+ return getName();
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_DELETE_SERVICE__GEN_VIEW:
+ return getGenView();
+ }
+ 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 PapyrusgmfgenextensionPackage.EDIT_PART_USING_DELETE_SERVICE__NAME:
+ setName((String)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_DELETE_SERVICE__GEN_VIEW:
+ getGenView().clear();
+ getGenView().addAll((Collection<? extends GenCommonBase>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_DELETE_SERVICE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_DELETE_SERVICE__GEN_VIEW:
+ getGenView().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_DELETE_SERVICE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_DELETE_SERVICE__GEN_VIEW:
+ return genView != null && !genView.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //EditPartUsingDeleteServiceImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingReorientServiceImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingReorientServiceImpl.java
new file mode 100644
index 00000000000..057e9660732
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/EditPartUsingReorientServiceImpl.java
@@ -0,0 +1,215 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Edit Part Using Reorient Service</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.EditPartUsingReorientServiceImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.EditPartUsingReorientServiceImpl#getGenView <em>Gen View</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class EditPartUsingReorientServiceImpl extends CommentedElementImpl implements EditPartUsingReorientService {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getGenView() <em>Gen View</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenView()
+ * @generated
+ * @ordered
+ */
+ protected EList<GenLink> genView;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EditPartUsingReorientServiceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.EDIT_PART_USING_REORIENT_SERVICE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.EDIT_PART_USING_REORIENT_SERVICE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenLink> getGenView() {
+ if (genView == null) {
+ genView = new EObjectResolvingEList<GenLink>(GenLink.class, this, PapyrusgmfgenextensionPackage.EDIT_PART_USING_REORIENT_SERVICE__GEN_VIEW);
+ }
+ return genView;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_REORIENT_SERVICE__NAME:
+ return getName();
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_REORIENT_SERVICE__GEN_VIEW:
+ return getGenView();
+ }
+ 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 PapyrusgmfgenextensionPackage.EDIT_PART_USING_REORIENT_SERVICE__NAME:
+ setName((String)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_REORIENT_SERVICE__GEN_VIEW:
+ getGenView().clear();
+ getGenView().addAll((Collection<? extends GenLink>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_REORIENT_SERVICE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_REORIENT_SERVICE__GEN_VIEW:
+ getGenView().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_REORIENT_SERVICE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_REORIENT_SERVICE__GEN_VIEW:
+ return genView != null && !genView.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //EditPartUsingReorientServiceImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExtendedGenViewImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExtendedGenViewImpl.java
new file mode 100644
index 00000000000..8f0ce357522
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExtendedGenViewImpl.java
@@ -0,0 +1,438 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+import org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Extended Gen View</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExtendedGenViewImpl#getGenView <em>Gen View</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExtendedGenViewImpl#isIsAbstract <em>Is Abstract</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExtendedGenViewImpl#getSuperGenViews <em>Super Gen Views</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExtendedGenViewImpl#getPropRefreshHook <em>Prop Refresh Hook</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExtendedGenViewImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExtendedGenViewImpl#getSuperOwnedEditPart <em>Super Owned Edit Part</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ExtendedGenViewImpl extends CommentedElementImpl implements ExtendedGenView {
+ /**
+ * The cached value of the '{@link #getGenView() <em>Gen View</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenView()
+ * @generated
+ * @ordered
+ */
+ protected EList<GenCommonBase> genView;
+
+ /**
+ * The default value of the '{@link #isIsAbstract() <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsAbstract()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ABSTRACT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isIsAbstract() <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsAbstract()
+ * @generated
+ * @ordered
+ */
+ protected boolean isAbstract = IS_ABSTRACT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSuperGenViews() <em>Super Gen Views</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSuperGenViews()
+ * @generated
+ * @ordered
+ */
+ protected EList<GenCommonBase> superGenViews;
+
+ /**
+ * The cached value of the '{@link #getPropRefreshHook() <em>Prop Refresh Hook</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPropRefreshHook()
+ * @generated
+ * @ordered
+ */
+ protected PropertyRefreshHook propRefreshHook;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSuperOwnedEditPart() <em>Super Owned Edit Part</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSuperOwnedEditPart()
+ * @generated
+ * @ordered
+ */
+ protected static final String SUPER_OWNED_EDIT_PART_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSuperOwnedEditPart() <em>Super Owned Edit Part</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSuperOwnedEditPart()
+ * @generated
+ * @ordered
+ */
+ protected String superOwnedEditPart = SUPER_OWNED_EDIT_PART_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExtendedGenViewImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.EXTENDED_GEN_VIEW;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenCommonBase> getGenView() {
+ if (genView == null) {
+ genView = new EObjectResolvingEList<GenCommonBase>(GenCommonBase.class, this, PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__GEN_VIEW);
+ }
+ return genView;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isIsAbstract() {
+ return isAbstract;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIsAbstract(boolean newIsAbstract) {
+ boolean oldIsAbstract = isAbstract;
+ isAbstract = newIsAbstract;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__IS_ABSTRACT, oldIsAbstract, isAbstract));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenCommonBase> getSuperGenViews() {
+ if (superGenViews == null) {
+ superGenViews = new EObjectResolvingEList<GenCommonBase>(GenCommonBase.class, this, PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__SUPER_GEN_VIEWS);
+ }
+ return superGenViews;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PropertyRefreshHook getPropRefreshHook() {
+ return propRefreshHook;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPropRefreshHook(PropertyRefreshHook newPropRefreshHook, NotificationChain msgs) {
+ PropertyRefreshHook oldPropRefreshHook = propRefreshHook;
+ propRefreshHook = newPropRefreshHook;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__PROP_REFRESH_HOOK, oldPropRefreshHook, newPropRefreshHook);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPropRefreshHook(PropertyRefreshHook newPropRefreshHook) {
+ if (newPropRefreshHook != propRefreshHook) {
+ NotificationChain msgs = null;
+ if (propRefreshHook != null)
+ msgs = ((InternalEObject)propRefreshHook).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__PROP_REFRESH_HOOK, null, msgs);
+ if (newPropRefreshHook != null)
+ msgs = ((InternalEObject)newPropRefreshHook).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__PROP_REFRESH_HOOK, null, msgs);
+ msgs = basicSetPropRefreshHook(newPropRefreshHook, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__PROP_REFRESH_HOOK, newPropRefreshHook, newPropRefreshHook));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSuperOwnedEditPart() {
+ return superOwnedEditPart;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSuperOwnedEditPart(String newSuperOwnedEditPart) {
+ String oldSuperOwnedEditPart = superOwnedEditPart;
+ superOwnedEditPart = newSuperOwnedEditPart;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__SUPER_OWNED_EDIT_PART, oldSuperOwnedEditPart, superOwnedEditPart));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__PROP_REFRESH_HOOK:
+ return basicSetPropRefreshHook(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 PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__GEN_VIEW:
+ return getGenView();
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__IS_ABSTRACT:
+ return isIsAbstract();
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__SUPER_GEN_VIEWS:
+ return getSuperGenViews();
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__PROP_REFRESH_HOOK:
+ return getPropRefreshHook();
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__NAME:
+ return getName();
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__SUPER_OWNED_EDIT_PART:
+ return getSuperOwnedEditPart();
+ }
+ 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 PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__GEN_VIEW:
+ getGenView().clear();
+ getGenView().addAll((Collection<? extends GenCommonBase>)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__IS_ABSTRACT:
+ setIsAbstract((Boolean)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__SUPER_GEN_VIEWS:
+ getSuperGenViews().clear();
+ getSuperGenViews().addAll((Collection<? extends GenCommonBase>)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__PROP_REFRESH_HOOK:
+ setPropRefreshHook((PropertyRefreshHook)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__NAME:
+ setName((String)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__SUPER_OWNED_EDIT_PART:
+ setSuperOwnedEditPart((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__GEN_VIEW:
+ getGenView().clear();
+ return;
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__IS_ABSTRACT:
+ setIsAbstract(IS_ABSTRACT_EDEFAULT);
+ return;
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__SUPER_GEN_VIEWS:
+ getSuperGenViews().clear();
+ return;
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__PROP_REFRESH_HOOK:
+ setPropRefreshHook((PropertyRefreshHook)null);
+ return;
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__SUPER_OWNED_EDIT_PART:
+ setSuperOwnedEditPart(SUPER_OWNED_EDIT_PART_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__GEN_VIEW:
+ return genView != null && !genView.isEmpty();
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__IS_ABSTRACT:
+ return isAbstract != IS_ABSTRACT_EDEFAULT;
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__SUPER_GEN_VIEWS:
+ return superGenViews != null && !superGenViews.isEmpty();
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__PROP_REFRESH_HOOK:
+ return propRefreshHook != null;
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW__SUPER_OWNED_EDIT_PART:
+ return SUPER_OWNED_EDIT_PART_EDEFAULT == null ? superOwnedEditPart != null : !SUPER_OWNED_EDIT_PART_EDEFAULT.equals(superOwnedEditPart);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (isAbstract: ");
+ result.append(isAbstract);
+ result.append(", name: ");
+ result.append(name);
+ result.append(", superOwnedEditPart: ");
+ result.append(superOwnedEditPart);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ExtendedGenViewImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalHookImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalHookImpl.java
new file mode 100644
index 00000000000..51163c88baf
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/ExternalHookImpl.java
@@ -0,0 +1,172 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.ExternalHook;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>External Hook</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.ExternalHookImpl#getClasspath <em>Classpath</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ExternalHookImpl extends CommentedElementImpl implements ExternalHook {
+ /**
+ * The default value of the '{@link #getClasspath() <em>Classpath</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClasspath()
+ * @generated
+ * @ordered
+ */
+ protected static final String CLASSPATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getClasspath() <em>Classpath</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClasspath()
+ * @generated
+ * @ordered
+ */
+ protected String classpath = CLASSPATH_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExternalHookImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.EXTERNAL_HOOK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getClasspath() {
+ return classpath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClasspath(String newClasspath) {
+ String oldClasspath = classpath;
+ classpath = newClasspath;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.EXTERNAL_HOOK__CLASSPATH, oldClasspath, classpath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.EXTERNAL_HOOK__CLASSPATH:
+ return getClasspath();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.EXTERNAL_HOOK__CLASSPATH:
+ setClasspath((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.EXTERNAL_HOOK__CLASSPATH:
+ setClasspath(CLASSPATH_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.EXTERNAL_HOOK__CLASSPATH:
+ return CLASSPATH_EDEFAULT == null ? classpath != null : !CLASSPATH_EDEFAULT.equals(classpath);
+ }
+ 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(" (classpath: ");
+ result.append(classpath);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ExternalHookImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenNodeConstraintImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenNodeConstraintImpl.java
new file mode 100644
index 00000000000..b18bb7d0ca1
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenNodeConstraintImpl.java
@@ -0,0 +1,209 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenConstraint;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.GenNodeConstraint;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gen Node Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.GenNodeConstraintImpl#getGenNode <em>Gen Node</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.GenNodeConstraintImpl#getGenConstraint <em>Gen Constraint</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class GenNodeConstraintImpl extends CommentedElementImpl implements GenNodeConstraint {
+ /**
+ * The cached value of the '{@link #getGenNode() <em>Gen Node</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenNode()
+ * @generated
+ * @ordered
+ */
+ protected EList<GenNode> genNode;
+
+ /**
+ * The cached value of the '{@link #getGenConstraint() <em>Gen Constraint</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenConstraint()
+ * @generated
+ * @ordered
+ */
+ protected GenConstraint genConstraint;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenNodeConstraintImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.GEN_NODE_CONSTRAINT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenNode> getGenNode() {
+ if (genNode == null) {
+ genNode = new EObjectResolvingEList<GenNode>(GenNode.class, this, PapyrusgmfgenextensionPackage.GEN_NODE_CONSTRAINT__GEN_NODE);
+ }
+ return genNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenConstraint getGenConstraint() {
+ if (genConstraint != null && genConstraint.eIsProxy()) {
+ InternalEObject oldGenConstraint = (InternalEObject)genConstraint;
+ genConstraint = (GenConstraint)eResolveProxy(oldGenConstraint);
+ if (genConstraint != oldGenConstraint) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusgmfgenextensionPackage.GEN_NODE_CONSTRAINT__GEN_CONSTRAINT, oldGenConstraint, genConstraint));
+ }
+ }
+ return genConstraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenConstraint basicGetGenConstraint() {
+ return genConstraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGenConstraint(GenConstraint newGenConstraint) {
+ GenConstraint oldGenConstraint = genConstraint;
+ genConstraint = newGenConstraint;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.GEN_NODE_CONSTRAINT__GEN_CONSTRAINT, oldGenConstraint, genConstraint));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.GEN_NODE_CONSTRAINT__GEN_NODE:
+ return getGenNode();
+ case PapyrusgmfgenextensionPackage.GEN_NODE_CONSTRAINT__GEN_CONSTRAINT:
+ if (resolve) return getGenConstraint();
+ return basicGetGenConstraint();
+ }
+ 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 PapyrusgmfgenextensionPackage.GEN_NODE_CONSTRAINT__GEN_NODE:
+ getGenNode().clear();
+ getGenNode().addAll((Collection<? extends GenNode>)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.GEN_NODE_CONSTRAINT__GEN_CONSTRAINT:
+ setGenConstraint((GenConstraint)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.GEN_NODE_CONSTRAINT__GEN_NODE:
+ getGenNode().clear();
+ return;
+ case PapyrusgmfgenextensionPackage.GEN_NODE_CONSTRAINT__GEN_CONSTRAINT:
+ setGenConstraint((GenConstraint)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.GEN_NODE_CONSTRAINT__GEN_NODE:
+ return genNode != null && !genNode.isEmpty();
+ case PapyrusgmfgenextensionPackage.GEN_NODE_CONSTRAINT__GEN_CONSTRAINT:
+ return genConstraint != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //GenNodeConstraintImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenVisualTypeProviderImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenVisualTypeProviderImpl.java
new file mode 100644
index 00000000000..af33d05846d
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenVisualTypeProviderImpl.java
@@ -0,0 +1,172 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gen Visual Type Provider</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.GenVisualTypeProviderImpl#getClassName <em>Class Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class GenVisualTypeProviderImpl extends CommentedElementImpl implements GenVisualTypeProvider {
+ /**
+ * The default value of the '{@link #getClassName() <em>Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClassName()
+ * @generated
+ * @ordered
+ */
+ protected static final String CLASS_NAME_EDEFAULT = "UMLVisualTypeProvider";
+
+ /**
+ * The cached value of the '{@link #getClassName() <em>Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClassName()
+ * @generated
+ * @ordered
+ */
+ protected String className = CLASS_NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenVisualTypeProviderImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.GEN_VISUAL_TYPE_PROVIDER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getClassName() {
+ return className;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClassName(String newClassName) {
+ String oldClassName = className;
+ className = newClassName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME, oldClassName, className));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME:
+ return getClassName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME:
+ setClassName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME:
+ setClassName(CLASS_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME:
+ return CLASS_NAME_EDEFAULT == null ? className != null : !CLASS_NAME_EDEFAULT.equals(className);
+ }
+ 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(" (className: ");
+ result.append(className);
+ result.append(')');
+ return result.toString();
+ }
+
+} //GenVisualTypeProviderImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenerateUsingElementTypeCreationCommandImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenerateUsingElementTypeCreationCommandImpl.java
new file mode 100644
index 00000000000..a565cc690a5
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/GenerateUsingElementTypeCreationCommandImpl.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.GenerateUsingElementTypeCreationCommand;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Generate Using Element Type Creation Command</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GenerateUsingElementTypeCreationCommandImpl extends CommentedElementImpl implements GenerateUsingElementTypeCreationCommand {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GenerateUsingElementTypeCreationCommandImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.GENERATE_USING_ELEMENT_TYPE_CREATION_COMMAND;
+ }
+
+} //GenerateUsingElementTypeCreationCommandImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/LabelVisibilityPreferenceImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/LabelVisibilityPreferenceImpl.java
new file mode 100644
index 00000000000..33348d4cf74
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/LabelVisibilityPreferenceImpl.java
@@ -0,0 +1,358 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Label Visibility Preference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.LabelVisibilityPreferenceImpl#getRole <em>Role</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.LabelVisibilityPreferenceImpl#getIconPathRole <em>Icon Path Role</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.LabelVisibilityPreferenceImpl#getLinkLabels <em>Link Labels</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.LabelVisibilityPreferenceImpl#getExternalNodeLabels <em>External Node Labels</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.LabelVisibilityPreferenceImpl#isVisibleByDefault <em>Visible By Default</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LabelVisibilityPreferenceImpl extends CommentedElementImpl implements LabelVisibilityPreference {
+ /**
+ * The default value of the '{@link #getRole() <em>Role</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRole()
+ * @generated
+ * @ordered
+ */
+ protected static final String ROLE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRole() <em>Role</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRole()
+ * @generated
+ * @ordered
+ */
+ protected String role = ROLE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIconPathRole() <em>Icon Path Role</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconPathRole()
+ * @generated
+ * @ordered
+ */
+ protected static final String ICON_PATH_ROLE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getIconPathRole() <em>Icon Path Role</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconPathRole()
+ * @generated
+ * @ordered
+ */
+ protected String iconPathRole = ICON_PATH_ROLE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getLinkLabels() <em>Link Labels</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLinkLabels()
+ * @generated
+ * @ordered
+ */
+ protected EList<GenLinkLabel> linkLabels;
+
+ /**
+ * The cached value of the '{@link #getExternalNodeLabels() <em>External Node Labels</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExternalNodeLabels()
+ * @generated
+ * @ordered
+ */
+ protected EList<GenExternalNodeLabel> externalNodeLabels;
+
+ /**
+ * The default value of the '{@link #isVisibleByDefault() <em>Visible By Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isVisibleByDefault()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean VISIBLE_BY_DEFAULT_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isVisibleByDefault() <em>Visible By Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isVisibleByDefault()
+ * @generated
+ * @ordered
+ */
+ protected boolean visibleByDefault = VISIBLE_BY_DEFAULT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LabelVisibilityPreferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.LABEL_VISIBILITY_PREFERENCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRole() {
+ return role;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRole(String newRole) {
+ String oldRole = role;
+ role = newRole;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__ROLE, oldRole, role));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getIconPathRole() {
+ return iconPathRole;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIconPathRole(String newIconPathRole) {
+ String oldIconPathRole = iconPathRole;
+ iconPathRole = newIconPathRole;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__ICON_PATH_ROLE, oldIconPathRole, iconPathRole));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenLinkLabel> getLinkLabels() {
+ if (linkLabels == null) {
+ linkLabels = new EObjectResolvingEList<GenLinkLabel>(GenLinkLabel.class, this, PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__LINK_LABELS);
+ }
+ return linkLabels;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenExternalNodeLabel> getExternalNodeLabels() {
+ if (externalNodeLabels == null) {
+ externalNodeLabels = new EObjectResolvingEList<GenExternalNodeLabel>(GenExternalNodeLabel.class, this, PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__EXTERNAL_NODE_LABELS);
+ }
+ return externalNodeLabels;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isVisibleByDefault() {
+ return visibleByDefault;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVisibleByDefault(boolean newVisibleByDefault) {
+ boolean oldVisibleByDefault = visibleByDefault;
+ visibleByDefault = newVisibleByDefault;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT, oldVisibleByDefault, visibleByDefault));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__ROLE:
+ return getRole();
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__ICON_PATH_ROLE:
+ return getIconPathRole();
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__LINK_LABELS:
+ return getLinkLabels();
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__EXTERNAL_NODE_LABELS:
+ return getExternalNodeLabels();
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT:
+ return isVisibleByDefault();
+ }
+ 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 PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__ROLE:
+ setRole((String)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__ICON_PATH_ROLE:
+ setIconPathRole((String)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__LINK_LABELS:
+ getLinkLabels().clear();
+ getLinkLabels().addAll((Collection<? extends GenLinkLabel>)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__EXTERNAL_NODE_LABELS:
+ getExternalNodeLabels().clear();
+ getExternalNodeLabels().addAll((Collection<? extends GenExternalNodeLabel>)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT:
+ setVisibleByDefault((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__ROLE:
+ setRole(ROLE_EDEFAULT);
+ return;
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__ICON_PATH_ROLE:
+ setIconPathRole(ICON_PATH_ROLE_EDEFAULT);
+ return;
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__LINK_LABELS:
+ getLinkLabels().clear();
+ return;
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__EXTERNAL_NODE_LABELS:
+ getExternalNodeLabels().clear();
+ return;
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT:
+ setVisibleByDefault(VISIBLE_BY_DEFAULT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__ROLE:
+ return ROLE_EDEFAULT == null ? role != null : !ROLE_EDEFAULT.equals(role);
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__ICON_PATH_ROLE:
+ return ICON_PATH_ROLE_EDEFAULT == null ? iconPathRole != null : !ICON_PATH_ROLE_EDEFAULT.equals(iconPathRole);
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__LINK_LABELS:
+ return linkLabels != null && !linkLabels.isEmpty();
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__EXTERNAL_NODE_LABELS:
+ return externalNodeLabels != null && !externalNodeLabels.isEmpty();
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT:
+ return visibleByDefault != VISIBLE_BY_DEFAULT_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (role: ");
+ result.append(role);
+ result.append(", iconPathRole: ");
+ result.append(iconPathRole);
+ result.append(", visibleByDefault: ");
+ result.append(visibleByDefault);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LabelVisibilityPreferenceImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/MutatingCanvasImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/MutatingCanvasImpl.java
new file mode 100644
index 00000000000..218b29bc099
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/MutatingCanvasImpl.java
@@ -0,0 +1,160 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas;
+import org.eclipse.papyrus.papyrusgmfgenextension.MutatingCanvas;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Mutating Canvas</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.MutatingCanvasImpl#getAlternateCanvases <em>Alternate Canvases</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class MutatingCanvasImpl extends CommentedElementImpl implements MutatingCanvas {
+ /**
+ * The cached value of the '{@link #getAlternateCanvases() <em>Alternate Canvases</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAlternateCanvases()
+ * @generated
+ * @ordered
+ */
+ protected EList<AlternateCanvas> alternateCanvases;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MutatingCanvasImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.MUTATING_CANVAS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<AlternateCanvas> getAlternateCanvases() {
+ if (alternateCanvases == null) {
+ alternateCanvases = new EObjectContainmentEList<AlternateCanvas>(AlternateCanvas.class, this, PapyrusgmfgenextensionPackage.MUTATING_CANVAS__ALTERNATE_CANVASES);
+ }
+ return alternateCanvases;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.MUTATING_CANVAS__ALTERNATE_CANVASES:
+ return ((InternalEList<?>)getAlternateCanvases()).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 PapyrusgmfgenextensionPackage.MUTATING_CANVAS__ALTERNATE_CANVASES:
+ return getAlternateCanvases();
+ }
+ 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 PapyrusgmfgenextensionPackage.MUTATING_CANVAS__ALTERNATE_CANVASES:
+ getAlternateCanvases().clear();
+ getAlternateCanvases().addAll((Collection<? extends AlternateCanvas>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.MUTATING_CANVAS__ALTERNATE_CANVASES:
+ getAlternateCanvases().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.MUTATING_CANVAS__ALTERNATE_CANVASES:
+ return alternateCanvases != null && !alternateCanvases.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //MutatingCanvasImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/OwnedEditpartImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/OwnedEditpartImpl.java
new file mode 100644
index 00000000000..3e7059f2549
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/OwnedEditpartImpl.java
@@ -0,0 +1,172 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.OwnedEditpart;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Owned Editpart</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.OwnedEditpartImpl#getName <em>Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OwnedEditpartImpl extends ExternalHookImpl implements OwnedEditpart {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OwnedEditpartImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.OWNED_EDITPART;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.OWNED_EDITPART__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.OWNED_EDITPART__NAME:
+ return getName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.OWNED_EDITPART__NAME:
+ setName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.OWNED_EDITPART__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.OWNED_EDITPART__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //OwnedEditpartImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusExtensionRootNodeImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusExtensionRootNodeImpl.java
new file mode 100644
index 00000000000..f3a3d59c213
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusExtensionRootNodeImpl.java
@@ -0,0 +1,160 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.CommentedElement;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusExtensionRootNode;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Papyrus Extension Root Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.PapyrusExtensionRootNodeImpl#getExtensionNodes <em>Extension Nodes</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PapyrusExtensionRootNodeImpl extends CommentedElementImpl implements PapyrusExtensionRootNode {
+ /**
+ * The cached value of the '{@link #getExtensionNodes() <em>Extension Nodes</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExtensionNodes()
+ * @generated
+ * @ordered
+ */
+ protected EList<CommentedElement> extensionNodes;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PapyrusExtensionRootNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.PAPYRUS_EXTENSION_ROOT_NODE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<CommentedElement> getExtensionNodes() {
+ if (extensionNodes == null) {
+ extensionNodes = new EObjectContainmentEList<CommentedElement>(CommentedElement.class, this, PapyrusgmfgenextensionPackage.PAPYRUS_EXTENSION_ROOT_NODE__EXTENSION_NODES);
+ }
+ return extensionNodes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.PAPYRUS_EXTENSION_ROOT_NODE__EXTENSION_NODES:
+ return ((InternalEList<?>)getExtensionNodes()).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 PapyrusgmfgenextensionPackage.PAPYRUS_EXTENSION_ROOT_NODE__EXTENSION_NODES:
+ return getExtensionNodes();
+ }
+ 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 PapyrusgmfgenextensionPackage.PAPYRUS_EXTENSION_ROOT_NODE__EXTENSION_NODES:
+ getExtensionNodes().clear();
+ getExtensionNodes().addAll((Collection<? extends CommentedElement>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.PAPYRUS_EXTENSION_ROOT_NODE__EXTENSION_NODES:
+ getExtensionNodes().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.PAPYRUS_EXTENSION_ROOT_NODE__EXTENSION_NODES:
+ return extensionNodes != null && !extensionNodes.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //PapyrusExtensionRootNodeImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionFactoryImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionFactoryImpl.java
new file mode 100644
index 00000000000..6914d2e9656
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionFactoryImpl.java
@@ -0,0 +1,380 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PapyrusgmfgenextensionFactoryImpl extends EFactoryImpl implements PapyrusgmfgenextensionFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PapyrusgmfgenextensionFactory init() {
+ try {
+ PapyrusgmfgenextensionFactory thePapyrusgmfgenextensionFactory = (PapyrusgmfgenextensionFactory)EPackage.Registry.INSTANCE.getEFactory(PapyrusgmfgenextensionPackage.eNS_URI);
+ if (thePapyrusgmfgenextensionFactory != null) {
+ return thePapyrusgmfgenextensionFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new PapyrusgmfgenextensionFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusgmfgenextensionFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW: return createExtendedGenView();
+ case PapyrusgmfgenextensionPackage.COMMENTED_ELEMENT: return createCommentedElement();
+ case PapyrusgmfgenextensionPackage.PROPERTY_REFRESH_HOOK: return createPropertyRefreshHook();
+ case PapyrusgmfgenextensionPackage.EXTERNAL_HOOK: return createExternalHook();
+ case PapyrusgmfgenextensionPackage.SPECIFIC_LOCATOR: return createSpecificLocator();
+ case PapyrusgmfgenextensionPackage.PAPYRUS_EXTENSION_ROOT_NODE: return createPapyrusExtensionRootNode();
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS: return createAlternateCanvas();
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE: return createAlternateGenTopLevelNode();
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK: return createAlternateGenLink();
+ case PapyrusgmfgenextensionPackage.MUTATING_CANVAS: return createMutatingCanvas();
+ case PapyrusgmfgenextensionPackage.OWNED_EDITPART: return createOwnedEditpart();
+ case PapyrusgmfgenextensionPackage.SPECIFIC_DIAGRAM_UPDATER: return createSpecificDiagramUpdater();
+ case PapyrusgmfgenextensionPackage.GEN_NODE_CONSTRAINT: return createGenNodeConstraint();
+ case PapyrusgmfgenextensionPackage.SPECIFIC_LOCATOR_EXTERNAL_LABEL: return createSpecificLocatorExternalLabel();
+ case PapyrusgmfgenextensionPackage.ADDITIONAL_EDIT_PART_CANDIES: return createAdditionalEditPartCandies();
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_DELETE_SERVICE: return createEditPartUsingDeleteService();
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_REORIENT_SERVICE: return createEditPartUsingReorientService();
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE: return createLabelVisibilityPreference();
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_VISIBILITY_PREFERENCE: return createCompartmentVisibilityPreference();
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_TITLE_VISIBILITY_PREFERENCE: return createCompartmentTitleVisibilityPreference();
+ case PapyrusgmfgenextensionPackage.CONSTRAINED_BY_REFERENCE_COMPARTMENT_ITEM_SEMANTIC_EDIT_POLICY: return createConstrainedByReferenceCompartmentItemSemanticEditPolicy();
+ case PapyrusgmfgenextensionPackage.GENERATE_USING_ELEMENT_TYPE_CREATION_COMMAND: return createGenerateUsingElementTypeCreationCommand();
+ case PapyrusgmfgenextensionPackage.CUSTOM_DIAGRAM_UPDATER_SINGLETON: return createCustomDiagramUpdaterSingleton();
+ case PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE: return createSpecificNodePlate();
+ case PapyrusgmfgenextensionPackage.GEN_VISUAL_TYPE_PROVIDER: return createGenVisualTypeProvider();
+ case PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE: return createVisualIDOverride();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExtendedGenView createExtendedGenView() {
+ ExtendedGenViewImpl extendedGenView = new ExtendedGenViewImpl();
+ return extendedGenView;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CommentedElement createCommentedElement() {
+ CommentedElementImpl commentedElement = new CommentedElementImpl();
+ return commentedElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PropertyRefreshHook createPropertyRefreshHook() {
+ PropertyRefreshHookImpl propertyRefreshHook = new PropertyRefreshHookImpl();
+ return propertyRefreshHook;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExternalHook createExternalHook() {
+ ExternalHookImpl externalHook = new ExternalHookImpl();
+ return externalHook;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SpecificLocator createSpecificLocator() {
+ SpecificLocatorImpl specificLocator = new SpecificLocatorImpl();
+ return specificLocator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusExtensionRootNode createPapyrusExtensionRootNode() {
+ PapyrusExtensionRootNodeImpl papyrusExtensionRootNode = new PapyrusExtensionRootNodeImpl();
+ return papyrusExtensionRootNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AlternateCanvas createAlternateCanvas() {
+ AlternateCanvasImpl alternateCanvas = new AlternateCanvasImpl();
+ return alternateCanvas;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AlternateGenTopLevelNode createAlternateGenTopLevelNode() {
+ AlternateGenTopLevelNodeImpl alternateGenTopLevelNode = new AlternateGenTopLevelNodeImpl();
+ return alternateGenTopLevelNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AlternateGenLink createAlternateGenLink() {
+ AlternateGenLinkImpl alternateGenLink = new AlternateGenLinkImpl();
+ return alternateGenLink;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MutatingCanvas createMutatingCanvas() {
+ MutatingCanvasImpl mutatingCanvas = new MutatingCanvasImpl();
+ return mutatingCanvas;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OwnedEditpart createOwnedEditpart() {
+ OwnedEditpartImpl ownedEditpart = new OwnedEditpartImpl();
+ return ownedEditpart;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SpecificDiagramUpdater createSpecificDiagramUpdater() {
+ SpecificDiagramUpdaterImpl specificDiagramUpdater = new SpecificDiagramUpdaterImpl();
+ return specificDiagramUpdater;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenNodeConstraint createGenNodeConstraint() {
+ GenNodeConstraintImpl genNodeConstraint = new GenNodeConstraintImpl();
+ return genNodeConstraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SpecificLocatorExternalLabel createSpecificLocatorExternalLabel() {
+ SpecificLocatorExternalLabelImpl specificLocatorExternalLabel = new SpecificLocatorExternalLabelImpl();
+ return specificLocatorExternalLabel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdditionalEditPartCandies createAdditionalEditPartCandies() {
+ AdditionalEditPartCandiesImpl additionalEditPartCandies = new AdditionalEditPartCandiesImpl();
+ return additionalEditPartCandies;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditPartUsingDeleteService createEditPartUsingDeleteService() {
+ EditPartUsingDeleteServiceImpl editPartUsingDeleteService = new EditPartUsingDeleteServiceImpl();
+ return editPartUsingDeleteService;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditPartUsingReorientService createEditPartUsingReorientService() {
+ EditPartUsingReorientServiceImpl editPartUsingReorientService = new EditPartUsingReorientServiceImpl();
+ return editPartUsingReorientService;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LabelVisibilityPreference createLabelVisibilityPreference() {
+ LabelVisibilityPreferenceImpl labelVisibilityPreference = new LabelVisibilityPreferenceImpl();
+ return labelVisibilityPreference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompartmentVisibilityPreference createCompartmentVisibilityPreference() {
+ CompartmentVisibilityPreferenceImpl compartmentVisibilityPreference = new CompartmentVisibilityPreferenceImpl();
+ return compartmentVisibilityPreference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompartmentTitleVisibilityPreference createCompartmentTitleVisibilityPreference() {
+ CompartmentTitleVisibilityPreferenceImpl compartmentTitleVisibilityPreference = new CompartmentTitleVisibilityPreferenceImpl();
+ return compartmentTitleVisibilityPreference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConstrainedByReferenceCompartmentItemSemanticEditPolicy createConstrainedByReferenceCompartmentItemSemanticEditPolicy() {
+ ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl constrainedByReferenceCompartmentItemSemanticEditPolicy = new ConstrainedByReferenceCompartmentItemSemanticEditPolicyImpl();
+ return constrainedByReferenceCompartmentItemSemanticEditPolicy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenerateUsingElementTypeCreationCommand createGenerateUsingElementTypeCreationCommand() {
+ GenerateUsingElementTypeCreationCommandImpl generateUsingElementTypeCreationCommand = new GenerateUsingElementTypeCreationCommandImpl();
+ return generateUsingElementTypeCreationCommand;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomDiagramUpdaterSingleton createCustomDiagramUpdaterSingleton() {
+ CustomDiagramUpdaterSingletonImpl customDiagramUpdaterSingleton = new CustomDiagramUpdaterSingletonImpl();
+ return customDiagramUpdaterSingleton;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SpecificNodePlate createSpecificNodePlate() {
+ SpecificNodePlateImpl specificNodePlate = new SpecificNodePlateImpl();
+ return specificNodePlate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenVisualTypeProvider createGenVisualTypeProvider() {
+ GenVisualTypeProviderImpl genVisualTypeProvider = new GenVisualTypeProviderImpl();
+ return genVisualTypeProvider;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VisualIDOverride createVisualIDOverride() {
+ VisualIDOverrideImpl visualIDOverride = new VisualIDOverrideImpl();
+ return visualIDOverride;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusgmfgenextensionPackage getPapyrusgmfgenextensionPackage() {
+ return (PapyrusgmfgenextensionPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static PapyrusgmfgenextensionPackage getPackage() {
+ return PapyrusgmfgenextensionPackage.eINSTANCE;
+ }
+
+} //PapyrusgmfgenextensionFactoryImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionPackageImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionPackageImpl.java
new file mode 100644
index 00000000000..98efe88406f
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PapyrusgmfgenextensionPackageImpl.java
@@ -0,0 +1,1278 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.AdditionalEditPartCandies;
+import org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas;
+import org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink;
+import org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode;
+import org.eclipse.papyrus.papyrusgmfgenextension.CommentedElement;
+import org.eclipse.papyrus.papyrusgmfgenextension.CompartmentTitleVisibilityPreference;
+import org.eclipse.papyrus.papyrusgmfgenextension.CompartmentVisibilityPreference;
+import org.eclipse.papyrus.papyrusgmfgenextension.ConstrainedByReferenceCompartmentItemSemanticEditPolicy;
+import org.eclipse.papyrus.papyrusgmfgenextension.CustomDiagramUpdaterSingleton;
+import org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService;
+import org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService;
+import org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView;
+import org.eclipse.papyrus.papyrusgmfgenextension.ExternalHook;
+import org.eclipse.papyrus.papyrusgmfgenextension.GenNodeConstraint;
+import org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider;
+import org.eclipse.papyrus.papyrusgmfgenextension.GenerateUsingElementTypeCreationCommand;
+import org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference;
+import org.eclipse.papyrus.papyrusgmfgenextension.MutatingCanvas;
+import org.eclipse.papyrus.papyrusgmfgenextension.OwnedEditpart;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusExtensionRootNode;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionFactory;
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+import org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook;
+import org.eclipse.papyrus.papyrusgmfgenextension.SpecificDiagramUpdater;
+import org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocator;
+import org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocatorExternalLabel;
+import org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate;
+import org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PapyrusgmfgenextensionPackageImpl extends EPackageImpl implements PapyrusgmfgenextensionPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass extendedGenViewEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass commentedElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass propertyRefreshHookEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass externalHookEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass specificLocatorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass papyrusExtensionRootNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass alternateCanvasEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass alternateGenTopLevelNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass alternateGenLinkEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass mutatingCanvasEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass ownedEditpartEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass specificDiagramUpdaterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass genNodeConstraintEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass specificLocatorExternalLabelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass additionalEditPartCandiesEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass editPartUsingDeleteServiceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass editPartUsingReorientServiceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass labelVisibilityPreferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass compartmentVisibilityPreferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass compartmentTitleVisibilityPreferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass constrainedByReferenceCompartmentItemSemanticEditPolicyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass generateUsingElementTypeCreationCommandEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass customDiagramUpdaterSingletonEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass specificNodePlateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass genVisualTypeProviderEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass visualIDOverrideEClass = 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.papyrusgmfgenextension.PapyrusgmfgenextensionPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private PapyrusgmfgenextensionPackageImpl() {
+ super(eNS_URI, PapyrusgmfgenextensionFactory.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 PapyrusgmfgenextensionPackage#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 PapyrusgmfgenextensionPackage init() {
+ if (isInited) return (PapyrusgmfgenextensionPackage)EPackage.Registry.INSTANCE.getEPackage(PapyrusgmfgenextensionPackage.eNS_URI);
+
+ // Obtain or create and register package
+ PapyrusgmfgenextensionPackageImpl thePapyrusgmfgenextensionPackage = (PapyrusgmfgenextensionPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof PapyrusgmfgenextensionPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new PapyrusgmfgenextensionPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ GMFGenPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ thePapyrusgmfgenextensionPackage.createPackageContents();
+
+ // Initialize created meta-data
+ thePapyrusgmfgenextensionPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ thePapyrusgmfgenextensionPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(PapyrusgmfgenextensionPackage.eNS_URI, thePapyrusgmfgenextensionPackage);
+ return thePapyrusgmfgenextensionPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExtendedGenView() {
+ return extendedGenViewEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExtendedGenView_GenView() {
+ return (EReference)extendedGenViewEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getExtendedGenView_IsAbstract() {
+ return (EAttribute)extendedGenViewEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExtendedGenView_SuperGenViews() {
+ return (EReference)extendedGenViewEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExtendedGenView_PropRefreshHook() {
+ return (EReference)extendedGenViewEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getExtendedGenView_Name() {
+ return (EAttribute)extendedGenViewEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getExtendedGenView_SuperOwnedEditPart() {
+ return (EAttribute)extendedGenViewEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCommentedElement() {
+ return commentedElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCommentedElement_Comment() {
+ return (EAttribute)commentedElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPropertyRefreshHook() {
+ return propertyRefreshHookEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPropertyRefreshHook_TriggeringCondition() {
+ return (EAttribute)propertyRefreshHookEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPropertyRefreshHook_Action() {
+ return (EAttribute)propertyRefreshHookEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExternalHook() {
+ return externalHookEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getExternalHook_Classpath() {
+ return (EAttribute)externalHookEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSpecificLocator() {
+ return specificLocatorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSpecificLocator_GenChildSideAffixedNode() {
+ return (EReference)specificLocatorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPapyrusExtensionRootNode() {
+ return papyrusExtensionRootNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPapyrusExtensionRootNode_ExtensionNodes() {
+ return (EReference)papyrusExtensionRootNodeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAlternateCanvas() {
+ return alternateCanvasEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAlternateCanvas_DomainDiagramElement() {
+ return (EReference)alternateCanvasEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAlternateCanvas_AlternateTopLevelNodes() {
+ return (EReference)alternateCanvasEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAlternateCanvas_AlternateLinkNodes() {
+ return (EReference)alternateCanvasEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAlternateCanvas_Diagram() {
+ return (EReference)alternateCanvasEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAlternateGenTopLevelNode() {
+ return alternateGenTopLevelNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAlternateGenTopLevelNode_GenTopLevelNode() {
+ return (EReference)alternateGenTopLevelNodeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAlternateGenTopLevelNode_TypeModelFacet() {
+ return (EReference)alternateGenTopLevelNodeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAlternateGenLink() {
+ return alternateGenLinkEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAlternateGenLink_GenLinkNode() {
+ return (EReference)alternateGenLinkEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAlternateGenLink_TypeModelFacet() {
+ return (EReference)alternateGenLinkEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMutatingCanvas() {
+ return mutatingCanvasEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMutatingCanvas_AlternateCanvases() {
+ return (EReference)mutatingCanvasEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOwnedEditpart() {
+ return ownedEditpartEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOwnedEditpart_Name() {
+ return (EAttribute)ownedEditpartEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSpecificDiagramUpdater() {
+ return specificDiagramUpdaterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSpecificDiagramUpdater_GenNode() {
+ return (EReference)specificDiagramUpdaterEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGenNodeConstraint() {
+ return genNodeConstraintEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGenNodeConstraint_GenNode() {
+ return (EReference)genNodeConstraintEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGenNodeConstraint_GenConstraint() {
+ return (EReference)genNodeConstraintEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSpecificLocatorExternalLabel() {
+ return specificLocatorExternalLabelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSpecificLocatorExternalLabel_GenExternalNodeLabel() {
+ return (EReference)specificLocatorExternalLabelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAdditionalEditPartCandies() {
+ return additionalEditPartCandiesEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAdditionalEditPartCandies_BaseEditHelperPackage() {
+ return (EAttribute)additionalEditPartCandiesEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEditPartUsingDeleteService() {
+ return editPartUsingDeleteServiceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEditPartUsingDeleteService_Name() {
+ return (EAttribute)editPartUsingDeleteServiceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEditPartUsingDeleteService_GenView() {
+ return (EReference)editPartUsingDeleteServiceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEditPartUsingReorientService() {
+ return editPartUsingReorientServiceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEditPartUsingReorientService_Name() {
+ return (EAttribute)editPartUsingReorientServiceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEditPartUsingReorientService_GenView() {
+ return (EReference)editPartUsingReorientServiceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLabelVisibilityPreference() {
+ return labelVisibilityPreferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLabelVisibilityPreference_Role() {
+ return (EAttribute)labelVisibilityPreferenceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLabelVisibilityPreference_IconPathRole() {
+ return (EAttribute)labelVisibilityPreferenceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLabelVisibilityPreference_LinkLabels() {
+ return (EReference)labelVisibilityPreferenceEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLabelVisibilityPreference_ExternalNodeLabels() {
+ return (EReference)labelVisibilityPreferenceEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLabelVisibilityPreference_VisibleByDefault() {
+ return (EAttribute)labelVisibilityPreferenceEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCompartmentVisibilityPreference() {
+ return compartmentVisibilityPreferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCompartmentVisibilityPreference_VisibleByDefault() {
+ return (EAttribute)compartmentVisibilityPreferenceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCompartmentVisibilityPreference_Compartments() {
+ return (EReference)compartmentVisibilityPreferenceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCompartmentTitleVisibilityPreference() {
+ return compartmentTitleVisibilityPreferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCompartmentTitleVisibilityPreference_VisibleByDefault() {
+ return (EAttribute)compartmentTitleVisibilityPreferenceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCompartmentTitleVisibilityPreference_Compartments() {
+ return (EReference)compartmentTitleVisibilityPreferenceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConstrainedByReferenceCompartmentItemSemanticEditPolicy() {
+ return constrainedByReferenceCompartmentItemSemanticEditPolicyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConstrainedByReferenceCompartmentItemSemanticEditPolicy_GenView() {
+ return (EReference)constrainedByReferenceCompartmentItemSemanticEditPolicyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGenerateUsingElementTypeCreationCommand() {
+ return generateUsingElementTypeCreationCommandEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCustomDiagramUpdaterSingleton() {
+ return customDiagramUpdaterSingletonEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCustomDiagramUpdaterSingleton_SingletonPath() {
+ return (EAttribute)customDiagramUpdaterSingletonEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSpecificNodePlate() {
+ return specificNodePlateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSpecificNodePlate_EditParts() {
+ return (EReference)specificNodePlateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSpecificNodePlate_Name() {
+ return (EAttribute)specificNodePlateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getSpecificNodePlate_NodePlateQualifiedName() {
+ return (EAttribute)specificNodePlateEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGenVisualTypeProvider() {
+ return genVisualTypeProviderEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getGenVisualTypeProvider_ClassName() {
+ return (EAttribute)genVisualTypeProviderEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVisualIDOverride() {
+ return visualIDOverrideEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVisualIDOverride_GenView() {
+ return (EReference)visualIDOverrideEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getVisualIDOverride_VisualID() {
+ return (EAttribute)visualIDOverrideEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVisualIDOverride_Child() {
+ return (EReference)visualIDOverrideEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusgmfgenextensionFactory getPapyrusgmfgenextensionFactory() {
+ return (PapyrusgmfgenextensionFactory)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
+ extendedGenViewEClass = createEClass(EXTENDED_GEN_VIEW);
+ createEReference(extendedGenViewEClass, EXTENDED_GEN_VIEW__GEN_VIEW);
+ createEAttribute(extendedGenViewEClass, EXTENDED_GEN_VIEW__IS_ABSTRACT);
+ createEReference(extendedGenViewEClass, EXTENDED_GEN_VIEW__SUPER_GEN_VIEWS);
+ createEReference(extendedGenViewEClass, EXTENDED_GEN_VIEW__PROP_REFRESH_HOOK);
+ createEAttribute(extendedGenViewEClass, EXTENDED_GEN_VIEW__NAME);
+ createEAttribute(extendedGenViewEClass, EXTENDED_GEN_VIEW__SUPER_OWNED_EDIT_PART);
+
+ commentedElementEClass = createEClass(COMMENTED_ELEMENT);
+ createEAttribute(commentedElementEClass, COMMENTED_ELEMENT__COMMENT);
+
+ propertyRefreshHookEClass = createEClass(PROPERTY_REFRESH_HOOK);
+ createEAttribute(propertyRefreshHookEClass, PROPERTY_REFRESH_HOOK__TRIGGERING_CONDITION);
+ createEAttribute(propertyRefreshHookEClass, PROPERTY_REFRESH_HOOK__ACTION);
+
+ externalHookEClass = createEClass(EXTERNAL_HOOK);
+ createEAttribute(externalHookEClass, EXTERNAL_HOOK__CLASSPATH);
+
+ specificLocatorEClass = createEClass(SPECIFIC_LOCATOR);
+ createEReference(specificLocatorEClass, SPECIFIC_LOCATOR__GEN_CHILD_SIDE_AFFIXED_NODE);
+
+ papyrusExtensionRootNodeEClass = createEClass(PAPYRUS_EXTENSION_ROOT_NODE);
+ createEReference(papyrusExtensionRootNodeEClass, PAPYRUS_EXTENSION_ROOT_NODE__EXTENSION_NODES);
+
+ alternateCanvasEClass = createEClass(ALTERNATE_CANVAS);
+ createEReference(alternateCanvasEClass, ALTERNATE_CANVAS__DOMAIN_DIAGRAM_ELEMENT);
+ createEReference(alternateCanvasEClass, ALTERNATE_CANVAS__ALTERNATE_TOP_LEVEL_NODES);
+ createEReference(alternateCanvasEClass, ALTERNATE_CANVAS__ALTERNATE_LINK_NODES);
+ createEReference(alternateCanvasEClass, ALTERNATE_CANVAS__DIAGRAM);
+
+ alternateGenTopLevelNodeEClass = createEClass(ALTERNATE_GEN_TOP_LEVEL_NODE);
+ createEReference(alternateGenTopLevelNodeEClass, ALTERNATE_GEN_TOP_LEVEL_NODE__GEN_TOP_LEVEL_NODE);
+ createEReference(alternateGenTopLevelNodeEClass, ALTERNATE_GEN_TOP_LEVEL_NODE__TYPE_MODEL_FACET);
+
+ alternateGenLinkEClass = createEClass(ALTERNATE_GEN_LINK);
+ createEReference(alternateGenLinkEClass, ALTERNATE_GEN_LINK__GEN_LINK_NODE);
+ createEReference(alternateGenLinkEClass, ALTERNATE_GEN_LINK__TYPE_MODEL_FACET);
+
+ mutatingCanvasEClass = createEClass(MUTATING_CANVAS);
+ createEReference(mutatingCanvasEClass, MUTATING_CANVAS__ALTERNATE_CANVASES);
+
+ ownedEditpartEClass = createEClass(OWNED_EDITPART);
+ createEAttribute(ownedEditpartEClass, OWNED_EDITPART__NAME);
+
+ specificDiagramUpdaterEClass = createEClass(SPECIFIC_DIAGRAM_UPDATER);
+ createEReference(specificDiagramUpdaterEClass, SPECIFIC_DIAGRAM_UPDATER__GEN_NODE);
+
+ genNodeConstraintEClass = createEClass(GEN_NODE_CONSTRAINT);
+ createEReference(genNodeConstraintEClass, GEN_NODE_CONSTRAINT__GEN_NODE);
+ createEReference(genNodeConstraintEClass, GEN_NODE_CONSTRAINT__GEN_CONSTRAINT);
+
+ specificLocatorExternalLabelEClass = createEClass(SPECIFIC_LOCATOR_EXTERNAL_LABEL);
+ createEReference(specificLocatorExternalLabelEClass, SPECIFIC_LOCATOR_EXTERNAL_LABEL__GEN_EXTERNAL_NODE_LABEL);
+
+ additionalEditPartCandiesEClass = createEClass(ADDITIONAL_EDIT_PART_CANDIES);
+ createEAttribute(additionalEditPartCandiesEClass, ADDITIONAL_EDIT_PART_CANDIES__BASE_EDIT_HELPER_PACKAGE);
+
+ editPartUsingDeleteServiceEClass = createEClass(EDIT_PART_USING_DELETE_SERVICE);
+ createEAttribute(editPartUsingDeleteServiceEClass, EDIT_PART_USING_DELETE_SERVICE__NAME);
+ createEReference(editPartUsingDeleteServiceEClass, EDIT_PART_USING_DELETE_SERVICE__GEN_VIEW);
+
+ editPartUsingReorientServiceEClass = createEClass(EDIT_PART_USING_REORIENT_SERVICE);
+ createEAttribute(editPartUsingReorientServiceEClass, EDIT_PART_USING_REORIENT_SERVICE__NAME);
+ createEReference(editPartUsingReorientServiceEClass, EDIT_PART_USING_REORIENT_SERVICE__GEN_VIEW);
+
+ labelVisibilityPreferenceEClass = createEClass(LABEL_VISIBILITY_PREFERENCE);
+ createEAttribute(labelVisibilityPreferenceEClass, LABEL_VISIBILITY_PREFERENCE__ROLE);
+ createEAttribute(labelVisibilityPreferenceEClass, LABEL_VISIBILITY_PREFERENCE__ICON_PATH_ROLE);
+ createEReference(labelVisibilityPreferenceEClass, LABEL_VISIBILITY_PREFERENCE__LINK_LABELS);
+ createEReference(labelVisibilityPreferenceEClass, LABEL_VISIBILITY_PREFERENCE__EXTERNAL_NODE_LABELS);
+ createEAttribute(labelVisibilityPreferenceEClass, LABEL_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT);
+
+ compartmentVisibilityPreferenceEClass = createEClass(COMPARTMENT_VISIBILITY_PREFERENCE);
+ createEAttribute(compartmentVisibilityPreferenceEClass, COMPARTMENT_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT);
+ createEReference(compartmentVisibilityPreferenceEClass, COMPARTMENT_VISIBILITY_PREFERENCE__COMPARTMENTS);
+
+ compartmentTitleVisibilityPreferenceEClass = createEClass(COMPARTMENT_TITLE_VISIBILITY_PREFERENCE);
+ createEAttribute(compartmentTitleVisibilityPreferenceEClass, COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__VISIBLE_BY_DEFAULT);
+ createEReference(compartmentTitleVisibilityPreferenceEClass, COMPARTMENT_TITLE_VISIBILITY_PREFERENCE__COMPARTMENTS);
+
+ constrainedByReferenceCompartmentItemSemanticEditPolicyEClass = createEClass(CONSTRAINED_BY_REFERENCE_COMPARTMENT_ITEM_SEMANTIC_EDIT_POLICY);
+ createEReference(constrainedByReferenceCompartmentItemSemanticEditPolicyEClass, CONSTRAINED_BY_REFERENCE_COMPARTMENT_ITEM_SEMANTIC_EDIT_POLICY__GEN_VIEW);
+
+ generateUsingElementTypeCreationCommandEClass = createEClass(GENERATE_USING_ELEMENT_TYPE_CREATION_COMMAND);
+
+ customDiagramUpdaterSingletonEClass = createEClass(CUSTOM_DIAGRAM_UPDATER_SINGLETON);
+ createEAttribute(customDiagramUpdaterSingletonEClass, CUSTOM_DIAGRAM_UPDATER_SINGLETON__SINGLETON_PATH);
+
+ specificNodePlateEClass = createEClass(SPECIFIC_NODE_PLATE);
+ createEReference(specificNodePlateEClass, SPECIFIC_NODE_PLATE__EDIT_PARTS);
+ createEAttribute(specificNodePlateEClass, SPECIFIC_NODE_PLATE__NAME);
+ createEAttribute(specificNodePlateEClass, SPECIFIC_NODE_PLATE__NODE_PLATE_QUALIFIED_NAME);
+
+ genVisualTypeProviderEClass = createEClass(GEN_VISUAL_TYPE_PROVIDER);
+ createEAttribute(genVisualTypeProviderEClass, GEN_VISUAL_TYPE_PROVIDER__CLASS_NAME);
+
+ visualIDOverrideEClass = createEClass(VISUAL_ID_OVERRIDE);
+ createEReference(visualIDOverrideEClass, VISUAL_ID_OVERRIDE__GEN_VIEW);
+ createEAttribute(visualIDOverrideEClass, VISUAL_ID_OVERRIDE__VISUAL_ID);
+ createEReference(visualIDOverrideEClass, VISUAL_ID_OVERRIDE__CHILD);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ GMFGenPackage theGMFGenPackage = (GMFGenPackage)EPackage.Registry.INSTANCE.getEPackage(GMFGenPackage.eNS_URI);
+ EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
+ GenModelPackage theGenModelPackage = (GenModelPackage)EPackage.Registry.INSTANCE.getEPackage(GenModelPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ extendedGenViewEClass.getESuperTypes().add(this.getCommentedElement());
+ propertyRefreshHookEClass.getESuperTypes().add(this.getExternalHook());
+ externalHookEClass.getESuperTypes().add(this.getCommentedElement());
+ specificLocatorEClass.getESuperTypes().add(this.getExternalHook());
+ papyrusExtensionRootNodeEClass.getESuperTypes().add(this.getCommentedElement());
+ alternateCanvasEClass.getESuperTypes().add(this.getCommentedElement());
+ alternateGenTopLevelNodeEClass.getESuperTypes().add(this.getCommentedElement());
+ alternateGenLinkEClass.getESuperTypes().add(this.getCommentedElement());
+ mutatingCanvasEClass.getESuperTypes().add(this.getCommentedElement());
+ ownedEditpartEClass.getESuperTypes().add(this.getExternalHook());
+ specificDiagramUpdaterEClass.getESuperTypes().add(this.getExternalHook());
+ genNodeConstraintEClass.getESuperTypes().add(this.getCommentedElement());
+ specificLocatorExternalLabelEClass.getESuperTypes().add(this.getExternalHook());
+ additionalEditPartCandiesEClass.getESuperTypes().add(this.getCommentedElement());
+ editPartUsingDeleteServiceEClass.getESuperTypes().add(this.getCommentedElement());
+ editPartUsingReorientServiceEClass.getESuperTypes().add(this.getCommentedElement());
+ labelVisibilityPreferenceEClass.getESuperTypes().add(this.getCommentedElement());
+ compartmentVisibilityPreferenceEClass.getESuperTypes().add(this.getCommentedElement());
+ compartmentTitleVisibilityPreferenceEClass.getESuperTypes().add(this.getCommentedElement());
+ constrainedByReferenceCompartmentItemSemanticEditPolicyEClass.getESuperTypes().add(this.getCommentedElement());
+ generateUsingElementTypeCreationCommandEClass.getESuperTypes().add(this.getCommentedElement());
+ customDiagramUpdaterSingletonEClass.getESuperTypes().add(this.getCommentedElement());
+ specificNodePlateEClass.getESuperTypes().add(this.getCommentedElement());
+ genVisualTypeProviderEClass.getESuperTypes().add(this.getCommentedElement());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(extendedGenViewEClass, ExtendedGenView.class, "ExtendedGenView", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getExtendedGenView_GenView(), theGMFGenPackage.getGenCommonBase(), null, "genView", null, 1, -1, ExtendedGenView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getExtendedGenView_IsAbstract(), ecorePackage.getEBoolean(), "isAbstract", null, 1, 1, ExtendedGenView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getExtendedGenView_SuperGenViews(), theGMFGenPackage.getGenCommonBase(), null, "superGenViews", null, 0, -1, ExtendedGenView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEReference(getExtendedGenView_PropRefreshHook(), this.getPropertyRefreshHook(), null, "propRefreshHook", null, 0, 1, ExtendedGenView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getExtendedGenView_Name(), theEcorePackage.getEString(), "name", null, 0, 1, ExtendedGenView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getExtendedGenView_SuperOwnedEditPart(), theEcorePackage.getEString(), "superOwnedEditPart", null, 0, 1, ExtendedGenView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(commentedElementEClass, CommentedElement.class, "CommentedElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCommentedElement_Comment(), ecorePackage.getEString(), "comment", null, 1, 1, CommentedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(propertyRefreshHookEClass, PropertyRefreshHook.class, "PropertyRefreshHook", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getPropertyRefreshHook_TriggeringCondition(), ecorePackage.getEString(), "triggeringCondition", null, 1, 1, PropertyRefreshHook.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getPropertyRefreshHook_Action(), ecorePackage.getEString(), "action", null, 1, 1, PropertyRefreshHook.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(externalHookEClass, ExternalHook.class, "ExternalHook", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getExternalHook_Classpath(), ecorePackage.getEString(), "classpath", null, 0, 1, ExternalHook.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(specificLocatorEClass, SpecificLocator.class, "SpecificLocator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSpecificLocator_GenChildSideAffixedNode(), theGMFGenPackage.getGenChildSideAffixedNode(), null, "genChildSideAffixedNode", null, 0, -1, SpecificLocator.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(papyrusExtensionRootNodeEClass, PapyrusExtensionRootNode.class, "PapyrusExtensionRootNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getPapyrusExtensionRootNode_ExtensionNodes(), this.getCommentedElement(), null, "extensionNodes", null, 0, -1, PapyrusExtensionRootNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(alternateCanvasEClass, AlternateCanvas.class, "AlternateCanvas", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAlternateCanvas_DomainDiagramElement(), theGenModelPackage.getGenClass(), null, "domainDiagramElement", null, 1, 1, AlternateCanvas.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAlternateCanvas_AlternateTopLevelNodes(), this.getAlternateGenTopLevelNode(), null, "alternateTopLevelNodes", null, 0, -1, AlternateCanvas.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAlternateCanvas_AlternateLinkNodes(), this.getAlternateGenLink(), null, "alternateLinkNodes", null, 0, -1, AlternateCanvas.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAlternateCanvas_Diagram(), theGMFGenPackage.getGenDiagram(), null, "diagram", null, 1, 1, AlternateCanvas.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(alternateGenTopLevelNodeEClass, AlternateGenTopLevelNode.class, "AlternateGenTopLevelNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAlternateGenTopLevelNode_GenTopLevelNode(), theGMFGenPackage.getGenTopLevelNode(), null, "genTopLevelNode", null, 1, 1, AlternateGenTopLevelNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAlternateGenTopLevelNode_TypeModelFacet(), theGMFGenPackage.getTypeModelFacet(), null, "typeModelFacet", null, 1, 1, AlternateGenTopLevelNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(alternateGenLinkEClass, AlternateGenLink.class, "AlternateGenLink", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAlternateGenLink_GenLinkNode(), theGMFGenPackage.getGenLink(), null, "genLinkNode", null, 1, 1, AlternateGenLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAlternateGenLink_TypeModelFacet(), theGMFGenPackage.getTypeModelFacet(), null, "typeModelFacet", null, 1, 1, AlternateGenLink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(mutatingCanvasEClass, MutatingCanvas.class, "MutatingCanvas", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getMutatingCanvas_AlternateCanvases(), this.getAlternateCanvas(), null, "alternateCanvases", null, 0, -1, MutatingCanvas.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(ownedEditpartEClass, OwnedEditpart.class, "OwnedEditpart", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getOwnedEditpart_Name(), theEcorePackage.getEString(), "name", null, 0, 1, OwnedEditpart.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(specificDiagramUpdaterEClass, SpecificDiagramUpdater.class, "SpecificDiagramUpdater", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSpecificDiagramUpdater_GenNode(), theGMFGenPackage.getGenCommonBase(), null, "genNode", null, 0, 1, SpecificDiagramUpdater.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(genNodeConstraintEClass, GenNodeConstraint.class, "GenNodeConstraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getGenNodeConstraint_GenNode(), theGMFGenPackage.getGenNode(), null, "genNode", null, 0, -1, GenNodeConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getGenNodeConstraint_GenConstraint(), theGMFGenPackage.getGenConstraint(), null, "genConstraint", null, 0, 1, GenNodeConstraint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(specificLocatorExternalLabelEClass, SpecificLocatorExternalLabel.class, "SpecificLocatorExternalLabel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSpecificLocatorExternalLabel_GenExternalNodeLabel(), theGMFGenPackage.getGenExternalNodeLabel(), null, "genExternalNodeLabel", null, 0, -1, SpecificLocatorExternalLabel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(additionalEditPartCandiesEClass, AdditionalEditPartCandies.class, "AdditionalEditPartCandies", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAdditionalEditPartCandies_BaseEditHelperPackage(), theEcorePackage.getEString(), "baseEditHelperPackage", null, 0, 1, AdditionalEditPartCandies.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(editPartUsingDeleteServiceEClass, EditPartUsingDeleteService.class, "EditPartUsingDeleteService", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getEditPartUsingDeleteService_Name(), theEcorePackage.getEString(), "name", null, 0, 1, EditPartUsingDeleteService.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getEditPartUsingDeleteService_GenView(), theGMFGenPackage.getGenCommonBase(), null, "genView", null, 0, -1, EditPartUsingDeleteService.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(editPartUsingReorientServiceEClass, EditPartUsingReorientService.class, "EditPartUsingReorientService", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getEditPartUsingReorientService_Name(), theEcorePackage.getEString(), "name", null, 0, 1, EditPartUsingReorientService.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getEditPartUsingReorientService_GenView(), theGMFGenPackage.getGenLink(), null, "genView", null, 0, -1, EditPartUsingReorientService.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ initEClass(labelVisibilityPreferenceEClass, LabelVisibilityPreference.class, "LabelVisibilityPreference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLabelVisibilityPreference_Role(), theEcorePackage.getEString(), "role", null, 1, 1, LabelVisibilityPreference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLabelVisibilityPreference_IconPathRole(), ecorePackage.getEString(), "iconPathRole", null, 0, 1, LabelVisibilityPreference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLabelVisibilityPreference_LinkLabels(), theGMFGenPackage.getGenLinkLabel(), null, "linkLabels", null, 0, -1, LabelVisibilityPreference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getLabelVisibilityPreference_ExternalNodeLabels(), theGMFGenPackage.getGenExternalNodeLabel(), null, "externalNodeLabels", null, 0, -1, LabelVisibilityPreference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLabelVisibilityPreference_VisibleByDefault(), theEcorePackage.getEBoolean(), "visibleByDefault", "true", 0, 1, LabelVisibilityPreference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(compartmentVisibilityPreferenceEClass, CompartmentVisibilityPreference.class, "CompartmentVisibilityPreference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCompartmentVisibilityPreference_VisibleByDefault(), theEcorePackage.getEBoolean(), "visibleByDefault", "true", 0, 1, CompartmentVisibilityPreference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCompartmentVisibilityPreference_Compartments(), theGMFGenPackage.getGenCompartment(), null, "compartments", null, 0, -1, CompartmentVisibilityPreference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(compartmentTitleVisibilityPreferenceEClass, CompartmentTitleVisibilityPreference.class, "CompartmentTitleVisibilityPreference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCompartmentTitleVisibilityPreference_VisibleByDefault(), theEcorePackage.getEBoolean(), "visibleByDefault", "true", 0, 1, CompartmentTitleVisibilityPreference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCompartmentTitleVisibilityPreference_Compartments(), theGMFGenPackage.getGenCompartment(), null, "compartments", null, 0, -1, CompartmentTitleVisibilityPreference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(constrainedByReferenceCompartmentItemSemanticEditPolicyEClass, ConstrainedByReferenceCompartmentItemSemanticEditPolicy.class, "ConstrainedByReferenceCompartmentItemSemanticEditPolicy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getConstrainedByReferenceCompartmentItemSemanticEditPolicy_GenView(), theGMFGenPackage.getGenCommonBase(), null, "genView", null, 0, -1, ConstrainedByReferenceCompartmentItemSemanticEditPolicy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(generateUsingElementTypeCreationCommandEClass, GenerateUsingElementTypeCreationCommand.class, "GenerateUsingElementTypeCreationCommand", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(customDiagramUpdaterSingletonEClass, CustomDiagramUpdaterSingleton.class, "CustomDiagramUpdaterSingleton", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCustomDiagramUpdaterSingleton_SingletonPath(), ecorePackage.getEString(), "singletonPath", null, 1, 1, CustomDiagramUpdaterSingleton.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(specificNodePlateEClass, SpecificNodePlate.class, "SpecificNodePlate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSpecificNodePlate_EditParts(), theGMFGenPackage.getGenNode(), null, "editParts", null, 1, -1, SpecificNodePlate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getSpecificNodePlate_Name(), theEcorePackage.getEString(), "name", null, 0, 1, SpecificNodePlate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSpecificNodePlate_NodePlateQualifiedName(), theEcorePackage.getEString(), "nodePlateQualifiedName", null, 0, 1, SpecificNodePlate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(genVisualTypeProviderEClass, GenVisualTypeProvider.class, "GenVisualTypeProvider", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getGenVisualTypeProvider_ClassName(), ecorePackage.getEString(), "className", "UMLVisualTypeProvider", 0, 1, GenVisualTypeProvider.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(visualIDOverrideEClass, VisualIDOverride.class, "VisualIDOverride", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getVisualIDOverride_GenView(), theGMFGenPackage.getGenCommonBase(), null, "genView", null, 1, 1, VisualIDOverride.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+ initEAttribute(getVisualIDOverride_VisualID(), theEcorePackage.getEString(), "visualID", null, 1, 1, VisualIDOverride.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getVisualIDOverride_Child(), this.getVisualIDOverride(), null, "child", null, 0, -1, VisualIDOverride.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //PapyrusgmfgenextensionPackageImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PropertyRefreshHookImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PropertyRefreshHookImpl.java
new file mode 100644
index 00000000000..61bc308c113
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/PropertyRefreshHookImpl.java
@@ -0,0 +1,226 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+import org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Property Refresh Hook</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.PropertyRefreshHookImpl#getTriggeringCondition <em>Triggering Condition</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.PropertyRefreshHookImpl#getAction <em>Action</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PropertyRefreshHookImpl extends ExternalHookImpl implements PropertyRefreshHook {
+ /**
+ * The default value of the '{@link #getTriggeringCondition() <em>Triggering Condition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTriggeringCondition()
+ * @generated
+ * @ordered
+ */
+ protected static final String TRIGGERING_CONDITION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTriggeringCondition() <em>Triggering Condition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTriggeringCondition()
+ * @generated
+ * @ordered
+ */
+ protected String triggeringCondition = TRIGGERING_CONDITION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getAction() <em>Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAction()
+ * @generated
+ * @ordered
+ */
+ protected static final String ACTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAction() <em>Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAction()
+ * @generated
+ * @ordered
+ */
+ protected String action = ACTION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PropertyRefreshHookImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.PROPERTY_REFRESH_HOOK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTriggeringCondition() {
+ return triggeringCondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTriggeringCondition(String newTriggeringCondition) {
+ String oldTriggeringCondition = triggeringCondition;
+ triggeringCondition = newTriggeringCondition;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.PROPERTY_REFRESH_HOOK__TRIGGERING_CONDITION, oldTriggeringCondition, triggeringCondition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getAction() {
+ return action;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAction(String newAction) {
+ String oldAction = action;
+ action = newAction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.PROPERTY_REFRESH_HOOK__ACTION, oldAction, action));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.PROPERTY_REFRESH_HOOK__TRIGGERING_CONDITION:
+ return getTriggeringCondition();
+ case PapyrusgmfgenextensionPackage.PROPERTY_REFRESH_HOOK__ACTION:
+ return getAction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.PROPERTY_REFRESH_HOOK__TRIGGERING_CONDITION:
+ setTriggeringCondition((String)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.PROPERTY_REFRESH_HOOK__ACTION:
+ setAction((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.PROPERTY_REFRESH_HOOK__TRIGGERING_CONDITION:
+ setTriggeringCondition(TRIGGERING_CONDITION_EDEFAULT);
+ return;
+ case PapyrusgmfgenextensionPackage.PROPERTY_REFRESH_HOOK__ACTION:
+ setAction(ACTION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.PROPERTY_REFRESH_HOOK__TRIGGERING_CONDITION:
+ return TRIGGERING_CONDITION_EDEFAULT == null ? triggeringCondition != null : !TRIGGERING_CONDITION_EDEFAULT.equals(triggeringCondition);
+ case PapyrusgmfgenextensionPackage.PROPERTY_REFRESH_HOOK__ACTION:
+ return ACTION_EDEFAULT == null ? action != null : !ACTION_EDEFAULT.equals(action);
+ }
+ 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(" (triggeringCondition: ");
+ result.append(triggeringCondition);
+ result.append(", action: ");
+ result.append(action);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PropertyRefreshHookImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificDiagramUpdaterImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificDiagramUpdaterImpl.java
new file mode 100644
index 00000000000..c8a9abd3f42
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificDiagramUpdaterImpl.java
@@ -0,0 +1,167 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.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.gmf.codegen.gmfgen.GenCommonBase;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+import org.eclipse.papyrus.papyrusgmfgenextension.SpecificDiagramUpdater;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Specific Diagram Updater</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificDiagramUpdaterImpl#getGenNode <em>Gen Node</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SpecificDiagramUpdaterImpl extends ExternalHookImpl implements SpecificDiagramUpdater {
+ /**
+ * The cached value of the '{@link #getGenNode() <em>Gen Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenNode()
+ * @generated
+ * @ordered
+ */
+ protected GenCommonBase genNode;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SpecificDiagramUpdaterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.SPECIFIC_DIAGRAM_UPDATER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenCommonBase getGenNode() {
+ if (genNode != null && genNode.eIsProxy()) {
+ InternalEObject oldGenNode = (InternalEObject)genNode;
+ genNode = (GenCommonBase)eResolveProxy(oldGenNode);
+ if (genNode != oldGenNode) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusgmfgenextensionPackage.SPECIFIC_DIAGRAM_UPDATER__GEN_NODE, oldGenNode, genNode));
+ }
+ }
+ return genNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenCommonBase basicGetGenNode() {
+ return genNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGenNode(GenCommonBase newGenNode) {
+ GenCommonBase oldGenNode = genNode;
+ genNode = newGenNode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.SPECIFIC_DIAGRAM_UPDATER__GEN_NODE, oldGenNode, genNode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.SPECIFIC_DIAGRAM_UPDATER__GEN_NODE:
+ if (resolve) return getGenNode();
+ return basicGetGenNode();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.SPECIFIC_DIAGRAM_UPDATER__GEN_NODE:
+ setGenNode((GenCommonBase)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.SPECIFIC_DIAGRAM_UPDATER__GEN_NODE:
+ setGenNode((GenCommonBase)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.SPECIFIC_DIAGRAM_UPDATER__GEN_NODE:
+ return genNode != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SpecificDiagramUpdaterImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorExternalLabelImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorExternalLabelImpl.java
new file mode 100644
index 00000000000..4748763ce1c
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorExternalLabelImpl.java
@@ -0,0 +1,143 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+import org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocatorExternalLabel;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Specific Locator External Label</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificLocatorExternalLabelImpl#getGenExternalNodeLabel <em>Gen External Node Label</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SpecificLocatorExternalLabelImpl extends ExternalHookImpl implements SpecificLocatorExternalLabel {
+ /**
+ * The cached value of the '{@link #getGenExternalNodeLabel() <em>Gen External Node Label</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenExternalNodeLabel()
+ * @generated
+ * @ordered
+ */
+ protected EList<GenExternalNodeLabel> genExternalNodeLabel;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SpecificLocatorExternalLabelImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.SPECIFIC_LOCATOR_EXTERNAL_LABEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenExternalNodeLabel> getGenExternalNodeLabel() {
+ if (genExternalNodeLabel == null) {
+ genExternalNodeLabel = new EObjectResolvingEList<GenExternalNodeLabel>(GenExternalNodeLabel.class, this, PapyrusgmfgenextensionPackage.SPECIFIC_LOCATOR_EXTERNAL_LABEL__GEN_EXTERNAL_NODE_LABEL);
+ }
+ return genExternalNodeLabel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.SPECIFIC_LOCATOR_EXTERNAL_LABEL__GEN_EXTERNAL_NODE_LABEL:
+ return getGenExternalNodeLabel();
+ }
+ 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 PapyrusgmfgenextensionPackage.SPECIFIC_LOCATOR_EXTERNAL_LABEL__GEN_EXTERNAL_NODE_LABEL:
+ getGenExternalNodeLabel().clear();
+ getGenExternalNodeLabel().addAll((Collection<? extends GenExternalNodeLabel>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.SPECIFIC_LOCATOR_EXTERNAL_LABEL__GEN_EXTERNAL_NODE_LABEL:
+ getGenExternalNodeLabel().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.SPECIFIC_LOCATOR_EXTERNAL_LABEL__GEN_EXTERNAL_NODE_LABEL:
+ return genExternalNodeLabel != null && !genExternalNodeLabel.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SpecificLocatorExternalLabelImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorImpl.java
new file mode 100644
index 00000000000..2e7c3fc0a2b
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificLocatorImpl.java
@@ -0,0 +1,143 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+import org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocator;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Specific Locator</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificLocatorImpl#getGenChildSideAffixedNode <em>Gen Child Side Affixed Node</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SpecificLocatorImpl extends ExternalHookImpl implements SpecificLocator {
+ /**
+ * The cached value of the '{@link #getGenChildSideAffixedNode() <em>Gen Child Side Affixed Node</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenChildSideAffixedNode()
+ * @generated
+ * @ordered
+ */
+ protected EList<GenChildSideAffixedNode> genChildSideAffixedNode;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SpecificLocatorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.SPECIFIC_LOCATOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenChildSideAffixedNode> getGenChildSideAffixedNode() {
+ if (genChildSideAffixedNode == null) {
+ genChildSideAffixedNode = new EObjectResolvingEList<GenChildSideAffixedNode>(GenChildSideAffixedNode.class, this, PapyrusgmfgenextensionPackage.SPECIFIC_LOCATOR__GEN_CHILD_SIDE_AFFIXED_NODE);
+ }
+ return genChildSideAffixedNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.SPECIFIC_LOCATOR__GEN_CHILD_SIDE_AFFIXED_NODE:
+ return getGenChildSideAffixedNode();
+ }
+ 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 PapyrusgmfgenextensionPackage.SPECIFIC_LOCATOR__GEN_CHILD_SIDE_AFFIXED_NODE:
+ getGenChildSideAffixedNode().clear();
+ getGenChildSideAffixedNode().addAll((Collection<? extends GenChildSideAffixedNode>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.SPECIFIC_LOCATOR__GEN_CHILD_SIDE_AFFIXED_NODE:
+ getGenChildSideAffixedNode().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.SPECIFIC_LOCATOR__GEN_CHILD_SIDE_AFFIXED_NODE:
+ return genChildSideAffixedNode != null && !genChildSideAffixedNode.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //SpecificLocatorImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificNodePlateImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificNodePlateImpl.java
new file mode 100644
index 00000000000..c91c2c9fe79
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/SpecificNodePlateImpl.java
@@ -0,0 +1,269 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+import org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Specific Node Plate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificNodePlateImpl#getEditParts <em>Edit Parts</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificNodePlateImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.SpecificNodePlateImpl#getNodePlateQualifiedName <em>Node Plate Qualified Name</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SpecificNodePlateImpl extends CommentedElementImpl implements SpecificNodePlate {
+ /**
+ * The cached value of the '{@link #getEditParts() <em>Edit Parts</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEditParts()
+ * @generated
+ * @ordered
+ */
+ protected EList<GenNode> editParts;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNodePlateQualifiedName() <em>Node Plate Qualified Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNodePlateQualifiedName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NODE_PLATE_QUALIFIED_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNodePlateQualifiedName() <em>Node Plate Qualified Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNodePlateQualifiedName()
+ * @generated
+ * @ordered
+ */
+ protected String nodePlateQualifiedName = NODE_PLATE_QUALIFIED_NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SpecificNodePlateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.SPECIFIC_NODE_PLATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<GenNode> getEditParts() {
+ if (editParts == null) {
+ editParts = new EObjectResolvingEList<GenNode>(GenNode.class, this, PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE__EDIT_PARTS);
+ }
+ return editParts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getNodePlateQualifiedName() {
+ return nodePlateQualifiedName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNodePlateQualifiedName(String newNodePlateQualifiedName) {
+ String oldNodePlateQualifiedName = nodePlateQualifiedName;
+ nodePlateQualifiedName = newNodePlateQualifiedName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE__NODE_PLATE_QUALIFIED_NAME, oldNodePlateQualifiedName, nodePlateQualifiedName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE__EDIT_PARTS:
+ return getEditParts();
+ case PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE__NAME:
+ return getName();
+ case PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE__NODE_PLATE_QUALIFIED_NAME:
+ return getNodePlateQualifiedName();
+ }
+ 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 PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE__EDIT_PARTS:
+ getEditParts().clear();
+ getEditParts().addAll((Collection<? extends GenNode>)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE__NAME:
+ setName((String)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE__NODE_PLATE_QUALIFIED_NAME:
+ setNodePlateQualifiedName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE__EDIT_PARTS:
+ getEditParts().clear();
+ return;
+ case PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE__NODE_PLATE_QUALIFIED_NAME:
+ setNodePlateQualifiedName(NODE_PLATE_QUALIFIED_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE__EDIT_PARTS:
+ return editParts != null && !editParts.isEmpty();
+ case PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE__NODE_PLATE_QUALIFIED_NAME:
+ return NODE_PLATE_QUALIFIED_NAME_EDEFAULT == null ? nodePlateQualifiedName != null : !NODE_PLATE_QUALIFIED_NAME_EDEFAULT.equals(nodePlateQualifiedName);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", nodePlateQualifiedName: ");
+ result.append(nodePlateQualifiedName);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SpecificNodePlateImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/VisualIDOverrideImpl.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/VisualIDOverrideImpl.java
new file mode 100644
index 00000000000..eeba2d14251
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/impl/VisualIDOverrideImpl.java
@@ -0,0 +1,293 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.PapyrusgmfgenextensionPackage;
+import org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Visual ID Override</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.VisualIDOverrideImpl#getGenView <em>Gen View</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.VisualIDOverrideImpl#getVisualID <em>Visual ID</em>}</li>
+ * <li>{@link org.eclipse.papyrus.papyrusgmfgenextension.impl.VisualIDOverrideImpl#getChild <em>Child</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class VisualIDOverrideImpl extends EObjectImpl implements VisualIDOverride {
+ /**
+ * The cached value of the '{@link #getGenView() <em>Gen View</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenView()
+ * @generated
+ * @ordered
+ */
+ protected GenCommonBase genView;
+
+ /**
+ * The default value of the '{@link #getVisualID() <em>Visual ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVisualID()
+ * @generated
+ * @ordered
+ */
+ protected static final String VISUAL_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVisualID() <em>Visual ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVisualID()
+ * @generated
+ * @ordered
+ */
+ protected String visualID = VISUAL_ID_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getChild() <em>Child</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChild()
+ * @generated
+ * @ordered
+ */
+ protected EList<VisualIDOverride> child;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VisualIDOverrideImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return PapyrusgmfgenextensionPackage.Literals.VISUAL_ID_OVERRIDE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenCommonBase getGenView() {
+ if (genView != null && genView.eIsProxy()) {
+ InternalEObject oldGenView = (InternalEObject)genView;
+ genView = (GenCommonBase)eResolveProxy(oldGenView);
+ if (genView != oldGenView) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__GEN_VIEW, oldGenView, genView));
+ }
+ }
+ return genView;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenCommonBase basicGetGenView() {
+ return genView;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGenView(GenCommonBase newGenView) {
+ GenCommonBase oldGenView = genView;
+ genView = newGenView;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__GEN_VIEW, oldGenView, genView));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getVisualID() {
+ return visualID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVisualID(String newVisualID) {
+ String oldVisualID = visualID;
+ visualID = newVisualID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__VISUAL_ID, oldVisualID, visualID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<VisualIDOverride> getChild() {
+ if (child == null) {
+ child = new EObjectContainmentEList<VisualIDOverride>(VisualIDOverride.class, this, PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__CHILD);
+ }
+ return child;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__CHILD:
+ return ((InternalEList<?>)getChild()).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 PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__GEN_VIEW:
+ if (resolve) return getGenView();
+ return basicGetGenView();
+ case PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__VISUAL_ID:
+ return getVisualID();
+ case PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__CHILD:
+ return getChild();
+ }
+ 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 PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__GEN_VIEW:
+ setGenView((GenCommonBase)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__VISUAL_ID:
+ setVisualID((String)newValue);
+ return;
+ case PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__CHILD:
+ getChild().clear();
+ getChild().addAll((Collection<? extends VisualIDOverride>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__GEN_VIEW:
+ setGenView((GenCommonBase)null);
+ return;
+ case PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__VISUAL_ID:
+ setVisualID(VISUAL_ID_EDEFAULT);
+ return;
+ case PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__CHILD:
+ getChild().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__GEN_VIEW:
+ return genView != null;
+ case PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__VISUAL_ID:
+ return VISUAL_ID_EDEFAULT == null ? visualID != null : !VISUAL_ID_EDEFAULT.equals(visualID);
+ case PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE__CHILD:
+ return child != null && !child.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (visualID: ");
+ result.append(visualID);
+ result.append(')');
+ return result.toString();
+ }
+
+} //VisualIDOverrideImpl
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/Action.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/Action.java
new file mode 100644
index 00000000000..a1f61672012
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/Action.java
@@ -0,0 +1,182 @@
+/*******************************************************************************
+ * Copyright (c) 2009 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.Behaviour;
+import org.eclipse.gmf.codegen.gmfgen.CustomBehaviour;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenFactory;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+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;
+
+public abstract class Action implements IObjectActionDelegate {
+
+ private List<EObject> selectedListEObject;
+
+ /**
+ * Convert each selected elements from the explorer menu, or modeling view to an EObject and add it to a list
+ *
+ * @return list of EObject
+ */
+ public void updateSelectedEObject(IStructuredSelection selection) {
+
+ List<EObject> selectedCurrentListEObjects = new LinkedList<EObject>();
+
+ Iterator<Object> eltIt = selection.iterator();
+ while (eltIt.hasNext()) {
+
+ Object currentObject = eltIt.next();
+ if (currentObject instanceof EObject) {
+ selectedCurrentListEObjects.add((EObject) currentObject);
+ }
+ }
+ selectedListEObject = selectedCurrentListEObjects;
+ }
+
+ public List<EObject> getSelectedEObject() {
+ return selectedListEObject;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
+ */
+ @Override
+ public void selectionChanged(IAction action, ISelection selection) {
+ // Convert selection into EObject list
+ updateSelectedEObject((IStructuredSelection) selection);
+ }
+
+ @Override
+ public void setActivePart(IAction action, IWorkbenchPart targetPart) {
+ // NO OP.
+ }
+
+ /**
+ * Check if the CustomBehavior for policyKey is already added
+ *
+ * @param genlink
+ * the GenLink to test
+ * @param policyKey
+ * that we look for
+ * @return true if the behavior with correct key already exists
+ */
+ protected boolean hasCustomBehavior(GenCommonBase genCommonBase, String policyKey) {
+
+ boolean hasCustomBehavior = false;
+
+ Iterator<Behaviour> it = genCommonBase.getBehaviour().iterator();
+ while (it.hasNext() && !(hasCustomBehavior)) {
+ Behaviour behaviour = it.next();
+
+ if (behaviour instanceof CustomBehaviour) {
+ CustomBehaviour customBehavior = (CustomBehaviour) behaviour;
+ if (policyKey.equals(customBehavior.getKey())) {
+ hasCustomBehavior = true;
+ }
+ }
+ }
+
+ return hasCustomBehavior;
+ }
+
+ /**
+ * Add the CustomBehavior for Applied Stereotype label display to the GenLink node given as
+ * parameter
+ *
+ * @param genCommonBase
+ * where the CustomBehavior is added
+ */
+ protected void addCustomBehavior(GenCommonBase genCommonBase, String policyKey, String policyValue) {
+
+ CustomBehaviour behavior = GMFGenFactory.eINSTANCE.createCustomBehaviour();
+ behavior.setKey(policyKey);
+ behavior.setEditPolicyQualifiedClassName(policyValue);
+
+ genCommonBase.getBehaviour().add(behavior);
+ }
+
+ /**
+ * Find the GenClass node with specified name in the resource model (GenModel expected here)
+ *
+ * @param resource
+ * the genmodel
+ * @param name
+ * of the searched GenClass
+ * @return genClass with chosen name or null
+ */
+ protected GenClass findGenClass(Resource resource, String name) {
+
+ GenClass genClass = null;
+ Iterator<EObject> it = resource.getAllContents();
+ while (it.hasNext() && (genClass == null)) {
+ EObject eobject = it.next();
+
+ if (eobject instanceof GenClass) {
+ GenClass current = (GenClass) eobject;
+ if (name.equals(current.getName())) {
+ genClass = current;
+ }
+ }
+ }
+ return genClass;
+ }
+
+ /**
+ * Finds a GenFeature owned by a specified GenClass in the resource (genmodel)
+ *
+ * @param resource
+ * the genmodel
+ * @param genClassName
+ * the name of GenClass owning the searched feature
+ * @param genFeatureName
+ * the name of the GenFeature
+ * @return the found GenFeature node or null
+ */
+ protected GenFeature findGenFeature(Resource resource, String genClassName, String genFeatureName) {
+
+ GenFeature genFeature = null;
+
+ Iterator<EObject> it = resource.getAllContents();
+ while (it.hasNext() && (genFeature == null)) {
+ EObject eobject = it.next();
+
+ if (eobject instanceof GenClass) {
+ GenClass genClass = (GenClass) eobject;
+
+ if (genClassName.equals(genClass.getName())) {
+
+ Iterator<GenFeature> itGF = genClass.getAllGenFeatures().iterator();
+ while (itGF.hasNext() && (genFeature == null)) {
+ GenFeature currentGenFeature = itGF.next();
+
+ if (genFeatureName.equals(currentGenFeature.getEcoreFeature().getName())) {
+ genFeature = currentGenFeature;
+ }
+ }
+ }
+ }
+ }
+ return genFeature;
+ }
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddDefaultNamedElementAction.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddDefaultNamedElementAction.java
new file mode 100644
index 00000000000..7fdf95b7fc8
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddDefaultNamedElementAction.java
@@ -0,0 +1,163 @@
+/*****************************************************************************
+ * 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.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Shell;
+
+
+/**
+ * The Class AddDefaultNamedElementAction it create an edti part to show a named element in the diagram
+ */
+public class AddDefaultNamedElementAction extends Action {
+
+
+ /** The Constant PACKAGED_ELEMENT_ATTRIBUTE. */
+ protected static final String PACKAGED_ELEMENT_ATTRIBUTE = "packagedElement"; //$NON-NLS-1$
+
+ /** The Constant PACKAGE_NAME. */
+ protected static final String PACKAGE_NAME = "Package"; //$NON-NLS-1$
+
+ /** The Constant UNKNOW_EDITPOLICY. */
+ protected static final String UNKNOW_EDITPOLICY = "YOUR OWN CHANGE SHAPE EDIT POLICY"; //$NON-NLS-1$
+
+ /** The Constant QUALIFIED_NAME_DISPLAY_EDIT_POLICY_VALUE. */
+ protected static final String QUALIFIED_NAME_DISPLAY_EDIT_POLICY_VALUE = "org.eclipse.papyrus.diagram.common.editpolicies.QualifiedNameDisplayEditPolicy"; //$NON-NLS-1$
+
+ /** The Constant NODE_LABEL_DISPLAY_EDIT_POLICY_VALUE. */
+ protected static final String NODE_LABEL_DISPLAY_EDIT_POLICY_VALUE = "org.eclipse.papyrus.diagram.common.editpolicies.AppliedStereotypeNodeLabelDisplayEditPolicy"; //$NON-NLS-1$
+
+ /** The Constant POPUP_BAR_EDIT_POLICY_VALUE. */
+ protected static final String POPUP_BAR_EDIT_POLICY_VALUE = "org.eclipse.papyrus.diagram.common.editpolicies.HyperLinkPopupBarEditPolicy"; //$NON-NLS-1$
+
+ /** The Constant CHANGE_SHAPE_POLICY_KEY. */
+ protected static final String CHANGE_SHAPE_POLICY_KEY = "org.eclipse.papyrus.diagram.common.editpolicies.ChangeStereotypedShapeEditPolicy.CHANGE_SHAPE_POLICY"; //$NON-NLS-1$
+
+ /** The Constant POLICY_QUALIFIED_NAME_POLICY_KEY. */
+ protected static final String POLICY_QUALIFIED_NAME_POLICY_KEY = "org.eclipse.papyrus.diagram.common.editpolicies.QualifiedNameDisplayEditPolicy.QUALIFIED_NAME_POLICY"; //$NON-NLS-1$
+
+ /** The Constant STEREOTYPE_LABEL_POLICY_KEY. */
+ protected static final String STEREOTYPE_LABEL_POLICY_KEY = "org.eclipse.papyrus.diagram.common.editpolicies.AppliedStereotypeLabelDisplayEditPolicy.STEREOTYPE_LABEL_POLICY"; //$NON-NLS-1$
+
+ /** The Constant POPUPBAR_ROLE_KEY. */
+ protected static final String POPUPBAR_ROLE_KEY = "org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.POPUPBAR_ROLE"; //$NON-NLS-1$
+
+ /** The Constant NAME_ATTRIBUTE. */
+ protected static final String NAME_ATTRIBUTE = "name"; //$NON-NLS-1$
+
+ /** The Constant NAMED_ELEMENT_NAME. */
+ protected static final String NAMED_ELEMENT_NAME = "NamedElement"; //$NON-NLS-1$
+
+ /** The Constant NODE_NAMED_ELEMENT_FIGURE. */
+ protected static final String NODE_NAMED_ELEMENT_FIGURE = "org.eclipse.papyrus.diagram.common.figure.node.NodeNamedElementFigure"; //$NON-NLS-1$
+
+ /** The Constant GMF_NODE. */
+ protected static final String GMF_NODE = "Node"; //$NON-NLS-1$
+
+ /** The Constant WRAPPING_LABEL. */
+ protected static final String WRAPPING_LABEL = "org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"; //$NON-NLS-1$
+
+ /** The Constant DEFAULT_NAMED_ELEMENT_NAME. */
+ protected static final String DEFAULT_NAMED_ELEMENT_NAME = "DefaultNamedElementName"; //$NON-NLS-1$
+
+ /** The Constant URI_UML_GENMODEL. */
+ protected static final String URI_UML_GENMODEL = "org.eclipse.uml2.uml/model/UML.genmodel"; //$NON-NLS-1$
+
+ /** The Constant URI_NOTATION_GENMODEL. */
+ protected static final String URI_NOTATION_GENMODEL = "org.eclipse.gmf.runtime.notation/model/notation.genmodel"; //$NON-NLS-1$
+
+ /** The Constant DEFAULT_NAMED_ELEMENT. */
+ private static final String DEFAULT_NAMED_ELEMENT = "DefaultNamedElement"; //$NON-NLS-1$
+
+ /**
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ *
+ * @param action
+ */
+ @Override
+ public void run(IAction action) {
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenDiagram) {
+ GenDiagram genDiagram = ((GenDiagram) eObject);
+ createTopNode(genDiagram);
+ }
+ }
+ }
+
+ /**
+ * Creates the top node.
+ *
+ * @param genDiagram
+ * the gen diagram
+ */
+ public void createTopNode(GenDiagram genDiagram) {
+ URI uri_notation = URI.createPlatformPluginURI(URI_NOTATION_GENMODEL, false);
+
+ Resource notation = genDiagram.eResource().getResourceSet().getResource(uri_notation, true);
+
+ GenTopLevelNode topNode = EditpartGenHelper.createTopNode(genDiagram, DEFAULT_NAMED_ELEMENT, findGenClass(notation, GMF_NODE));
+ genDiagram.getTopLevelNodes().add(topNode);
+ EditpartGenHelper.createMetaModelType(topNode, DEFAULT_NAMED_ELEMENT);
+ addBehavior(topNode);
+ addModelFacet(topNode);
+ GenLabel label = EditpartGenHelper.createGenNodeLabel(topNode, DEFAULT_NAMED_ELEMENT_NAME, findGenClass(notation, GMF_NODE));
+ EditpartGenHelper.createLabelViewMap(label, WRAPPING_LABEL);
+ findGenClass(notation, GMF_NODE);
+ EditpartGenHelper.createFigureViewMap(topNode, NODE_NAMED_ELEMENT_FIGURE, 100, 50);
+ URI uri_uml = URI.createPlatformPluginURI(URI_UML_GENMODEL, false);
+ Resource uml = topNode.eResource().getResourceSet().getResource(uri_uml, true);
+ EditpartGenHelper.createLabelModelFacet(label, findGenFeature(uml, NAMED_ELEMENT_NAME, NAME_ATTRIBUTE), EditpartGenHelper.getFirstPredefinedParse(genDiagram.getEditorGen()));
+ MessageDialog.open(MessageDialog.INFORMATION, new Shell(), Messages.generalInformation, Messages.message_Intro + Messages.rulesAboutNamedElement + Messages.ruleAboutChangeEditPolicy, MessageDialog.NONE);
+
+ }
+
+ /**
+ * Adds behaviors.
+ *
+ * @param topNode
+ * the top node
+ */
+ public void addBehavior(GenTopLevelNode topNode) {
+ // add behavior
+ EditpartGenHelper.addBehavior(topNode, POPUPBAR_ROLE_KEY, POPUP_BAR_EDIT_POLICY_VALUE);
+ EditpartGenHelper.addBehavior(topNode, STEREOTYPE_LABEL_POLICY_KEY, NODE_LABEL_DISPLAY_EDIT_POLICY_VALUE);
+ EditpartGenHelper.addBehavior(topNode, POLICY_QUALIFIED_NAME_POLICY_KEY, QUALIFIED_NAME_DISPLAY_EDIT_POLICY_VALUE);
+ EditpartGenHelper.addBehavior(topNode, CHANGE_SHAPE_POLICY_KEY, UNKNOW_EDITPOLICY);
+ }
+
+ /**
+ * Adds the model facet.
+ *
+ * @param topNode
+ * the top node
+ */
+ public void addModelFacet(GenTopLevelNode topNode) {
+ URI uri_uml = URI.createPlatformPluginURI(URI_UML_GENMODEL, false);
+ Resource uml = topNode.eResource().getResourceSet().getResource(uri_uml, true);
+ EditpartGenHelper.createModelFacet(topNode, findGenFeature(uml, PACKAGE_NAME, PACKAGED_ELEMENT_ATTRIBUTE), findGenClass(uml, NAMED_ELEMENT_NAME));
+
+ }
+
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddExternalNodeFloatingLabelDisplayBehavior.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddExternalNodeFloatingLabelDisplayBehavior.java
new file mode 100644
index 00000000000..6e452dac1aa
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddExternalNodeFloatingLabelDisplayBehavior.java
@@ -0,0 +1,223 @@
+/*****************************************************************************
+ * Copyright (c) 2009, 2014 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Mickael ADAM (ALL4TEC) mickael.adam@all4tec.net - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.FeatureLabelModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.FigureViewmap;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenFactory;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenParsers;
+import org.eclipse.gmf.codegen.gmfgen.PredefinedParser;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.ui.IViewPart;
+
+/**
+ * this class is used to add a label to display name from external node
+ */
+public class AddExternalNodeFloatingLabelDisplayBehavior extends Action {
+
+ public static final String FIGURE_VIEWMAP_PATH = "org.eclipse.papyrus.infra.gmfdiag.common.figure.node.PapyrusWrappingLabel";// "org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"; //$NON-NLS-1$
+
+ public static final String LABEL_POLICY_CLASS = "org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.ExternalLabelPrimaryDragRoleEditPolicy"; //$NON-NLS-1$
+
+ public static final String LABEL_POLICY_KEY = "org.eclipse.gef.EditPolicy.PRIMARY_DRAG_ROLE"; //$NON-NLS-1$
+
+ public static final String DEFAULT_GETTER_NAME = "getFloatingNameLabel"; //$NON-NLS-1$
+
+ public static final String DEFAULT_EDITPART_NAME_SUFFIX = "FloatingLabelEditPart"; //$NON-NLS-1$
+
+ public static final String DEFAULT_EDITPOLICY_NAME_SUFFIX = "FloatingLabelItemSemanticEditPolicy"; //$NON-NLS-1$
+
+ // public static final String DEFAULT_WRAPPING_LABEL_CLASS = "org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"; //$NON-NLS-1$
+
+ public static final String DEFAULT_PARSER_PATTERN = ""; //$NON-NLS-1$
+
+ public static final String GEN_CLASS_RT_CLASS = "Node"; //$NON-NLS-1$
+
+ public static final String GEN_CLASS_FACET_META_FEATURE = "NamedElement"; //$NON-NLS-1$
+
+ public static final String GEN_FEATURE_FACET_META_FEATURE = "name"; //$NON-NLS-1$
+
+ public static final String URI_NOTATION_GENMODEL = "org.eclipse.gmf.runtime.notation/model/notation.genmodel"; //$NON-NLS-1$
+
+ public static final String URI_UML_GENMODEL = "org.eclipse.uml2.uml/model/UML.genmodel"; //$NON-NLS-1$
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
+ */
+ public void init(IViewPart view) {
+ // NO OP
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public void run(IAction action) {
+ // Parse selected GenLink(s) and add the desired CustomBehavior
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenNode) {
+ // test if it has got a external node to display floating name
+ if (!hasAnFloatingNameExternalNode((GenNode) eObject)) {
+ createAnFloatingNameExternalNode((GenNode) eObject);
+ }
+ }
+ }
+ }
+
+ /**
+ * creation an external node floating name
+ *
+ * @param genNode
+ * the parent genNode
+ */
+ private void createAnFloatingNameExternalNode(GenNode genNode) {
+ // Create une external node label
+ GenExternalNodeLabel label = GMFGenFactory.eINSTANCE.createGenExternalNodeLabel();
+
+ // Set Name of the edit part
+ // label.setEditPartClassName(genNode.getClassNamePrefix() + DEFAULT_EDITPART_NAME_SUFFIX);
+
+ String editPartClassName = genNode.getEditPartClassName();
+ int index = editPartClassName.indexOf("EditPart");
+ String name = editPartClassName.substring(0, index) + DEFAULT_EDITPART_NAME_SUFFIX + editPartClassName.substring(index + "EditPart".length());
+ label.setEditPartClassName(name);
+ // Set item semantic edit policy
+ label.setItemSemanticEditPolicyClassName(genNode.getClassNamePrefix() + DEFAULT_EDITPOLICY_NAME_SUFFIX);
+ // Set the Read only
+ label.setReadOnly(false);
+
+ // Set GenLinkLabel VisualID with new unique ID
+ int visualID = SetVisualIDWithUnusedValue.getNewVisualID(genNode.eResource(), GenLinkLabel.class);
+ label.setVisualID(visualID);
+
+ // Retrieve DiagramRunTimeClass in notation.genmodel (Node -> View)
+ URI uri_notation = URI.createPlatformPluginURI(URI_NOTATION_GENMODEL, false);
+ Resource notation = genNode.eResource().getResourceSet().getResource(uri_notation, true);
+ label.setDiagramRunTimeClass(findGenClass(notation, GEN_CLASS_RT_CLASS));
+
+ // Create Viewmap
+ FigureViewmap viewmap = GMFGenFactory.eINSTANCE.createFigureViewmap();
+ viewmap.setFigureQualifiedClassName(FIGURE_VIEWMAP_PATH);
+
+ // Create FeatureLabelModelFacet
+ FeatureLabelModelFacet facet = GMFGenFactory.eINSTANCE.createFeatureLabelModelFacet();
+ facet.setEditPattern(DEFAULT_PARSER_PATTERN);
+ facet.setEditorPattern(DEFAULT_PARSER_PATTERN);
+ facet.setViewPattern(DEFAULT_PARSER_PATTERN);
+
+ // Select NamedElement::name property in UML.genmodel for MetaFeatures
+ URI uri_uml = URI.createPlatformPluginURI(URI_UML_GENMODEL, false);
+ Resource uml = genNode.eResource().getResourceSet().getResource(uri_uml, true);
+ facet.getMetaFeatures().add(findGenFeature(uml, GEN_CLASS_FACET_META_FEATURE, GEN_FEATURE_FACET_META_FEATURE));
+ // Attach Predefined Parser MessageFormatParser
+ // not good must find the predifined parser of the model...
+
+ // Get the predefined parser.
+ PredefinedParser parser = getPredefinedParser(genNode);
+ facet.setParser(parser);
+
+ // Attach created element one to another in the model
+ label.setViewmap(viewmap);
+ label.setModelFacet(facet);
+
+ // Add custom Policy to have feedback
+ // addCustomBehavior(label, LABEL_POLICY_KEY, LABEL_POLICY_CLASS);
+
+ // edit policy which permit to take into account of specific locator of external label
+ addCustomBehavior(genNode, "org.eclipse.gef.EditPolicy.LAYOUT_ROLE", "org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.GetChildLayoutEditPolicy");
+
+ genNode.getLabels().add(label);
+ }
+
+ /**
+ * Gets the predefined parser.
+ *
+ * @param eObject
+ * the e object
+ * @return the predefined parser
+ */
+ private PredefinedParser getPredefinedParser(GenNode eObject) {
+ PredefinedParser parser = null;
+ // /get the ressource contents
+ EList<EObject> ressourceContents = eObject.eResource().getContents();
+ for (EObject ressourceContent : ressourceContents) {
+ // get the Gen Editor Node
+ if (ressourceContent instanceof GenEditorGenerator) {
+ // Get Parsers node
+ GenParsers genParsers = ((GenEditorGenerator) ressourceContent).getLabelParsers();
+ for (EObject GenParsersContent : genParsers.eContents()) {
+ // Get the predefined parser
+ if (GenParsersContent instanceof PredefinedParser) {
+ parser = (PredefinedParser) GenParsersContent;
+ }
+ }
+ }
+ }
+ return parser;
+ }
+
+ /**
+ * Checks for a floating name external node.
+ *
+ * @param node
+ * the node
+ * @return true, if successful
+ */
+ public boolean hasAnFloatingNameExternalNode(GenNode node) {
+ Iterator<GenNodeLabel> iterator = node.getLabels().iterator();
+ while (iterator.hasNext()) {
+ GenNodeLabel currentGenNodeLabel = iterator.next();
+ // check each child node
+ if (currentGenNodeLabel instanceof GenExternalNodeLabel) {
+ if (isAnFloatingNameExternalNode((GenExternalNodeLabel) currentGenNodeLabel)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Checks if is an floating name external node.
+ *
+ * @param node
+ * the node
+ * @return true, if is an floating name external node
+ */
+ public boolean isAnFloatingNameExternalNode(GenExternalNodeLabel node) {
+ // Look if the edit part name contains the default edit part name suffix
+ if (node.getEditPartClassName().contains(DEFAULT_EDITPART_NAME_SUFFIX)) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddExternalNodeStereotypeDisplayBehavior.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddExternalNodeStereotypeDisplayBehavior.java
new file mode 100644
index 00000000000..fc564a851d1
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddExternalNodeStereotypeDisplayBehavior.java
@@ -0,0 +1,167 @@
+/*****************************************************************************
+ * Copyright (c) 2009 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms 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.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.FeatureLabelModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.FigureViewmap;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenFactory;
+import org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.ui.IViewPart;
+
+/**
+ * this class is used to add a label to display applied stereotypes for external node
+ */
+public class AddExternalNodeStereotypeDisplayBehavior extends Action {
+
+ public static final String FIGURE_VIEWMAP_PATH = "org.eclipse.papyrus.diagram.common.figure.node.AppliedStereotypeWrappingLabelFigure"; //$NON-NLS-1$
+
+ public static final String STEREOTYPE_LABEL_POLICY_KEY = "org.eclipse.papyrus.diagram.common.editpolicies.AppliedStereotypeLabelDisplayEditPolicy.STEREOTYPE_LABEL_POLICY"; //$NON-NLS-1$
+
+ public static final String STEREOTYPE_LABEL_POLICY_CLASS = "org.eclipse.papyrus.diagram.common.editpolicies.AppliedStereotypeExternalNodeEditPolicy"; //$NON-NLS-1$
+
+ public static final String DEFAULT_GETTER_NAME = "getAppliedStereotypeLabel"; //$NON-NLS-1$
+
+ public static final String DEFAULT_EDITPART_NAME_SUFFIX = "AppliedStereotypeEditPart"; //$NON-NLS-1$
+
+ public static final String DEFAULT_EDITPOLICY_NAME_SUFFIX = "AppliedStereotypeItemSemanticEditPolicy"; //$NON-NLS-1$
+
+ public static final String DEFAULT_WRAPPING_LABEL_CLASS = "org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"; //$NON-NLS-1$
+
+ public static final int DEFAULT_OFFSET_X = 0;
+
+ public static final int DEFAULT_OFFSET_Y = 60;
+
+ public static final String DEFAULT_PARSER_PATTERN = "<<{0}>>"; //$NON-NLS-1$
+
+ public static final String APPLIED_STEREOTYPE_CUSTOM_PARSER_CLASS = "org.eclipse.papyrus.diagram.common.parser.stereotype.AppliedStereotypeParser"; //$NON-NLS-1$
+
+ public static final String GEN_CLASS_RT_CLASS = "Node"; //$NON-NLS-1$
+
+ public static final String GEN_CLASS_FACET_META_FEATURE = "NamedElement"; //$NON-NLS-1$
+
+ public static final String GEN_FEATURE_FACET_META_FEATURE = "name"; //$NON-NLS-1$
+
+ public static final String URI_NOTATION_GENMODEL = "org.eclipse.gmf.runtime.notation/model/notation.genmodel"; //$NON-NLS-1$
+
+ public static final String URI_UML_GENMODEL = "org.eclipse.uml2.uml/model/UML.genmodel"; //$NON-NLS-1$
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
+ */
+ public void init(IViewPart view) {
+ // NO OP
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public void run(IAction action) {
+
+ // Parse selected GenLink(s) and add the desired CustomBehavior
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenNode) {
+ // test if it has got a external node to display applied stereotype
+ if (!hasAnAppliedStereotypExternalNode((GenNode) eObject)) {
+ createAnAppliedStereotypExternalNode((GenNode) eObject);
+ }
+ }
+ }
+ }
+
+
+ /**
+ * creation an external node stereotype
+ *
+ * @param eObject
+ * the parent genNode
+ */
+ private void createAnAppliedStereotypExternalNode(GenNode eObject) {
+ GenExternalNodeLabel label = GMFGenFactory.eINSTANCE.createGenExternalNodeLabel();
+ label.setEditPartClassName(eObject.getClassNamePrefix() + DEFAULT_EDITPART_NAME_SUFFIX);
+ label.setItemSemanticEditPolicyClassName(eObject.getClassNamePrefix() + DEFAULT_EDITPOLICY_NAME_SUFFIX);
+ label.setReadOnly(true);
+
+ // Set GenLinkLabel VisualID with new unique ID
+ int visualID = SetVisualIDWithUnusedValue.getNewVisualID(eObject.eResource(), GenLinkLabel.class);
+ label.setVisualID(visualID);
+
+ // Retrieve DiagramRunTimeClass in notation.genmodel (Node -> View)
+ URI uri_notation = URI.createPlatformPluginURI(URI_NOTATION_GENMODEL, false);
+ Resource notation = eObject.eResource().getResourceSet().getResource(uri_notation, true);
+ label.setDiagramRunTimeClass(findGenClass(notation, GEN_CLASS_RT_CLASS));
+
+ // Create Viewmap
+ FigureViewmap viewmap = GMFGenFactory.eINSTANCE.createFigureViewmap();
+ viewmap.setFigureQualifiedClassName(FIGURE_VIEWMAP_PATH);
+
+
+ // Create FeatureLabelModelFacet
+ FeatureLabelModelFacet facet = GMFGenFactory.eINSTANCE.createFeatureLabelModelFacet();
+ facet.setEditPattern(DEFAULT_PARSER_PATTERN);
+ facet.setEditorPattern(DEFAULT_PARSER_PATTERN);
+ facet.setViewPattern(DEFAULT_PARSER_PATTERN);
+ // Select NamedElement::name property in UML.genmodel for MetaFeatures
+ URI uri_uml = URI.createPlatformPluginURI(URI_UML_GENMODEL, false);
+ Resource uml = eObject.eResource().getResourceSet().getResource(uri_uml, true);
+ facet.getMetaFeatures().add(findGenFeature(uml, GEN_CLASS_FACET_META_FEATURE, GEN_FEATURE_FACET_META_FEATURE));
+
+ // Attach created element one to another in the model
+ label.setViewmap(viewmap);
+ label.setModelFacet(facet);
+
+ addCustomBehavior(label, STEREOTYPE_LABEL_POLICY_KEY, STEREOTYPE_LABEL_POLICY_CLASS);
+ eObject.getLabels().add(label);
+
+
+ }
+
+
+ public boolean hasAnAppliedStereotypExternalNode(GenNode node) {
+ Iterator<GenNodeLabel> iterator = node.getLabels().iterator();
+ while (iterator.hasNext()) {
+ GenNodeLabel currentGenNodeLabel = iterator.next();
+ if (currentGenNodeLabel instanceof GenExternalNodeLabel) {
+ if (isAnAppliedStereotypExternalNode((GenExternalNodeLabel) currentGenNodeLabel)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public boolean isAnAppliedStereotypExternalNode(GenExternalNodeLabel node) {
+ return hasCustomBehavior(node, STEREOTYPE_LABEL_POLICY_KEY);
+ }
+
+
+
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddGenLinkStereotypeDisplayBehavior.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddGenLinkStereotypeDisplayBehavior.java
new file mode 100644
index 00000000000..a9686b7ee92
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddGenLinkStereotypeDisplayBehavior.java
@@ -0,0 +1,221 @@
+/*******************************************************************************
+ * Copyright (c) 2009 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.CustomParser;
+import org.eclipse.gmf.codegen.gmfgen.FeatureLabelModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenFactory;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenParserImplementation;
+import org.eclipse.gmf.codegen.gmfgen.LabelOffsetAttributes;
+import org.eclipse.gmf.codegen.gmfgen.LinkLabelAlignment;
+import org.eclipse.gmf.codegen.gmfgen.ParentAssignedViewmap;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.ui.IViewPart;
+
+/**
+ * Implementation class for AddGenLinkStereotypeDisplayBehavior action
+ */
+public class AddGenLinkStereotypeDisplayBehavior extends Action {
+
+ public static final String STEREOTYPE_LABEL_POLICY_KEY = "org.eclipse.papyrus.diagram.common.editpolicies.AppliedStereotypeLinkLabelDisplayEditPolicy.STEREOTYPE_LABEL_POLICY"; //$NON-NLS-1$
+
+ public static final String STEREOTYPE_LABEL_POLICY_CLASS = "org.eclipse.papyrus.diagram.common.editpolicies.AppliedStereotypeLinkLabelDisplayEditPolicy"; //$NON-NLS-1$
+
+ public static final String DEFAULT_GETTER_NAME = "getAppliedStereotypeLabel"; //$NON-NLS-1$
+
+ public static final String DEFAULT_EDITPART_NAME_SUFFIX = "AppliedStereotypeEditPart"; //$NON-NLS-1$
+
+ public static final String DEFAULT_EDITPOLICY_NAME_SUFFIX = "AppliedStereotypeItemSemanticEditPolicy"; //$NON-NLS-1$
+
+ public static final String DEFAULT_WRAPPING_LABEL_CLASS = "org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"; //$NON-NLS-1$
+
+ public static final int DEFAULT_OFFSET_X = 0;
+
+ public static final int DEFAULT_OFFSET_Y = 60;
+
+ public static final String DEFAULT_PARSER_PATTERN = "<<{0}>>"; //$NON-NLS-1$
+
+ public static final String APPLIED_STEREOTYPE_CUSTOM_PARSER_CLASS = "org.eclipse.papyrus.diagram.common.parser.stereotype.AppliedStereotypeParser"; //$NON-NLS-1$
+
+ public static final String GEN_CLASS_RT_CLASS = "Node"; //$NON-NLS-1$
+
+ public static final String GEN_CLASS_FACET_META_FEATURE = "NamedElement"; //$NON-NLS-1$
+
+ public static final String GEN_FEATURE_FACET_META_FEATURE = "name"; //$NON-NLS-1$
+
+ public static final String URI_NOTATION_GENMODEL = "org.eclipse.gmf.runtime.notation/model/notation.genmodel"; //$NON-NLS-1$
+
+ public static final String URI_UML_GENMODEL = "org.eclipse.uml2.uml/model/UML.genmodel"; //$NON-NLS-1$
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
+ */
+ public void init(IViewPart view) {
+ // NO OP
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public void run(IAction action) {
+
+ // Parse selected GenLink(s) and add the desired CustomBehavior
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenLink) {
+
+ // Create the behavior required by stereotype management (if not already created)
+ if (!hasCustomBehavior(((GenLink) eObject), STEREOTYPE_LABEL_POLICY_KEY)) {
+ addCustomBehavior((GenLink) eObject, STEREOTYPE_LABEL_POLICY_KEY, STEREOTYPE_LABEL_POLICY_CLASS);
+ }
+
+ // Create the GenLinkLabel used for stereotypes (if not already created)
+ if (!hasCustomLabel((GenLink) eObject)) {
+ addCustomLabel((GenLink) eObject);
+ }
+ }
+ }
+ }
+
+
+
+
+ /**
+ * Add the CustomBehavior for Applied Stereotype label display to the GenLink node given as
+ * parameter
+ *
+ * @param genlink
+ * where the CustomBehavior is added
+ */
+ private void addCustomLabel(GenLink genlink) {
+
+ // Create a GenLinkLabel
+ GenLinkLabel label = GMFGenFactory.eINSTANCE.createGenLinkLabel();
+ label.setEditPartClassName(genlink.getClassNamePrefix() + DEFAULT_EDITPART_NAME_SUFFIX);
+ label.setItemSemanticEditPolicyClassName(genlink.getClassNamePrefix() + DEFAULT_EDITPOLICY_NAME_SUFFIX);
+ label.setAlignment(LinkLabelAlignment.MIDDLE_LITERAL);
+ label.setReadOnly(true);
+
+ // Set GenLinkLabel VisualID with new unique ID
+ int visualID = SetVisualIDWithUnusedValue.getNewVisualID(genlink.eResource(), GenLinkLabel.class);
+ label.setVisualID(visualID);
+
+ // Retrieve DiagramRunTimeClass in notation.genmodel (Node -> View)
+ URI uri_notation = URI.createPlatformPluginURI(URI_NOTATION_GENMODEL, false);
+ Resource notation = genlink.eResource().getResourceSet().getResource(uri_notation, true);
+ label.setDiagramRunTimeClass(findGenClass(notation, GEN_CLASS_RT_CLASS));
+
+ // Create Viewmap
+ ParentAssignedViewmap viewmap = GMFGenFactory.eINSTANCE.createParentAssignedViewmap();
+ viewmap.setGetterName(DEFAULT_GETTER_NAME);
+ viewmap.setFigureQualifiedClassName(DEFAULT_WRAPPING_LABEL_CLASS);
+
+ LabelOffsetAttributes offset = GMFGenFactory.eINSTANCE.createLabelOffsetAttributes();
+ offset.setX(DEFAULT_OFFSET_X);
+ offset.setY(DEFAULT_OFFSET_Y);
+
+ // Create FeatureLabelModelFacet
+ FeatureLabelModelFacet facet = GMFGenFactory.eINSTANCE.createFeatureLabelModelFacet();
+ facet.setEditPattern(DEFAULT_PARSER_PATTERN);
+ facet.setEditorPattern(DEFAULT_PARSER_PATTERN);
+ facet.setViewPattern(DEFAULT_PARSER_PATTERN);
+ // Select NamedElement::name property in UML.genmodel for MetaFeatures
+ URI uri_uml = URI.createPlatformPluginURI(URI_UML_GENMODEL, false);
+ Resource uml = genlink.eResource().getResourceSet().getResource(uri_uml, true);
+ facet.getMetaFeatures().add(findGenFeature(uml, GEN_CLASS_FACET_META_FEATURE, GEN_FEATURE_FACET_META_FEATURE));
+ facet.setParser(findCustomParser(genlink.getDiagram().getEditorGen(), APPLIED_STEREOTYPE_CUSTOM_PARSER_CLASS));
+
+ // Attach created element one to another in the model
+ viewmap.getAttributes().add(offset);
+ label.setViewmap(viewmap);
+ label.setModelFacet(facet);
+
+ genlink.getLabels().add(label);
+ }
+
+ /**
+ * Check if the CustomBehavior for Applied Stereotype label display is already added
+ *
+ * @param genlink
+ * the GenLink to test
+ * @return true if the behavior with correct key already exists
+ */
+ private boolean hasCustomLabel(GenLink genlink) {
+
+ boolean hasCustomLabel = false;
+ String expectedName = genlink.getClassNamePrefix() + DEFAULT_EDITPART_NAME_SUFFIX;
+
+ Iterator<GenLinkLabel> it = genlink.getLabels().iterator();
+ while (it.hasNext() && !(hasCustomLabel)) {
+ GenLinkLabel genLinkLabel = it.next();
+
+ if (expectedName.equals(genLinkLabel.getEditPartClassName())) {
+ hasCustomLabel = true;
+ }
+ }
+
+ return hasCustomLabel;
+ }
+
+ /**
+ * Finds the custom parser used for stereotype display. Creates the parser if not already
+ * existing
+ *
+ *
+ * @param gmfgen
+ * the model owning the parser
+ * @param name
+ * the parser qualified name
+ * @return the parser node
+ */
+ private CustomParser findCustomParser(GenEditorGenerator genEditor, String name) {
+
+ CustomParser customParser = null;
+
+ Iterator<GenParserImplementation> it = genEditor.getLabelParsers().getImplementations().iterator();
+ while (it.hasNext() && (customParser == null)) {
+ GenParserImplementation parserImpl = it.next();
+
+ if (parserImpl instanceof CustomParser) {
+ CustomParser current = (CustomParser) parserImpl;
+ if (name.equals(current.getQualifiedName())) {
+ customParser = current;
+ }
+ }
+ }
+
+ if (customParser == null) {
+ customParser = GMFGenFactory.eINSTANCE.createCustomParser();
+ customParser.setQualifiedName(APPLIED_STEREOTYPE_CUSTOM_PARSER_CLASS);
+ customParser.setGenerateBoilerplate(false);
+
+ genEditor.getLabelParsers().getImplementations().add(customParser);
+ }
+
+ return customParser;
+ }
+
+
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddHyperLinkPopupBarBehavior.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddHyperLinkPopupBarBehavior.java
new file mode 100644
index 00000000000..f84369334fc
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddHyperLinkPopupBarBehavior.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2009 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.ui.IViewPart;
+
+/**
+ * Implementation class for AddGenLinkStereotypeDisplayBehavior action
+ */
+public class AddHyperLinkPopupBarBehavior extends Action {
+
+ public static final String POPUP_POLICY_KEY = "org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.POPUPBAR_ROLE"; //$NON-NLS-1$
+
+ public static final String HYPERLINK_POPUPBAR_POLICY_CLASS = "org.eclipse.papyrus.diagram.common.editpolicies.HyperLinkPopupBarEditPolicy"; //$NON-NLS-1$
+
+
+ public static final String URI_NOTATION_GENMODEL = "org.eclipse.gmf.runtime.notation/model/notation.genmodel"; //$NON-NLS-1$
+
+ public static final String URI_UML_GENMODEL = "org.eclipse.uml2.uml/model/UML.genmodel"; //$NON-NLS-1$
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
+ */
+ public void init(IViewPart view) {
+ // NO OP
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public void run(IAction action) {
+
+ // Parse selected GenLink(s) and add the desired CustomBehavior
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenNode) {
+
+ // Create the behavior required by stereotype management (if not already created)
+ if (!hasCustomBehavior((GenNode) eObject, POPUP_POLICY_KEY)) {
+ addCustomBehavior((GenNode) eObject, POPUP_POLICY_KEY, HYPERLINK_POPUPBAR_POLICY_CLASS);
+ }
+
+ }
+ }
+ }
+
+
+
+
+
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeQualifiedNameBehavior.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeQualifiedNameBehavior.java
new file mode 100644
index 00000000000..ceb4fa061ec
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeQualifiedNameBehavior.java
@@ -0,0 +1,69 @@
+/*****************************************************************************
+ * Copyright (c) 2009 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms 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.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.ui.IViewPart;
+
+/**
+ * this class is used to add a label to display applied stereotypes for external node
+ */
+public class AddNodeQualifiedNameBehavior extends Action {
+
+ public static final String STEREOTYPE_LABEL_POLICY_KEY = "org.eclipse.papyrus.diagram.common.editpolicies.QualifiedNameDisplayEditPolicy.QUALIFIED_NAME_POLICY"; //$NON-NLS-1$
+
+ public static final String STEREOTYPE_LABEL_POLICY_CLASS = "org.eclipse.papyrus.diagram.common.editpolicies.QualifiedNameDisplayEditPolicy"; //$NON-NLS-1$
+
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
+ */
+ public void init(IViewPart view) {
+ // NO OP
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public void run(IAction action) {
+
+ // Parse selected GenLink(s) and add the desired CustomBehavior
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenNode) {
+ // test if it has got a external node to display applied stereotype
+ if (!hasCustomBehavior(((GenNode) eObject), STEREOTYPE_LABEL_POLICY_KEY)) {
+ addCustomBehavior((GenNode) eObject, STEREOTYPE_LABEL_POLICY_KEY, STEREOTYPE_LABEL_POLICY_CLASS);
+ }
+ }
+ }
+ }
+
+
+
+
+
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeShowHideCompartmentBehavior.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeShowHideCompartmentBehavior.java
new file mode 100644
index 00000000000..45273d28247
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeShowHideCompartmentBehavior.java
@@ -0,0 +1,56 @@
+/*****************************************************************************
+ * 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:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.jface.action.IAction;
+
+
+/**
+ * This class is used to add a behavior for node which have compartments.
+ * This behavior allows to show or hide the compartments
+ */
+public class AddNodeShowHideCompartmentBehavior extends Action {
+
+ /** the key for the EditPolicy to add */
+ public static final String SHOW_HIDE_COMPARTMENT_POLICY_KEY = "org.eclipse.papyrus.diagram.common.editpolicies.ShowHideCompartmentEditPolicy.SHOW_HIDE_COMPARTMENT_POLICY"; //$NON-NLS-1$
+
+ /** the path for the EditPolicy */
+ public static final String SHOW_HIDE_COMPARTMENT_POLICY_CLASS = "org.eclipse.papyrus.diagram.common.editpolicies.ShowHideCompartmentEditPolicy"; //$NON-NLS-1$
+
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public void run(IAction action) {
+ // Parse selected GenLink(s) and add the desired CustomBehavior
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenNode) {
+ // test if it has got a external node to display applied stereotype
+ if (!hasCustomBehavior(((GenNode) eObject), SHOW_HIDE_COMPARTMENT_POLICY_KEY)) {
+ addCustomBehavior((GenNode) eObject, SHOW_HIDE_COMPARTMENT_POLICY_KEY, SHOW_HIDE_COMPARTMENT_POLICY_CLASS);
+ }
+ }
+ }
+ }
+
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeShowHideContentsBehavior.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeShowHideContentsBehavior.java
new file mode 100644
index 00000000000..aa653e44c77
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeShowHideContentsBehavior.java
@@ -0,0 +1,51 @@
+/*****************************************************************************
+ * 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:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.jface.action.IAction;
+
+
+public class AddNodeShowHideContentsBehavior extends Action {
+
+ /** the key for the EditPolicy to add. */
+ public static final String SHOW_HIDE_CLASSIFIER_CONTENTS_POLICY_KEY = "org.eclipse.papyrus.diagram.common.editpolicies.ShowHideClassifierContentsEditPolicy.SHOW_HIDE_CLASSIFIER_CONTENTS_POLICY"; //$NON-NLS-1$
+
+ /** the path for the EditPolicy */
+ public static final String SHOW_HIDE_CLASSIFIER_CONTENTS_POLICY_CLASS = "org.eclipse.papyrus.diagram.common.editpolicies.ShowHideClassifierContentsEditPolicy"; //$NON-NLS-1$
+
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public void run(IAction action) {
+ // Parse selected GenLink(s) and add the desired CustomBehavior
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenNode) {
+ // test if it has got a external node to display applied stereotype
+ if (!hasCustomBehavior(((GenNode) eObject), SHOW_HIDE_CLASSIFIER_CONTENTS_POLICY_KEY)) {
+ addCustomBehavior((GenNode) eObject, SHOW_HIDE_CLASSIFIER_CONTENTS_POLICY_KEY, SHOW_HIDE_CLASSIFIER_CONTENTS_POLICY_CLASS);
+ }
+ }
+ }
+ }
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeShowHideLabelsBehavior.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeShowHideLabelsBehavior.java
new file mode 100644
index 00000000000..787f680138e
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeShowHideLabelsBehavior.java
@@ -0,0 +1,53 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
+import org.eclipse.jface.action.IAction;
+
+
+public class AddNodeShowHideLabelsBehavior extends Action {
+
+ /** the key for the EditPolicy to add. */
+ public static final String SHOW_HIDE_LABEL_POLICY_KEY = "org.eclipse.papyrus.diagram.common.editpolicies.ShowHideLabelEditPolicy.SHOW_HIDE_LABEL_ROLE"; //$NON-NLS-1$
+
+ /** the path for the EditPolicy */
+ public static final String SHOW_HIDE_LABEL_POLICY_CLASS = "org.eclipse.papyrus.diagram.common.editpolicies.ShowHideLabelEditPolicy"; //$NON-NLS-1$
+
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public void run(IAction action) {
+ // Parse selected GenLink(s) and add the desired CustomBehavior
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if ((eObject instanceof GenNode || eObject instanceof GenLink) && (!(eObject instanceof GenNodeLabel) && !(eObject instanceof GenLinkLabel))) {
+ // test if it has got a external node to display applied stereotype
+ if (!hasCustomBehavior(((GenNode) eObject), SHOW_HIDE_LABEL_POLICY_KEY)) {
+ addCustomBehavior((GenNode) eObject, SHOW_HIDE_LABEL_POLICY_KEY, SHOW_HIDE_LABEL_POLICY_CLASS);
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeStereotypeDisplayBehavior.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeStereotypeDisplayBehavior.java
new file mode 100644
index 00000000000..baa083e666f
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddNodeStereotypeDisplayBehavior.java
@@ -0,0 +1,69 @@
+/*****************************************************************************
+ * Copyright (c) 2009 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms 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.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.ui.IViewPart;
+
+/**
+ * this class is used to add a label to display applied stereotypes for external node
+ */
+public class AddNodeStereotypeDisplayBehavior extends Action {
+
+ public static final String STEREOTYPE_LABEL_POLICY_KEY = "org.eclipse.papyrus.diagram.common.editpolicies.AppliedStereotypeLabelDisplayEditPolicy.STEREOTYPE_LABEL_POLICY"; //$NON-NLS-1$
+
+ public static final String STEREOTYPE_LABEL_POLICY_CLASS = "org.eclipse.papyrus.diagram.common.editpolicies.AppliedStereotypeNodeLabelDisplayEditPolicy"; //$NON-NLS-1$
+
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
+ */
+ public void init(IViewPart view) {
+ // NO OP
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public void run(IAction action) {
+
+ // Parse selected GenLink(s) and add the desired CustomBehavior
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenNode) {
+ // test if it has got a external node to display applied stereotype
+ if (!hasCustomBehavior(((GenNode) eObject), STEREOTYPE_LABEL_POLICY_KEY)) {
+ addCustomBehavior((GenNode) eObject, STEREOTYPE_LABEL_POLICY_KEY, STEREOTYPE_LABEL_POLICY_CLASS);
+ }
+ }
+ }
+ }
+
+
+
+
+
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddOrUpdateCommentEditParts.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddOrUpdateCommentEditParts.java
new file mode 100644
index 00000000000..ba9b1d9b52f
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddOrUpdateCommentEditParts.java
@@ -0,0 +1,577 @@
+/*******************************************************************************
+ * Copyright (c) 2009 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.papyrusgmfgenextension.popupaction;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gmf.codegen.gmfgen.Behaviour;
+import org.eclipse.gmf.codegen.gmfgen.CustomBehaviour;
+import org.eclipse.gmf.codegen.gmfgen.CustomParser;
+import org.eclipse.gmf.codegen.gmfgen.FeatureLabelModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.FigureViewmap;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenFactory;
+import org.eclipse.gmf.codegen.gmfgen.GenChildNode;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenExpressionInterpreter;
+import org.eclipse.gmf.codegen.gmfgen.GenExpressionProviderBase;
+import org.eclipse.gmf.codegen.gmfgen.GenExpressionProviderContainer;
+import org.eclipse.gmf.codegen.gmfgen.GenFeatureSeqInitializer;
+import org.eclipse.gmf.codegen.gmfgen.GenFeatureValueSpec;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenParserImplementation;
+import org.eclipse.gmf.codegen.gmfgen.GenParsers;
+import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
+import org.eclipse.gmf.codegen.gmfgen.OpenDiagramBehaviour;
+import org.eclipse.gmf.codegen.gmfgen.ParentAssignedViewmap;
+import org.eclipse.gmf.codegen.gmfgen.StyleAttributes;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.ValueExpression;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * Implementation class for AddOrUpdateCommentEditParts action
+ */
+public class AddOrUpdateCommentEditParts extends Action {
+
+ /** output messages for user information */
+ protected List<String> messages = new ArrayList<String>();
+
+ /** number of modified elements */
+ protected int modifiedElements = 0;
+
+ /** top node comment edit parts */
+ protected List<GenTopLevelNode> topNodeComments = new ArrayList<GenTopLevelNode>();
+
+ /** child node comment edit parts */
+ protected List<GenChildNode> childNodeComments = new ArrayList<GenChildNode>();
+
+ /** comment parser */
+ protected CustomParser commentParser = null;
+
+ final URI uri_UML2 = URI.createPlatformPluginURI("org.eclipse.uml2.uml/model/UML.genmodel", false);
+
+ // final URI uri_GenModel = URI.createPlatformPluginURI("org.eclipse.gmf.runtime.notation/model/notation.genmodel", false);
+
+ final URI uri_notation = URI.createPlatformPluginURI("org.eclipse.gmf.runtime.notation/model/notation.genmodel", false);
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void run(IAction action) {
+
+ IProgressMonitor monitor = new NullProgressMonitor();
+ messages.clear();
+ modifiedElements = 0;
+
+ boolean generateTopNode = true;
+ boolean generateChildNode = true;
+
+ // 1. retrieve existing elements: CommentEditParts (one top node, and one child node) and CommentParser
+ // 2. update if existing, or create if necessary
+ // selection should be the gen editor generator (root element)
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenEditorGenerator) {
+ monitor.beginTask("Retrieve existing comments", IProgressMonitor.UNKNOWN);
+ retrieveTopNodeCommentEditPart((GenEditorGenerator) eObject, monitor);
+ monitor.worked(1);
+ retrieveChildNodeCommentEditPart((GenEditorGenerator) eObject, monitor);
+ monitor.worked(1);
+ retrieveCommentParser((GenEditorGenerator) eObject, monitor);
+ monitor.worked(1);
+ }
+
+ // elements have been retrieve. create new ones if necessary
+ // 1. create the parser if necessary
+ if (commentParser == null) {
+ commentParser = createCommentParser((GenEditorGenerator) eObject, monitor);
+ }
+
+ // 2. create top node
+ if (topNodeComments.isEmpty()) {
+ generateTopNode = false;
+ // remove the creation, because it causes problems in the update
+ // createTopNodeComment((GenEditorGenerator)eObject, monitor);
+ }
+
+ // 3. create child node
+ if (childNodeComments.isEmpty()) {
+ generateChildNode = false;
+ // createChildNodeComment((GenEditorGenerator)eObject, monitor);
+ }
+
+ // check if updates shall be done or the action should be aborted
+ if (commentParser == null || (topNodeComments.isEmpty() && generateTopNode) || (childNodeComments.isEmpty() && generateChildNode)) {
+ return;
+ }
+
+ // do the update
+ updateCommentParser();
+ if (generateTopNode) {
+ updateTopLevelNodes();
+ }
+ if (generateChildNode) {
+ updateChildNodes();
+ }
+
+
+ try {
+ eObject.eResource().save(new HashMap());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ if (!messages.isEmpty()) {
+ MessageDialog.openInformation(Display.getCurrent().getActiveShell(), "Information", messages.toString());
+ }
+ }
+ }
+
+ /**
+ * Update the child nodes
+ */
+ protected void updateChildNodes() {
+ for (GenChildNode childNode : childNodeComments) {
+ // set figure view map
+ FigureViewmap figureViewmap = GMFGenFactory.eINSTANCE.createFigureViewmap();
+ figureViewmap.setFigureQualifiedClassName("org.eclipse.papyrus.diagram.common.figure.node.HTMLCornerBentFigure");
+ childNode.setViewmap(figureViewmap);
+
+ updateBehaviours(childNode);
+
+ updateTypeModelFacet(childNode);
+
+ updateGenNodeLabel(childNode);
+
+ messages.add("update child: " + childNode);
+ }
+
+ }
+
+ /**
+ * Removes existing child edit part and creates a new one
+ *
+ * @param childNode
+ * the child node currently edited
+ */
+ protected void updateGenNodeLabel(GenNode childNode) {
+ // save information on existing child nodes and delete them
+ int childVisualID = -1;
+ String editPartClassName = "";
+ String itemSemantic = "";
+ if (childNode.getLabels().size() > 0) {
+ // assume the first one is the child edit part for the body
+ childVisualID = childNode.getLabels().get(0).getVisualID();
+ editPartClassName = childNode.getLabels().get(0).getEditPartClassName();
+ itemSemantic = childNode.getLabels().get(0).getItemSemanticEditPolicyClassName();
+
+ // clear child nodes (remove the first one, as there should be only one)
+ EcoreUtil.delete(childNode.getLabels().get(0).getModelFacet());
+ EcoreUtil.delete(childNode.getLabels().get(0));
+ }
+
+ // generate values if wrong
+ if (childVisualID < 1) {
+ childVisualID = SetVisualIDWithUnusedValue.getNewVisualID(childNode.eResource(), childNode.getClass());
+ }
+ if (editPartClassName == null || editPartClassName == "") {
+ String parentEditPartClassName = childNode.getEditPartClassName();
+ String number = parentEditPartClassName.substring("Comment".length(), parentEditPartClassName.length() - "EditPart".length());
+ editPartClassName = "CommentBody" + ((number == null) ? "" : number) + "EditPart";
+ itemSemantic = "CommentBody" + ((number == null) ? "" : number) + "ItemSemanticEditPolicy";
+ }
+
+
+ GenNodeLabel bodyGenNode = GMFGenFactory.eINSTANCE.createGenNodeLabel();
+ bodyGenNode.setEditPartClassName(editPartClassName);
+ bodyGenNode.setItemSemanticEditPolicyClassName(itemSemantic);
+
+ bodyGenNode.setVisualID(childVisualID);
+ GenClass nodeGenClass = findGenClassForNotation(childNode, "Node");
+
+ // GenModelFactory.eINSTANCE.createGenClass();
+ // nodeGenClass.setEcoreClass(GMFGenPackage.eINSTANCE.getGenNode());
+ bodyGenNode.setDiagramRunTimeClass(nodeGenClass);
+ bodyGenNode.setElementIcon(false);
+ bodyGenNode.setReadOnly(false);
+
+ childNode.getLabels().add(bodyGenNode);
+
+ // generate children for bodygen node
+ FeatureLabelModelFacet childModelFacet = GMFGenFactory.eINSTANCE.createFeatureLabelModelFacet();
+ childModelFacet.setParser(commentParser);
+ GenFeature bodyFeature = findGenAttributeForMetaclass(childNode, "Comment", "body");
+ childModelFacet.getMetaFeatures().add(bodyFeature);
+ bodyGenNode.setModelFacet(childModelFacet);
+
+
+ ParentAssignedViewmap viewMap = GMFGenFactory.eINSTANCE.createParentAssignedViewmap();
+ viewMap.setGetterName("getCornerBentFigure");
+ viewMap.setFigureQualifiedClassName("org.eclipse.papyrus.diagram.common.figure.node.HTMLCornerBentFigure");
+ StyleAttributes styleAttribute = GMFGenFactory.eINSTANCE.createStyleAttributes();
+ styleAttribute.setFixedBackground(false);
+ styleAttribute.setFixedFont(true);
+ styleAttribute.setFixedForeground(false);
+ viewMap.getAttributes().add(styleAttribute);
+
+ bodyGenNode.setViewmap(viewMap);
+
+ }
+
+ /**
+ * Update Type model facet
+ *
+ * @param childNode
+ * the child node currently edited
+ */
+ protected void updateTypeModelFacet(GenNode childNode) {
+ // set model facet
+ /*
+ * <modelFacet>
+ * <metaClass
+ * href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Comment"/>
+ * <containmentMetaFeature
+ * href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/ownedComment"/>
+ * <childMetaFeature
+ * href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Element/ownedComment"/>
+ * <modelElementInitializer
+ * xsi:type="gmfgen:GenFeatureSeqInitializer">
+ * <initializers
+ * xsi:type="gmfgen:GenFeatureValueSpec"
+ * value="/0/@expressionProviders/@providers.1/@expressions.0">
+ * <feature
+ * href="../../../plugin/org.eclipse.uml2.uml/model/UML.genmodel#//uml/Comment/body"/>
+ * </initializers>
+ * </modelElementInitializer>
+ * </modelFacet>
+ */
+ TypeModelFacet typeModelFacet = GMFGenFactory.eINSTANCE.createTypeModelFacet();
+ GenClass commentMetaClass = findGenClassForMetaclass(childNode, "Comment");
+ typeModelFacet.setMetaClass(commentMetaClass);
+
+ // containment metafeature
+ GenFeature containmentMetaFeature = findGenAttributeForMetaclass(childNode, "Element", "ownedComment");
+ typeModelFacet.setContainmentMetaFeature(containmentMetaFeature);
+
+ // child metafeature
+ GenFeature childMetaFeature = findGenAttributeForMetaclass(childNode, "Element", "ownedComment");
+ typeModelFacet.setChildMetaFeature(childMetaFeature);
+
+ GenFeatureSeqInitializer elementInitializer = GMFGenFactory.eINSTANCE.createGenFeatureSeqInitializer();
+ GenFeatureValueSpec featureValueSpec = GMFGenFactory.eINSTANCE.createGenFeatureValueSpec();
+ GenFeature bodyFeature = findGenAttributeForMetaclass(childNode, "Comment", "body");
+ featureValueSpec.setFeature(bodyFeature);
+ // retrieve value expression ('')
+ featureValueSpec.setValue(retrieveValueExpression(childNode));
+ elementInitializer.getInitializers().add(featureValueSpec);
+ typeModelFacet.setModelElementInitializer(elementInitializer);
+
+ }
+
+ /**
+ * Retrieve value expression ('')
+ *
+ * @param childNode
+ * the child node currently edited
+ * @return
+ */
+ protected ValueExpression retrieveValueExpression(GenNode childNode) {
+ final String expressionBody = "\' \'";
+ GenExpressionProviderContainer expressionProviderContainer = childNode.getDiagram().getEditorGen().getExpressionProviders();
+ for (GenExpressionProviderBase base : expressionProviderContainer.getProviders()) {
+ if (base instanceof GenExpressionInterpreter) {
+ for (ValueExpression expression : ((GenExpressionInterpreter) base).getExpressions()) {
+ if (expressionBody.equals(expression.getBody())) {
+ return expression;
+ }
+ }
+
+ }
+ }
+
+ GenExpressionInterpreter base = null;
+ // create a new one if none exists
+ for (GenExpressionProviderBase provider : expressionProviderContainer.getProviders()) {
+ if (provider instanceof GenExpressionInterpreter) {
+ base = (GenExpressionInterpreter) provider;
+ }
+ }
+ if (base == null) {
+ base = GMFGenFactory.eINSTANCE.createGenExpressionInterpreter();
+ expressionProviderContainer.getProviders().add(base);
+ }
+
+ // base should not be null now
+ ValueExpression expression = GMFGenFactory.eINSTANCE.createValueExpression();
+ expression.setBody(expressionBody);
+ base.getExpressions().add(expression);
+ return expression;
+ }
+
+ /**
+ * Update behaviors for the comment edit part
+ *
+ * @param childNode
+ * the node currently edited
+ */
+ protected void updateBehaviours(GenNode childNode) {
+ boolean createOpenDiagramBehaviour = true;
+ boolean createGraphicalNodeRole = false;
+ boolean createStereotypeBehaviour = true;
+
+
+ // retrieve existing behaviours
+ List<Behaviour> behaviours = childNode.getBehaviour();
+ for (Behaviour behaviour : behaviours) {
+ if (behaviour instanceof OpenDiagramBehaviour) {
+ createOpenDiagramBehaviour = false;
+ } else if (behaviour instanceof CustomBehaviour) {
+ // look for the role
+ if ("org.eclipse.gef.EditPolicy.GRAPHICAL_NODE_ROLE".equals(((CustomBehaviour) behaviour).getKey())) {
+ createGraphicalNodeRole = false;
+ } else if ("org.eclipse.papyrus.diagram.common.editpolicies.AppliedStereotypeLabelDisplayEditPolicy.STEREOTYPE_LABEL_POLICY".equals(((CustomBehaviour) behaviour).getKey())) {
+ createStereotypeBehaviour = false;
+ }
+
+ }
+ }
+
+ // if(createOpenDiagramBehaviour) {
+ // OpenDiagramBehaviour diagramBehaviour = GMFGenFactory.eINSTANCE.createOpenDiagramBehaviour();
+ // diagramBehaviour.setEditPolicyClassName("OpenDiagramEditPolicy");
+ // diagramBehaviour.setOpenAsEclipseEditor(true);
+ // childNode.getBehaviour().add(diagramBehaviour);
+ // }
+
+ if (createGraphicalNodeRole) {
+ // add a custom edit policy if necessary for graphical node role
+ CustomBehaviour customBehaviour = GMFGenFactory.eINSTANCE.createCustomBehaviour();
+ customBehaviour.setEditPolicyQualifiedClassName("");
+ customBehaviour.setKey("org.eclipse.gef.EditPolicy.GRAPHICAL_NODE_ROLE");
+ childNode.getBehaviour().add(customBehaviour);
+ }
+
+ if (createStereotypeBehaviour) {
+ // add a custom edit policy if necessary
+ CustomBehaviour stereotypeBehaviour = GMFGenFactory.eINSTANCE.createCustomBehaviour();
+ stereotypeBehaviour.setEditPolicyQualifiedClassName("org.eclipse.papyrus.diagram.common.editpolicies.AppliedStereotypeNodeLabelDisplayEditPolicy");
+ stereotypeBehaviour.setKey("org.eclipse.papyrus.diagram.common.editpolicies.AppliedStereotypeLabelDisplayEditPolicy.STEREOTYPE_LABEL_POLICY");
+ childNode.getBehaviour().add(stereotypeBehaviour);
+ }
+
+ }
+
+ /**
+ * Update the top nodes
+ */
+ protected void updateTopLevelNodes() {
+ for (GenTopLevelNode node : topNodeComments) {
+ // set figure view map
+ FigureViewmap figureViewmap = GMFGenFactory.eINSTANCE.createFigureViewmap();
+ figureViewmap.setFigureQualifiedClassName("org.eclipse.papyrus.diagram.common.figure.node.HTMLCornerBentFigure");
+ node.setViewmap(figureViewmap);
+
+ updateBehaviours(node);
+
+ updateTypeModelFacet(node);
+
+ updateGenNodeLabel(node);
+
+ messages.add("update top: " + node);
+ }
+ }
+
+ /**
+ * update the comment parser
+ */
+ protected void updateCommentParser() {
+ if (!"org.eclipse.papyrus.diagram.common.parser.CommentParser".equals(commentParser.getQualifiedName())) {
+ commentParser.setQualifiedName("org.eclipse.papyrus.diagram.common.parser.CommentParser");
+ }
+
+ if (commentParser.isGenerateBoilerplate()) {
+ commentParser.setGenerateBoilerplate(false);
+ }
+
+ }
+
+ /**
+ * Creates and returns the comment custom parser
+ *
+ * @param editorGenerator
+ * the root node of the gmfgen
+ * @param monitor
+ * the progress monitor
+ * @return the comment custom parser
+ */
+ protected CustomParser createCommentParser(GenEditorGenerator editorGenerator, IProgressMonitor monitor) {
+ GenParsers parsers = editorGenerator.getLabelParsers();
+ if (parsers == null) {
+ MessageDialog.openError(Display.getCurrent().getActiveShell(), "Impossible to find the parsers associated to this editor", "No parser container was found for this editor. \n\nYou should create the parsers container before running this action");
+ }
+ CustomParser parser = GMFGenFactory.eINSTANCE.createCustomParser();
+ parsers.getImplementations().add(parser);
+ return parser;
+ }
+
+ /**
+ * Creates and returns the comment custom parser
+ *
+ * @param editorGenerator
+ * the root node of the gmfgen
+ * @param monitor
+ * the progress monitor
+ * @return the comment custom parser
+ */
+ protected void createTopNodeComment(GenEditorGenerator editorGenerator, IProgressMonitor monitor) {
+ GenDiagram diagram = editorGenerator.getDiagram();
+ if (diagram == null) {
+ return;
+ }
+
+ GenTopLevelNode topNode = GMFGenFactory.eINSTANCE.createGenTopLevelNode();
+ diagram.getTopLevelNodes().add(topNode);
+ topNodeComments.add(topNode);
+ }
+
+ /**
+ * Creates and returns the child node comment
+ *
+ * @param editorGenerator
+ * the root node of the gmfgen
+ * @param monitor
+ * the progress monitor
+ */
+ protected void createChildNodeComment(GenEditorGenerator editorGenerator, IProgressMonitor monitor) {
+ GenDiagram diagram = editorGenerator.getDiagram();
+ if (diagram == null) {
+ return;
+ }
+
+ GenChildNode childNode = GMFGenFactory.eINSTANCE.createGenChildNode();
+ diagram.getChildNodes().add(childNode);
+ childNodeComments.add(childNode);
+ }
+
+ /**
+ * Retrieves the top node comment edit parts
+ *
+ * @param editorGenerator
+ * the root node of the gmfgen
+ * @param monitor
+ * the progress monitor
+ */
+ protected void retrieveTopNodeCommentEditPart(GenEditorGenerator editorGenerator, IProgressMonitor monitor) {
+ GenDiagram diagram = editorGenerator.getDiagram();
+ if (diagram == null) {
+ MessageDialog.openError(Display.getCurrent().getActiveShell(), "Impossible to find the diagram associated to this editor", "No diagram was found for this editor. \n\nYou should create one diagram before running this action");
+ }
+
+ GenClass commentGenClass = findGenClassForMetaclass(editorGenerator, "Comment");
+ for (GenTopLevelNode topLevelNode : diagram.getTopLevelNodes()) {
+ TypeModelFacet modelFacet = topLevelNode.getModelFacet();
+ if (modelFacet != null && modelFacet.getMetaClass() != null) {
+ if (commentGenClass.equals(modelFacet.getMetaClass())) {
+ topNodeComments.add(topLevelNode);
+ }
+ }
+ }
+ }
+
+ /**
+ * Retrieves the child node comment edit parts
+ *
+ * @param editorGenerator
+ * the root node of the gmfgen
+ * @param monitor
+ * the progress monitor
+ */
+ protected void retrieveChildNodeCommentEditPart(GenEditorGenerator editorGenerator, IProgressMonitor monitor) {
+ GenDiagram diagram = editorGenerator.getDiagram();
+ if (diagram == null) {
+ MessageDialog.openError(Display.getCurrent().getActiveShell(), "Impossible to find the diagram associated to this editor", "No diagram was found for this editor. \n\nYou should create one diagram before running this action");
+ }
+ GenClass commentGenClass = findGenClassForMetaclass(editorGenerator, "Comment");
+ for (GenChildNode childNode : diagram.getChildNodes()) {
+ TypeModelFacet modelFacet = childNode.getModelFacet();
+ if (modelFacet != null && modelFacet.getMetaClass() != null) {
+ if (commentGenClass.equals(modelFacet.getMetaClass())) {
+ childNodeComments.add(childNode);
+ }
+ }
+ }
+ }
+
+ /**
+ * Retrieves the child node comment edit parts
+ *
+ * @param editorGenerator
+ * the root node of the gmfgen
+ * @param monitor
+ * the progress monitor
+ */
+ protected void retrieveCommentParser(GenEditorGenerator editorGenerator, IProgressMonitor monitor) {
+ GenParsers parsers = editorGenerator.getLabelParsers();
+ if (parsers == null) {
+ MessageDialog.openError(Display.getCurrent().getActiveShell(), "Impossible to find the parsers associated to this editor", "No parser container was found for this editor. \n\nYou should create the parsers container before running this action");
+ }
+ for (GenParserImplementation parserImplementation : parsers.getImplementations()) {
+ if (parserImplementation instanceof CustomParser) {
+ if ("org.eclipse.papyrus.diagram.common.parser.CommentParser".equals(((CustomParser) parserImplementation).getQualifiedName())) {
+ commentParser = ((CustomParser) parserImplementation);
+ }
+ }
+ }
+ }
+
+
+ /**
+ *
+ */
+ protected GenClass findGenClassForMetaclass(EObject eObject, String name) {
+ Resource notation = eObject.eResource().getResourceSet().getResource(uri_UML2, true);
+ return findGenClass(notation, name);
+ }
+
+ /**
+ *
+ */
+ protected GenClass findGenClassForNotation(EObject eObject, String name) {
+ Resource notation = eObject.eResource().getResourceSet().getResource(uri_notation, true);
+ return findGenClass(notation, name);
+ }
+
+ /**
+ *
+ */
+ protected GenFeature findGenAttributeForMetaclass(EObject eObject, String genClassName, String genFeatureName) {
+ Resource notation = eObject.eResource().getResourceSet().getResource(uri_UML2, true);
+ return findGenFeature(notation, genClassName, genFeatureName);
+ }
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddSemanticElementTypeInGenericTopNode.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddSemanticElementTypeInGenericTopNode.java
new file mode 100644
index 00000000000..207ee07740e
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddSemanticElementTypeInGenericTopNode.java
@@ -0,0 +1,191 @@
+/*******************************************************************************
+ * Copyright (c) 2009 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.papyrusgmfgenextension.popupaction;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.gmf.codegen.gmfgen.ElementType;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenFactory;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IViewPart;
+
+/**
+ * Implementation class for AddSemanticElementTypeInGenericTopNode action
+ */
+public class AddSemanticElementTypeInGenericTopNode extends Action {
+
+ /** prefix for Metamodel type identifier */
+ private static final String ORG_ECLIPSE_PAPYRUS_UML = "org.eclipse.papyrus.uml.";
+
+ public static final String GEN_CLASS_RT_CLASS = "Node"; //$NON-NLS-1$
+
+ public static final String GEN_CLASS_FACET_META_FEATURE = "NamedElement"; //$NON-NLS-1$
+
+ public static final String GEN_FEATURE_FACET_META_FEATURE = "name"; //$NON-NLS-1$
+
+ public static final String URI_NOTATION_GENMODEL = "org.eclipse.gmf.runtime.notation/model/notation.genmodel"; //$NON-NLS-1$
+
+ public static final String URI_UML_GENMODEL = "org.eclipse.uml2.uml/model/UML.genmodel"; //$NON-NLS-1$
+
+
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
+ */
+ public void init(IViewPart view) {
+ // NO OP
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public void run(IAction action) {
+
+ // Parse selected GenLink(s) and add the desired CustomBehavior
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenDiagram) {
+
+ GenDiagram genDiagram = (GenDiagram) eObject;
+ ResourceSet resourceSet = genDiagram.eResource().getResourceSet();
+ int updated = 0;
+ int created = 0;
+
+ // create and set values for top node and sub children
+ List<GenClass> concreteUMLMetaclasses = getAllUMLConcreteClasses(resourceSet);
+ for (GenClass currentGenClass : concreteUMLMetaclasses) {
+ boolean needsCreation = false;
+
+ String metaclassName = currentGenClass.getEcoreClass().getName();
+ GenTopLevelNode node = findTopLevelNode(genDiagram, currentGenClass);
+ if (node == null) {
+ needsCreation = true;
+ node = createNewTopNode(genDiagram, metaclassName);
+ created++;
+ }
+ updateToplevelNode(node, resourceSet, currentGenClass);
+
+ if (needsCreation) {
+ genDiagram.getTopLevelNodes().add(node);
+ }
+ updated++;
+ }
+
+ MessageDialog.openInformation(Display.getCurrent().getActiveShell(), "Generation", created + " nodes were created.\n " + updated + " nodes were updated");
+ }
+ }
+ }
+
+
+
+ /**
+ * Returns all the UML {@link GenClass} that are related to UML constructs which are not abstract
+ *
+ * @param resourceSet
+ * @return
+ */
+ protected List<GenClass> getAllUMLConcreteClasses(ResourceSet resourceSet) {
+ Resource umlResource = resourceSet.getResource(URI.createPlatformPluginURI(URI_UML_GENMODEL, false), true);
+ List<GenClass> classes = new ArrayList<GenClass>();
+ Iterator<EObject> it = umlResource.getAllContents();
+ while (it.hasNext()) {
+ EObject next = it.next();
+ if (next instanceof GenClass) {
+ GenClass genClass = (GenClass) next;
+ EClass umlEClass = genClass.getEcoreClass();
+ if (umlEClass != null && !umlEClass.isAbstract() && !umlEClass.isInterface()) {
+ classes.add(genClass);
+ }
+ }
+ }
+ return classes;
+ }
+
+ /**
+ * Returns the top level node that corresponds to this metaclass
+ *
+ * @param metaclassName
+ * name of the metaclass for which element type has to be defined
+ * @return the top level node found or <code>null</code>;
+ */
+ protected GenTopLevelNode findTopLevelNode(GenDiagram genDiagram, GenClass genClass) {
+ for (GenTopLevelNode topNode : genDiagram.getTopLevelNodes()) {
+ TypeModelFacet facet = topNode.getModelFacet();
+ if (facet != null) {
+ if (genClass.equals(facet.getMetaClass())) {
+ return topNode;
+ }
+ ;
+ }
+ }
+ return null;
+ }
+
+ protected void updateToplevelNode(GenTopLevelNode topLevelNode, ResourceSet resourceSet, GenClass genClass) {
+ String metaclassName = genClass.getEcoreClass().getName();
+ topLevelNode.setDiagramRunTimeClass(getNodeViewClass(resourceSet));
+
+ TypeModelFacet typeModelFacet = topLevelNode.getModelFacet();
+ if (typeModelFacet == null) {
+ typeModelFacet = GMFGenFactory.eINSTANCE.createTypeModelFacet();
+ topLevelNode.setModelFacet(typeModelFacet);
+ }
+
+ typeModelFacet.setMetaClass(genClass);
+
+ ElementType type = topLevelNode.getElementType();
+ if (type == null) {
+ type = GMFGenFactory.eINSTANCE.createMetamodelType();
+ topLevelNode.setElementType(type);
+ }
+ type.setDefinedExternally(true);
+ type.setDisplayName(metaclassName + "_Semantic");
+ type.setUniqueIdentifier(ORG_ECLIPSE_PAPYRUS_UML + metaclassName);
+ }
+
+ public GenTopLevelNode createNewTopNode(GenDiagram genDiagram, String metaclassName) {
+ GenTopLevelNode topLevelNode = GMFGenFactory.eINSTANCE.createGenTopLevelNode();
+ return topLevelNode;
+ }
+
+
+ protected GenClass getNodeViewClass(ResourceSet resourceSet) {
+ URI uri_notation = URI.createPlatformPluginURI(URI_NOTATION_GENMODEL, false);
+ Resource notation = resourceSet.getResource(uri_notation, true);
+ return findGenClass(notation, GEN_CLASS_RT_CLASS);
+ }
+
+ protected GenClass getMetaclassGenClass(ResourceSet resourceSet, String metaclassName) {
+ URI uri_uml = URI.createPlatformPluginURI(URI_UML_GENMODEL, false);
+ Resource umlResource = resourceSet.getResource(uri_uml, true);
+ return findGenClass(umlResource, metaclassName);
+ }
+
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddShapeNamedElementAction.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddShapeNamedElementAction.java
new file mode 100644
index 00000000000..e861db22341
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddShapeNamedElementAction.java
@@ -0,0 +1,173 @@
+/*****************************************************************************
+ * 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.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Shell;
+
+
+
+/**
+ * The Class AddShapeNamedElementAction: create an edit part to display an element as the shape that comes from applied stereotypes.
+ */
+public class AddShapeNamedElementAction extends Action {
+
+
+ /** The Constant MESSAGE_INTRO. */
+ protected static final String MESSAGE_INTRO = Messages.message_Intro;
+
+ /** The Constant MESSAGE_INFO_1. */
+ protected static final String MESSAGE_INFO_1 = Messages.rulesAboutShapeEditPart;
+
+ /** The Constant MESSAGE_INFO_2. */
+ protected static final String MESSAGE_INFO_2 = Messages.ruleAboutChangeEditPolicy;
+
+ /** The Constant PACKAGED_ELEMENT_ATTRIBUTE. */
+ protected static final String PACKAGED_ELEMENT_ATTRIBUTE = "packagedElement"; //$NON-NLS-1$
+
+ /** The Constant PACKAGE_NAME. */
+ protected static final String PACKAGE_NAME = "Package"; //$NON-NLS-1$
+
+ /** The Constant UNKNOW_EDITPOLICY. */
+ protected static final String UNKNOW_EDITPOLICY = "YOUR OWN CHANGE SHAPE EDIT POLICY"; //$NON-NLS-1$
+
+ /** The Constant QUALIFIED_NAME_DISPLAY_EDIT_POLICY_VALUE. */
+ protected static final String QUALIFIED_NAME_DISPLAY_EDIT_POLICY_VALUE = "org.eclipse.papyrus.diagram.common.editpolicies.QualifiedNameDisplayEditPolicy"; //$NON-NLS-1$
+
+ /** The Constant NODE_LABEL_DISPLAY_EDIT_POLICY_VALUE. */
+ protected static final String NODE_LABEL_DISPLAY_EDIT_POLICY_VALUE = "org.eclipse.papyrus.diagram.common.editpolicies.AppliedStereotypeNodeLabelDisplayEditPolicy"; //$NON-NLS-1$
+
+ /** The Constant POPUP_BAR_EDIT_POLICY_VALUE. */
+ protected static final String POPUP_BAR_EDIT_POLICY_VALUE = "org.eclipse.papyrus.diagram.common.editpolicies.HyperLinkPopupBarEditPolicy"; //$NON-NLS-1$
+
+ /** The Constant CHANGE_SHAPE_POLICY_KEY. */
+ protected static final String CHANGE_SHAPE_POLICY_KEY = "org.eclipse.papyrus.diagram.common.editpolicies.ChangeStereotypedShapeEditPolicy.CHANGE_SHAPE_POLICY"; //$NON-NLS-1$
+
+ /** The Constant POLICY_QUALIFIED_NAME_POLICY_KEY. */
+ protected static final String POLICY_QUALIFIED_NAME_POLICY_KEY = "org.eclipse.papyrus.diagram.common.editpolicies.QualifiedNameDisplayEditPolicy.QUALIFIED_NAME_POLICY"; //$NON-NLS-1$
+
+ /** The Constant STEREOTYPE_LABEL_POLICY_KEY. */
+ protected static final String STEREOTYPE_LABEL_POLICY_KEY = "org.eclipse.papyrus.diagram.common.editpolicies.AppliedStereotypeLabelDisplayEditPolicy.STEREOTYPE_LABEL_POLICY"; //$NON-NLS-1$
+
+ /** The Constant POPUPBAR_ROLE_KEY. */
+ protected static final String POPUPBAR_ROLE_KEY = "org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.POPUPBAR_ROLE"; //$NON-NLS-1$
+
+ /** The Constant NAME_ATTRIBUTE. */
+ protected static final String NAME_ATTRIBUTE = "name"; //$NON-NLS-1$
+
+ /** The Constant NAMED_ELEMENT_NAME. */
+ protected static final String NAMED_ELEMENT_NAME = "NamedElement"; //$NON-NLS-1$
+
+ /** The Constant NODE_NAMED_ELEMENT_FIGURE. */
+ protected static final String NODE_NAMED_ELEMENT_FIGURE = "org.eclipse.papyrus.diagram.common.figure.node.ShapeNamedElementFigure"; //$NON-NLS-1$
+
+ /** The Constant GMF_NODE. */
+ protected static final String GMF_NODE = "Node"; //$NON-NLS-1$
+
+ /** The Constant WRAPPING_LABEL. */
+ protected static final String WRAPPING_LABEL = "org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel"; //$NON-NLS-1$
+
+ /** The Constant DEFAULT_NAMED_ELEMENT_NAME. */
+ protected static final String DEFAULT_NAMED_ELEMENT_NAME = "ShapeNamedElementName"; //$NON-NLS-1$
+
+ /** The Constant URI_UML_GENMODEL. */
+ protected static final String URI_UML_GENMODEL = "org.eclipse.uml2.uml/model/UML.genmodel"; //$NON-NLS-1$
+
+ /** The Constant URI_NOTATION_GENMODEL. */
+ protected static final String URI_NOTATION_GENMODEL = "org.eclipse.gmf.runtime.notation/model/notation.genmodel"; //$NON-NLS-1$
+
+ /** The Constant DEFAULT_NAMED_ELEMENT. */
+ private static final String DEFAULT_NAMED_ELEMENT = "ShapeNamedElement"; //$NON-NLS-1$
+
+ /**
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ *
+ * @param action
+ */
+ @Override
+ public void run(IAction action) {
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenDiagram) {
+ GenDiagram genDiagram = ((GenDiagram) eObject);
+ createTopNode(genDiagram);
+ }
+ }
+ }
+
+ /**
+ * Creates the top node.
+ *
+ * @param genDiagram
+ * the gen diagram
+ */
+ public void createTopNode(GenDiagram genDiagram) {
+ URI uri_notation = URI.createPlatformPluginURI(URI_NOTATION_GENMODEL, false);
+
+ Resource notation = genDiagram.eResource().getResourceSet().getResource(uri_notation, true);
+
+ GenTopLevelNode topNode = EditpartGenHelper.createTopNode(genDiagram, DEFAULT_NAMED_ELEMENT, findGenClass(notation, GMF_NODE));
+ genDiagram.getTopLevelNodes().add(topNode);
+ EditpartGenHelper.createMetaModelType(topNode, DEFAULT_NAMED_ELEMENT);
+ addBehavior(topNode);
+ addModelFacet(topNode);
+ GenLabel label = EditpartGenHelper.createExternalGenNodeLabel(topNode, DEFAULT_NAMED_ELEMENT_NAME, findGenClass(notation, GMF_NODE));
+ EditpartGenHelper.createLabelViewMap(label, WRAPPING_LABEL);
+ findGenClass(notation, GMF_NODE);
+ EditpartGenHelper.createFigureViewMap(topNode, NODE_NAMED_ELEMENT_FIGURE, 100, 50);
+ URI uri_uml = URI.createPlatformPluginURI(URI_UML_GENMODEL, false);
+ Resource uml = topNode.eResource().getResourceSet().getResource(uri_uml, true);
+ EditpartGenHelper.createLabelModelFacet(label, findGenFeature(uml, NAMED_ELEMENT_NAME, NAME_ATTRIBUTE), EditpartGenHelper.getFirstPredefinedParse(genDiagram.getEditorGen()));
+ MessageDialog.open(MessageDialog.INFORMATION, new Shell(), Messages.generalInformation, MESSAGE_INTRO + MESSAGE_INFO_1 + MESSAGE_INFO_2, MessageDialog.NONE);
+
+ }
+
+ /**
+ * Adds the behavior.
+ *
+ * @param topNode
+ * the top node
+ */
+ public void addBehavior(GenTopLevelNode topNode) {
+ // add behavior
+ EditpartGenHelper.addBehavior(topNode, POPUPBAR_ROLE_KEY, POPUP_BAR_EDIT_POLICY_VALUE);
+ EditpartGenHelper.addBehavior(topNode, STEREOTYPE_LABEL_POLICY_KEY, NODE_LABEL_DISPLAY_EDIT_POLICY_VALUE);
+ EditpartGenHelper.addBehavior(topNode, POLICY_QUALIFIED_NAME_POLICY_KEY, QUALIFIED_NAME_DISPLAY_EDIT_POLICY_VALUE);
+ EditpartGenHelper.addBehavior(topNode, CHANGE_SHAPE_POLICY_KEY, UNKNOW_EDITPOLICY);
+ }
+
+ /**
+ * Adds the model facet.
+ *
+ * @param topNode
+ * the top node
+ */
+ public void addModelFacet(GenTopLevelNode topNode) {
+ URI uri_uml = URI.createPlatformPluginURI(URI_UML_GENMODEL, false);
+ Resource uml = topNode.eResource().getResourceSet().getResource(uri_uml, true);
+ EditpartGenHelper.createModelFacet(topNode, findGenFeature(uml, PACKAGE_NAME, PACKAGED_ELEMENT_ATTRIBUTE), findGenClass(uml, NAMED_ELEMENT_NAME));
+
+ }
+
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddSmallAndLargeIconForPaletteAction.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddSmallAndLargeIconForPaletteAction.java
new file mode 100644
index 00000000000..f5d585ef909
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/AddSmallAndLargeIconForPaletteAction.java
@@ -0,0 +1,215 @@
+/*******************************************************************************
+ * Copyright (c) 2009 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.papyrusgmfgenextension.popupaction;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.LinkModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.Palette;
+import org.eclipse.gmf.codegen.gmfgen.ToolEntry;
+import org.eclipse.gmf.codegen.gmfgen.ToolGroup;
+import org.eclipse.gmf.codegen.gmfgen.ToolGroupItem;
+import org.eclipse.gmf.codegen.gmfgen.TypeLinkModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * Implementation class for AddGenLinkStereotypeDisplayBehavior action
+ */
+public class AddSmallAndLargeIconForPaletteAction extends Action {
+
+ /** output messages for user information */
+ protected List<String> messages = new ArrayList<String>();
+
+ /** number of modified elements */
+ protected int modifiedElements = 0;
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void run(IAction action) {
+
+ IProgressMonitor monitor = new NullProgressMonitor();
+ messages.clear();
+ modifiedElements = 0;
+
+ // Parse selected GenLink(s) and add the desired CustomBehavior
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof Palette) {
+ monitor.beginTask("Generate palette icons", IProgressMonitor.UNKNOWN);
+ generateIconsForEntry((Palette) eObject, monitor);
+ } else if (eObject instanceof ToolGroup) {
+ monitor.beginTask("Generate group icons", IProgressMonitor.UNKNOWN);
+ generateIconsForGroup((ToolGroup) eObject, monitor);
+ } else if (eObject instanceof ToolEntry) {
+ monitor.beginTask("Generate entry icons", IProgressMonitor.UNKNOWN);
+ generateIconsForEntry((ToolEntry) eObject, monitor);
+ }
+ try {
+ eObject.eResource().save(new HashMap());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ if (!messages.isEmpty()) {
+ MessageDialog.openInformation(Display.getCurrent().getActiveShell(), "Information", messages.toString());
+ System.err.println(messages);
+ }
+ }
+ }
+
+ /**
+ * Generates both the small and large icons field for the specified group, and the sub tools
+ *
+ * @param toolEntry
+ * the tool entry to modify
+ * @param monitor
+ * the progress monitor that displays the task currently run
+ */
+ private void generateIconsForGroup(ToolGroup group, IProgressMonitor monitor) {
+ // monitor.subTask("Generate " + ((group.getTitle() != null) ? group.getTitle() : "<group>")
+ // + "icons");
+ if (group.getSmallIconPath() == null) {
+ group.setSmallIconPath("platform:/plugin/org.eclipse.gmf.runtime.diagram.ui/icons/group.gif");
+ messages.add("INFO: added small icon for " + group);
+ modifiedElements++;
+ }
+
+ if (group.getLargeIconPath() == null) {
+ group.setLargeIconPath("platform:/plugin/org.eclipse.gmf.runtime.diagram.ui/icons/group.gif");
+ messages.add("INFO: added large icon for " + group);
+ }
+
+ monitor.subTask("Generate group entries icons");
+ // get all sub tools, and generate for them
+ for (ToolGroupItem entry : group.getEntries()) {
+ if (entry instanceof ToolEntry) {
+ generateIconsForEntry((ToolEntry) entry, monitor);
+ }
+ }
+ }
+
+ private void generateIconsForEntry(Palette eObject, IProgressMonitor monitor) {
+ Iterator<ToolGroup> it = eObject.getGroups().iterator();
+ while (it.hasNext()) {
+ generateIconsForGroup(it.next(), monitor);
+ }
+
+ }
+
+ /**
+ * Generates both the small and large icons field for the specified toolentry
+ *
+ * @param toolEntry
+ * the tool entry to modify
+ * @param monitor
+ * the progress monitor that displays the task currently run
+ */
+ private void generateIconsForEntry(ToolEntry toolEntry, IProgressMonitor monitor) {
+ // retrieve viewed model element
+ EList<GenCommonBase> list = toolEntry.getElements();
+ GenClass genClass = null;
+ String name = "";
+ if (!list.isEmpty()) {
+ // two possiblities: either entry is a genNode or a genLink
+ GenCommonBase base = list.get(0);
+ if (base instanceof GenNode) {
+ TypeModelFacet facet = ((GenNode) base).getModelFacet();
+ if (facet != null) {
+ genClass = facet.getMetaClass();
+
+ }
+ } else if (base instanceof GenLink) {
+ LinkModelFacet facet = ((GenLink) base).getModelFacet();
+ if (facet instanceof TypeLinkModelFacet) {
+ genClass = ((TypeLinkModelFacet) facet).getMetaClass();
+ }
+ }
+ }
+
+ if (genClass == null) {
+ messages.add("ERROR: " + toolEntry + " : impossible to find its gen class associated");
+ return;
+ }
+
+ // check name is not null null
+ if (genClass != null) {
+ name = genClass.getName();
+ }
+ assert name != null : "impossible to find a name for model element: " + toolEntry;
+
+ String smallIconPath = "";
+ // retrieve icon for the element
+ // TODO: should be filled using a configuration
+
+ if (getEclassPackageNsURI(genClass).equals("http://www.eclipse.org/uml2/3.0.0/UML")) {
+ smallIconPath = "platform:/plugin/org.eclipse.uml2.uml.edit/icons/full/obj16/" + name + ".gif";
+ } else {
+ return;
+ }
+
+ String largeIconPath = smallIconPath;
+
+ if (toolEntry.getSmallIconPath() == null || "".equals(toolEntry.getSmallIconPath())) {
+ toolEntry.setSmallIconPath(smallIconPath);
+ modifiedElements++;
+ } else {
+ messages.add("INFO: " + toolEntry + " small icon field was not modified because it was already filled");
+ }
+ if (toolEntry.getLargeIconPath() == null || "".equals(toolEntry.getLargeIconPath())) {
+ toolEntry.setLargeIconPath(largeIconPath);
+ messages.add("INFO: " + toolEntry + " large icon field was not modified because it was already filled");
+ }
+
+ monitor.worked(1);
+ }
+
+ /**
+ * Returns the nsURI of the EPackage of the given gen class
+ *
+ * @param genClass
+ * the gen class the nsuri should retrieved from.
+ * @return <code>""</code> if nothing was found
+ */
+ private String getEclassPackageNsURI(GenClass genClass) {
+ final EClass eClass = genClass.getEcoreClass();
+ if (eClass != null) {
+ final EPackage ePackage = eClass.getEPackage();
+ if (ePackage != null) {
+ return (ePackage.getNsURI() != null ? ePackage.getNsURI() : "");
+ } else {
+ messages.add("ERROR: " + eClass + " has no associated epackage");
+ }
+ } else {
+ messages.add("ERROR: " + genClass + " has no ecore class");
+ }
+ return "";
+ }
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/DisplayReport.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/DisplayReport.java
new file mode 100644
index 00000000000..8808bfe9e46
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/DisplayReport.java
@@ -0,0 +1,147 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenChildLabelNode;
+import org.eclipse.gmf.codegen.gmfgen.GenChildNode;
+import org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
+import org.eclipse.gmf.codegen.gmfgen.TypeLinkModelFacet;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IViewPart;
+
+/**
+ * Display the lis of nodes
+ */
+public class DisplayReport extends Action {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
+ */
+ public void init(IViewPart view) {
+ // NO OP
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public void run(IAction action) {
+
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+
+ // Action should not be available on objects that are not GenCommonBase
+ if (eObject instanceof GenCommonBase) {
+ GenCommonBase genCommonBase = (GenCommonBase) eObject;
+ StringBuffer out = getTopNodes(genCommonBase.eResource());
+ Shell shell = new Shell(Display.getCurrent());
+
+ shell.setText("report");
+ shell.setLayout(new FillLayout());
+ Text text1 = new Text(shell, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
+ text1.setText(out.toString());
+ shell.pack();
+ shell.open();
+
+ }
+
+ }
+ }
+
+ public StringBuffer getTopNodes(Resource gmfgen) {
+ StringBuffer out = new StringBuffer();
+ // Find the highest VisualID used by the chosen kind of node (given by clazz)
+ Iterator<EObject> it = gmfgen.getAllContents();
+ out = out.append("TopNode\n");
+ // topNode
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenTopLevelNode) {
+ GenTopLevelNode genTopLevelNode = (GenTopLevelNode) eObject;
+ if (genTopLevelNode.getModelFacet() != null) {
+ out = out.append(genTopLevelNode.getModelFacet().getMetaClass().getEcoreClass().getName() + " " + genTopLevelNode.getVisualID() + "\n");
+ }
+ }
+ }
+
+ out = out.append("\nChildNode\n");
+ it = gmfgen.getAllContents();
+ // topNode
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenChildNode) {
+ GenChildNode genTopLevelNode = (GenChildNode) eObject;
+ if (genTopLevelNode.getModelFacet() != null) {
+ out = out.append(genTopLevelNode.getModelFacet().getMetaClass().getEcoreClass().getName() + " " + genTopLevelNode.getVisualID() + "\n");
+ }
+ }
+ }
+
+ out = out.append("\nChildLabelNode\n");
+ it = gmfgen.getAllContents();
+ // topNode
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenChildLabelNode) {
+ GenChildLabelNode genTopLevelNode = (GenChildLabelNode) eObject;
+ if (genTopLevelNode.getModelFacet() != null) {
+ out = out.append(genTopLevelNode.getModelFacet().getMetaClass().getEcoreClass().getName() + " " + genTopLevelNode.getVisualID() + "\n");
+ }
+ }
+ }
+
+ out = out.append("\nAffixedNode\n");
+ it = gmfgen.getAllContents();
+ // topNode
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenChildSideAffixedNode) {
+ GenChildSideAffixedNode genTopLevelNode = (GenChildSideAffixedNode) eObject;
+ if (genTopLevelNode.getModelFacet() != null) {
+ out = out.append(genTopLevelNode.getModelFacet().getMetaClass().getEcoreClass().getName() + " " + genTopLevelNode.getVisualID() + "\n");
+ }
+ }
+ }
+ out = out.append("\nLink\n");
+ it = gmfgen.getAllContents();
+ // topNode
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenLink) {
+ GenLink genTopLevelNode = (GenLink) eObject;
+ if (genTopLevelNode.getModelFacet() != null) {
+ if (genTopLevelNode.getModelFacet() instanceof TypeLinkModelFacet) {
+ out = out.append(((TypeLinkModelFacet) genTopLevelNode.getModelFacet()).getMetaClass().getEcoreClass().getName() + " " + genTopLevelNode.getVisualID() + "\n");
+ }
+ }
+ }
+ }
+ return out;
+ }
+
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/EditpartGenHelper.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/EditpartGenHelper.java
new file mode 100644
index 00000000000..2728dc3f826
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/EditpartGenHelper.java
@@ -0,0 +1,259 @@
+/*****************************************************************************
+ * 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.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
+import org.eclipse.gmf.codegen.gmfgen.CustomBehaviour;
+import org.eclipse.gmf.codegen.gmfgen.DefaultSizeAttributes;
+import org.eclipse.gmf.codegen.gmfgen.FeatureLabelModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.FigureViewmap;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenFactory;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenParserImplementation;
+import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
+import org.eclipse.gmf.codegen.gmfgen.MetamodelType;
+import org.eclipse.gmf.codegen.gmfgen.ParentAssignedViewmap;
+import org.eclipse.gmf.codegen.gmfgen.PredefinedParser;
+import org.eclipse.gmf.codegen.gmfgen.StyleAttributes;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+
+
+
+/**
+ * The Class EditpartGenHelper tha contains a lot of useful method to create gennodes etc..
+ */
+public class EditpartGenHelper {
+
+ /** The Constant EDIT_HELPER. */
+ public static final String EDIT_HELPER = "EditHelper";
+
+ /** The Constant CANONICAL_EDIT_POLICY. */
+ protected static final String CANONICAL_EDIT_POLICY = "CanonicalEditPolicy"; //$NON-NLS-1$
+
+ /** The Constant EDIT_PART. */
+ private static final String EDIT_PART = "EditPart"; //$NON-NLS-1$
+
+ /**
+ * Adds the behavior.
+ *
+ * @param base
+ * the base where we want to add a behvior
+ * @param key
+ * the key
+ * @param value
+ * the value
+ */
+ public static void addBehavior(GenCommonBase base, String key, String value) {
+ CustomBehaviour behaviour = GMFGenFactory.eINSTANCE.createCustomBehaviour();
+ behaviour.setKey(key);
+ behaviour.setEditPolicyQualifiedClassName(value);
+ base.getBehaviour().add(behaviour);
+ }
+
+ /**
+ * Creates the top node.
+ *
+ * @param genDiagram
+ * the gen diagram
+ * @param name
+ * the name
+ * @param visualClass
+ * the visual class node etc..
+ * @return the gen top level node
+ */
+ public static GenTopLevelNode createTopNode(GenDiagram genDiagram, String name, GenClass visualClass) {
+ GenTopLevelNode topNode = GMFGenFactory.eINSTANCE.createGenTopLevelNode();
+ topNode.setEditPartClassName(name + EDIT_PART);
+ topNode.setCanonicalEditPolicyClassName(name + CANONICAL_EDIT_POLICY);
+ topNode.setCreateCommandClassName(name + "CreateCommand"); //$NON-NLS-1$
+ topNode.setGraphicalNodeEditPolicyClassName(name + "GraphicalNodeEditPolicy"); //$NON-NLS-1$
+ topNode.setItemSemanticEditPolicyClassName(name + "ItemSemanticEditPolicy"); //$NON-NLS-1$
+ topNode.setDiagramRunTimeClass(visualClass);
+ genDiagram.getTopLevelNodes().add(topNode);
+ topNode.setVisualID(SetVisualIDWithUnusedValue.getNewVisualID(topNode.eResource(), topNode.getClass()));
+
+
+ return topNode;
+
+ }
+
+ /**
+ * Creates the gen node label.
+ *
+ * @param genNode
+ * the gen node
+ * @param name
+ * the name
+ * @param visualClass
+ * the visual class node etc...
+ * @return the gen node label
+ */
+ public static GenNodeLabel createGenNodeLabel(GenNode genNode, String name, GenClass visualClass) {
+ GenNodeLabel nodeLabel = GMFGenFactory.eINSTANCE.createGenNodeLabel();
+ nodeLabel.setEditPartClassName(name + EDIT_PART);
+ nodeLabel.setItemSemanticEditPolicyClassName(name + "ItemSemanticEditPolicy"); //$NON-NLS-1$
+ nodeLabel.setDiagramRunTimeClass(visualClass);
+ genNode.getLabels().add(nodeLabel);
+ nodeLabel.setVisualID(SetVisualIDWithUnusedValue.getNewVisualID(genNode.eResource(), GenCommonBase.class));
+
+ return nodeLabel;
+
+ }
+
+ /**
+ * Creates the external gen node label.
+ *
+ * @param genNode
+ * the gen node
+ * @param name
+ * the name
+ * @param visualClass
+ * the visual class node etc ...
+ * @return the gen node label
+ */
+ public static GenNodeLabel createExternalGenNodeLabel(GenNode genNode, String name, GenClass visualClass) {
+ GenNodeLabel nodeLabel = GMFGenFactory.eINSTANCE.createGenExternalNodeLabel();
+ nodeLabel.setEditPartClassName(name + EDIT_PART);
+ nodeLabel.setItemSemanticEditPolicyClassName(name + "ItemSemanticEditPolicy"); //$NON-NLS-1$
+ nodeLabel.setDiagramRunTimeClass(visualClass);
+ genNode.getLabels().add(nodeLabel);
+ nodeLabel.setVisualID(SetVisualIDWithUnusedValue.getNewVisualID(genNode.eResource(), GenCommonBase.class));
+
+ return nodeLabel;
+
+ }
+
+ /**
+ * Creates the meta model type.
+ *
+ * @param base
+ * the base that will contains the metamodel type
+ * @param name
+ * the name of the edit class helper
+ */
+ public static void createMetaModelType(GenCommonBase base, String name) {
+ MetamodelType metamodelType = GMFGenFactory.eINSTANCE.createMetamodelType();
+ metamodelType.setDefinedExternally(false);
+ metamodelType.setDisplayName(name);
+ metamodelType.setEditHelperClassName(name + EDIT_HELPER);
+ metamodelType.setDiagramElement(base);
+ }
+
+
+ /**
+ * Creates the label view map.
+ *
+ * @param base
+ * the base that will contains the labelview map
+ * @param qualifiedNameFigure
+ * the qualified name figure
+ */
+ public static void createLabelViewMap(GenCommonBase base, String qualifiedNameFigure) {
+ ParentAssignedViewmap figureViewmap = GMFGenFactory.eINSTANCE.createParentAssignedViewmap();
+ figureViewmap.setFigureQualifiedClassName(qualifiedNameFigure);
+ figureViewmap.setGetterName("getNameLabel");
+ StyleAttributes styleAttributes = GMFGenFactory.eINSTANCE.createStyleAttributes();
+ styleAttributes.setFixedBackground(false);
+ styleAttributes.setFixedFont(true);
+ styleAttributes.setFixedForeground(false);
+
+ figureViewmap.getAttributes().add(styleAttributes);
+ base.setViewmap(figureViewmap);
+ }
+
+ /**
+ * Creates the figure view map.
+ *
+ * @param base
+ * the base that will contains the labelview map
+ * @param qualifiedNameFigure
+ * the qualified name figure
+ * @param width
+ * the width of the default figure
+ * @param height
+ * the height of the default figure
+ */
+ public static void createFigureViewMap(GenCommonBase base, String qualifiedNameFigure, int width, int height) {
+ FigureViewmap figureViewmap = GMFGenFactory.eINSTANCE.createFigureViewmap();
+ figureViewmap.setFigureQualifiedClassName(qualifiedNameFigure);
+ DefaultSizeAttributes defaultSizeAttributes = GMFGenFactory.eINSTANCE.createDefaultSizeAttributes();
+ defaultSizeAttributes.setWidth(width);
+ defaultSizeAttributes.setHeight(height);
+ figureViewmap.getAttributes().add(defaultSizeAttributes);
+ base.setViewmap(figureViewmap);
+ }
+
+ /**
+ * Creates the model facet.
+ *
+ * @param base
+ * the base that will contains the model facet
+ * @param genFeature
+ * the gen feature
+ * @param genclass
+ * the genclass
+ */
+ public static void createModelFacet(GenNode base, GenFeature genFeature, GenClass genclass) {
+ TypeModelFacet facet = GMFGenFactory.eINSTANCE.createTypeModelFacet();
+ facet.setMetaClass(genclass);
+ facet.setContainmentMetaFeature(genFeature);
+ base.setModelFacet(facet);
+
+ }
+
+ /**
+ * Creates the label model facet.
+ *
+ * @param label
+ * the label that will contains the label model facet
+ * @param genFeature
+ * the gen feature
+ * @param value
+ * the value
+ */
+ public static void createLabelModelFacet(GenLabel label, GenFeature genFeature, GenParserImplementation value) {
+ FeatureLabelModelFacet facet = GMFGenFactory.eINSTANCE.createFeatureLabelModelFacet();
+ facet.getMetaFeatures().add(genFeature);
+ facet.setParser(value);
+ label.setModelFacet(facet);
+
+ }
+
+ /**
+ * Gets the first predefined parse.
+ *
+ * @param editorView
+ * the editor view
+ * @return the first predefined parse
+ */
+ public static PredefinedParser getFirstPredefinedParse(GenEditorGenerator editorView) {
+ Iterator<GenParserImplementation> iter = editorView.getLabelParsers().getImplementations().iterator();
+ while (iter.hasNext()) {
+ GenParserImplementation base = iter.next();
+ if (base instanceof PredefinedParser) {
+ return (PredefinedParser) base;
+ }
+
+ }
+ return null;
+ }
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/Messages.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/Messages.java
new file mode 100644
index 00000000000..38ac7b07234
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/Messages.java
@@ -0,0 +1,51 @@
+/*****************************************************************************
+ * 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.papyrusgmfgenextension.popupaction;
+
+import org.eclipse.osgi.util.NLS;
+
+
+/**
+ * The Class Messages.
+ */
+public class Messages extends NLS {
+
+ /** The Constant BUNDLE_NAME. */
+ private static final String BUNDLE_NAME = "org.eclipse.papyrus.papyrusgmfgenextension.popupaction.messages"; //$NON-NLS-1$
+
+ /** The rules about named element. */
+ public static String rulesAboutNamedElement;
+
+ /** The message_ intro. */
+ public static String message_Intro;
+
+ /** The rules about shape edit part. */
+ public static String rulesAboutShapeEditPart;
+
+ /** The rule about change edit policy. */
+ public static String ruleAboutChangeEditPolicy;
+
+ /** The general information. */
+ public static String generalInformation;
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ /**
+ * Instantiates a new messages.
+ */
+ private Messages() {
+ }
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/SetCompartmentNeedsTitleToTrueAction.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/SetCompartmentNeedsTitleToTrueAction.java
new file mode 100644
index 00000000000..7f23d4804d9
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/SetCompartmentNeedsTitleToTrueAction.java
@@ -0,0 +1,66 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *****************************************************************************/
+
+
+package org.eclipse.papyrus.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CompoundCommand;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.command.SetCommand;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage;
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+import org.eclipse.jface.action.IAction;
+
+/**
+ * This action allows to set the field Needs Title in the Selected Compartments to true
+ *
+ * This action was created for the bug 343092.
+ *
+ */
+public class SetCompartmentNeedsTitleToTrueAction extends Action {
+
+
+ @Override
+ public void run(IAction action) {
+
+ CompoundCommand command = new CompoundCommand();
+ List<EObject> selection = getSelectedEObject();
+ if (!selection.isEmpty()) {
+ EditingDomain domain = AdapterFactoryEditingDomain.getEditingDomainFor(selection.get(0));
+ Assert.isNotNull(domain);
+ Iterator<EObject> iter = selection.iterator();
+ while (iter.hasNext()) {
+ Object current = iter.next();
+ if (current instanceof GenCompartment) {
+ GenCompartment compartment = (GenCompartment) current;
+ // we set that the compartment needs to have a Title
+ Command cmd = SetCommand.create(domain, compartment, GMFGenPackage.eINSTANCE.getGenCompartment_NeedsTitle(), true);
+ if (cmd.canExecute()) {
+ command.append(cmd);
+ }
+ }
+ }
+
+ if (command.canExecute()) {
+ domain.getCommandStack().execute(command);
+ }
+ }
+ }
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/SetVisualIDWithUnusedValue.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/SetVisualIDWithUnusedValue.java
new file mode 100644
index 00000000000..35d19c78d6e
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/SetVisualIDWithUnusedValue.java
@@ -0,0 +1,123 @@
+/*******************************************************************************
+ * Copyright (c) 2009 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.ui.IViewPart;
+
+/**
+ * Implementation class for SetVisualIDWithUnusedValue action
+ */
+public class SetVisualIDWithUnusedValue extends Action {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
+ */
+ public void init(IViewPart view) {
+ // NO OP
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public void run(IAction action) {
+
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+
+ // Action should not be available on objects that are not GenCommonBase
+ if (eObject instanceof GenCommonBase) {
+ GenCommonBase genCommonBase = (GenCommonBase) eObject;
+ int visualID = getNewVisualID(genCommonBase.eResource(), genCommonBase.getClass());
+
+ genCommonBase.setVisualID(visualID);
+ }
+
+ }
+ }
+
+ /**
+ * This method returns an unused VisualID The method first parse all the VisualID of a particular kind of node (clazz) to find the highest. The
+ * new VisualID is the highest + 1 (also tested against
+ * the case another kind of node uses same id)
+ *
+ * @param gmfgen
+ * the gmfgen model
+ * @param clazz
+ * kind of GenCommonBase node tested
+ * @return an unused VisualID (following the highest VisualID used by same kind of node)
+ */
+ public static int getNewVisualID(Resource gmfgen, Class<?> clazz) {
+ int visualID = -1;
+
+ // Find the highest VisualID used by the chosen kind of node (given by clazz)
+ int lastUsed = 0;
+ Iterator<EObject> it = gmfgen.getAllContents();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (clazz.isInstance(eObject)) {
+ GenCommonBase genCommonBase = (GenCommonBase) eObject;
+ if (lastUsed < genCommonBase.getVisualID()) {
+ lastUsed = genCommonBase.getVisualID();
+ }
+ }
+ }
+
+ // Check if another kind of node does not already use visualID
+ // increment result in such a case
+ visualID = lastUsed + 1;
+ while (isUsedVisualID(gmfgen, visualID)) {
+ visualID++;
+ }
+ return visualID;
+ }
+
+ /**
+ * Tests if the VisualID parameter is already used in the resource
+ *
+ * @param gmfgen
+ * the gmfgen model
+ * @param visualID
+ * the id to check
+ * @return true if visualID is already used, else returns false
+ */
+ public static boolean isUsedVisualID(Resource gmfgen, int visualID) {
+
+ boolean used = false;
+
+ // Iterate over the gmfgen model
+ Iterator<EObject> it = gmfgen.getAllContents();
+ while (it.hasNext() && !used) {
+ EObject eObject = it.next();
+
+ // Most Gen node inherits from GenCommonBase (owns VisualID)
+ if (eObject instanceof GenCommonBase) {
+ GenCommonBase genCommonBase = (GenCommonBase) eObject;
+ if (visualID == genCommonBase.getVisualID()) {
+ used = true;
+ }
+ }
+ }
+
+ return used;
+ }
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/TestCodeSetGeneration.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/TestCodeSetGeneration.java
new file mode 100644
index 00000000000..2776e4ab8c5
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/TestCodeSetGeneration.java
@@ -0,0 +1,204 @@
+/*******************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.papyrusgmfgenextension.popupaction;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenChildLabelNode;
+import org.eclipse.gmf.codegen.gmfgen.GenChildNode;
+import org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
+import org.eclipse.gmf.codegen.gmfgen.TypeLinkModelFacet;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IViewPart;
+
+/**
+ * Display the lis of nodes
+ */
+public class TestCodeSetGeneration extends Action {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
+ */
+ public void init(IViewPart view) {
+ // NO OP
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public void run(IAction action) {
+
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+
+ // Action should not be available on objects that are not GenCommonBase
+ if (eObject instanceof GenCommonBase) {
+ GenCommonBase genCommonBase = (GenCommonBase) eObject;
+ StringBuffer out = getTopNodes(genCommonBase.eResource());
+ Shell shell = new Shell(Display.getCurrent());
+
+ shell.setText("report");
+ shell.setLayout(new FillLayout());
+ Text text1 = new Text(shell, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
+ text1.setText(out.toString());
+ shell.pack();
+ shell.open();
+
+ }
+
+ }
+ }
+
+ public StringBuffer getTopNodes(Resource gmfgen) {
+ StringBuffer out = new StringBuffer();
+ // Find the highest VisualID used by the chosen kind of node (given by clazz)
+ Iterator<EObject> it = gmfgen.getAllContents();
+ out = out.append("\n*************************************************\nTopNode\n******************************************************\n");
+ // topNode
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenTopLevelNode) {
+ GenTopLevelNode genTopLevelNode = (GenTopLevelNode) eObject;
+ if (genTopLevelNode.getModelFacet() != null) {
+ String name = genTopLevelNode.getModelFacet().getMetaClass().getEcoreClass().getName();
+ String visalId = "" + genTopLevelNode.getVisualID();
+ out = out.append(
+ "/**\n" +
+ "* Test to manage " + name + ".\n" +
+ "*/\n" +
+ "@Test\n" +
+ "public void testTo" + name + "() {\n" +
+ " testToManageNode(UMLElementTypes." + name + "_" + visalId + ", UMLPackage.eINSTANCE.get" + name + "(), UMLElementTypes." + name + "_" + visalId + ", false);\n" +
+ "}\n");
+ }
+ }
+ }
+
+ out = out.append("\n************************************************************************************************************************\n"
+ + "ChildNode\n"
+ + "************************************************************************************************************************\n");
+ it = gmfgen.getAllContents();
+ // topNode
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenChildNode && !(eObject instanceof GenChildLabelNode) && !(eObject instanceof GenChildSideAffixedNode)) {
+ GenChildNode genTopLevelNode = (GenChildNode) eObject;
+ if (genTopLevelNode.getModelFacet() != null) {
+ String name = genTopLevelNode.getModelFacet().getMetaClass().getEcoreClass().getName();
+ String visalId = "" + genTopLevelNode.getVisualID();
+ out = out.append(
+ "/**\n" +
+ "* Test to manage " + name + ".\n" +
+ "*/\n" +
+ "@Test\n" +
+ "public void testTo" + name + "() {\n" +
+ " testToManageNode(UMLElementTypes." + name + "_" + visalId + ", UMLPackage.eINSTANCE.get" + name + "(), container, true);\n" +
+
+ "}\n");
+ }
+ }
+ }
+
+ out = out.append("\n********************************************************************************************************************"
+ + "*\nChildLabelNode\n"
+ + "******************************************************************************************************************************\n");
+ it = gmfgen.getAllContents();
+ // topNode
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenChildLabelNode) {
+ GenChildLabelNode genTopLevelNode = (GenChildLabelNode) eObject;
+ if (genTopLevelNode.getModelFacet() != null) {
+ String name = genTopLevelNode.getModelFacet().getMetaClass().getEcoreClass().getName();
+ String visalId = "" + genTopLevelNode.getVisualID();
+ out = out.append(
+ "/**\n" +
+ "* Test to manage " + name + ".\n" +
+ "*/\n" +
+ "@Test\n" +
+ "public void testTo" + name + "() {\n" +
+ "testToManageTopNodeWithMask(UMLElementTypes.Container,UMLElementTypes." + name + "_" + visalId + ", Compartment.VISUAL_ID,null);\n" +
+ "}\n");
+ }
+ }
+ }
+
+ out = out.append("\n**************************************************************************************************************\n"
+ + "AffixedNode\n"
+ + "*************************************************************************************************************************\n");
+ it = gmfgen.getAllContents();
+ // topNode
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenChildSideAffixedNode) {
+ GenChildSideAffixedNode genTopLevelNode = (GenChildSideAffixedNode) eObject;
+ if (genTopLevelNode.getModelFacet() != null) {
+ String name = genTopLevelNode.getModelFacet().getMetaClass().getEcoreClass().getName();
+ String visalId = "" + genTopLevelNode.getVisualID();
+ out = out.append(
+ "/**\n" +
+ "* Test to manage " + name + ".\n" +
+ "*/\n" +
+ "@Test\n" +
+ "public void testTo" + name + "() {\n" +
+ "setTestAffixedNode(true);\n" +
+ " testToManageNode(UMLElementTypes." + name + "_" + visalId + ", UMLPackage.eINSTANCE.get" + name + "(), container, true);\n" +
+ "setTestAffixedNode(false);\n" +
+ "}\n");
+
+ }
+ }
+ }
+ out = out.append("\n************************************************************************************************************\n"
+ + "Link\n"
+ + "*****************************************************************************************************************************\n");
+ it = gmfgen.getAllContents();
+ // topNode
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof GenLink) {
+ GenLink genTopLevelNode = (GenLink) eObject;
+ if (genTopLevelNode.getModelFacet() != null) {
+ if (genTopLevelNode.getModelFacet() instanceof TypeLinkModelFacet) {
+ String name = ((TypeLinkModelFacet) genTopLevelNode.getModelFacet()).getMetaClass().getEcoreClass().getName();
+ String visalId = "" + genTopLevelNode.getVisualID();
+ out = out.append(
+ "/**\n" +
+ "* Test to manage component.\n" +
+ "*/\n" +
+ "@Test\n" +
+ "public void testTo" + name + "() {\n" +
+ "testToManageLink(UMLElementTypes.source, UMLElementTypes.target, UMLElementTypes." + name + "_" + visalId + ", container, true);\n" +
+ "}\n");
+ }
+ }
+ }
+ }
+ return out;
+ }
+
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/UpdateElementTypeToMatchGenericType.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/UpdateElementTypeToMatchGenericType.java
new file mode 100644
index 00000000000..d9e170257dd
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/UpdateElementTypeToMatchGenericType.java
@@ -0,0 +1,256 @@
+/*******************************************************************************
+ * Copyright (c) 2009 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are property of the CEA, their use is subject to specific agreement
+ * with the CEA.
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.papyrusgmfgenextension.popupaction;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.gmf.codegen.gmfgen.ElementType;
+import org.eclipse.gmf.codegen.gmfgen.GMFGenFactory;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
+import org.eclipse.gmf.codegen.gmfgen.MetamodelType;
+import org.eclipse.gmf.codegen.gmfgen.SpecializationType;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IViewPart;
+
+/**
+ * Implementation class for AddSemanticElementTypeInGenericTopNode action
+ */
+public class UpdateElementTypeToMatchGenericType extends Action {
+
+ private static final String GENERIC_UML_GMFGEN = "GenericUML.gmfgen";
+
+ /** prefix for Metamodel type identifier */
+ private static final String ORG_ECLIPSE_PAPYRUS_UML = "org.eclipse.papyrus.uml.";
+
+ public static final String GEN_CLASS_RT_CLASS = "Node"; //$NON-NLS-1$
+
+ public static final String GEN_CLASS_FACET_META_FEATURE = "NamedElement"; //$NON-NLS-1$
+
+ public static final String GEN_FEATURE_FACET_META_FEATURE = "name"; //$NON-NLS-1$
+
+ public static final String URI_NOTATION_GENMODEL = "org.eclipse.gmf.runtime.notation/model/notation.genmodel"; //$NON-NLS-1$
+
+ public static final String URI_UML_GENMODEL = "org.eclipse.uml2.uml/model/UML.genmodel"; //$NON-NLS-1$
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
+ */
+ public void init(IViewPart view) {
+ // NO OP
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ */
+ @Override
+ public void run(IAction action) {
+ // Parse selected GenLink(s) and add the desired CustomBehavior
+ Iterator<EObject> it = getSelectedEObject().iterator();
+ while (it.hasNext()) {
+ EObject eObject = it.next();
+ if (eObject instanceof SpecializationType) {
+ SpecializationType specializationType = (SpecializationType) eObject;
+ Resource genericTypeResource = getGenericTypeResource(specializationType.eResource().getResourceSet());
+ if (genericTypeResource == null) {
+ MessageDialog.openError(Display.getCurrent().getActiveShell(), "Error", "no " + GENERIC_UML_GMFGEN + " resource has been found.");
+ return;
+ }
+ // retrieve associated metaclass
+ GenClass metaclass = specializationType.getMetamodelType().getMetaClass();
+ String id = specializationType.getUniqueIdentifier();
+ String displayName = specializationType.getDisplayName();
+ // check precondition before creating a duplicate
+ if (metaclass == null) {
+ MessageDialog.openError(Display.getCurrent().getActiveShell(), "Error", "metaclass is null");
+ } else {
+ // create the specialization type and update it
+ SpecializationType newType = GMFGenFactory.eINSTANCE.createSpecializationType();
+ newType.setUniqueIdentifier(id);
+ newType.setDefinedExternally(false);
+ newType.setDisplayName(displayName);
+
+ // find generic element type
+ EClass eClass = metaclass.getEcoreClass();
+
+ Iterator<EObject> genericTypes = genericTypeResource.getAllContents();
+ while (genericTypes.hasNext()) {
+ EObject object = genericTypes.next();
+ if (object instanceof MetamodelType) {
+ MetamodelType type = ((MetamodelType) object);
+ if (type.getMetaClass().getEcoreClass().equals(eClass)) {
+ newType.setMetamodelType(type);
+ }
+ }
+ }
+
+ // replace existing type
+ GenCommonBase commonBase = specializationType.getDiagramElement();
+ commonBase.setElementType(newType);
+ MessageDialog.openInformation(Display.getCurrent().getActiveShell(), "Generation", "Specialization type was created and has replaced the specialization type\n" + newType);
+ }
+ } else if (eObject instanceof MetamodelType) {
+ MetamodelType metamodelType = (MetamodelType) eObject;
+ Resource genericTypeResource = getGenericTypeResource(metamodelType.eResource().getResourceSet());
+ if (genericTypeResource == null) {
+ MessageDialog.openError(Display.getCurrent().getActiveShell(), "Error", "no " + GENERIC_UML_GMFGEN + " resource has been found.");
+ return;
+ }
+ // retrieve associated metaclass
+ GenClass metaclass = metamodelType.getMetaClass();
+ String id = metamodelType.getUniqueIdentifier();
+ String displayName = metamodelType.getDisplayName();
+ // check precondition before creating a duplicate
+ if (metaclass == null) {
+ MessageDialog.openError(Display.getCurrent().getActiveShell(), "Error", "metaclass is null");
+ } else {
+ // create the specialization type and update it
+ SpecializationType newType = GMFGenFactory.eINSTANCE.createSpecializationType();
+ newType.setUniqueIdentifier(id);
+ newType.setDefinedExternally(false);
+ newType.setDisplayName(displayName);
+
+ // find generic element type
+ EClass eClass = metaclass.getEcoreClass();
+
+ Iterator<EObject> genericTypes = genericTypeResource.getAllContents();
+ while (genericTypes.hasNext()) {
+ EObject object = genericTypes.next();
+ if (object instanceof MetamodelType) {
+ MetamodelType type = ((MetamodelType) object);
+ if (type.getMetaClass().getEcoreClass().equals(eClass)) {
+ newType.setMetamodelType(type);
+ }
+ }
+ }
+
+ // replace existing type
+ GenCommonBase commonBase = metamodelType.getDiagramElement();
+ commonBase.setElementType(newType);
+ MessageDialog.openInformation(Display.getCurrent().getActiveShell(), "Generation", "Specialization type was created and has replaced the metamodel type\n" + newType);
+ }
+ }
+ }
+ }
+
+ /**
+ * @param resourceSet
+ * @return
+ */
+ protected Resource getGenericTypeResource(ResourceSet resourceSet) {
+ for (Resource resource : resourceSet.getResources()) {
+ URI resourceURI = resource.getURI();
+ String resourceName = resourceURI.segment(resourceURI.segmentCount() - 1);
+ if (GENERIC_UML_GMFGEN.equals(resourceName)) {
+ return resource;
+ }
+ }
+ return null;
+ }
+
+ protected MetamodelType getGenericType(ResourceSet resourceSet, EClass eClass) {
+ return null;
+ }
+
+ /**
+ * Returns all the UML {@link GenClass} that are related to UML constructs which are not abstract
+ *
+ * @param resourceSet
+ * @return
+ */
+ protected List<GenClass> getAllUMLConcreteClasses(ResourceSet resourceSet) {
+ Resource umlResource = resourceSet.getResource(URI.createPlatformPluginURI(URI_UML_GENMODEL, false), true);
+ List<GenClass> classes = new ArrayList<GenClass>();
+ Iterator<EObject> it = umlResource.getAllContents();
+ while (it.hasNext()) {
+ EObject next = it.next();
+ if (next instanceof GenClass) {
+ GenClass genClass = (GenClass) next;
+ EClass umlEClass = genClass.getEcoreClass();
+ if (umlEClass != null && !umlEClass.isAbstract() && !umlEClass.isInterface()) {
+ classes.add(genClass);
+ }
+ }
+ }
+ return classes;
+ }
+
+ /**
+ * Returns the top level node that corresponds to this metaclass
+ *
+ * @param metaclassName
+ * name of the metaclass for which element type has to be defined
+ * @return the top level node found or <code>null</code>;
+ */
+ protected GenTopLevelNode findTopLevelNode(GenDiagram genDiagram, GenClass genClass) {
+ for (GenTopLevelNode topNode : genDiagram.getTopLevelNodes()) {
+ TypeModelFacet facet = topNode.getModelFacet();
+ if (facet != null) {
+ if (genClass.equals(facet.getMetaClass())) {
+ return topNode;
+ }
+ ;
+ }
+ }
+ return null;
+ }
+
+ protected void updateToplevelNode(GenTopLevelNode topLevelNode, ResourceSet resourceSet, GenClass genClass) {
+ String metaclassName = genClass.getEcoreClass().getName();
+ topLevelNode.setDiagramRunTimeClass(getNodeViewClass(resourceSet));
+ TypeModelFacet typeModelFacet = topLevelNode.getModelFacet();
+ if (typeModelFacet == null) {
+ typeModelFacet = GMFGenFactory.eINSTANCE.createTypeModelFacet();
+ topLevelNode.setModelFacet(typeModelFacet);
+ }
+ typeModelFacet.setMetaClass(genClass);
+ ElementType type = topLevelNode.getElementType();
+ if (type == null) {
+ type = GMFGenFactory.eINSTANCE.createMetamodelType();
+ topLevelNode.setElementType(type);
+ }
+ type.setDefinedExternally(true);
+ type.setDisplayName(metaclassName + "_Semantic");
+ type.setUniqueIdentifier(ORG_ECLIPSE_PAPYRUS_UML + metaclassName);
+ }
+
+ public GenTopLevelNode createNewTopNode(GenDiagram genDiagram, String metaclassName) {
+ GenTopLevelNode topLevelNode = GMFGenFactory.eINSTANCE.createGenTopLevelNode();
+ return topLevelNode;
+ }
+
+ protected GenClass getNodeViewClass(ResourceSet resourceSet) {
+ URI uri_notation = URI.createPlatformPluginURI(URI_NOTATION_GENMODEL, false);
+ Resource notation = resourceSet.getResource(uri_notation, true);
+ return findGenClass(notation, GEN_CLASS_RT_CLASS);
+ }
+
+ protected GenClass getMetaclassGenClass(ResourceSet resourceSet, String metaclassName) {
+ URI uri_uml = URI.createPlatformPluginURI(URI_UML_GENMODEL, false);
+ Resource umlResource = resourceSet.getResource(uri_uml, true);
+ return findGenClass(umlResource, metaclassName);
+ }
+}
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/messages.properties b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/messages.properties
new file mode 100644
index 00000000000..500f4e5ba6e
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/popupaction/messages.properties
@@ -0,0 +1,5 @@
+rulesAboutNamedElement=set in the gmf extension that this edit part must inherits from org.eclipse.papyrus.diagram.common.editparts.NamedElementEditPart
+message_Intro=Do not forget :\n
+rulesAboutShapeEditPart=- set the abstract editpart in the gmf extension: org.eclipse.papyrus.diagram.common.editparts.AbstractShapeEditPart\n
+ruleAboutChangeEditPolicy=- Fill the editpolicy CHANGE_SHAPE_POLICY that have to inherit from org.eclipse.papyrus.diagram.common.editpolicies.ChangeStereotypedShapeEditPolicy
+generalInformation=Generation Information
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionAdapterFactory.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionAdapterFactory.java
new file mode 100644
index 00000000000..c19da89c376
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionAdapterFactory.java
@@ -0,0 +1,580 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.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.papyrusgmfgenextension.*;
+
+/**
+ * <!-- 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.papyrusgmfgenextension.PapyrusgmfgenextensionPackage
+ * @generated
+ */
+public class PapyrusgmfgenextensionAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static PapyrusgmfgenextensionPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusgmfgenextensionAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = PapyrusgmfgenextensionPackage.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 PapyrusgmfgenextensionSwitch<Adapter> modelSwitch =
+ new PapyrusgmfgenextensionSwitch<Adapter>() {
+ @Override
+ public Adapter caseExtendedGenView(ExtendedGenView object) {
+ return createExtendedGenViewAdapter();
+ }
+ @Override
+ public Adapter caseCommentedElement(CommentedElement object) {
+ return createCommentedElementAdapter();
+ }
+ @Override
+ public Adapter casePropertyRefreshHook(PropertyRefreshHook object) {
+ return createPropertyRefreshHookAdapter();
+ }
+ @Override
+ public Adapter caseExternalHook(ExternalHook object) {
+ return createExternalHookAdapter();
+ }
+ @Override
+ public Adapter caseSpecificLocator(SpecificLocator object) {
+ return createSpecificLocatorAdapter();
+ }
+ @Override
+ public Adapter casePapyrusExtensionRootNode(PapyrusExtensionRootNode object) {
+ return createPapyrusExtensionRootNodeAdapter();
+ }
+ @Override
+ public Adapter caseAlternateCanvas(AlternateCanvas object) {
+ return createAlternateCanvasAdapter();
+ }
+ @Override
+ public Adapter caseAlternateGenTopLevelNode(AlternateGenTopLevelNode object) {
+ return createAlternateGenTopLevelNodeAdapter();
+ }
+ @Override
+ public Adapter caseAlternateGenLink(AlternateGenLink object) {
+ return createAlternateGenLinkAdapter();
+ }
+ @Override
+ public Adapter caseMutatingCanvas(MutatingCanvas object) {
+ return createMutatingCanvasAdapter();
+ }
+ @Override
+ public Adapter caseOwnedEditpart(OwnedEditpart object) {
+ return createOwnedEditpartAdapter();
+ }
+ @Override
+ public Adapter caseSpecificDiagramUpdater(SpecificDiagramUpdater object) {
+ return createSpecificDiagramUpdaterAdapter();
+ }
+ @Override
+ public Adapter caseGenNodeConstraint(GenNodeConstraint object) {
+ return createGenNodeConstraintAdapter();
+ }
+ @Override
+ public Adapter caseSpecificLocatorExternalLabel(SpecificLocatorExternalLabel object) {
+ return createSpecificLocatorExternalLabelAdapter();
+ }
+ @Override
+ public Adapter caseAdditionalEditPartCandies(AdditionalEditPartCandies object) {
+ return createAdditionalEditPartCandiesAdapter();
+ }
+ @Override
+ public Adapter caseEditPartUsingDeleteService(EditPartUsingDeleteService object) {
+ return createEditPartUsingDeleteServiceAdapter();
+ }
+ @Override
+ public Adapter caseEditPartUsingReorientService(EditPartUsingReorientService object) {
+ return createEditPartUsingReorientServiceAdapter();
+ }
+ @Override
+ public Adapter caseLabelVisibilityPreference(LabelVisibilityPreference object) {
+ return createLabelVisibilityPreferenceAdapter();
+ }
+ @Override
+ public Adapter caseCompartmentVisibilityPreference(CompartmentVisibilityPreference object) {
+ return createCompartmentVisibilityPreferenceAdapter();
+ }
+ @Override
+ public Adapter caseCompartmentTitleVisibilityPreference(CompartmentTitleVisibilityPreference object) {
+ return createCompartmentTitleVisibilityPreferenceAdapter();
+ }
+ @Override
+ public Adapter caseConstrainedByReferenceCompartmentItemSemanticEditPolicy(ConstrainedByReferenceCompartmentItemSemanticEditPolicy object) {
+ return createConstrainedByReferenceCompartmentItemSemanticEditPolicyAdapter();
+ }
+ @Override
+ public Adapter caseGenerateUsingElementTypeCreationCommand(GenerateUsingElementTypeCreationCommand object) {
+ return createGenerateUsingElementTypeCreationCommandAdapter();
+ }
+ @Override
+ public Adapter caseCustomDiagramUpdaterSingleton(CustomDiagramUpdaterSingleton object) {
+ return createCustomDiagramUpdaterSingletonAdapter();
+ }
+ @Override
+ public Adapter caseSpecificNodePlate(SpecificNodePlate object) {
+ return createSpecificNodePlateAdapter();
+ }
+ @Override
+ public Adapter caseGenVisualTypeProvider(GenVisualTypeProvider object) {
+ return createGenVisualTypeProviderAdapter();
+ }
+ @Override
+ public Adapter caseVisualIDOverride(VisualIDOverride object) {
+ return createVisualIDOverrideAdapter();
+ }
+ @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.papyrusgmfgenextension.ExtendedGenView <em>Extended Gen View</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.papyrusgmfgenextension.ExtendedGenView
+ * @generated
+ */
+ public Adapter createExtendedGenViewAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.CommentedElement <em>Commented Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.CommentedElement
+ * @generated
+ */
+ public Adapter createCommentedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook <em>Property Refresh Hook</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.papyrusgmfgenextension.PropertyRefreshHook
+ * @generated
+ */
+ public Adapter createPropertyRefreshHookAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.ExternalHook <em>External Hook</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.papyrusgmfgenextension.ExternalHook
+ * @generated
+ */
+ public Adapter createExternalHookAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocator <em>Specific Locator</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.papyrusgmfgenextension.SpecificLocator
+ * @generated
+ */
+ public Adapter createSpecificLocatorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.PapyrusExtensionRootNode <em>Papyrus Extension Root Node</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.PapyrusExtensionRootNode
+ * @generated
+ */
+ public Adapter createPapyrusExtensionRootNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateCanvas <em>Alternate Canvas</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.papyrusgmfgenextension.AlternateCanvas
+ * @generated
+ */
+ public Adapter createAlternateCanvasAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode <em>Alternate Gen Top Level Node</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenTopLevelNode
+ * @generated
+ */
+ public Adapter createAlternateGenTopLevelNodeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.AlternateGenLink <em>Alternate Gen Link</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.papyrusgmfgenextension.AlternateGenLink
+ * @generated
+ */
+ public Adapter createAlternateGenLinkAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.MutatingCanvas <em>Mutating Canvas</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.papyrusgmfgenextension.MutatingCanvas
+ * @generated
+ */
+ public Adapter createMutatingCanvasAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.OwnedEditpart <em>Owned Editpart</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.papyrusgmfgenextension.OwnedEditpart
+ * @generated
+ */
+ public Adapter createOwnedEditpartAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificDiagramUpdater <em>Specific Diagram Updater</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.papyrusgmfgenextension.SpecificDiagramUpdater
+ * @generated
+ */
+ public Adapter createSpecificDiagramUpdaterAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.GenNodeConstraint <em>Gen Node Constraint</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.papyrusgmfgenextension.GenNodeConstraint
+ * @generated
+ */
+ public Adapter createGenNodeConstraintAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocatorExternalLabel <em>Specific Locator External Label</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.papyrusgmfgenextension.SpecificLocatorExternalLabel
+ * @generated
+ */
+ public Adapter createSpecificLocatorExternalLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.AdditionalEditPartCandies <em>Additional Edit Part Candies</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.papyrusgmfgenextension.AdditionalEditPartCandies
+ * @generated
+ */
+ public Adapter createAdditionalEditPartCandiesAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService <em>Edit Part Using Delete Service</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.papyrusgmfgenextension.EditPartUsingDeleteService
+ * @generated
+ */
+ public Adapter createEditPartUsingDeleteServiceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService <em>Edit Part Using Reorient Service</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.papyrusgmfgenextension.EditPartUsingReorientService
+ * @generated
+ */
+ public Adapter createEditPartUsingReorientServiceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference <em>Label Visibility Preference</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.papyrusgmfgenextension.LabelVisibilityPreference
+ * @generated
+ */
+ public Adapter createLabelVisibilityPreferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentVisibilityPreference <em>Compartment Visibility Preference</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.papyrusgmfgenextension.CompartmentVisibilityPreference
+ * @generated
+ */
+ public Adapter createCompartmentVisibilityPreferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.CompartmentTitleVisibilityPreference <em>Compartment Title Visibility Preference</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.papyrusgmfgenextension.CompartmentTitleVisibilityPreference
+ * @generated
+ */
+ public Adapter createCompartmentTitleVisibilityPreferenceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.ConstrainedByReferenceCompartmentItemSemanticEditPolicy <em>Constrained By Reference Compartment Item Semantic Edit Policy</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.papyrusgmfgenextension.ConstrainedByReferenceCompartmentItemSemanticEditPolicy
+ * @generated
+ */
+ public Adapter createConstrainedByReferenceCompartmentItemSemanticEditPolicyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.GenerateUsingElementTypeCreationCommand <em>Generate Using Element Type Creation Command</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.papyrusgmfgenextension.GenerateUsingElementTypeCreationCommand
+ * @generated
+ */
+ public Adapter createGenerateUsingElementTypeCreationCommandAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.CustomDiagramUpdaterSingleton <em>Custom Diagram Updater Singleton</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.papyrusgmfgenextension.CustomDiagramUpdaterSingleton
+ * @generated
+ */
+ public Adapter createCustomDiagramUpdaterSingletonAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.SpecificNodePlate <em>Specific Node Plate</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.papyrusgmfgenextension.SpecificNodePlate
+ * @generated
+ */
+ public Adapter createSpecificNodePlateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.GenVisualTypeProvider <em>Gen Visual Type Provider</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.papyrusgmfgenextension.GenVisualTypeProvider
+ * @generated
+ */
+ public Adapter createGenVisualTypeProviderAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.papyrusgmfgenextension.VisualIDOverride <em>Visual ID Override</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.papyrusgmfgenextension.VisualIDOverride
+ * @generated
+ */
+ public Adapter createVisualIDOverrideAdapter() {
+ 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;
+ }
+
+} //PapyrusgmfgenextensionAdapterFactory
diff --git a/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionSwitch.java b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionSwitch.java
new file mode 100644
index 00000000000..a3423962801
--- /dev/null
+++ b/plugins/toolsmiths/org.eclipse.papyrus.gmfgenextension/src/org/eclipse/papyrus/papyrusgmfgenextension/util/PapyrusgmfgenextensionSwitch.java
@@ -0,0 +1,674 @@
+/**
+ * Copyright (c) 2015 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.papyrusgmfgenextension.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.papyrusgmfgenextension.*;
+
+/**
+ * <!-- 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.papyrusgmfgenextension.PapyrusgmfgenextensionPackage
+ * @generated
+ */
+public class PapyrusgmfgenextensionSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static PapyrusgmfgenextensionPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PapyrusgmfgenextensionSwitch() {
+ if (modelPackage == null) {
+ modelPackage = PapyrusgmfgenextensionPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case PapyrusgmfgenextensionPackage.EXTENDED_GEN_VIEW: {
+ ExtendedGenView extendedGenView = (ExtendedGenView)theEObject;
+ T result = caseExtendedGenView(extendedGenView);
+ if (result == null) result = caseCommentedElement(extendedGenView);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.COMMENTED_ELEMENT: {
+ CommentedElement commentedElement = (CommentedElement)theEObject;
+ T result = caseCommentedElement(commentedElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.PROPERTY_REFRESH_HOOK: {
+ PropertyRefreshHook propertyRefreshHook = (PropertyRefreshHook)theEObject;
+ T result = casePropertyRefreshHook(propertyRefreshHook);
+ if (result == null) result = caseExternalHook(propertyRefreshHook);
+ if (result == null) result = caseCommentedElement(propertyRefreshHook);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.EXTERNAL_HOOK: {
+ ExternalHook externalHook = (ExternalHook)theEObject;
+ T result = caseExternalHook(externalHook);
+ if (result == null) result = caseCommentedElement(externalHook);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.SPECIFIC_LOCATOR: {
+ SpecificLocator specificLocator = (SpecificLocator)theEObject;
+ T result = caseSpecificLocator(specificLocator);
+ if (result == null) result = caseExternalHook(specificLocator);
+ if (result == null) result = caseCommentedElement(specificLocator);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.PAPYRUS_EXTENSION_ROOT_NODE: {
+ PapyrusExtensionRootNode papyrusExtensionRootNode = (PapyrusExtensionRootNode)theEObject;
+ T result = casePapyrusExtensionRootNode(papyrusExtensionRootNode);
+ if (result == null) result = caseCommentedElement(papyrusExtensionRootNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.ALTERNATE_CANVAS: {
+ AlternateCanvas alternateCanvas = (AlternateCanvas)theEObject;
+ T result = caseAlternateCanvas(alternateCanvas);
+ if (result == null) result = caseCommentedElement(alternateCanvas);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_TOP_LEVEL_NODE: {
+ AlternateGenTopLevelNode alternateGenTopLevelNode = (AlternateGenTopLevelNode)theEObject;
+ T result = caseAlternateGenTopLevelNode(alternateGenTopLevelNode);
+ if (result == null) result = caseCommentedElement(alternateGenTopLevelNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.ALTERNATE_GEN_LINK: {
+ AlternateGenLink alternateGenLink = (AlternateGenLink)theEObject;
+ T result = caseAlternateGenLink(alternateGenLink);
+ if (result == null) result = caseCommentedElement(alternateGenLink);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.MUTATING_CANVAS: {
+ MutatingCanvas mutatingCanvas = (MutatingCanvas)theEObject;
+ T result = caseMutatingCanvas(mutatingCanvas);
+ if (result == null) result = caseCommentedElement(mutatingCanvas);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.OWNED_EDITPART: {
+ OwnedEditpart ownedEditpart = (OwnedEditpart)theEObject;
+ T result = caseOwnedEditpart(ownedEditpart);
+ if (result == null) result = caseExternalHook(ownedEditpart);
+ if (result == null) result = caseCommentedElement(ownedEditpart);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.SPECIFIC_DIAGRAM_UPDATER: {
+ SpecificDiagramUpdater specificDiagramUpdater = (SpecificDiagramUpdater)theEObject;
+ T result = caseSpecificDiagramUpdater(specificDiagramUpdater);
+ if (result == null) result = caseExternalHook(specificDiagramUpdater);
+ if (result == null) result = caseCommentedElement(specificDiagramUpdater);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.GEN_NODE_CONSTRAINT: {
+ GenNodeConstraint genNodeConstraint = (GenNodeConstraint)theEObject;
+ T result = caseGenNodeConstraint(genNodeConstraint);
+ if (result == null) result = caseCommentedElement(genNodeConstraint);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.SPECIFIC_LOCATOR_EXTERNAL_LABEL: {
+ SpecificLocatorExternalLabel specificLocatorExternalLabel = (SpecificLocatorExternalLabel)theEObject;
+ T result = caseSpecificLocatorExternalLabel(specificLocatorExternalLabel);
+ if (result == null) result = caseExternalHook(specificLocatorExternalLabel);
+ if (result == null) result = caseCommentedElement(specificLocatorExternalLabel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.ADDITIONAL_EDIT_PART_CANDIES: {
+ AdditionalEditPartCandies additionalEditPartCandies = (AdditionalEditPartCandies)theEObject;
+ T result = caseAdditionalEditPartCandies(additionalEditPartCandies);
+ if (result == null) result = caseCommentedElement(additionalEditPartCandies);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_DELETE_SERVICE: {
+ EditPartUsingDeleteService editPartUsingDeleteService = (EditPartUsingDeleteService)theEObject;
+ T result = caseEditPartUsingDeleteService(editPartUsingDeleteService);
+ if (result == null) result = caseCommentedElement(editPartUsingDeleteService);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.EDIT_PART_USING_REORIENT_SERVICE: {
+ EditPartUsingReorientService editPartUsingReorientService = (EditPartUsingReorientService)theEObject;
+ T result = caseEditPartUsingReorientService(editPartUsingReorientService);
+ if (result == null) result = caseCommentedElement(editPartUsingReorientService);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.LABEL_VISIBILITY_PREFERENCE: {
+ LabelVisibilityPreference labelVisibilityPreference = (LabelVisibilityPreference)theEObject;
+ T result = caseLabelVisibilityPreference(labelVisibilityPreference);
+ if (result == null) result = caseCommentedElement(labelVisibilityPreference);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_VISIBILITY_PREFERENCE: {
+ CompartmentVisibilityPreference compartmentVisibilityPreference = (CompartmentVisibilityPreference)theEObject;
+ T result = caseCompartmentVisibilityPreference(compartmentVisibilityPreference);
+ if (result == null) result = caseCommentedElement(compartmentVisibilityPreference);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.COMPARTMENT_TITLE_VISIBILITY_PREFERENCE: {
+ CompartmentTitleVisibilityPreference compartmentTitleVisibilityPreference = (CompartmentTitleVisibilityPreference)theEObject;
+ T result = caseCompartmentTitleVisibilityPreference(compartmentTitleVisibilityPreference);
+ if (result == null) result = caseCommentedElement(compartmentTitleVisibilityPreference);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.CONSTRAINED_BY_REFERENCE_COMPARTMENT_ITEM_SEMANTIC_EDIT_POLICY: {
+ ConstrainedByReferenceCompartmentItemSemanticEditPolicy constrainedByReferenceCompartmentItemSemanticEditPolicy = (ConstrainedByReferenceCompartmentItemSemanticEditPolicy)theEObject;
+ T result = caseConstrainedByReferenceCompartmentItemSemanticEditPolicy(constrainedByReferenceCompartmentItemSemanticEditPolicy);
+ if (result == null) result = caseCommentedElement(constrainedByReferenceCompartmentItemSemanticEditPolicy);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.GENERATE_USING_ELEMENT_TYPE_CREATION_COMMAND: {
+ GenerateUsingElementTypeCreationCommand generateUsingElementTypeCreationCommand = (GenerateUsingElementTypeCreationCommand)theEObject;
+ T result = caseGenerateUsingElementTypeCreationCommand(generateUsingElementTypeCreationCommand);
+ if (result == null) result = caseCommentedElement(generateUsingElementTypeCreationCommand);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.CUSTOM_DIAGRAM_UPDATER_SINGLETON: {
+ CustomDiagramUpdaterSingleton customDiagramUpdaterSingleton = (CustomDiagramUpdaterSingleton)theEObject;
+ T result = caseCustomDiagramUpdaterSingleton(customDiagramUpdaterSingleton);
+ if (result == null) result = caseCommentedElement(customDiagramUpdaterSingleton);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.SPECIFIC_NODE_PLATE: {
+ SpecificNodePlate specificNodePlate = (SpecificNodePlate)theEObject;
+ T result = caseSpecificNodePlate(specificNodePlate);
+ if (result == null) result = caseCommentedElement(specificNodePlate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.GEN_VISUAL_TYPE_PROVIDER: {
+ GenVisualTypeProvider genVisualTypeProvider = (GenVisualTypeProvider)theEObject;
+ T result = caseGenVisualTypeProvider(genVisualTypeProvider);
+ if (result == null) result = caseCommentedElement(genVisualTypeProvider);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PapyrusgmfgenextensionPackage.VISUAL_ID_OVERRIDE: {
+ VisualIDOverride visualIDOverride = (VisualIDOverride)theEObject;
+ T result = caseVisualIDOverride(visualIDOverride);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Extended Gen View</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>Extended Gen View</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExtendedGenView(ExtendedGenView object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Commented Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Commented Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCommentedElement(CommentedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Property Refresh Hook</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Property Refresh Hook</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePropertyRefreshHook(PropertyRefreshHook object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>External Hook</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>External Hook</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExternalHook(ExternalHook object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Specific Locator</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>Specific Locator</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSpecificLocator(SpecificLocator object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Papyrus Extension Root Node</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Papyrus Extension Root Node</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePapyrusExtensionRootNode(PapyrusExtensionRootNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Alternate Canvas</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>Alternate Canvas</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAlternateCanvas(AlternateCanvas object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Alternate Gen Top Level Node</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Alternate Gen Top Level Node</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAlternateGenTopLevelNode(AlternateGenTopLevelNode object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Alternate Gen Link</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>Alternate Gen Link</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAlternateGenLink(AlternateGenLink object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Mutating Canvas</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>Mutating Canvas</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMutatingCanvas(MutatingCanvas object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Owned Editpart</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>Owned Editpart</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOwnedEditpart(OwnedEditpart object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Specific Diagram Updater</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>Specific Diagram Updater</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSpecificDiagramUpdater(SpecificDiagramUpdater object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Gen Node Constraint</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 Node Constraint</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGenNodeConstraint(GenNodeConstraint object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Specific Locator External Label</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>Specific Locator External Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSpecificLocatorExternalLabel(SpecificLocatorExternalLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Additional Edit Part Candies</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>Additional Edit Part Candies</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAdditionalEditPartCandies(AdditionalEditPartCandies object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Edit Part Using Delete Service</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>Edit Part Using Delete Service</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEditPartUsingDeleteService(EditPartUsingDeleteService object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Edit Part Using Reorient Service</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>Edit Part Using Reorient Service</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEditPartUsingReorientService(EditPartUsingReorientService object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Label Visibility Preference</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>Label Visibility Preference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLabelVisibilityPreference(LabelVisibilityPreference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Compartment Visibility Preference</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>Compartment Visibility Preference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompartmentVisibilityPreference(CompartmentVisibilityPreference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Compartment Title Visibility Preference</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>Compartment Title Visibility Preference</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompartmentTitleVisibilityPreference(CompartmentTitleVisibilityPreference object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Constrained By Reference Compartment Item Semantic Edit Policy</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>Constrained By Reference Compartment Item Semantic Edit Policy</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConstrainedByReferenceCompartmentItemSemanticEditPolicy(ConstrainedByReferenceCompartmentItemSemanticEditPolicy object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Generate Using Element Type Creation Command</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>Generate Using Element Type Creation Command</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGenerateUsingElementTypeCreationCommand(GenerateUsingElementTypeCreationCommand object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Custom Diagram Updater Singleton</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Custom Diagram Updater Singleton</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCustomDiagramUpdaterSingleton(CustomDiagramUpdaterSingleton object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Specific Node Plate</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>Specific Node Plate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSpecificNodePlate(SpecificNodePlate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Gen Visual Type Provider</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 Visual Type Provider</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGenVisualTypeProvider(GenVisualTypeProvider object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Visual ID Override</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>Visual ID Override</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVisualIDOverride(VisualIDOverride object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //PapyrusgmfgenextensionSwitch

Back to the top