Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick tessier2014-02-10 12:43:29 +0000
committerPatrick tessier2014-02-10 12:43:29 +0000
commit74550693a485c6ff27748a6c5a9bfdae21b8bd5b (patch)
treec47f42dd4f68434598c3bf6b29c7ce3a6fdb5314 /plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel
parentbc56e957da4deded94425181f3288b98407c5764 (diff)
downloadorg.eclipse.papyrus-74550693a485c6ff27748a6c5a9bfdae21b8bd5b.tar.gz
org.eclipse.papyrus-74550693a485c6ff27748a6c5a9bfdae21b8bd5b.tar.xz
org.eclipse.papyrus-74550693a485c6ff27748a6c5a9bfdae21b8bd5b.zip
386118: [EMF Facet] Papyrus should progressively support EMF Facet 0.2
https://bugs.eclipse.org/bugs/show_bug.cgi?id=386118 import EMF-FACET
Diffstat (limited to 'plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel')
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.classpath7
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.project34
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.settings/.api_filters29
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.settings/org.eclipse.core.resources.prefs4
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.settings/org.eclipse.jdt.core.prefs76
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/META-INF/MANIFEST.MF23
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/OSGI-INF/l10n/bundle.properties12
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/about.html28
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/build.properties21
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/catalog-0.2.0.ecore9
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/catalog-0.2.0.genmodel13
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom-0.2.0.ecore45
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom-0.2.0.genmodel26
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom_main.ecorediag429
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom_primitive_types-0.2.0.ecore19
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom_primitive_types-0.2.0.genmodel23
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom_property_declaration.ecorediag131
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/query-0.3.0.ecore8
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/query-0.3.0.genmodel14
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/treeproxy-0.2.0.ecore54
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/treeproxy-0.2.0.genmodel30
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/plugin.properties14
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/plugin.xml41
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/custompt/IColor.java23
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/custompt/IImage.java22
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/CustomFactory.java87
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/CustomPackage.java793
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/Customization.java65
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/EClassCustomization.java34
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/ETypedElementCase.java95
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/ETypedElementSwitchQuery.java57
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/FacetCustomization.java67
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/CustomFactoryImpl.java150
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/CustomPackageImpl.java332
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/CustomizationImpl.java175
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/EClassCustomizationImpl.java53
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/ETypedElementCaseImpl.java249
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/ETypedElementSwitchQueryImpl.java163
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/FacetCustomizationImpl.java170
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/util/CustomAdapterFactory.java357
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/util/CustomSwitch.java367
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/CustomizationCatalog.java29
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/CustomizationPropertiesCatalog.java29
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/CustomizationcatalogFactory.java63
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/CustomizationcatalogPackage.java209
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/impl/CustomizationCatalogImpl.java216
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/impl/CustomizationPropertiesCatalogImpl.java216
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/impl/CustomizationcatalogFactoryImpl.java117
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/impl/CustomizationcatalogPackageImpl.java207
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/util/CustomizationcatalogAdapterFactory.java169
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/util/CustomizationcatalogSwitch.java177
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/Alignment.java246
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/CustomptFactory.java45
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/CustomptPackage.java214
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/Shadow.java246
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/impl/CustomptFactoryImpl.java215
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/impl/CustomptPackageImpl.java237
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/EAttributeTreeElement.java62
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/EObjectTreeElement.java111
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/EReferenceTreeElement.java62
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/EStructuralFeatureTreeElement.java81
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/TreeElement.java33
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/TreeproxyFactory.java78
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/TreeproxyPackage.java518
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/EAttributeTreeElementImpl.java165
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/EObjectTreeElementImpl.java308
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/EReferenceTreeElementImpl.java165
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/EStructuralFeatureTreeElementImpl.java246
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/TreeElementImpl.java60
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/TreeproxyFactoryImpl.java137
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/TreeproxyPackageImpl.java347
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/util/TreeproxyAdapterFactory.java201
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/util/TreeproxySwitch.java225
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/QueryFactory.java52
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/QueryPackage.java179
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/URIImageQuery.java62
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/impl/QueryFactoryImpl.java105
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/impl/QueryPackageImpl.java198
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/impl/URIImageQueryImpl.java174
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/util/QueryAdapterFactory.java150
-rw-r--r--plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/util/QuerySwitch.java153
81 files changed, 10856 insertions, 0 deletions
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.classpath b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.classpath
new file mode 100644
index 00000000000..45f024e850e
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.project b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.project
new file mode 100644
index 00000000000..bae55bb9cde
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.emf.facet.custom.metamodel</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.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.pde.api.tools.apiAnalysisNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.settings/.api_filters b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.settings/.api_filters
new file mode 100644
index 00000000000..22e7f1fd8e5
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.settings/.api_filters
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.emf.facet.custom.metamodel" version="2">
+ <resource path="src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/CustomPackage.java" type="org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage">
+ <filter comment="This an allowed (by modeling PMC) API break. cf. https://bugs.eclipse.org/bugs/show_bug.cgi?id=376576" id="403767336">
+ <message_arguments>
+ <message_argument value="org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage"/>
+ <message_argument value="ECLASS_CUSTOMIZATION__EXTENDED_FACETS"/>
+ </message_arguments>
+ </filter>
+ <filter comment="This an allowed (by modeling PMC) API break. cf. https://bugs.eclipse.org/bugs/show_bug.cgi?id=376576" id="403767336">
+ <message_arguments>
+ <message_argument value="org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage"/>
+ <message_argument value="FACET_CUSTOMIZATION__EXTENDED_FACETS"/>
+ </message_arguments>
+ </filter>
+ <filter comment="This an allowed (by modeling PMC) API break. cf. https://bugs.eclipse.org/bugs/show_bug.cgi?id=376576" id="405864542">
+ <message_arguments>
+ <message_argument value="org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage"/>
+ <message_argument value="ECLASS_CUSTOMIZATION__EXTENDED_FACET"/>
+ </message_arguments>
+ </filter>
+ <filter comment="This an allowed (by modeling PMC) API break. cf. https://bugs.eclipse.org/bugs/show_bug.cgi?id=376576" id="405864542">
+ <message_arguments>
+ <message_argument value="org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage"/>
+ <message_argument value="FACET_CUSTOMIZATION__EXTENDED_FACET"/>
+ </message_arguments>
+ </filter>
+ </resource>
+</component>
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.settings/org.eclipse.core.resources.prefs b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..e1105b315f5
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,4 @@
+#Thu Oct 20 20:43:55 CEST 2011
+eclipse.preferences.version=1
+encoding//model/custom_main.ecorediag=UTF-8
+encoding//model/custom_property_declaration.ecorediag=UTF-8
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.settings/org.eclipse.jdt.core.prefs b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..dfad55ea64c
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,76 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=ignore
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=ignore
+org.eclipse.jdt.core.compiler.problem.deadCode=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=ignore
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=ignore
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=ignore
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=ignore
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=ignore
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=ignore
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=ignore
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=ignore
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=ignore
+org.eclipse.jdt.core.compiler.problem.unusedLabel=ignore
+org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=ignore
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=ignore
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/META-INF/MANIFEST.MF b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..8266d2f0935
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/META-INF/MANIFEST.MF
@@ -0,0 +1,23 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.emf.facet.custom.metamodel;singleton:=true
+Bundle-Version: 0.4.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package:
+ org.eclipse.emf.facet.custom.metamodel.custompt,
+ org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom,
+ org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl,
+ org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.util,
+ org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog,
+ org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt;x-internal:=true,
+ org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy,
+ org.eclipse.emf.facet.custom.metamodel.v0_3_0.query,
+ org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.util;x-internal:=true
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore,
+ org.eclipse.emf.facet.efacet.metamodel;visibility:=reexport,
+ org.eclipse.papyrus.emf.facet.util.emf.catalog;bundle-version="0.2.0"
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/OSGI-INF/l10n/bundle.properties b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 00000000000..e171b133fd6
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,12 @@
+#Copyright (c) 2011 Mia-Software.
+#
+#All rights reserved. This program and the accompanying materials
+#are made available under the terms of the Eclipse Public License v1.0
+#which accompanies this distribution, and is available at
+#http://www.eclipse.org/legal/epl-v10.html
+#
+#Contributors:
+# Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+
+pluginName = EMF Facet Customization Meta-Model (Incubation)
+providerName = Eclipse Modeling Project
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/about.html b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/about.html
new file mode 100644
index 00000000000..25f1a82997c
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>October 25, 2011</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/build.properties b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/build.properties
new file mode 100644
index 00000000000..359541ef09d
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/build.properties
@@ -0,0 +1,21 @@
+#Copyright (c) 2011 Mia-Software.
+#
+#All rights reserved. This program and the accompanying materials
+#are made available under the terms of the Eclipse Public License v1.0
+#which accompanies this distribution, and is available at
+#http://www.eclipse.org/legal/epl-v10.html
+#
+#Contributors:
+# Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ OSGI-INF/,\
+ about.html
+jars.compile.order = .
+source.. = src/
+output.. = bin/
+src.includes = about.html
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/catalog-0.2.0.ecore b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/catalog-0.2.0.ecore
new file mode 100644
index 00000000000..755eb8c25f4
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/catalog-0.2.0.ecore
@@ -0,0 +1,9 @@
+<?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="customizationcatalog"
+ nsURI="http://www.eclipse.org/emf/facet/custom/0.2.internal/customizationcatalog"
+ nsPrefix="customizationcatalog">
+ <eClassifiers xsi:type="ecore:EClass" name="CustomizationCatalog" eSuperTypes="platform:/plugin/org.eclipse.emf.facet.util.emf.catalog/model/catalog.ecore#//Catalog"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomizationPropertiesCatalog" eSuperTypes="platform:/plugin/org.eclipse.emf.facet.util.emf.catalog/model/catalog.ecore#//Catalog"/>
+</ecore:EPackage>
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/catalog-0.2.0.genmodel b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/catalog-0.2.0.genmodel
new file mode 100644
index 00000000000..57cc53579ed
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/catalog-0.2.0.genmodel
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText=" Copyright (c) 2011 Mia-Software.&#xD;&#xA; &#xD;&#xA; All rights reserved. This program and the accompanying materials&#xD;&#xA; are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; which accompanies this distribution, and is available at&#xD;&#xA; http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA; Contributors:&#xD;&#xA; &#x9;Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model&#xD;&#xA; &#x9;Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning&#xD;&#xA; "
+ modelDirectory="/org.eclipse.emf.facet.custom.metamodel/src" modelPluginID="org.eclipse.emf.facet.custom.metamodel"
+ modelName="Catalog" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0"
+ copyrightFields="false" runtimeVersion="2.6" usedGenPackages="platform:/plugin/org.eclipse.emf.facet.util.emf.catalog/model/catalog.genmodel#//catalog">
+ <foreignModel>catalog.ecore</foreignModel>
+ <genPackages prefix="Customizationcatalog" basePackage="org.eclipse.emf.facet.custom.metamodel.v0_2_0"
+ disposableProviderFactory="true" ecorePackage="catalog.ecore#/">
+ <genClasses ecoreClass="catalog.ecore#//CustomizationCatalog"/>
+ <genClasses ecoreClass="catalog.ecore#//CustomizationPropertiesCatalog"/>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom-0.2.0.ecore b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom-0.2.0.ecore
new file mode 100644
index 00000000000..5ad22330d7f
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom-0.2.0.ecore
@@ -0,0 +1,45 @@
+<?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="custom"
+ nsURI="http://www.eclipse.org/emf/facet/custom/0.2.incubation/custom" nsPrefix="custom">
+ <eClassifiers xsi:type="ecore:EClass" name="Customization" eSuperTypes="../../org.eclipse.emf.facet.efacet.metamodel/model/efacet-0.2.0.ecore#//FacetSet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The customization model element is the root of a customization model. A customization is applied to only one ePackage and contains EClassCustomizations."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mustBeLoadedByDefault"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When Customization::mustBeloadedByDefault is true, the customization will be automatically loaded in the customizable model browsers."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EClassCustomization" eSuperTypes="../../org.eclipse.emf.facet.efacet.metamodel/model/efacet-0.2.0.ecore#//Facet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An EClassCustomization contains the customization for an EClass. There must not exist two EClassCustomizations customizing the same EClass in the same customization."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FacetCustomization" eSuperTypes="../../org.eclipse.emf.facet.efacet.metamodel/model/efacet-0.2.0.ecore#//Facet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A FacetCustomization contains the customization for a Facet. There must not exist two FacetCustomizations customizing the same facet in the same customization."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="customizedFacet" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.emf.facet.efacet.metamodel/model/efacet-0.2.0.ecore#//Facet"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ETypedElementSwitchQuery" eSuperTypes="../../org.eclipse.emf.facet.efacet.metamodel/model/efacet-0.2.0.ecore#//extensible/Query">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This query can return a value depending of an instance of ETypedElement. This query is dedicated to the definition of customizations."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="cases" upperBound="-1"
+ eType="#//ETypedElementCase" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ETypedElementCase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Case part of the ETypedElementSwitchQuery."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="case" lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//ETypedElement"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="ecore:EClass ../../org.eclipse.emf.facet.efacet.metamodel/model/efacet-0.2.0.ecore#//extensible/Query"
+ containment="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom-0.2.0.genmodel b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom-0.2.0.genmodel
new file mode 100644
index 00000000000..647d6986cb0
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom-0.2.0.genmodel
@@ -0,0 +1,26 @@
+<?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) 2011 Mia-Software.&#xD;&#xA; &#xD;&#xA; All rights reserved. This program and the accompanying materials&#xD;&#xA; are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; which accompanies this distribution, and is available at&#xD;&#xA; http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA; Contributors:&#xD;&#xA; &#x9;Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model&#xD;&#xA; Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework&#xD;&#xA; Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning "
+ modelDirectory="/org.eclipse.emf.facet.custom.metamodel/src" modelPluginID="org.eclipse.emf.facet.custom.metamodel"
+ modelName="Custom" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0"
+ copyrightFields="false" runtimeVersion="2.6" usedGenPackages="platform:/plugin/org.eclipse.emf.facet.efacet.metamodel/model/efacet-0.2.0.genmodel#//efacet">
+ <foreignModel>custom-0.2.0.ecore</foreignModel>
+ <genPackages prefix="Custom" basePackage="org.eclipse.emf.facet.custom.metamodel.v0_2_0"
+ disposableProviderFactory="true" ecorePackage="custom-0.2.0.ecore#/">
+ <genClasses ecoreClass="custom-0.2.0.ecore#//Customization">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute custom-0.2.0.ecore#//Customization/mustBeLoadedByDefault"/>
+ </genClasses>
+ <genClasses ecoreClass="custom-0.2.0.ecore#//EClassCustomization"/>
+ <genClasses ecoreClass="custom-0.2.0.ecore#//FacetCustomization">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference custom-0.2.0.ecore#//FacetCustomization/customizedFacet"/>
+ </genClasses>
+ <genClasses ecoreClass="custom-0.2.0.ecore#//ETypedElementSwitchQuery">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference custom-0.2.0.ecore#//ETypedElementSwitchQuery/cases"/>
+ </genClasses>
+ <genClasses ecoreClass="custom-0.2.0.ecore#//ETypedElementCase">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference custom-0.2.0.ecore#//ETypedElementCase/case"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference custom-0.2.0.ecore#//ETypedElementCase/value"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom_main.ecorediag b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom_main.ecorediag
new file mode 100644
index 00000000000..c2c8608bcd3
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom_main.ecorediag
@@ -0,0 +1,429 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_Z-6G0ftHEeCHmpaJaoX4Ew" type="EcoreTools" name="custom.ecorediag" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_aBlnZftHEeCHmpaJaoX4Ew" type="1002">
+ <children xmi:type="notation:Node" xmi:id="_aBlnaftHEeCHmpaJaoX4Ew" type="4006"/>
+ <children xmi:type="notation:Node" xmi:id="_aBlnavtHEeCHmpaJaoX4Ew" type="5003">
+ <children xmi:type="notation:Node" xmi:id="_flIIcPtHEeCHmpaJaoX4Ew" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_flIIc_tHEeCHmpaJaoX4Ew" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_flIIdPtHEeCHmpaJaoX4Ew" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_flIIdftHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_flIIdvtHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_flIId_tHEeCHmpaJaoX4Ew"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_flIIePtHEeCHmpaJaoX4Ew" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_flIIeftHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_flIIevtHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_flIIe_tHEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_flIIcftHEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="custom.ecore#//main/Customization"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_flIIcvtHEeCHmpaJaoX4Ew" x="5" y="128"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_hPq-sPtHEeCHmpaJaoX4Ew" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_hPq-s_tHEeCHmpaJaoX4Ew" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_hPq-tPtHEeCHmpaJaoX4Ew" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_hPq-tftHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hPq-tvtHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hPq-t_tHEeCHmpaJaoX4Ew"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_hPq-uPtHEeCHmpaJaoX4Ew" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_hPq-uftHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hPq-uvtHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hPq-u_tHEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_hPq-sftHEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="custom.ecore#//main/EModelElementCustomization"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hPq-svtHEeCHmpaJaoX4Ew" x="275" y="28"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jKnBYPtHEeCHmpaJaoX4Ew" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_jKnBY_tHEeCHmpaJaoX4Ew" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_jKnBZPtHEeCHmpaJaoX4Ew" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_jKnBZftHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jKnBZvtHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jKnBZ_tHEeCHmpaJaoX4Ew"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jKnBaPtHEeCHmpaJaoX4Ew" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_jKnBaftHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jKnBavtHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jKnBa_tHEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_jKnBYftHEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="custom.ecore#//main/FacetCustomization"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jKnBYvtHEeCHmpaJaoX4Ew" x="400" y="208"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_k6EM0PtHEeCHmpaJaoX4Ew" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_k6EM0_tHEeCHmpaJaoX4Ew" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_k6EM1PtHEeCHmpaJaoX4Ew" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_k6EM1ftHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k6EM1vtHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k6EM1_tHEeCHmpaJaoX4Ew"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_k6EM2PtHEeCHmpaJaoX4Ew" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_k6EM2ftHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k6EM2vtHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k6EM2_tHEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_k6EM0ftHEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="custom.ecore#//main/EClassCustomization"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k6EM0vtHEeCHmpaJaoX4Ew" x="140" y="208"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qLSO0PtHEeCHmpaJaoX4Ew" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_qLSO0_tHEeCHmpaJaoX4Ew" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_qLSO1PtHEeCHmpaJaoX4Ew" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_qLSO1ftHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qLSO1vtHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qLSO1_tHEeCHmpaJaoX4Ew"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qLSO2PtHEeCHmpaJaoX4Ew" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_qLSO2ftHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qLSO2vtHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qLSO2_tHEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_qLSO0ftHEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="custom.ecore#//main/EClassifierCustomization"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qLSO0vtHEeCHmpaJaoX4Ew" x="280" y="133"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7O79EPtHEeCHmpaJaoX4Ew" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_7O79E_tHEeCHmpaJaoX4Ew" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_7O79FPtHEeCHmpaJaoX4Ew" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_7O79FftHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7O79FvtHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7O79F_tHEeCHmpaJaoX4Ew"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7O79GPtHEeCHmpaJaoX4Ew" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_7O79GftHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7O79GvtHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7O79G_tHEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_7O79EftHEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="custom.ecore#//main/CustomizationPropertySetting"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7O79EvtHEeCHmpaJaoX4Ew" x="600" y="33"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_DtCx0PtIEeCHmpaJaoX4Ew" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_DtCx0_tIEeCHmpaJaoX4Ew" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_DtCx1PtIEeCHmpaJaoX4Ew" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_DtCx1ftIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DtCx1vtIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DtCx1_tIEeCHmpaJaoX4Ew"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_DtCx2PtIEeCHmpaJaoX4Ew" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_DtCx2ftIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DtCx2vtIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DtCx2_tIEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_DtCx0ftIEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="custom.ecore#//main/EStructuralFeatureCustomization"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DtCx0vtIEeCHmpaJaoX4Ew" x="735" y="128"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_aBlna_tHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aBlnbPtHEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aBlnbftHEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_aBlnZvtHEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13150135" lineColor="4210752"/>
+ <styles xmi:type="notation:MultiDiagramLinkStyle" xmi:id="_aBlnZ_tHEeCHmpaJaoX4Ew"/>
+ <element xmi:type="ecore:EPackage" href="custom.ecore#//main"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aBlnaPtHEeCHmpaJaoX4Ew" x="15" y="20" width="1028" height="298"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ALcTUPtIEeCHmpaJaoX4Ew" type="1002">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ALcTWftIEeCHmpaJaoX4Ew" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ALcTWvtIEeCHmpaJaoX4Ew" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_ALcTVPtIEeCHmpaJaoX4Ew" type="4006"/>
+ <children xmi:type="notation:Node" xmi:id="_ALcTVftIEeCHmpaJaoX4Ew" type="5003">
+ <children xmi:type="notation:Node" xmi:id="_BmfVAPtIEeCHmpaJaoX4Ew" type="2003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Bmoe-PtIEeCHmpaJaoX4Ew" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Bmoe-ftIEeCHmpaJaoX4Ew" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_BmfVA_tIEeCHmpaJaoX4Ew" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_BmfVBPtIEeCHmpaJaoX4Ew" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_BmfVBftIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BmfVBvtIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BmfVB_tIEeCHmpaJaoX4Ew"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_BmfVCPtIEeCHmpaJaoX4Ew" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_BmfVCftIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BmfVCvtIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BmfVC_tIEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_BmfVAftIEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.eclipse.emf.facet.efacet2/model/efacet2.ecore#//declaration/DerivedTypedElement"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BmfVAvtIEeCHmpaJaoX4Ew" x="440" y="7"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jL-d4PtIEeCHmpaJaoX4Ew" type="2003">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jMk61PtIEeCHmpaJaoX4Ew" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jMk61ftIEeCHmpaJaoX4Ew" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_jL-d4_tIEeCHmpaJaoX4Ew" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_jL-d5PtIEeCHmpaJaoX4Ew" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_jL-d5ftIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jL-d5vtIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jL-d5_tIEeCHmpaJaoX4Ew"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jL-d6PtIEeCHmpaJaoX4Ew" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_jL-d6ftIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jL-d6vtIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jL-d6_tIEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_jL-d4ftIEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.eclipse.emf.facet.efacet2/model/efacet2.ecore#//declaration/Query"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jL-d4vtIEeCHmpaJaoX4Ew" x="800" y="2"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_ALcTVvtIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ALcTV_tIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ALcTWPtIEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_ALcTUftIEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13150135" lineColor="4210752"/>
+ <styles xmi:type="notation:MultiDiagramLinkStyle" xmi:id="_ALcTUvtIEeCHmpaJaoX4Ew"/>
+ <element xmi:type="ecore:EPackage" href="platform:/resource/org.eclipse.emf.facet.efacet2/model/efacet2.ecore#/"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ALcTU_tIEeCHmpaJaoX4Ew" x="15" y="-190" width="1028" height="178"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4LBqsPtIEeCHmpaJaoX4Ew" type="1002">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4LBquftIEeCHmpaJaoX4Ew" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4LBquvtIEeCHmpaJaoX4Ew" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_4LBqtPtIEeCHmpaJaoX4Ew" type="4006"/>
+ <children xmi:type="notation:Node" xmi:id="_4LBqtftIEeCHmpaJaoX4Ew" type="5003">
+ <children xmi:type="notation:Node" xmi:id="_5cFp8PtIEeCHmpaJaoX4Ew" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_5cFp8_tIEeCHmpaJaoX4Ew" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_5cFp9PtIEeCHmpaJaoX4Ew" visible="false" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_5cFp9ftIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5cFp9vtIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5cFp9_tIEeCHmpaJaoX4Ew"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5cOz4PtIEeCHmpaJaoX4Ew" visible="false" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_5cOz4ftIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5cOz4vtIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5cOz4_tIEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_5cFp8ftIEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.eclipse.emf.facet.efacet2/model/efacet2.ecore#//declaration/Facet"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5cFp8vtIEeCHmpaJaoX4Ew" x="96" y="34"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_4LBqtvtIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4LBqt_tIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4LBquPtIEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_4LBqsftIEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13150135" lineColor="4210752"/>
+ <styles xmi:type="notation:MultiDiagramLinkStyle" xmi:id="_4LBqsvtIEeCHmpaJaoX4Ew"/>
+ <element xmi:type="ecore:EPackage" href="platform:/resource/org.eclipse.emf.facet.efacet2/model/efacet2.ecore#//declaration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4LBqs_tIEeCHmpaJaoX4Ew" x="340" y="350" width="408" height="148"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7FlXUPtIEeCHmpaJaoX4Ew" type="1002">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7FvIUPtIEeCHmpaJaoX4Ew" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7FvIUftIEeCHmpaJaoX4Ew" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_7FlXVPtIEeCHmpaJaoX4Ew" type="4006"/>
+ <children xmi:type="notation:Node" xmi:id="_7FlXVftIEeCHmpaJaoX4Ew" type="5003">
+ <children xmi:type="notation:Node" xmi:id="__N7swPtIEeCHmpaJaoX4Ew" type="2003">
+ <children xmi:type="notation:Node" xmi:id="__N7sw_tIEeCHmpaJaoX4Ew" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="__N7sxPtIEeCHmpaJaoX4Ew" visible="false" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="__N7sxftIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__N7sxvtIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__N7sx_tIEeCHmpaJaoX4Ew"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__N7syPtIEeCHmpaJaoX4Ew" visible="false" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="__N7syftIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__N7syvtIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__N7sy_tIEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="__N7swftIEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__N7swvtIEeCHmpaJaoX4Ew" x="145" y="32"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YtKgMPtJEeCHmpaJaoX4Ew" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_YtKgM_tJEeCHmpaJaoX4Ew" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_YtKgNPtJEeCHmpaJaoX4Ew" visible="false" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_YtKgNftJEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YtKgNvtJEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YtKgN_tJEeCHmpaJaoX4Ew"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YtKgOPtJEeCHmpaJaoX4Ew" visible="false" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_YtKgOftJEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YtKgOvtJEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YtKgO_tJEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_YtKgMftJEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YtKgMvtJEeCHmpaJaoX4Ew" x="744" y="43"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_7FlXVvtIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7FlXV_tIEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7FlXWPtIEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_7FlXUftIEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13150135" lineColor="4210752"/>
+ <styles xmi:type="notation:MultiDiagramLinkStyle" xmi:id="_7FlXUvtIEeCHmpaJaoX4Ew"/>
+ <element xmi:type="ecore:EPackage" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#/"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7FlXU_tIEeCHmpaJaoX4Ew" x="15" y="470" width="1028" height="153"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Z-6G0vtHEeCHmpaJaoX4Ew"/>
+ <element xmi:type="ecore:EPackage" href="custom.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_jLgZQPtHEeCHmpaJaoX4Ew" type="3003" source="_jKnBYPtHEeCHmpaJaoX4Ew" target="_qLSO0PtHEeCHmpaJaoX4Ew">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_jLgZQftHEeCHmpaJaoX4Ew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_jLgZQvtHEeCHmpaJaoX4Ew"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jLgZQ_tHEeCHmpaJaoX4Ew" points="[1, -20, 72, 41]$[1, -30, 72, 31]$[-100, -30, -29, 31]$[-100, -55, -29, 6]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sPdGAPtHEeCHmpaJaoX4Ew" id="(0.7204968944099379,0.8571428571428571)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_k6EM3PtHEeCHmpaJaoX4Ew" type="3003" source="_k6EM0PtHEeCHmpaJaoX4Ew" target="_qLSO0PtHEeCHmpaJaoX4Ew">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_k6EM3ftHEeCHmpaJaoX4Ew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_k6EM3vtHEeCHmpaJaoX4Ew"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_k6EM3_tHEeCHmpaJaoX4Ew" points="[1, -20, -150, 55]$[1, -30, -150, 45]$[157, -30, 6, 45]$[157, -55, 6, 20]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_x4gZMPtHEeCHmpaJaoX4Ew" type="3002" source="_flIIcPtHEeCHmpaJaoX4Ew" target="_qLSO0PtHEeCHmpaJaoX4Ew">
+ <children xmi:type="notation:Node" xmi:id="_x4gZNPtHEeCHmpaJaoX4Ew" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_x4gZNftHEeCHmpaJaoX4Ew" x="-47" y="-15"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_x4gZNvtHEeCHmpaJaoX4Ew" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_x4gZN_tHEeCHmpaJaoX4Ew" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_x4gZMftHEeCHmpaJaoX4Ew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_x4gZMvtHEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="custom.ecore#//main/Customization/eClassifierCustomizations"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_x4gZM_tHEeCHmpaJaoX4Ew" points="[28, 23, -219, 17]$[203, 23, -44, 17]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_x49FIPtHEeCHmpaJaoX4Ew" id="(0.7254901960784313,0.07142857142857142)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_x49FIftHEeCHmpaJaoX4Ew" id="(0.2795031055900621,0.09523809523809523)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5yjeoPtHEeCHmpaJaoX4Ew" type="3003" source="_qLSO0PtHEeCHmpaJaoX4Ew" target="_hPq-sPtHEeCHmpaJaoX4Ew">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5yjeoftHEeCHmpaJaoX4Ew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5yjeovtHEeCHmpaJaoX4Ew"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5yjeo_tHEeCHmpaJaoX4Ew" points="[-20, -3, -23, 85]$[-20, -23, -23, 65]$[5, -23, 2, 65]$[5, -68, 2, 20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5yjepPtHEeCHmpaJaoX4Ew" id="(0.5403726708074534,0.09523809523809523)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_7O79IPtHEeCHmpaJaoX4Ew" type="3002" source="_hPq-sPtHEeCHmpaJaoX4Ew" target="_7O79EPtHEeCHmpaJaoX4Ew">
+ <children xmi:type="notation:Node" xmi:id="_7O79JPtHEeCHmpaJaoX4Ew" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7O79JftHEeCHmpaJaoX4Ew" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7O79JvtHEeCHmpaJaoX4Ew" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7O79J_tHEeCHmpaJaoX4Ew" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_7O79IftHEeCHmpaJaoX4Ew" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_7O79IvtHEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="custom.ecore#//main/EModelElementCustomization/properties"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7O79I_tHEeCHmpaJaoX4Ew" points="[-38, -20, 331, 174]$[-368, -194, 1, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_Bmoe8PtIEeCHmpaJaoX4Ew" type="3003" source="_hPq-sPtHEeCHmpaJaoX4Ew" target="_BmfVAPtIEeCHmpaJaoX4Ew">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_Bmoe8ftIEeCHmpaJaoX4Ew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Bmoe8vtIEeCHmpaJaoX4Ew"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bmoe8_tIEeCHmpaJaoX4Ew" points="[77, -20, -98, 291]$[77, -165, -98, 146]$[157, -165, -18, 146]$[157, -283, -18, 28]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_Bmoe9PtIEeCHmpaJaoX4Ew" type="3003" source="_7O79EPtHEeCHmpaJaoX4Ew" target="_BmfVAPtIEeCHmpaJaoX4Ew">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_Bmoe9ftIEeCHmpaJaoX4Ew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Bmoe9vtIEeCHmpaJaoX4Ew"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bmoe9_tIEeCHmpaJaoX4Ew" points="[1, -20, 152, 296]$[1, -170, 152, 146]$[-169, -170, -18, 146]$[-169, -288, -18, 28]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_DtCx3PtIEeCHmpaJaoX4Ew" type="3003" source="_DtCx0PtIEeCHmpaJaoX4Ew" target="_hPq-sPtHEeCHmpaJaoX4Ew">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_DtCx3ftIEeCHmpaJaoX4Ew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_DtCx3vtIEeCHmpaJaoX4Ew"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DtCx3_tIEeCHmpaJaoX4Ew" points="[-8, -20, 462, 80]$[-8, -35, 462, 65]$[-468, -35, 2, 65]$[-468, -80, 2, 20]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_QbidsPtIEeCHmpaJaoX4Ew" type="3002" source="_qLSO0PtHEeCHmpaJaoX4Ew" target="_DtCx0PtIEeCHmpaJaoX4Ew">
+ <children xmi:type="notation:Node" xmi:id="_QbidtPtIEeCHmpaJaoX4Ew" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QbidtftIEeCHmpaJaoX4Ew" x="-52" y="-12"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QbidtvtIEeCHmpaJaoX4Ew" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Qbidt_tIEeCHmpaJaoX4Ew" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_QbidsftIEeCHmpaJaoX4Ew" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QbidsvtIEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="custom.ecore#//main/EClassifierCustomization/eStructuralFeatureCustomization"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Qbids_tIEeCHmpaJaoX4Ew" points="[48, 3, -199, -15]$[351, 15, 104, -3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QbsOsPtIEeCHmpaJaoX4Ew" id="(0.7018633540372671,0.19047619047619047)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_jMbJ0PtIEeCHmpaJaoX4Ew" type="3002" source="_jL-d4PtIEeCHmpaJaoX4Ew" target="_BmfVAPtIEeCHmpaJaoX4Ew">
+ <children xmi:type="notation:Node" xmi:id="_jMbJ1PtIEeCHmpaJaoX4Ew" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jMbJ1ftIEeCHmpaJaoX4Ew" x="-59" y="-13"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jMbJ1vtIEeCHmpaJaoX4Ew" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jMbJ1_tIEeCHmpaJaoX4Ew" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_jMbJ0ftIEeCHmpaJaoX4Ew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_jMbJ0vtIEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="platform:/resource/org.eclipse.emf.facet.efacet2/model/efacet2.ecore#//declaration/Query/owningDerivedTypedElement"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jMbJ0_tIEeCHmpaJaoX4Ew" points="[-103, -15, 287, 7]$[-316, -15, 74, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_h3rH8vtJEeCHmpaJaoX4Ew" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_h3rH8_tJEeCHmpaJaoX4Ew" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_jMbJ2PtIEeCHmpaJaoX4Ew" type="3002" source="_BmfVAPtIEeCHmpaJaoX4Ew" target="_jL-d4PtIEeCHmpaJaoX4Ew">
+ <children xmi:type="notation:Node" xmi:id="_jMbJ3PtIEeCHmpaJaoX4Ew" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jMbJ3ftIEeCHmpaJaoX4Ew" x="15" y="-12"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_jMbJ3vtIEeCHmpaJaoX4Ew" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jMbJ3_tIEeCHmpaJaoX4Ew" x="23" y="13"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_jMbJ2ftIEeCHmpaJaoX4Ew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_jMbJ2vtIEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="platform:/resource/org.eclipse.emf.facet.efacet2/model/efacet2.ecore#//declaration/DerivedTypedElement/query"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jMbJ2_tIEeCHmpaJaoX4Ew" points="[74, 7, -316, -15]$[287, 7, -103, -15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jMk60PtIEeCHmpaJaoX4Ew" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jMk60ftIEeCHmpaJaoX4Ew" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_5cOz5PtIEeCHmpaJaoX4Ew" type="3002" source="_jKnBYPtHEeCHmpaJaoX4Ew" target="_5cFp8PtIEeCHmpaJaoX4Ew">
+ <children xmi:type="notation:Node" xmi:id="_5cOz6PtIEeCHmpaJaoX4Ew" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5cOz6ftIEeCHmpaJaoX4Ew" x="7" y="-58"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_5cOz6vtIEeCHmpaJaoX4Ew" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5cOz6_tIEeCHmpaJaoX4Ew" x="7" y="11"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_5cOz5ftIEeCHmpaJaoX4Ew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5cOz5vtIEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="custom.ecore#//main/FacetCustomization/customizedFacet"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5cOz5_tIEeCHmpaJaoX4Ew" points="[-6, 20, 65, -217]$[-71, 236, 0, -1]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="__OOnwPtIEeCHmpaJaoX4Ew" type="3002" source="_k6EM0PtHEeCHmpaJaoX4Ew" target="__N7swPtIEeCHmpaJaoX4Ew">
+ <children xmi:type="notation:Node" xmi:id="__OOnxPtIEeCHmpaJaoX4Ew" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__OOnxftIEeCHmpaJaoX4Ew" x="26" y="-60"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__OOnxvtIEeCHmpaJaoX4Ew" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__OOnx_tIEeCHmpaJaoX4Ew" x="26" y="11"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="__OOnwftIEeCHmpaJaoX4Ew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="__OOnwvtIEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="custom.ecore#//main/EClassCustomization/customizedEClass"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__OOnw_tIEeCHmpaJaoX4Ew" points="[-19, 20, 200, -207]$[-218, 225, 1, -2]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_YtTqIPtJEeCHmpaJaoX4Ew" type="3002" source="_YtKgMPtJEeCHmpaJaoX4Ew" target="__N7swPtIEeCHmpaJaoX4Ew">
+ <children xmi:type="notation:Node" xmi:id="_YtTqJPtJEeCHmpaJaoX4Ew" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YtTqJftJEeCHmpaJaoX4Ew" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YtTqJvtJEeCHmpaJaoX4Ew" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YtTqJ_tJEeCHmpaJaoX4Ew" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_YtTqIftJEeCHmpaJaoX4Ew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_YtTqIvtJEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/eContainingClass"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YtTqI_tJEeCHmpaJaoX4Ew" points="[-64, 0, 549, 11]$[-563, 0, 50, 11]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cT1E4vtJEeCHmpaJaoX4Ew" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cT1E4_tJEeCHmpaJaoX4Ew" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_YtTqKPtJEeCHmpaJaoX4Ew" type="3002" source="_DtCx0PtIEeCHmpaJaoX4Ew" target="_YtKgMPtJEeCHmpaJaoX4Ew">
+ <children xmi:type="notation:Node" xmi:id="_YtTqLPtJEeCHmpaJaoX4Ew" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YtTqLftJEeCHmpaJaoX4Ew" x="39" y="-90"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YtTqLvtJEeCHmpaJaoX4Ew" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YtTqL_tJEeCHmpaJaoX4Ew" x="64" y="11"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_YtTqKftJEeCHmpaJaoX4Ew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_YtTqKvtJEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="custom.ecore#//main/EStructuralFeatureCustomization/customizedEStructuralFeature"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YtTqK_tJEeCHmpaJaoX4Ew" points="[-32, 20, 802, -502]$[-833, 521, 1, -1]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_YtTqOPtJEeCHmpaJaoX4Ew" type="3002" source="__N7swPtIEeCHmpaJaoX4Ew" target="_YtKgMPtJEeCHmpaJaoX4Ew">
+ <children xmi:type="notation:Node" xmi:id="_YtTqPPtJEeCHmpaJaoX4Ew" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YtTqPftJEeCHmpaJaoX4Ew" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YtTqPvtJEeCHmpaJaoX4Ew" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YtTqP_tJEeCHmpaJaoX4Ew" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_YtTqOftJEeCHmpaJaoX4Ew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_YtTqOvtJEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eStructuralFeatures"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YtTqO_tJEeCHmpaJaoX4Ew" points="[50, 11, -563, 0]$[549, 11, -64, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YtTqQPtJEeCHmpaJaoX4Ew" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YtTqQftJEeCHmpaJaoX4Ew" id="(0.5,0.5)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom_primitive_types-0.2.0.ecore b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom_primitive_types-0.2.0.ecore
new file mode 100644
index 00000000000..4def309471f
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom_primitive_types-0.2.0.ecore
@@ -0,0 +1,19 @@
+<?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="custompt"
+ nsURI="http://www.eclipse.org/emf/facet/custom/0.2.incubation/custom_primitive_types"
+ nsPrefix="custompt">
+ <eClassifiers xsi:type="ecore:EDataType" name="Image" instanceClassName="org.eclipse.emf.facet.custom.metamodel.custompt.IImage"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="Color" instanceClassName="org.eclipse.emf.facet.custom.metamodel.custompt.IColor"/>
+ <eClassifiers xsi:type="ecore:EEnum" name="Shadow">
+ <eLiterals name="NONE" literal="NONE"/>
+ <eLiterals name="IN" value="1" literal="IN"/>
+ <eLiterals name="OUT" value="2" literal="OUT"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Alignment">
+ <eLiterals name="LEFT"/>
+ <eLiterals name="CENTER" value="1"/>
+ <eLiterals name="RIGHT" value="2"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom_primitive_types-0.2.0.genmodel b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom_primitive_types-0.2.0.genmodel
new file mode 100644
index 00000000000..a9d0efc5f55
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom_primitive_types-0.2.0.genmodel
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel"
+ copyrightText=" Copyright (c) 2012 Mia-Software.&#xD;&#xA; &#xD;&#xA; All rights reserved. This program and the accompanying materials&#xD;&#xA; are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; which accompanies this distribution, and is available at&#xD;&#xA; http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA; Contributors:&#xD;&#xA; &#x9;Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model&#xD;&#xA; &#x9;Vincent Lorenzo (CEA-LIST) - Bug 372644 - Create Customizable tooltips for the TreeViewer using a CustomizableLabelProvider&#xD;&#xA; "
+ modelDirectory="/org.eclipse.emf.facet.custom.metamodel/src" modelPluginID="org.eclipse.emf.facet.custom.metamodel"
+ modelName="Custom_primitive_types-0.2" importerID="org.eclipse.emf.importer.ecore"
+ complianceLevel="5.0" copyrightFields="false" runtimeVersion="2.6">
+ <foreignModel>custom_primitive_types-0.2.0.ecore</foreignModel>
+ <genPackages prefix="Custompt" basePackage="org.eclipse.emf.facet.custom.metamodel.v0_2_0"
+ disposableProviderFactory="true" ecorePackage="custom_primitive_types-0.2.0.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="custom_primitive_types-0.2.0.ecore#//Shadow">
+ <genEnumLiterals ecoreEnumLiteral="custom_primitive_types-0.2.0.ecore#//Shadow/NONE"/>
+ <genEnumLiterals ecoreEnumLiteral="custom_primitive_types-0.2.0.ecore#//Shadow/IN"/>
+ <genEnumLiterals ecoreEnumLiteral="custom_primitive_types-0.2.0.ecore#//Shadow/OUT"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="custom_primitive_types-0.2.0.ecore#//Alignment">
+ <genEnumLiterals ecoreEnumLiteral="custom_primitive_types-0.2.0.ecore#//Alignment/LEFT"/>
+ <genEnumLiterals ecoreEnumLiteral="custom_primitive_types-0.2.0.ecore#//Alignment/CENTER"/>
+ <genEnumLiterals ecoreEnumLiteral="custom_primitive_types-0.2.0.ecore#//Alignment/RIGHT"/>
+ </genEnums>
+ <genDataTypes ecoreDataType="custom_primitive_types-0.2.0.ecore#//Image"/>
+ <genDataTypes ecoreDataType="custom_primitive_types-0.2.0.ecore#//Color"/>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom_property_declaration.ecorediag b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom_property_declaration.ecorediag
new file mode 100644
index 00000000000..07e6df8d57a
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/custom_property_declaration.ecorediag
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_ykkGkPtKEeCHmpaJaoX4Ew" type="EcoreTools" name="custom.ecorediag" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_yktQgPtKEeCHmpaJaoX4Ew" type="1002">
+ <children xmi:type="notation:Node" xmi:id="_yktQhPtKEeCHmpaJaoX4Ew" type="4006"/>
+ <children xmi:type="notation:Node" xmi:id="_yktQhftKEeCHmpaJaoX4Ew" type="5003">
+ <children xmi:type="notation:Node" xmi:id="_1G1PAPtKEeCHmpaJaoX4Ew" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_1G1PA_tKEeCHmpaJaoX4Ew" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_1G1PBPtKEeCHmpaJaoX4Ew" type="5004">
+ <children xmi:type="notation:Node" xmi:id="_1G_AAPtKEeCHmpaJaoX4Ew" type="2001">
+ <element xmi:type="ecore:EAttribute" href="custom.ecore#//propertydeclaration/CustomizationProperty/scope"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1G_AAftKEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_1G1PBftKEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1G1PBvtKEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1G1PB_tKEeCHmpaJaoX4Ew"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1G1PCPtKEeCHmpaJaoX4Ew" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_1G1PCftKEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1G1PCvtKEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1G1PC_tKEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_1G1PAftKEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="custom.ecore#//propertydeclaration/CustomizationProperty"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1G1PAvtKEeCHmpaJaoX4Ew" x="95" y="18"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1WolkPtKEeCHmpaJaoX4Ew" type="2005">
+ <children xmi:type="notation:Node" xmi:id="_1Wolk_tKEeCHmpaJaoX4Ew" type="4005"/>
+ <children xmi:type="notation:Node" xmi:id="_1WollPtKEeCHmpaJaoX4Ew" type="5006">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_1WollftKEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1WollvtKEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1Woll_tKEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_1WolkftKEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="custom.ecore#//propertydeclaration/CustomizationPropertyScope"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1WolkvtKEeCHmpaJaoX4Ew" x="365" y="8"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_yktQhvtKEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yktQh_tKEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yktQiPtKEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_yktQgftKEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13150135" lineColor="4210752"/>
+ <styles xmi:type="notation:MultiDiagramLinkStyle" xmi:id="_yktQgvtKEeCHmpaJaoX4Ew"/>
+ <element xmi:type="ecore:EPackage" href="custom.ecore#//propertydeclaration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yktQg_tKEeCHmpaJaoX4Ew" x="295" y="115" width="583" height="173"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_yktQiftKEeCHmpaJaoX4Ew" type="1002">
+ <children xmi:type="notation:Node" xmi:id="_yktQjftKEeCHmpaJaoX4Ew" type="4006"/>
+ <children xmi:type="notation:Node" xmi:id="_yktQjvtKEeCHmpaJaoX4Ew" type="5003">
+ <children xmi:type="notation:Node" xmi:id="_8Xmt8PtKEeCHmpaJaoX4Ew" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_8Xmt8_tKEeCHmpaJaoX4Ew" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_8Xmt9PtKEeCHmpaJaoX4Ew" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_8Xmt9ftKEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8Xmt9vtKEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8Xmt9_tKEeCHmpaJaoX4Ew"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_8Xmt-PtKEeCHmpaJaoX4Ew" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_8Xmt-ftKEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8Xmt-vtKEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8Xmt-_tKEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_8Xmt8ftKEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="custom.ecore#//main/CustomizationPropertySetting"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8Xmt8vtKEeCHmpaJaoX4Ew" x="5" y="18"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_yktQj_tKEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yktQkPtKEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yktQkftKEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_yktQivtKEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13150135" lineColor="4210752"/>
+ <styles xmi:type="notation:MultiDiagramLinkStyle" xmi:id="_yktQi_tKEeCHmpaJaoX4Ew"/>
+ <element xmi:type="ecore:EPackage" href="custom.ecore#//main"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yktQjPtKEeCHmpaJaoX4Ew" x="35" y="115" width="228" height="168"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TUReAPtLEeCHmpaJaoX4Ew" type="1002">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TUan8PtLEeCHmpaJaoX4Ew" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TUan8ftLEeCHmpaJaoX4Ew" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_TUReBPtLEeCHmpaJaoX4Ew" type="4006"/>
+ <children xmi:type="notation:Node" xmi:id="_TUReBftLEeCHmpaJaoX4Ew" type="5003">
+ <children xmi:type="notation:Node" xmi:id="_U8k4kPtLEeCHmpaJaoX4Ew" type="2003">
+ <children xmi:type="notation:Node" xmi:id="_U8k4k_tLEeCHmpaJaoX4Ew" type="4002"/>
+ <children xmi:type="notation:Node" xmi:id="_U8k4lPtLEeCHmpaJaoX4Ew" type="5004">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_U8k4lftLEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_U8k4lvtLEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_U8k4l_tLEeCHmpaJaoX4Ew"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U8k4mPtLEeCHmpaJaoX4Ew" type="5005">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_U8k4mftLEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_U8k4mvtLEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_U8k4m_tLEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_U8k4kftLEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EDataType"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U8k4kvtLEeCHmpaJaoX4Ew" x="210" y="32"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_TUReBvtLEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TUReB_tLEeCHmpaJaoX4Ew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TUReCPtLEeCHmpaJaoX4Ew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_TUReAftLEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10" fillColor="13150135" lineColor="4210752"/>
+ <styles xmi:type="notation:MultiDiagramLinkStyle" xmi:id="_TUReAvtLEeCHmpaJaoX4Ew"/>
+ <element xmi:type="ecore:EPackage" href="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#/"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TUReA_tLEeCHmpaJaoX4Ew" x="295" y="300" width="583" height="149"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ykkGkftKEeCHmpaJaoX4Ew"/>
+ <element xmi:type="ecore:EPackage" href="custom.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_8Xmt_PtKEeCHmpaJaoX4Ew" type="3002" source="_8Xmt8PtKEeCHmpaJaoX4Ew" target="_1G1PAPtKEeCHmpaJaoX4Ew">
+ <children xmi:type="notation:Node" xmi:id="_8XmuAPtKEeCHmpaJaoX4Ew" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8XmuAftKEeCHmpaJaoX4Ew" x="-22" y="-11"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_8XmuAvtKEeCHmpaJaoX4Ew" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8XmuA_tKEeCHmpaJaoX4Ew" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_8Xmt_ftKEeCHmpaJaoX4Ew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8Xmt_vtKEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="custom.ecore#//main/CustomizationPropertySetting/customization"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8Xmt__tKEeCHmpaJaoX4Ew" points="[94, 0, -281, -3]$[256, 0, -119, -3]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_U8k4nvtLEeCHmpaJaoX4Ew" type="3002" source="_1G1PAPtKEeCHmpaJaoX4Ew" target="_U8k4kPtLEeCHmpaJaoX4Ew">
+ <children xmi:type="notation:Node" xmi:id="_U8k4ovtLEeCHmpaJaoX4Ew" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U8k4o_tLEeCHmpaJaoX4Ew" x="13" y="-20"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_U8k4pPtLEeCHmpaJaoX4Ew" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U8k4pftLEeCHmpaJaoX4Ew" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_U8k4n_tLEeCHmpaJaoX4Ew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_U8k4oPtLEeCHmpaJaoX4Ew" fontColor="4210752" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="custom.ecore#//propertydeclaration/CustomizationProperty/type"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_U8k4oftLEeCHmpaJaoX4Ew" points="[-69, 32, 375, -173]$[-443, 204, 1, -1]"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/query-0.3.0.ecore b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/query-0.3.0.ecore
new file mode 100644
index 00000000000..e8c96e59657
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/query-0.3.0.ecore
@@ -0,0 +1,8 @@
+<?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="query" nsURI="http://www.eclipse.org/emf/facet/custom/0.3.incubation/query"
+ nsPrefix="customQuery">
+ <eClassifiers xsi:type="ecore:EClass" name="URIImageQuery" eSuperTypes="http://www.eclipse.org/emf/facet/efacet/0.2.incubation/efacet#//extensible/Query">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uri" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/query-0.3.0.genmodel b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/query-0.3.0.genmodel
new file mode 100644
index 00000000000..939fd1e3098
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/query-0.3.0.genmodel
@@ -0,0 +1,14 @@
+<?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) 2013 Soft-Maint.&#xD;&#xA; &#xD;&#xA; All rights reserved. This program and the accompanying materials&#xD;&#xA; are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; which accompanies this distribution, and is available at&#xD;&#xA; http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA; Contributors:&#xD;&#xA;&#x9;&#x9;David Couvrand (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI&#xD;&#xA; &#x9;Nicolas Rault (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI"
+ modelDirectory="/org.eclipse.emf.facet.custom.metamodel/src" modelPluginID="org.eclipse.emf.facet.custom.metamodel"
+ modelName="Query-0.3" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0"
+ copyrightFields="false" usedGenPackages="platform:/plugin/org.eclipse.emf.facet.efacet.metamodel/model/efacet-0.2.0.genmodel#//efacet">
+ <foreignModel>query-0.3.0.ecore</foreignModel>
+ <genPackages prefix="Query" basePackage="org.eclipse.emf.facet.custom.metamodel.v0_3_0"
+ disposableProviderFactory="true" ecorePackage="query-0.3.0.ecore#/">
+ <genClasses ecoreClass="query-0.3.0.ecore#//URIImageQuery">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute query-0.3.0.ecore#//URIImageQuery/uri"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/treeproxy-0.2.0.ecore b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/treeproxy-0.2.0.ecore
new file mode 100644
index 00000000000..331b54d8d91
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/treeproxy-0.2.0.ecore
@@ -0,0 +1,54 @@
+<?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="internal"
+ nsURI="http://www.eclipse.org/emf/facet/custom/0.2.incubation/internal" nsPrefix="internal">
+ <eSubpackages name="treeproxy" nsURI="http://www.eclipse.org/emf/facet/custom/0.2.incubation/internal/treeproxy"
+ nsPrefix="treeproxy">
+ <eClassifiers xsi:type="ecore:EClass" name="TreeElement" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents a proxy element in a tree view"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EObjectTreeElement" eSuperTypes="#//treeproxy/TreeElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents a model element in a tree view"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eObject" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The model element represented by this tree element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sfTreeElmement" upperBound="-1"
+ eType="#//treeproxy/EStructuralFeatureTreeElement" containment="true" eOpposite="#//treeproxy/EStructuralFeatureTreeElement/parent"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//treeproxy/EStructuralFeatureTreeElement"
+ eOpposite="#//treeproxy/EStructuralFeatureTreeElement/referedEObjectTE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EReferenceTreeElement" eSuperTypes="#//treeproxy/EStructuralFeatureTreeElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents an EReference as a link between two model elements in a tree view"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eReference" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EReference">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The EReference represented by this tree element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EAttributeTreeElement" eSuperTypes="#//treeproxy/EStructuralFeatureTreeElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents an EAttribute in a tree view"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eAttribute" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EAttribute">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The EAttribute represented by this tree element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EStructuralFeatureTreeElement" eSuperTypes="#//treeproxy/TreeElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//treeproxy/EObjectTreeElement"
+ eOpposite="#//treeproxy/EObjectTreeElement/sfTreeElmement"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="referedEObjectTE" upperBound="-1"
+ eType="#//treeproxy/EObjectTreeElement" containment="true" eOpposite="#//treeproxy/EObjectTreeElement/parent"/>
+ </eClassifiers>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/treeproxy-0.2.0.genmodel b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/treeproxy-0.2.0.genmodel
new file mode 100644
index 00000000000..369eacdc83b
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/model/treeproxy-0.2.0.genmodel
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2012 Mia-Software.&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA;Contributors:&#xD;&#xA; Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider&#xD;&#xA; Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements() "
+ modelDirectory="/org.eclipse.emf.facet.custom.metamodel/src" modelPluginID="org.eclipse.emf.facet.custom.metamodel"
+ modelName="Treeproxy-0.2" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0"
+ copyrightFields="false" runtimeVersion="2.6" usedGenPackages="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore">
+ <foreignModel>treeproxy-0.2.0.ecore</foreignModel>
+ <genPackages prefix="Internal" basePackage="org.eclipse.emf.facet.custom.metamodel.v0_2_0"
+ disposableProviderFactory="true" ecorePackage="treeproxy-0.2.0.ecore#/">
+ <nestedGenPackages prefix="Treeproxy" disposableProviderFactory="true" ecorePackage="treeproxy-0.2.0.ecore#//treeproxy">
+ <genClasses image="false" ecoreClass="treeproxy-0.2.0.ecore#//treeproxy/TreeElement">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference treeproxy-0.2.0.ecore#//treeproxy/TreeElement/parent"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference treeproxy-0.2.0.ecore#//treeproxy/TreeElement/children"/>
+ </genClasses>
+ <genClasses ecoreClass="treeproxy-0.2.0.ecore#//treeproxy/EObjectTreeElement">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true"
+ ecoreFeature="ecore:EReference treeproxy-0.2.0.ecore#//treeproxy/EObjectTreeElement/eObject"/>
+ </genClasses>
+ <genClasses ecoreClass="treeproxy-0.2.0.ecore#//treeproxy/EReferenceTreeElement">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true"
+ ecoreFeature="ecore:EReference treeproxy-0.2.0.ecore#//treeproxy/EReferenceTreeElement/eReference"/>
+ </genClasses>
+ <genClasses ecoreClass="treeproxy-0.2.0.ecore#//treeproxy/EAttributeTreeElement">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true"
+ ecoreFeature="ecore:EReference treeproxy-0.2.0.ecore#//treeproxy/EAttributeTreeElement/eAttribute"/>
+ </genClasses>
+ </nestedGenPackages>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/plugin.properties b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/plugin.properties
new file mode 100644
index 00000000000..452cfd25987
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/plugin.properties
@@ -0,0 +1,14 @@
+# Copyright (c) 2011 Mia-Software.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+#
+#
+
+pluginName = EMF Facet Custom Model (Incubation)
+providerName = Eclipse Modeling Project
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/plugin.xml b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/plugin.xml
new file mode 100644
index 00000000000..b96f245e349
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/plugin.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+Copyright (c) 2011 Mia-Software.
+
+All rights reserved. This program and the accompanying materials
+are made available under the terms of the Eclipse Public License v1.0
+which accompanies this distribution, and is available at
+http://www.eclipse.org/legal/epl-v10.html
+
+Contributors:
+ Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ David Couvrand (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ Nicolas Rault (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://www.eclipse.org/emf/facet/custom/0.2.incubation/custom"
+ class="org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage"
+ genModel="model/custom-0.2.0.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://www.eclipse.org/emf/facet/custom/0.2.incubation/custom_primitive_types"
+ class="org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.CustomptPackage"
+ genModel="model/custom_primitive_types-0.2.0.genmodel"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://www.eclipse.org/emf/facet/custom/0.3.incubation/query"
+ class="org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.QueryPackage"
+ genModel="model/query-0.3.0.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/custompt/IColor.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/custompt/IColor.java
new file mode 100644
index 00000000000..6029b9e3124
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/custompt/IColor.java
@@ -0,0 +1,23 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ */
+package org.eclipse.emf.facet.custom.metamodel.custompt;
+
+import java.io.Serializable;
+
+/**
+ * @noextend This interface is not intended to be extended by clients.
+ */
+public interface IColor extends Serializable {
+ int getRed();
+ int getGreen();
+ int getBlue();
+}
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/custompt/IImage.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/custompt/IImage.java
new file mode 100644
index 00000000000..c648830413e
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/custompt/IImage.java
@@ -0,0 +1,22 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ */
+package org.eclipse.emf.facet.custom.metamodel.custompt;
+
+import java.io.InputStream;
+import java.io.Serializable;
+
+/**
+ * @noextend This interface is not intended to be extended by clients.
+ */
+public interface IImage extends Serializable {
+ InputStream getInputStream();
+}
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/CustomFactory.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/CustomFactory.java
new file mode 100644
index 00000000000..b6fd21bdb92
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/CustomFactory.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom;
+
+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.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage
+ * @generated
+ */
+public interface CustomFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CustomFactory eINSTANCE = org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Customization</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Customization</em>'.
+ * @generated
+ */
+ Customization createCustomization();
+
+ /**
+ * Returns a new object of class '<em>EClass Customization</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>EClass Customization</em>'.
+ * @generated
+ */
+ EClassCustomization createEClassCustomization();
+
+ /**
+ * Returns a new object of class '<em>Facet Customization</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Facet Customization</em>'.
+ * @generated
+ */
+ FacetCustomization createFacetCustomization();
+
+ /**
+ * Returns a new object of class '<em>ETyped Element Switch Query</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>ETyped Element Switch Query</em>'.
+ * @generated
+ */
+ ETypedElementSwitchQuery createETypedElementSwitchQuery();
+
+ /**
+ * Returns a new object of class '<em>ETyped Element Case</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>ETyped Element Case</em>'.
+ * @generated
+ */
+ ETypedElementCase createETypedElementCase();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ CustomPackage getCustomPackage();
+
+} //CustomFactory
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/CustomPackage.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/CustomPackage.java
new file mode 100644
index 00000000000..de0bb817e37
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/CustomPackage.java
@@ -0,0 +1,793 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ * Gregoire Dupe (Mia-Software) - Bug 376576 - [EFacet] Change the multiplicity of Facet::extendedFacet
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom;
+
+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.facet.efacet.metamodel.v0_2_0.efacet.EFacetPackage;
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.ExtensiblePackage;
+
+/**
+ * <!-- 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.emf.facet.custom.metamodel.v0_2_0.custom.CustomFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface CustomPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "custom";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/emf/facet/custom/0.2.incubation/custom";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "custom";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CustomPackage eINSTANCE = org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomizationImpl <em>Customization</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomizationImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomPackageImpl#getCustomization()
+ * @generated
+ */
+ int CUSTOMIZATION = 0;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION__EANNOTATIONS = EFacetPackage.FACET_SET__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION__NAME = EFacetPackage.FACET_SET__NAME;
+
+ /**
+ * The feature id for the '<em><b>Ns URI</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION__NS_URI = EFacetPackage.FACET_SET__NS_URI;
+
+ /**
+ * The feature id for the '<em><b>Ns Prefix</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION__NS_PREFIX = EFacetPackage.FACET_SET__NS_PREFIX;
+
+ /**
+ * The feature id for the '<em><b>EFactory Instance</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION__EFACTORY_INSTANCE = EFacetPackage.FACET_SET__EFACTORY_INSTANCE;
+
+ /**
+ * The feature id for the '<em><b>EClassifiers</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION__ECLASSIFIERS = EFacetPackage.FACET_SET__ECLASSIFIERS;
+
+ /**
+ * The feature id for the '<em><b>ESubpackages</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION__ESUBPACKAGES = EFacetPackage.FACET_SET__ESUBPACKAGES;
+
+ /**
+ * The feature id for the '<em><b>ESuper Package</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION__ESUPER_PACKAGE = EFacetPackage.FACET_SET__ESUPER_PACKAGE;
+
+ /**
+ * The feature id for the '<em><b>Documentation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION__DOCUMENTATION = EFacetPackage.FACET_SET__DOCUMENTATION;
+
+ /**
+ * The feature id for the '<em><b>Categories</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION__CATEGORIES = EFacetPackage.FACET_SET__CATEGORIES;
+
+ /**
+ * The feature id for the '<em><b>Must Be Loaded By Default</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION__MUST_BE_LOADED_BY_DEFAULT = EFacetPackage.FACET_SET_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Customization</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION_FEATURE_COUNT = EFacetPackage.FACET_SET_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.EClassCustomizationImpl <em>EClass Customization</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.EClassCustomizationImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomPackageImpl#getEClassCustomization()
+ * @generated
+ */
+ int ECLASS_CUSTOMIZATION = 1;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLASS_CUSTOMIZATION__EANNOTATIONS = EFacetPackage.FACET__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLASS_CUSTOMIZATION__NAME = EFacetPackage.FACET__NAME;
+
+ /**
+ * The feature id for the '<em><b>Instance Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLASS_CUSTOMIZATION__INSTANCE_CLASS_NAME = EFacetPackage.FACET__INSTANCE_CLASS_NAME;
+
+ /**
+ * The feature id for the '<em><b>Instance Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLASS_CUSTOMIZATION__INSTANCE_CLASS = EFacetPackage.FACET__INSTANCE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Default Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLASS_CUSTOMIZATION__DEFAULT_VALUE = EFacetPackage.FACET__DEFAULT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Instance Type Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLASS_CUSTOMIZATION__INSTANCE_TYPE_NAME = EFacetPackage.FACET__INSTANCE_TYPE_NAME;
+
+ /**
+ * The feature id for the '<em><b>EPackage</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLASS_CUSTOMIZATION__EPACKAGE = EFacetPackage.FACET__EPACKAGE;
+
+ /**
+ * The feature id for the '<em><b>EType Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLASS_CUSTOMIZATION__ETYPE_PARAMETERS = EFacetPackage.FACET__ETYPE_PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Documentation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLASS_CUSTOMIZATION__DOCUMENTATION = EFacetPackage.FACET__DOCUMENTATION;
+
+ /**
+ * The feature id for the '<em><b>Extended Metaclass</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLASS_CUSTOMIZATION__EXTENDED_METACLASS = EFacetPackage.FACET__EXTENDED_METACLASS;
+
+ /**
+ * The feature id for the '<em><b>Facet Elements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLASS_CUSTOMIZATION__FACET_ELEMENTS = EFacetPackage.FACET__FACET_ELEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Facet Operations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLASS_CUSTOMIZATION__FACET_OPERATIONS = EFacetPackage.FACET__FACET_OPERATIONS;
+
+ /**
+ * The feature id for the '<em><b>Conformance Typed Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLASS_CUSTOMIZATION__CONFORMANCE_TYPED_ELEMENT = EFacetPackage.FACET__CONFORMANCE_TYPED_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Extended Facets</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ * @since 0.2
+ */
+ int ECLASS_CUSTOMIZATION__EXTENDED_FACETS = EFacetPackage.FACET__EXTENDED_FACETS;
+
+ /**
+ * The number of structural features of the '<em>EClass Customization</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLASS_CUSTOMIZATION_FEATURE_COUNT = EFacetPackage.FACET_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.FacetCustomizationImpl <em>Facet Customization</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.FacetCustomizationImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomPackageImpl#getFacetCustomization()
+ * @generated
+ */
+ int FACET_CUSTOMIZATION = 2;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACET_CUSTOMIZATION__EANNOTATIONS = EFacetPackage.FACET__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACET_CUSTOMIZATION__NAME = EFacetPackage.FACET__NAME;
+
+ /**
+ * The feature id for the '<em><b>Instance Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACET_CUSTOMIZATION__INSTANCE_CLASS_NAME = EFacetPackage.FACET__INSTANCE_CLASS_NAME;
+
+ /**
+ * The feature id for the '<em><b>Instance Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACET_CUSTOMIZATION__INSTANCE_CLASS = EFacetPackage.FACET__INSTANCE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Default Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACET_CUSTOMIZATION__DEFAULT_VALUE = EFacetPackage.FACET__DEFAULT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Instance Type Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACET_CUSTOMIZATION__INSTANCE_TYPE_NAME = EFacetPackage.FACET__INSTANCE_TYPE_NAME;
+
+ /**
+ * The feature id for the '<em><b>EPackage</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACET_CUSTOMIZATION__EPACKAGE = EFacetPackage.FACET__EPACKAGE;
+
+ /**
+ * The feature id for the '<em><b>EType Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACET_CUSTOMIZATION__ETYPE_PARAMETERS = EFacetPackage.FACET__ETYPE_PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Documentation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACET_CUSTOMIZATION__DOCUMENTATION = EFacetPackage.FACET__DOCUMENTATION;
+
+ /**
+ * The feature id for the '<em><b>Extended Metaclass</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACET_CUSTOMIZATION__EXTENDED_METACLASS = EFacetPackage.FACET__EXTENDED_METACLASS;
+
+ /**
+ * The feature id for the '<em><b>Facet Elements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACET_CUSTOMIZATION__FACET_ELEMENTS = EFacetPackage.FACET__FACET_ELEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Facet Operations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACET_CUSTOMIZATION__FACET_OPERATIONS = EFacetPackage.FACET__FACET_OPERATIONS;
+
+ /**
+ * The feature id for the '<em><b>Conformance Typed Element</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACET_CUSTOMIZATION__CONFORMANCE_TYPED_ELEMENT = EFacetPackage.FACET__CONFORMANCE_TYPED_ELEMENT;
+
+ /**
+ * The feature id for the '<em><b>Extended Facets</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ * @since 0.2
+ */
+ int FACET_CUSTOMIZATION__EXTENDED_FACETS = EFacetPackage.FACET__EXTENDED_FACETS;
+
+ /**
+ * The feature id for the '<em><b>Customized Facet</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACET_CUSTOMIZATION__CUSTOMIZED_FACET = EFacetPackage.FACET_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Facet Customization</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FACET_CUSTOMIZATION_FEATURE_COUNT = EFacetPackage.FACET_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.ETypedElementSwitchQueryImpl <em>ETyped Element Switch Query</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.ETypedElementSwitchQueryImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomPackageImpl#getETypedElementSwitchQuery()
+ * @generated
+ */
+ int ETYPED_ELEMENT_SWITCH_QUERY = 3;
+
+ /**
+ * The feature id for the '<em><b>Can Have Side Effects</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ETYPED_ELEMENT_SWITCH_QUERY__CAN_HAVE_SIDE_EFFECTS = ExtensiblePackage.QUERY__CAN_HAVE_SIDE_EFFECTS;
+
+ /**
+ * The feature id for the '<em><b>Can Be Cached</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ETYPED_ELEMENT_SWITCH_QUERY__CAN_BE_CACHED = ExtensiblePackage.QUERY__CAN_BE_CACHED;
+
+ /**
+ * The feature id for the '<em><b>Cases</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ETYPED_ELEMENT_SWITCH_QUERY__CASES = ExtensiblePackage.QUERY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>ETyped Element Switch Query</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ETYPED_ELEMENT_SWITCH_QUERY_FEATURE_COUNT = ExtensiblePackage.QUERY_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.ETypedElementCaseImpl <em>ETyped Element Case</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.ETypedElementCaseImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomPackageImpl#getETypedElementCase()
+ * @generated
+ */
+ int ETYPED_ELEMENT_CASE = 4;
+
+ /**
+ * The feature id for the '<em><b>Case</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ETYPED_ELEMENT_CASE__CASE = 0;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ETYPED_ELEMENT_CASE__VALUE = 1;
+
+ /**
+ * The number of structural features of the '<em>ETyped Element Case</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ETYPED_ELEMENT_CASE_FEATURE_COUNT = 2;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.Customization <em>Customization</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Customization</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.Customization
+ * @generated
+ */
+ EClass getCustomization();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.Customization#isMustBeLoadedByDefault <em>Must Be Loaded By Default</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Must Be Loaded By Default</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.Customization#isMustBeLoadedByDefault()
+ * @see #getCustomization()
+ * @generated
+ */
+ EAttribute getCustomization_MustBeLoadedByDefault();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.EClassCustomization <em>EClass Customization</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>EClass Customization</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.EClassCustomization
+ * @generated
+ */
+ EClass getEClassCustomization();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.FacetCustomization <em>Facet Customization</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Facet Customization</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.FacetCustomization
+ * @generated
+ */
+ EClass getFacetCustomization();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.FacetCustomization#getCustomizedFacet <em>Customized Facet</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Customized Facet</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.FacetCustomization#getCustomizedFacet()
+ * @see #getFacetCustomization()
+ * @generated
+ */
+ EReference getFacetCustomization_CustomizedFacet();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementSwitchQuery <em>ETyped Element Switch Query</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>ETyped Element Switch Query</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementSwitchQuery
+ * @generated
+ */
+ EClass getETypedElementSwitchQuery();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementSwitchQuery#getCases <em>Cases</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Cases</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementSwitchQuery#getCases()
+ * @see #getETypedElementSwitchQuery()
+ * @generated
+ */
+ EReference getETypedElementSwitchQuery_Cases();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementCase <em>ETyped Element Case</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>ETyped Element Case</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementCase
+ * @generated
+ */
+ EClass getETypedElementCase();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementCase#getCase <em>Case</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Case</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementCase#getCase()
+ * @see #getETypedElementCase()
+ * @generated
+ */
+ EReference getETypedElementCase_Case();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementCase#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Value</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementCase#getValue()
+ * @see #getETypedElementCase()
+ * @generated
+ */
+ EReference getETypedElementCase_Value();
+
+ /**
+ * 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
+ */
+ CustomFactory getCustomFactory();
+
+ /**
+ * <!-- 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.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomizationImpl <em>Customization</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomizationImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomPackageImpl#getCustomization()
+ * @generated
+ */
+ EClass CUSTOMIZATION = eINSTANCE.getCustomization();
+
+ /**
+ * The meta object literal for the '<em><b>Must Be Loaded By Default</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CUSTOMIZATION__MUST_BE_LOADED_BY_DEFAULT = eINSTANCE.getCustomization_MustBeLoadedByDefault();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.EClassCustomizationImpl <em>EClass Customization</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.EClassCustomizationImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomPackageImpl#getEClassCustomization()
+ * @generated
+ */
+ EClass ECLASS_CUSTOMIZATION = eINSTANCE.getEClassCustomization();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.FacetCustomizationImpl <em>Facet Customization</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.FacetCustomizationImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomPackageImpl#getFacetCustomization()
+ * @generated
+ */
+ EClass FACET_CUSTOMIZATION = eINSTANCE.getFacetCustomization();
+
+ /**
+ * The meta object literal for the '<em><b>Customized Facet</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FACET_CUSTOMIZATION__CUSTOMIZED_FACET = eINSTANCE.getFacetCustomization_CustomizedFacet();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.ETypedElementSwitchQueryImpl <em>ETyped Element Switch Query</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.ETypedElementSwitchQueryImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomPackageImpl#getETypedElementSwitchQuery()
+ * @generated
+ */
+ EClass ETYPED_ELEMENT_SWITCH_QUERY = eINSTANCE.getETypedElementSwitchQuery();
+
+ /**
+ * The meta object literal for the '<em><b>Cases</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ETYPED_ELEMENT_SWITCH_QUERY__CASES = eINSTANCE.getETypedElementSwitchQuery_Cases();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.ETypedElementCaseImpl <em>ETyped Element Case</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.ETypedElementCaseImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomPackageImpl#getETypedElementCase()
+ * @generated
+ */
+ EClass ETYPED_ELEMENT_CASE = eINSTANCE.getETypedElementCase();
+
+ /**
+ * The meta object literal for the '<em><b>Case</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ETYPED_ELEMENT_CASE__CASE = eINSTANCE.getETypedElementCase_Case();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ETYPED_ELEMENT_CASE__VALUE = eINSTANCE.getETypedElementCase_Value();
+
+ }
+
+} //CustomPackage
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/Customization.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/Customization.java
new file mode 100644
index 00000000000..5a6305561de
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/Customization.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.FacetSet;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Customization</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * The customization model element is the root of a customization model. A customization is applied to only one ePackage and contains EClassCustomizations.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.Customization#isMustBeLoadedByDefault <em>Must Be Loaded By Default</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage#getCustomization()
+ * @model
+ * @generated
+ */
+public interface Customization extends FacetSet {
+ /**
+ * Returns the value of the '<em><b>Must Be Loaded By Default</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * When Customization::mustBeloadedByDefault is true, the customization will be automatically loaded in the customizable model browsers.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Must Be Loaded By Default</em>' attribute.
+ * @see #setMustBeLoadedByDefault(boolean)
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage#getCustomization_MustBeLoadedByDefault()
+ * @model default="false" required="true"
+ * @generated
+ */
+ boolean isMustBeLoadedByDefault();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.Customization#isMustBeLoadedByDefault <em>Must Be Loaded By Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Must Be Loaded By Default</em>' attribute.
+ * @see #isMustBeLoadedByDefault()
+ * @generated
+ */
+ void setMustBeLoadedByDefault(boolean value);
+
+} // Customization
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/EClassCustomization.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/EClassCustomization.java
new file mode 100644
index 00000000000..9c23666540b
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/EClassCustomization.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.Facet;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>EClass Customization</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * An EClassCustomization contains the customization for an EClass. There must not exist two EClassCustomizations customizing the same EClass in the same customization.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage#getEClassCustomization()
+ * @model
+ * @generated
+ */
+public interface EClassCustomization extends Facet {
+} // EClassCustomization
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/ETypedElementCase.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/ETypedElementCase.java
new file mode 100644
index 00000000000..1673f9880f1
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/ETypedElementCase.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.ETypedElement;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.Query;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>ETyped Element Case</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Case part of the ETypedElementSwitchQuery.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementCase#getCase <em>Case</em>}</li>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementCase#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage#getETypedElementCase()
+ * @model
+ * @generated
+ */
+public interface ETypedElementCase extends EObject {
+ /**
+ * Returns the value of the '<em><b>Case</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Case</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Case</em>' reference.
+ * @see #setCase(ETypedElement)
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage#getETypedElementCase_Case()
+ * @model required="true"
+ * @generated
+ */
+ ETypedElement getCase();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementCase#getCase <em>Case</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Case</em>' reference.
+ * @see #getCase()
+ * @generated
+ */
+ void setCase(ETypedElement value);
+
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</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>Value</em>' containment reference.
+ * @see #setValue(Query)
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage#getETypedElementCase_Value()
+ * @model containment="true"
+ * @generated
+ */
+ Query getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementCase#getValue <em>Value</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' containment reference.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(Query value);
+
+} // ETypedElementCase
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/ETypedElementSwitchQuery.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/ETypedElementSwitchQuery.java
new file mode 100644
index 00000000000..0649aa741ab
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/ETypedElementSwitchQuery.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.Query;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>ETyped Element Switch Query</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * This query can return a value depending of an instance of ETypedElement. This query is dedicated to the definition of customizations.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementSwitchQuery#getCases <em>Cases</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage#getETypedElementSwitchQuery()
+ * @model
+ * @generated
+ */
+public interface ETypedElementSwitchQuery extends Query {
+ /**
+ * Returns the value of the '<em><b>Cases</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementCase}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cases</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>Cases</em>' containment reference list.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage#getETypedElementSwitchQuery_Cases()
+ * @model containment="true"
+ * @generated
+ */
+ EList<ETypedElementCase> getCases();
+
+} // ETypedElementSwitchQuery
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/FacetCustomization.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/FacetCustomization.java
new file mode 100644
index 00000000000..215dc039753
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/FacetCustomization.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.Facet;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Facet Customization</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A FacetCustomization contains the customization for a Facet. There must not exist two FacetCustomizations customizing the same facet in the same customization.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.FacetCustomization#getCustomizedFacet <em>Customized Facet</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage#getFacetCustomization()
+ * @model
+ * @generated
+ */
+public interface FacetCustomization extends Facet {
+ /**
+ * Returns the value of the '<em><b>Customized Facet</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Customized Facet</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Customized Facet</em>' reference.
+ * @see #setCustomizedFacet(Facet)
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage#getFacetCustomization_CustomizedFacet()
+ * @model required="true"
+ * @generated
+ */
+ Facet getCustomizedFacet();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.FacetCustomization#getCustomizedFacet <em>Customized Facet</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Customized Facet</em>' reference.
+ * @see #getCustomizedFacet()
+ * @generated
+ */
+ void setCustomizedFacet(Facet value);
+
+} // FacetCustomization
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/CustomFactoryImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/CustomFactoryImpl.java
new file mode 100644
index 00000000000..5fbe48d5931
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/CustomFactoryImpl.java
@@ -0,0 +1,150 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.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.emf.facet.custom.metamodel.v0_2_0.custom.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CustomFactoryImpl extends EFactoryImpl implements CustomFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CustomFactory init() {
+ try {
+ CustomFactory theCustomFactory = (CustomFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/emf/facet/custom/0.2.incubation/custom");
+ if (theCustomFactory != null) {
+ return theCustomFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new CustomFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case CustomPackage.CUSTOMIZATION: return createCustomization();
+ case CustomPackage.ECLASS_CUSTOMIZATION: return createEClassCustomization();
+ case CustomPackage.FACET_CUSTOMIZATION: return createFacetCustomization();
+ case CustomPackage.ETYPED_ELEMENT_SWITCH_QUERY: return createETypedElementSwitchQuery();
+ case CustomPackage.ETYPED_ELEMENT_CASE: return createETypedElementCase();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Customization createCustomization() {
+ CustomizationImpl customization = new CustomizationImpl();
+ return customization;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClassCustomization createEClassCustomization() {
+ EClassCustomizationImpl eClassCustomization = new EClassCustomizationImpl();
+ return eClassCustomization;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FacetCustomization createFacetCustomization() {
+ FacetCustomizationImpl facetCustomization = new FacetCustomizationImpl();
+ return facetCustomization;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ETypedElementSwitchQuery createETypedElementSwitchQuery() {
+ ETypedElementSwitchQueryImpl eTypedElementSwitchQuery = new ETypedElementSwitchQueryImpl();
+ return eTypedElementSwitchQuery;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ETypedElementCase createETypedElementCase() {
+ ETypedElementCaseImpl eTypedElementCase = new ETypedElementCaseImpl();
+ return eTypedElementCase;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomPackage getCustomPackage() {
+ return (CustomPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static CustomPackage getPackage() {
+ return CustomPackage.eINSTANCE;
+ }
+
+} //CustomFactoryImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/CustomPackageImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/CustomPackageImpl.java
new file mode 100644
index 00000000000..3f70042ffc9
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/CustomPackageImpl.java
@@ -0,0 +1,332 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomFactory;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.Customization;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.EClassCustomization;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementCase;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementSwitchQuery;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.FacetCustomization;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.EFacetPackage;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.ExtensiblePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CustomPackageImpl extends EPackageImpl implements CustomPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass customizationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eClassCustomizationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass facetCustomizationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eTypedElementSwitchQueryEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eTypedElementCaseEClass = 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.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private CustomPackageImpl() {
+ super(eNS_URI, CustomFactory.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 CustomPackage#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 CustomPackage init() {
+ if (isInited) return (CustomPackage)EPackage.Registry.INSTANCE.getEPackage(CustomPackage.eNS_URI);
+
+ // Obtain or create and register package
+ CustomPackageImpl theCustomPackage = (CustomPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof CustomPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new CustomPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EFacetPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theCustomPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theCustomPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theCustomPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(CustomPackage.eNS_URI, theCustomPackage);
+ return theCustomPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCustomization() {
+ return customizationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCustomization_MustBeLoadedByDefault() {
+ return (EAttribute)customizationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEClassCustomization() {
+ return eClassCustomizationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFacetCustomization() {
+ return facetCustomizationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFacetCustomization_CustomizedFacet() {
+ return (EReference)facetCustomizationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getETypedElementSwitchQuery() {
+ return eTypedElementSwitchQueryEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getETypedElementSwitchQuery_Cases() {
+ return (EReference)eTypedElementSwitchQueryEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getETypedElementCase() {
+ return eTypedElementCaseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getETypedElementCase_Case() {
+ return (EReference)eTypedElementCaseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getETypedElementCase_Value() {
+ return (EReference)eTypedElementCaseEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomFactory getCustomFactory() {
+ return (CustomFactory)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
+ customizationEClass = createEClass(CUSTOMIZATION);
+ createEAttribute(customizationEClass, CUSTOMIZATION__MUST_BE_LOADED_BY_DEFAULT);
+
+ eClassCustomizationEClass = createEClass(ECLASS_CUSTOMIZATION);
+
+ facetCustomizationEClass = createEClass(FACET_CUSTOMIZATION);
+ createEReference(facetCustomizationEClass, FACET_CUSTOMIZATION__CUSTOMIZED_FACET);
+
+ eTypedElementSwitchQueryEClass = createEClass(ETYPED_ELEMENT_SWITCH_QUERY);
+ createEReference(eTypedElementSwitchQueryEClass, ETYPED_ELEMENT_SWITCH_QUERY__CASES);
+
+ eTypedElementCaseEClass = createEClass(ETYPED_ELEMENT_CASE);
+ createEReference(eTypedElementCaseEClass, ETYPED_ELEMENT_CASE__CASE);
+ createEReference(eTypedElementCaseEClass, ETYPED_ELEMENT_CASE__VALUE);
+ }
+
+ /**
+ * <!-- 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
+ EFacetPackage theEFacetPackage = (EFacetPackage)EPackage.Registry.INSTANCE.getEPackage(EFacetPackage.eNS_URI);
+ ExtensiblePackage theExtensiblePackage = (ExtensiblePackage)EPackage.Registry.INSTANCE.getEPackage(ExtensiblePackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ customizationEClass.getESuperTypes().add(theEFacetPackage.getFacetSet());
+ eClassCustomizationEClass.getESuperTypes().add(theEFacetPackage.getFacet());
+ facetCustomizationEClass.getESuperTypes().add(theEFacetPackage.getFacet());
+ eTypedElementSwitchQueryEClass.getESuperTypes().add(theExtensiblePackage.getQuery());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(customizationEClass, Customization.class, "Customization", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCustomization_MustBeLoadedByDefault(), ecorePackage.getEBoolean(), "mustBeLoadedByDefault", "false", 1, 1, Customization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(eClassCustomizationEClass, EClassCustomization.class, "EClassCustomization", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(facetCustomizationEClass, FacetCustomization.class, "FacetCustomization", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFacetCustomization_CustomizedFacet(), theEFacetPackage.getFacet(), null, "customizedFacet", null, 1, 1, FacetCustomization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(eTypedElementSwitchQueryEClass, ETypedElementSwitchQuery.class, "ETypedElementSwitchQuery", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getETypedElementSwitchQuery_Cases(), this.getETypedElementCase(), null, "cases", null, 0, -1, ETypedElementSwitchQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(eTypedElementCaseEClass, ETypedElementCase.class, "ETypedElementCase", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getETypedElementCase_Case(), ecorePackage.getETypedElement(), null, "case", null, 1, 1, ETypedElementCase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getETypedElementCase_Value(), theExtensiblePackage.getQuery(), null, "value", null, 0, 1, ETypedElementCase.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);
+ }
+
+} //CustomPackageImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/CustomizationImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/CustomizationImpl.java
new file mode 100644
index 00000000000..e29bc2a5ac7
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/CustomizationImpl.java
@@ -0,0 +1,175 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.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.facet.custom.metamodel.v0_2_0.custom.CustomPackage;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.Customization;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.impl.FacetSetImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Customization</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.CustomizationImpl#isMustBeLoadedByDefault <em>Must Be Loaded By Default</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CustomizationImpl extends FacetSetImpl implements Customization {
+ /**
+ * The default value of the '{@link #isMustBeLoadedByDefault() <em>Must Be Loaded By Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMustBeLoadedByDefault()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean MUST_BE_LOADED_BY_DEFAULT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isMustBeLoadedByDefault() <em>Must Be Loaded By Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMustBeLoadedByDefault()
+ * @generated
+ * @ordered
+ */
+ protected boolean mustBeLoadedByDefault = MUST_BE_LOADED_BY_DEFAULT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CustomizationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CustomPackage.Literals.CUSTOMIZATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isMustBeLoadedByDefault() {
+ return mustBeLoadedByDefault;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMustBeLoadedByDefault(boolean newMustBeLoadedByDefault) {
+ boolean oldMustBeLoadedByDefault = mustBeLoadedByDefault;
+ mustBeLoadedByDefault = newMustBeLoadedByDefault;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomPackage.CUSTOMIZATION__MUST_BE_LOADED_BY_DEFAULT, oldMustBeLoadedByDefault, mustBeLoadedByDefault));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CustomPackage.CUSTOMIZATION__MUST_BE_LOADED_BY_DEFAULT:
+ return isMustBeLoadedByDefault();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CustomPackage.CUSTOMIZATION__MUST_BE_LOADED_BY_DEFAULT:
+ setMustBeLoadedByDefault((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CustomPackage.CUSTOMIZATION__MUST_BE_LOADED_BY_DEFAULT:
+ setMustBeLoadedByDefault(MUST_BE_LOADED_BY_DEFAULT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CustomPackage.CUSTOMIZATION__MUST_BE_LOADED_BY_DEFAULT:
+ return mustBeLoadedByDefault != MUST_BE_LOADED_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(" (mustBeLoadedByDefault: ");
+ result.append(mustBeLoadedByDefault);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CustomizationImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/EClassCustomizationImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/EClassCustomizationImpl.java
new file mode 100644
index 00000000000..d47b9170af7
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/EClassCustomizationImpl.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.EClassCustomization;
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.impl.FacetImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>EClass Customization</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class EClassCustomizationImpl extends FacetImpl implements EClassCustomization {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClassCustomizationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CustomPackage.Literals.ECLASS_CUSTOMIZATION;
+ }
+
+} //EClassCustomizationImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/ETypedElementCaseImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/ETypedElementCaseImpl.java
new file mode 100644
index 00000000000..5c4c0d9a335
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/ETypedElementCaseImpl.java
@@ -0,0 +1,249 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.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.ETypedElement;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementCase;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.Query;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>ETyped Element Case</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.ETypedElementCaseImpl#getCase <em>Case</em>}</li>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.ETypedElementCaseImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ETypedElementCaseImpl extends EObjectImpl implements ETypedElementCase {
+ /**
+ * The cached value of the '{@link #getCase() <em>Case</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCase()
+ * @generated
+ * @ordered
+ */
+ protected ETypedElement case_;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected Query value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ETypedElementCaseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CustomPackage.Literals.ETYPED_ELEMENT_CASE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ETypedElement getCase() {
+ if (case_ != null && case_.eIsProxy()) {
+ InternalEObject oldCase = (InternalEObject)case_;
+ case_ = (ETypedElement)eResolveProxy(oldCase);
+ if (case_ != oldCase) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, CustomPackage.ETYPED_ELEMENT_CASE__CASE, oldCase, case_));
+ }
+ }
+ return case_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ETypedElement basicGetCase() {
+ return case_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCase(ETypedElement newCase) {
+ ETypedElement oldCase = case_;
+ case_ = newCase;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomPackage.ETYPED_ELEMENT_CASE__CASE, oldCase, case_));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Query getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetValue(Query newValue, NotificationChain msgs) {
+ Query oldValue = value;
+ value = newValue;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, CustomPackage.ETYPED_ELEMENT_CASE__VALUE, oldValue, newValue);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(Query newValue) {
+ if (newValue != value) {
+ NotificationChain msgs = null;
+ if (value != null)
+ msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - CustomPackage.ETYPED_ELEMENT_CASE__VALUE, null, msgs);
+ if (newValue != null)
+ msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - CustomPackage.ETYPED_ELEMENT_CASE__VALUE, null, msgs);
+ msgs = basicSetValue(newValue, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomPackage.ETYPED_ELEMENT_CASE__VALUE, newValue, newValue));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case CustomPackage.ETYPED_ELEMENT_CASE__VALUE:
+ return basicSetValue(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 CustomPackage.ETYPED_ELEMENT_CASE__CASE:
+ if (resolve) return getCase();
+ return basicGetCase();
+ case CustomPackage.ETYPED_ELEMENT_CASE__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CustomPackage.ETYPED_ELEMENT_CASE__CASE:
+ setCase((ETypedElement)newValue);
+ return;
+ case CustomPackage.ETYPED_ELEMENT_CASE__VALUE:
+ setValue((Query)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CustomPackage.ETYPED_ELEMENT_CASE__CASE:
+ setCase((ETypedElement)null);
+ return;
+ case CustomPackage.ETYPED_ELEMENT_CASE__VALUE:
+ setValue((Query)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CustomPackage.ETYPED_ELEMENT_CASE__CASE:
+ return case_ != null;
+ case CustomPackage.ETYPED_ELEMENT_CASE__VALUE:
+ return value != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ETypedElementCaseImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/ETypedElementSwitchQueryImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/ETypedElementSwitchQueryImpl.java
new file mode 100644
index 00000000000..effa40a613a
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/ETypedElementSwitchQueryImpl.java
@@ -0,0 +1,163 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.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.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementCase;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementSwitchQuery;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.impl.QueryImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>ETyped Element Switch Query</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.ETypedElementSwitchQueryImpl#getCases <em>Cases</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ETypedElementSwitchQueryImpl extends QueryImpl implements ETypedElementSwitchQuery {
+ /**
+ * The cached value of the '{@link #getCases() <em>Cases</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCases()
+ * @generated
+ * @ordered
+ */
+ protected EList<ETypedElementCase> cases;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ETypedElementSwitchQueryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CustomPackage.Literals.ETYPED_ELEMENT_SWITCH_QUERY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ETypedElementCase> getCases() {
+ if (cases == null) {
+ cases = new EObjectContainmentEList<ETypedElementCase>(ETypedElementCase.class, this, CustomPackage.ETYPED_ELEMENT_SWITCH_QUERY__CASES);
+ }
+ return cases;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case CustomPackage.ETYPED_ELEMENT_SWITCH_QUERY__CASES:
+ return ((InternalEList<?>)getCases()).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 CustomPackage.ETYPED_ELEMENT_SWITCH_QUERY__CASES:
+ return getCases();
+ }
+ 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 CustomPackage.ETYPED_ELEMENT_SWITCH_QUERY__CASES:
+ getCases().clear();
+ getCases().addAll((Collection<? extends ETypedElementCase>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CustomPackage.ETYPED_ELEMENT_SWITCH_QUERY__CASES:
+ getCases().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CustomPackage.ETYPED_ELEMENT_SWITCH_QUERY__CASES:
+ return cases != null && !cases.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ETypedElementSwitchQueryImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/FacetCustomizationImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/FacetCustomizationImpl.java
new file mode 100644
index 00000000000..26bdfe42280
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/impl/FacetCustomizationImpl.java
@@ -0,0 +1,170 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.FacetCustomization;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.Facet;
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.impl.FacetImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Facet Customization</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.impl.FacetCustomizationImpl#getCustomizedFacet <em>Customized Facet</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FacetCustomizationImpl extends FacetImpl implements FacetCustomization {
+ /**
+ * The cached value of the '{@link #getCustomizedFacet() <em>Customized Facet</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCustomizedFacet()
+ * @generated
+ * @ordered
+ */
+ protected Facet customizedFacet;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FacetCustomizationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CustomPackage.Literals.FACET_CUSTOMIZATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Facet getCustomizedFacet() {
+ if (customizedFacet != null && customizedFacet.eIsProxy()) {
+ InternalEObject oldCustomizedFacet = (InternalEObject)customizedFacet;
+ customizedFacet = (Facet)eResolveProxy(oldCustomizedFacet);
+ if (customizedFacet != oldCustomizedFacet) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, CustomPackage.FACET_CUSTOMIZATION__CUSTOMIZED_FACET, oldCustomizedFacet, customizedFacet));
+ }
+ }
+ return customizedFacet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Facet basicGetCustomizedFacet() {
+ return customizedFacet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCustomizedFacet(Facet newCustomizedFacet) {
+ Facet oldCustomizedFacet = customizedFacet;
+ customizedFacet = newCustomizedFacet;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomPackage.FACET_CUSTOMIZATION__CUSTOMIZED_FACET, oldCustomizedFacet, customizedFacet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CustomPackage.FACET_CUSTOMIZATION__CUSTOMIZED_FACET:
+ if (resolve) return getCustomizedFacet();
+ return basicGetCustomizedFacet();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CustomPackage.FACET_CUSTOMIZATION__CUSTOMIZED_FACET:
+ setCustomizedFacet((Facet)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CustomPackage.FACET_CUSTOMIZATION__CUSTOMIZED_FACET:
+ setCustomizedFacet((Facet)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CustomPackage.FACET_CUSTOMIZATION__CUSTOMIZED_FACET:
+ return customizedFacet != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //FacetCustomizationImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/util/CustomAdapterFactory.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/util/CustomAdapterFactory.java
new file mode 100644
index 00000000000..39a08b43fec
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/util/CustomAdapterFactory.java
@@ -0,0 +1,357 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.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.EClassifier;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.*;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.DocumentedElement;
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.Facet;
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.FacetSet;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.Query;
+
+/**
+ * <!-- 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.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage
+ * @generated
+ */
+public class CustomAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static CustomPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = CustomPackage.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 CustomSwitch<Adapter> modelSwitch =
+ new CustomSwitch<Adapter>() {
+ @Override
+ public Adapter caseCustomization(Customization object) {
+ return createCustomizationAdapter();
+ }
+ @Override
+ public Adapter caseEClassCustomization(EClassCustomization object) {
+ return createEClassCustomizationAdapter();
+ }
+ @Override
+ public Adapter caseFacetCustomization(FacetCustomization object) {
+ return createFacetCustomizationAdapter();
+ }
+ @Override
+ public Adapter caseETypedElementSwitchQuery(ETypedElementSwitchQuery object) {
+ return createETypedElementSwitchQueryAdapter();
+ }
+ @Override
+ public Adapter caseETypedElementCase(ETypedElementCase object) {
+ return createETypedElementCaseAdapter();
+ }
+ @Override
+ public Adapter caseEModelElement(EModelElement object) {
+ return createEModelElementAdapter();
+ }
+ @Override
+ public Adapter caseENamedElement(ENamedElement object) {
+ return createENamedElementAdapter();
+ }
+ @Override
+ public Adapter caseEPackage(EPackage object) {
+ return createEPackageAdapter();
+ }
+ @Override
+ public Adapter caseDocumentedElement(DocumentedElement object) {
+ return createDocumentedElementAdapter();
+ }
+ @Override
+ public Adapter caseFacetSet(FacetSet object) {
+ return createFacetSetAdapter();
+ }
+ @Override
+ public Adapter caseEClassifier(EClassifier object) {
+ return createEClassifierAdapter();
+ }
+ @Override
+ public Adapter caseFacet(Facet object) {
+ return createFacetAdapter();
+ }
+ @Override
+ public Adapter caseQuery(Query object) {
+ return createQueryAdapter();
+ }
+ @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.emf.facet.custom.metamodel.v0_2_0.custom.Customization <em>Customization</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.Customization
+ * @generated
+ */
+ public Adapter createCustomizationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.EClassCustomization <em>EClass Customization</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.EClassCustomization
+ * @generated
+ */
+ public Adapter createEClassCustomizationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.FacetCustomization <em>Facet Customization</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.FacetCustomization
+ * @generated
+ */
+ public Adapter createFacetCustomizationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementSwitchQuery <em>ETyped Element Switch Query</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementSwitchQuery
+ * @generated
+ */
+ public Adapter createETypedElementSwitchQueryAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementCase <em>ETyped Element Case</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.ETypedElementCase
+ * @generated
+ */
+ public Adapter createETypedElementCaseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement <em>EModel Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.ecore.EModelElement
+ * @generated
+ */
+ public Adapter createEModelElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.ENamedElement <em>ENamed Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.ecore.ENamedElement
+ * @generated
+ */
+ public Adapter createENamedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EPackage <em>EPackage</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.ecore.EPackage
+ * @generated
+ */
+ public Adapter createEPackageAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.DocumentedElement <em>Documented Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.DocumentedElement
+ * @generated
+ */
+ public Adapter createDocumentedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.FacetSet <em>Facet Set</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.FacetSet
+ * @generated
+ */
+ public Adapter createFacetSetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EClassifier <em>EClassifier</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.ecore.EClassifier
+ * @generated
+ */
+ public Adapter createEClassifierAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.Facet <em>Facet</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.Facet
+ * @generated
+ */
+ public Adapter createFacetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.Query <em>Query</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.Query
+ * @generated
+ */
+ public Adapter createQueryAdapter() {
+ 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;
+ }
+
+} //CustomAdapterFactory
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/util/CustomSwitch.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/util/CustomSwitch.java
new file mode 100644
index 00000000000..3d24474cbf3
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custom/util/CustomSwitch.java
@@ -0,0 +1,367 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 369987 - [Restructuring][Table] Switch to the new customization and facet framework
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custom.*;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.DocumentedElement;
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.Facet;
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.FacetSet;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.Query;
+
+/**
+ * <!-- 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.emf.facet.custom.metamodel.v0_2_0.custom.CustomPackage
+ * @generated
+ */
+public class CustomSwitch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static CustomPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomSwitch() {
+ if (modelPackage == null) {
+ modelPackage = CustomPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public T doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case CustomPackage.CUSTOMIZATION: {
+ Customization customization = (Customization)theEObject;
+ T result = caseCustomization(customization);
+ if (result == null) result = caseFacetSet(customization);
+ if (result == null) result = caseEPackage(customization);
+ if (result == null) result = caseDocumentedElement(customization);
+ if (result == null) result = caseENamedElement(customization);
+ if (result == null) result = caseEModelElement(customization);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CustomPackage.ECLASS_CUSTOMIZATION: {
+ EClassCustomization eClassCustomization = (EClassCustomization)theEObject;
+ T result = caseEClassCustomization(eClassCustomization);
+ if (result == null) result = caseFacet(eClassCustomization);
+ if (result == null) result = caseEClassifier(eClassCustomization);
+ if (result == null) result = caseDocumentedElement(eClassCustomization);
+ if (result == null) result = caseENamedElement(eClassCustomization);
+ if (result == null) result = caseEModelElement(eClassCustomization);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CustomPackage.FACET_CUSTOMIZATION: {
+ FacetCustomization facetCustomization = (FacetCustomization)theEObject;
+ T result = caseFacetCustomization(facetCustomization);
+ if (result == null) result = caseFacet(facetCustomization);
+ if (result == null) result = caseEClassifier(facetCustomization);
+ if (result == null) result = caseDocumentedElement(facetCustomization);
+ if (result == null) result = caseENamedElement(facetCustomization);
+ if (result == null) result = caseEModelElement(facetCustomization);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CustomPackage.ETYPED_ELEMENT_SWITCH_QUERY: {
+ ETypedElementSwitchQuery eTypedElementSwitchQuery = (ETypedElementSwitchQuery)theEObject;
+ T result = caseETypedElementSwitchQuery(eTypedElementSwitchQuery);
+ if (result == null) result = caseQuery(eTypedElementSwitchQuery);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CustomPackage.ETYPED_ELEMENT_CASE: {
+ ETypedElementCase eTypedElementCase = (ETypedElementCase)theEObject;
+ T result = caseETypedElementCase(eTypedElementCase);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Customization</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>Customization</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCustomization(Customization object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EClass Customization</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>EClass Customization</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEClassCustomization(EClassCustomization object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Facet Customization</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>Facet Customization</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFacetCustomization(FacetCustomization object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>ETyped Element Switch Query</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>ETyped Element Switch Query</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseETypedElementSwitchQuery(ETypedElementSwitchQuery object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>ETyped Element Case</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>ETyped Element Case</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseETypedElementCase(ETypedElementCase object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEModelElement(EModelElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>ENamed 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>ENamed Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseENamedElement(ENamedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EPackage</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>EPackage</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEPackage(EPackage object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Documented 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>Documented Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDocumentedElement(DocumentedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Facet Set</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>Facet Set</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFacetSet(FacetSet object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EClassifier</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>EClassifier</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEClassifier(EClassifier object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Facet</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>Facet</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFacet(Facet object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Query</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>Query</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseQuery(Query object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //CustomSwitch
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/CustomizationCatalog.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/CustomizationCatalog.java
new file mode 100644
index 00000000000..1dd58ab5fab
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/CustomizationCatalog.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ *
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog;
+
+import org.eclipse.emf.facet.util.emf.catalog.Catalog;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Customization Catalog</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationcatalogPackage#getCustomizationCatalog()
+ * @model
+ * @generated
+ */
+public interface CustomizationCatalog extends Catalog {
+} // CustomizationCatalog
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/CustomizationPropertiesCatalog.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/CustomizationPropertiesCatalog.java
new file mode 100644
index 00000000000..7f1c16c71c3
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/CustomizationPropertiesCatalog.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ *
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog;
+
+import org.eclipse.emf.facet.util.emf.catalog.Catalog;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Customization Properties Catalog</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationcatalogPackage#getCustomizationPropertiesCatalog()
+ * @model
+ * @generated
+ */
+public interface CustomizationPropertiesCatalog extends Catalog {
+} // CustomizationPropertiesCatalog
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/CustomizationcatalogFactory.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/CustomizationcatalogFactory.java
new file mode 100644
index 00000000000..8d37784c241
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/CustomizationcatalogFactory.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ *
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog;
+
+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.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationcatalogPackage
+ * @generated
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface CustomizationcatalogFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CustomizationcatalogFactory eINSTANCE = org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationcatalogFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Customization Catalog</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Customization Catalog</em>'.
+ * @generated
+ */
+ CustomizationCatalog createCustomizationCatalog();
+
+ /**
+ * Returns a new object of class '<em>Customization Properties Catalog</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Customization Properties Catalog</em>'.
+ * @generated
+ */
+ CustomizationPropertiesCatalog createCustomizationPropertiesCatalog();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ CustomizationcatalogPackage getCustomizationcatalogPackage();
+
+} //CustomizationcatalogFactory
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/CustomizationcatalogPackage.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/CustomizationcatalogPackage.java
new file mode 100644
index 00000000000..df29ac6b4fc
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/CustomizationcatalogPackage.java
@@ -0,0 +1,209 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ *
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.facet.util.emf.catalog.CatalogPackage;
+
+/**
+ * <!-- 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.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationcatalogFactory
+ * @model kind="package"
+ * @generated
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface CustomizationcatalogPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "customizationcatalog";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/emf/facet/custom/0.2.internal/customizationcatalog";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "customizationcatalog";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CustomizationcatalogPackage eINSTANCE = org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationcatalogPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationCatalogImpl <em>Customization Catalog</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationCatalogImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationcatalogPackageImpl#getCustomizationCatalog()
+ * @generated
+ */
+ int CUSTOMIZATION_CATALOG = 0;
+
+ /**
+ * The feature id for the '<em><b>Installed Entries</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION_CATALOG__INSTALLED_ENTRIES = CatalogPackage.CATALOG__INSTALLED_ENTRIES;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION_CATALOG__NAME = CatalogPackage.CATALOG__NAME;
+
+ /**
+ * The number of structural features of the '<em>Customization Catalog</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION_CATALOG_FEATURE_COUNT = CatalogPackage.CATALOG_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationPropertiesCatalogImpl <em>Customization Properties Catalog</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationPropertiesCatalogImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationcatalogPackageImpl#getCustomizationPropertiesCatalog()
+ * @generated
+ */
+ int CUSTOMIZATION_PROPERTIES_CATALOG = 1;
+
+ /**
+ * The feature id for the '<em><b>Installed Entries</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION_PROPERTIES_CATALOG__INSTALLED_ENTRIES = CatalogPackage.CATALOG__INSTALLED_ENTRIES;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION_PROPERTIES_CATALOG__NAME = CatalogPackage.CATALOG__NAME;
+
+ /**
+ * The number of structural features of the '<em>Customization Properties Catalog</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION_PROPERTIES_CATALOG_FEATURE_COUNT = CatalogPackage.CATALOG_FEATURE_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationCatalog <em>Customization Catalog</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Customization Catalog</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationCatalog
+ * @generated
+ */
+ EClass getCustomizationCatalog();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationPropertiesCatalog <em>Customization Properties Catalog</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Customization Properties Catalog</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationPropertiesCatalog
+ * @generated
+ */
+ EClass getCustomizationPropertiesCatalog();
+
+ /**
+ * 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
+ */
+ CustomizationcatalogFactory getCustomizationcatalogFactory();
+
+ /**
+ * <!-- 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.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationCatalogImpl <em>Customization Catalog</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationCatalogImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationcatalogPackageImpl#getCustomizationCatalog()
+ * @generated
+ */
+ EClass CUSTOMIZATION_CATALOG = eINSTANCE.getCustomizationCatalog();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationPropertiesCatalogImpl <em>Customization Properties Catalog</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationPropertiesCatalogImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationcatalogPackageImpl#getCustomizationPropertiesCatalog()
+ * @generated
+ */
+ EClass CUSTOMIZATION_PROPERTIES_CATALOG = eINSTANCE.getCustomizationPropertiesCatalog();
+
+ }
+
+} //CustomizationcatalogPackage
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/impl/CustomizationCatalogImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/impl/CustomizationCatalogImpl.java
new file mode 100644
index 00000000000..1ea8e6a557d
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/impl/CustomizationCatalogImpl.java
@@ -0,0 +1,216 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ *
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.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.EObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationCatalog;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationcatalogPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Customization Catalog</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationCatalogImpl#getInstalledEntries <em>Installed Entries</em>}</li>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationCatalogImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CustomizationCatalogImpl extends EObjectImpl implements CustomizationCatalog {
+ /**
+ * The cached value of the '{@link #getInstalledEntries() <em>Installed Entries</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInstalledEntries()
+ * @generated
+ * @ordered
+ */
+ protected EList<EObject> installedEntries;
+
+ /**
+ * 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 CustomizationCatalogImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CustomizationcatalogPackage.Literals.CUSTOMIZATION_CATALOG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<EObject> getInstalledEntries() {
+ if (installedEntries == null) {
+ installedEntries = new EObjectResolvingEList<EObject>(EObject.class, this, CustomizationcatalogPackage.CUSTOMIZATION_CATALOG__INSTALLED_ENTRIES);
+ }
+ return installedEntries;
+ }
+
+ /**
+ * <!-- 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, CustomizationcatalogPackage.CUSTOMIZATION_CATALOG__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CustomizationcatalogPackage.CUSTOMIZATION_CATALOG__INSTALLED_ENTRIES:
+ return getInstalledEntries();
+ case CustomizationcatalogPackage.CUSTOMIZATION_CATALOG__NAME:
+ return getName();
+ }
+ 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 CustomizationcatalogPackage.CUSTOMIZATION_CATALOG__INSTALLED_ENTRIES:
+ getInstalledEntries().clear();
+ getInstalledEntries().addAll((Collection<? extends EObject>)newValue);
+ return;
+ case CustomizationcatalogPackage.CUSTOMIZATION_CATALOG__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 CustomizationcatalogPackage.CUSTOMIZATION_CATALOG__INSTALLED_ENTRIES:
+ getInstalledEntries().clear();
+ return;
+ case CustomizationcatalogPackage.CUSTOMIZATION_CATALOG__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CustomizationcatalogPackage.CUSTOMIZATION_CATALOG__INSTALLED_ENTRIES:
+ return installedEntries != null && !installedEntries.isEmpty();
+ case CustomizationcatalogPackage.CUSTOMIZATION_CATALOG__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();
+ }
+
+} //CustomizationCatalogImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/impl/CustomizationPropertiesCatalogImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/impl/CustomizationPropertiesCatalogImpl.java
new file mode 100644
index 00000000000..269b688a8af
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/impl/CustomizationPropertiesCatalogImpl.java
@@ -0,0 +1,216 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ *
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.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.EObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationPropertiesCatalog;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationcatalogPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Customization Properties Catalog</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationPropertiesCatalogImpl#getInstalledEntries <em>Installed Entries</em>}</li>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl.CustomizationPropertiesCatalogImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CustomizationPropertiesCatalogImpl extends EObjectImpl implements CustomizationPropertiesCatalog {
+ /**
+ * The cached value of the '{@link #getInstalledEntries() <em>Installed Entries</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInstalledEntries()
+ * @generated
+ * @ordered
+ */
+ protected EList<EObject> installedEntries;
+
+ /**
+ * 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 CustomizationPropertiesCatalogImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CustomizationcatalogPackage.Literals.CUSTOMIZATION_PROPERTIES_CATALOG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<EObject> getInstalledEntries() {
+ if (installedEntries == null) {
+ installedEntries = new EObjectResolvingEList<EObject>(EObject.class, this, CustomizationcatalogPackage.CUSTOMIZATION_PROPERTIES_CATALOG__INSTALLED_ENTRIES);
+ }
+ return installedEntries;
+ }
+
+ /**
+ * <!-- 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, CustomizationcatalogPackage.CUSTOMIZATION_PROPERTIES_CATALOG__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CustomizationcatalogPackage.CUSTOMIZATION_PROPERTIES_CATALOG__INSTALLED_ENTRIES:
+ return getInstalledEntries();
+ case CustomizationcatalogPackage.CUSTOMIZATION_PROPERTIES_CATALOG__NAME:
+ return getName();
+ }
+ 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 CustomizationcatalogPackage.CUSTOMIZATION_PROPERTIES_CATALOG__INSTALLED_ENTRIES:
+ getInstalledEntries().clear();
+ getInstalledEntries().addAll((Collection<? extends EObject>)newValue);
+ return;
+ case CustomizationcatalogPackage.CUSTOMIZATION_PROPERTIES_CATALOG__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 CustomizationcatalogPackage.CUSTOMIZATION_PROPERTIES_CATALOG__INSTALLED_ENTRIES:
+ getInstalledEntries().clear();
+ return;
+ case CustomizationcatalogPackage.CUSTOMIZATION_PROPERTIES_CATALOG__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CustomizationcatalogPackage.CUSTOMIZATION_PROPERTIES_CATALOG__INSTALLED_ENTRIES:
+ return installedEntries != null && !installedEntries.isEmpty();
+ case CustomizationcatalogPackage.CUSTOMIZATION_PROPERTIES_CATALOG__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();
+ }
+
+} //CustomizationPropertiesCatalogImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/impl/CustomizationcatalogFactoryImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/impl/CustomizationcatalogFactoryImpl.java
new file mode 100644
index 00000000000..50f57bda540
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/impl/CustomizationcatalogFactoryImpl.java
@@ -0,0 +1,117 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ *
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.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.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CustomizationcatalogFactoryImpl extends EFactoryImpl implements CustomizationcatalogFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CustomizationcatalogFactory init() {
+ try {
+ CustomizationcatalogFactory theCustomizationcatalogFactory = (CustomizationcatalogFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/emf/facet/custom/0.2.internal/customizationcatalog");
+ if (theCustomizationcatalogFactory != null) {
+ return theCustomizationcatalogFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new CustomizationcatalogFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomizationcatalogFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case CustomizationcatalogPackage.CUSTOMIZATION_CATALOG: return createCustomizationCatalog();
+ case CustomizationcatalogPackage.CUSTOMIZATION_PROPERTIES_CATALOG: return createCustomizationPropertiesCatalog();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomizationCatalog createCustomizationCatalog() {
+ CustomizationCatalogImpl customizationCatalog = new CustomizationCatalogImpl();
+ return customizationCatalog;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomizationPropertiesCatalog createCustomizationPropertiesCatalog() {
+ CustomizationPropertiesCatalogImpl customizationPropertiesCatalog = new CustomizationPropertiesCatalogImpl();
+ return customizationPropertiesCatalog;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomizationcatalogPackage getCustomizationcatalogPackage() {
+ return (CustomizationcatalogPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static CustomizationcatalogPackage getPackage() {
+ return CustomizationcatalogPackage.eINSTANCE;
+ }
+
+} //CustomizationcatalogFactoryImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/impl/CustomizationcatalogPackageImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/impl/CustomizationcatalogPackageImpl.java
new file mode 100644
index 00000000000..d9685b0daea
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/impl/CustomizationcatalogPackageImpl.java
@@ -0,0 +1,207 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ *
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationCatalog;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationPropertiesCatalog;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationcatalogFactory;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationcatalogPackage;
+
+import org.eclipse.emf.facet.util.emf.catalog.CatalogPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CustomizationcatalogPackageImpl extends EPackageImpl implements CustomizationcatalogPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass customizationCatalogEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass customizationPropertiesCatalogEClass = 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.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationcatalogPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private CustomizationcatalogPackageImpl() {
+ super(eNS_URI, CustomizationcatalogFactory.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 CustomizationcatalogPackage#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 CustomizationcatalogPackage init() {
+ if (isInited) return (CustomizationcatalogPackage)EPackage.Registry.INSTANCE.getEPackage(CustomizationcatalogPackage.eNS_URI);
+
+ // Obtain or create and register package
+ CustomizationcatalogPackageImpl theCustomizationcatalogPackage = (CustomizationcatalogPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof CustomizationcatalogPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new CustomizationcatalogPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ CatalogPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theCustomizationcatalogPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theCustomizationcatalogPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theCustomizationcatalogPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(CustomizationcatalogPackage.eNS_URI, theCustomizationcatalogPackage);
+ return theCustomizationcatalogPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCustomizationCatalog() {
+ return customizationCatalogEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCustomizationPropertiesCatalog() {
+ return customizationPropertiesCatalogEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomizationcatalogFactory getCustomizationcatalogFactory() {
+ return (CustomizationcatalogFactory)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
+ customizationCatalogEClass = createEClass(CUSTOMIZATION_CATALOG);
+
+ customizationPropertiesCatalogEClass = createEClass(CUSTOMIZATION_PROPERTIES_CATALOG);
+ }
+
+ /**
+ * <!-- 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
+ CatalogPackage theCatalogPackage = (CatalogPackage)EPackage.Registry.INSTANCE.getEPackage(CatalogPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ customizationCatalogEClass.getESuperTypes().add(theCatalogPackage.getCatalog());
+ customizationPropertiesCatalogEClass.getESuperTypes().add(theCatalogPackage.getCatalog());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(customizationCatalogEClass, CustomizationCatalog.class, "CustomizationCatalog", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(customizationPropertiesCatalogEClass, CustomizationPropertiesCatalog.class, "CustomizationPropertiesCatalog", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //CustomizationcatalogPackageImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/util/CustomizationcatalogAdapterFactory.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/util/CustomizationcatalogAdapterFactory.java
new file mode 100644
index 00000000000..f171fcc2332
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/util/CustomizationcatalogAdapterFactory.java
@@ -0,0 +1,169 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ *
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.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.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.*;
+
+import org.eclipse.emf.facet.util.emf.catalog.Catalog;
+
+/**
+ * <!-- 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.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationcatalogPackage
+ * @generated
+ */
+public class CustomizationcatalogAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static CustomizationcatalogPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomizationcatalogAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = CustomizationcatalogPackage.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 CustomizationcatalogSwitch<Adapter> modelSwitch =
+ new CustomizationcatalogSwitch<Adapter>() {
+ @Override
+ public Adapter caseCustomizationCatalog(CustomizationCatalog object) {
+ return createCustomizationCatalogAdapter();
+ }
+ @Override
+ public Adapter caseCustomizationPropertiesCatalog(CustomizationPropertiesCatalog object) {
+ return createCustomizationPropertiesCatalogAdapter();
+ }
+ @Override
+ public Adapter caseCatalog(Catalog object) {
+ return createCatalogAdapter();
+ }
+ @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.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationCatalog <em>Customization Catalog</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationCatalog
+ * @generated
+ */
+ public Adapter createCustomizationCatalogAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationPropertiesCatalog <em>Customization Properties Catalog</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationPropertiesCatalog
+ * @generated
+ */
+ public Adapter createCustomizationPropertiesCatalogAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.facet.util.emf.catalog.Catalog <em>Catalog</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.util.emf.catalog.Catalog
+ * @generated
+ */
+ public Adapter createCatalogAdapter() {
+ 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;
+ }
+
+} //CustomizationcatalogAdapterFactory
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/util/CustomizationcatalogSwitch.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/util/CustomizationcatalogSwitch.java
new file mode 100644
index 00000000000..8d49fad4465
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/customizationcatalog/util/CustomizationcatalogSwitch.java
@@ -0,0 +1,177 @@
+/**
+ * Copyright (c) 2011 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Gregoire Dupe (Mia-Software) - Bug 373078 - API Cleaning
+ *
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.*;
+
+import org.eclipse.emf.facet.util.emf.catalog.Catalog;
+
+/**
+ * <!-- 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.emf.facet.custom.metamodel.v0_2_0.customizationcatalog.CustomizationcatalogPackage
+ * @generated
+ */
+public class CustomizationcatalogSwitch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static CustomizationcatalogPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomizationcatalogSwitch() {
+ if (modelPackage == null) {
+ modelPackage = CustomizationcatalogPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public T doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case CustomizationcatalogPackage.CUSTOMIZATION_CATALOG: {
+ CustomizationCatalog customizationCatalog = (CustomizationCatalog)theEObject;
+ T result = caseCustomizationCatalog(customizationCatalog);
+ if (result == null) result = caseCatalog(customizationCatalog);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CustomizationcatalogPackage.CUSTOMIZATION_PROPERTIES_CATALOG: {
+ CustomizationPropertiesCatalog customizationPropertiesCatalog = (CustomizationPropertiesCatalog)theEObject;
+ T result = caseCustomizationPropertiesCatalog(customizationPropertiesCatalog);
+ if (result == null) result = caseCatalog(customizationPropertiesCatalog);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Customization Catalog</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>Customization Catalog</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCustomizationCatalog(CustomizationCatalog object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Customization Properties Catalog</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>Customization Properties Catalog</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCustomizationPropertiesCatalog(CustomizationPropertiesCatalog object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Catalog</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>Catalog</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCatalog(Catalog object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //CustomizationcatalogSwitch
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/Alignment.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/Alignment.java
new file mode 100644
index 00000000000..125cd53f171
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/Alignment.java
@@ -0,0 +1,246 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Vincent Lorenzo (CEA-LIST) - Bug 372644 - Create Customizable tooltips for the TreeViewer using a CustomizableLabelProvider
+ *
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Alignment</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.CustomptPackage#getAlignment()
+ * @model
+ * @generated
+ */
+public enum Alignment implements Enumerator {
+ /**
+ * The '<em><b>LEFT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LEFT_VALUE
+ * @generated
+ * @ordered
+ */
+ LEFT(0, "LEFT", "LEFT"),
+
+ /**
+ * The '<em><b>CENTER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CENTER_VALUE
+ * @generated
+ * @ordered
+ */
+ CENTER(1, "CENTER", "CENTER"),
+
+ /**
+ * The '<em><b>RIGHT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RIGHT_VALUE
+ * @generated
+ * @ordered
+ */
+ RIGHT(2, "RIGHT", "RIGHT");
+
+ /**
+ * The '<em><b>LEFT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LEFT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LEFT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LEFT_VALUE = 0;
+
+ /**
+ * The '<em><b>CENTER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CENTER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CENTER
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CENTER_VALUE = 1;
+
+ /**
+ * The '<em><b>RIGHT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RIGHT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RIGHT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RIGHT_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Alignment</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Alignment[] VALUES_ARRAY =
+ new Alignment[] {
+ LEFT,
+ CENTER,
+ RIGHT,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Alignment</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Alignment> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Alignment</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Alignment get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Alignment result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Alignment</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Alignment getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Alignment result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Alignment</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Alignment get(int value) {
+ switch (value) {
+ case LEFT_VALUE: return LEFT;
+ case CENTER_VALUE: return CENTER;
+ case RIGHT_VALUE: return RIGHT;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Alignment(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Alignment
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/CustomptFactory.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/CustomptFactory.java
new file mode 100644
index 00000000000..20dd0bee3fb
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/CustomptFactory.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ *
+ *
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt;
+
+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.emf.facet.custom.metamodel.v0_2_0.custompt.CustomptPackage
+ * @generated
+ * @noextend This interface is not intended to be extended by clients.
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface CustomptFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CustomptFactory eINSTANCE = org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.impl.CustomptFactoryImpl.init();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ CustomptPackage getCustomptPackage();
+
+} //CustomptFactory
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/CustomptPackage.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/CustomptPackage.java
new file mode 100644
index 00000000000..235af2138e7
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/CustomptPackage.java
@@ -0,0 +1,214 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ *
+ *
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt;
+
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.CustomptFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface CustomptPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "custompt";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/emf/facet/custom/0.2.incubation/custom_primitive_types";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "custompt";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CustomptPackage eINSTANCE = org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.impl.CustomptPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.Shadow <em>Shadow</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.Shadow
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.impl.CustomptPackageImpl#getShadow()
+ * @generated
+ */
+ int SHADOW = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.Alignment <em>Alignment</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.Alignment
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.impl.CustomptPackageImpl#getAlignment()
+ * @generated
+ */
+ int ALIGNMENT = 1;
+
+ /**
+ * The meta object id for the '<em>Image</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.custompt.IImage
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.impl.CustomptPackageImpl#getImage()
+ * @generated
+ */
+ int IMAGE = 2;
+
+ /**
+ * The meta object id for the '<em>Color</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.custompt.IColor
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.impl.CustomptPackageImpl#getColor()
+ * @generated
+ */
+ int COLOR = 3;
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.Shadow <em>Shadow</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Shadow</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.Shadow
+ * @generated
+ */
+ EEnum getShadow();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.Alignment <em>Alignment</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Alignment</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.Alignment
+ * @generated
+ */
+ EEnum getAlignment();
+
+ /**
+ * Returns the meta object for data type '{@link org.eclipse.emf.facet.custom.metamodel.custompt.IImage <em>Image</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Image</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.custompt.IImage
+ * @model instanceClass="org.eclipse.emf.facet.custom.metamodel.custompt.IImage"
+ * @generated
+ */
+ EDataType getImage();
+
+ /**
+ * Returns the meta object for data type '{@link org.eclipse.emf.facet.custom.metamodel.custompt.IColor <em>Color</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Color</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.custompt.IColor
+ * @model instanceClass="org.eclipse.emf.facet.custom.metamodel.custompt.IColor"
+ * @generated
+ */
+ EDataType getColor();
+
+ /**
+ * 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
+ */
+ CustomptFactory getCustomptFactory();
+
+ /**
+ * <!-- 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.emf.facet.custom.metamodel.v0_2_0.custompt.Shadow <em>Shadow</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.Shadow
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.impl.CustomptPackageImpl#getShadow()
+ * @generated
+ */
+ EEnum SHADOW = eINSTANCE.getShadow();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.Alignment <em>Alignment</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.Alignment
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.impl.CustomptPackageImpl#getAlignment()
+ * @generated
+ */
+ EEnum ALIGNMENT = eINSTANCE.getAlignment();
+
+ /**
+ * The meta object literal for the '<em>Image</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.custompt.IImage
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.impl.CustomptPackageImpl#getImage()
+ * @generated
+ */
+ EDataType IMAGE = eINSTANCE.getImage();
+
+ /**
+ * The meta object literal for the '<em>Color</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.custompt.IColor
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.impl.CustomptPackageImpl#getColor()
+ * @generated
+ */
+ EDataType COLOR = eINSTANCE.getColor();
+
+ }
+
+} //CustomptPackage
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/Shadow.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/Shadow.java
new file mode 100644
index 00000000000..b854fdd0c10
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/Shadow.java
@@ -0,0 +1,246 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ * Vincent Lorenzo (CEA-LIST) - Bug 372644 - Create Customizable tooltips for the TreeViewer using a CustomizableLabelProvider
+ *
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Shadow</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.CustomptPackage#getShadow()
+ * @model
+ * @generated
+ */
+public enum Shadow implements Enumerator {
+ /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_VALUE
+ * @generated
+ * @ordered
+ */
+ NONE(0, "NONE", "NONE"),
+
+ /**
+ * The '<em><b>IN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #IN_VALUE
+ * @generated
+ * @ordered
+ */
+ IN(1, "IN", "IN"),
+
+ /**
+ * The '<em><b>OUT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OUT_VALUE
+ * @generated
+ * @ordered
+ */
+ OUT(2, "OUT", "OUT");
+
+ /**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NONE_VALUE = 0;
+
+ /**
+ * The '<em><b>IN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>IN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #IN
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int IN_VALUE = 1;
+
+ /**
+ * The '<em><b>OUT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OUT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OUT
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OUT_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Shadow</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Shadow[] VALUES_ARRAY =
+ new Shadow[] {
+ NONE,
+ IN,
+ OUT,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Shadow</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Shadow> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Shadow</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Shadow get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Shadow result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Shadow</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Shadow getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ Shadow result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Shadow</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Shadow get(int value) {
+ switch (value) {
+ case NONE_VALUE: return NONE;
+ case IN_VALUE: return IN;
+ case OUT_VALUE: return OUT;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Shadow(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //Shadow
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/impl/CustomptFactoryImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/impl/CustomptFactoryImpl.java
new file mode 100644
index 00000000000..a0b6c2c8062
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/impl/CustomptFactoryImpl.java
@@ -0,0 +1,215 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ *
+ *
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.facet.custom.metamodel.custompt.IColor;
+import org.eclipse.emf.facet.custom.metamodel.custompt.IImage;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.*;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.CustomptFactory;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.CustomptPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CustomptFactoryImpl extends EFactoryImpl implements CustomptFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CustomptFactory init() {
+ try {
+ CustomptFactory theCustomptFactory = (CustomptFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/emf/facet/custom/0.2.incubation/custom_primitive_types");
+ if (theCustomptFactory != null) {
+ return theCustomptFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new CustomptFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomptFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case CustomptPackage.SHADOW:
+ return createShadowFromString(eDataType, initialValue);
+ case CustomptPackage.ALIGNMENT:
+ return createAlignmentFromString(eDataType, initialValue);
+ case CustomptPackage.IMAGE:
+ return createImageFromString(eDataType, initialValue);
+ case CustomptPackage.COLOR:
+ return createColorFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case CustomptPackage.SHADOW:
+ return convertShadowToString(eDataType, instanceValue);
+ case CustomptPackage.ALIGNMENT:
+ return convertAlignmentToString(eDataType, instanceValue);
+ case CustomptPackage.IMAGE:
+ return convertImageToString(eDataType, instanceValue);
+ case CustomptPackage.COLOR:
+ return convertColorToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Shadow createShadowFromString(EDataType eDataType, String initialValue) {
+ Shadow result = Shadow.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertShadowToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Alignment createAlignmentFromString(EDataType eDataType, String initialValue) {
+ Alignment result = Alignment.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertAlignmentToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IImage createImageFromString(EDataType eDataType, String initialValue) {
+ return (IImage)super.createFromString(eDataType, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertImageToString(EDataType eDataType, Object instanceValue) {
+ return super.convertToString(eDataType, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IColor createColorFromString(EDataType eDataType, String initialValue) {
+ return (IColor)super.createFromString(eDataType, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertColorToString(EDataType eDataType, Object instanceValue) {
+ return super.convertToString(eDataType, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomptPackage getCustomptPackage() {
+ return (CustomptPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static CustomptPackage getPackage() {
+ return CustomptPackage.eINSTANCE;
+ }
+
+} //CustomptFactoryImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/impl/CustomptPackageImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/impl/CustomptPackageImpl.java
new file mode 100644
index 00000000000..1bc592cf0cf
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/custompt/impl/CustomptPackageImpl.java
@@ -0,0 +1,237 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Gregoire Dupe (Mia-Software) - Bug 361794 - [Restructuring] New customization meta-model
+ *
+ *
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.impl;
+
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.emf.facet.custom.metamodel.custompt.IColor;
+import org.eclipse.emf.facet.custom.metamodel.custompt.IImage;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.Alignment;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.CustomptFactory;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.CustomptPackage;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.custompt.Shadow;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CustomptPackageImpl extends EPackageImpl implements CustomptPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum shadowEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum alignmentEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType imageEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType colorEDataType = 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.emf.facet.custom.metamodel.v0_2_0.custompt.CustomptPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private CustomptPackageImpl() {
+ super(eNS_URI, CustomptFactory.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 CustomptPackage#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 CustomptPackage init() {
+ if (isInited) return (CustomptPackage)EPackage.Registry.INSTANCE.getEPackage(CustomptPackage.eNS_URI);
+
+ // Obtain or create and register package
+ CustomptPackageImpl theCustomptPackage = (CustomptPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof CustomptPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new CustomptPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theCustomptPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theCustomptPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theCustomptPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(CustomptPackage.eNS_URI, theCustomptPackage);
+ return theCustomptPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getShadow() {
+ return shadowEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getAlignment() {
+ return alignmentEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EDataType getImage() {
+ return imageEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EDataType getColor() {
+ return colorEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomptFactory getCustomptFactory() {
+ return (CustomptFactory)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 enums
+ shadowEEnum = createEEnum(SHADOW);
+ alignmentEEnum = createEEnum(ALIGNMENT);
+
+ // Create data types
+ imageEDataType = createEDataType(IMAGE);
+ colorEDataType = createEDataType(COLOR);
+ }
+
+ /**
+ * <!-- 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);
+
+ // Initialize enums and add enum literals
+ initEEnum(shadowEEnum, Shadow.class, "Shadow");
+ addEEnumLiteral(shadowEEnum, Shadow.NONE);
+ addEEnumLiteral(shadowEEnum, Shadow.IN);
+ addEEnumLiteral(shadowEEnum, Shadow.OUT);
+
+ initEEnum(alignmentEEnum, Alignment.class, "Alignment");
+ addEEnumLiteral(alignmentEEnum, Alignment.LEFT);
+ addEEnumLiteral(alignmentEEnum, Alignment.CENTER);
+ addEEnumLiteral(alignmentEEnum, Alignment.RIGHT);
+
+ // Initialize data types
+ initEDataType(imageEDataType, IImage.class, "Image", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(colorEDataType, IColor.class, "Color", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //CustomptPackageImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/EAttributeTreeElement.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/EAttributeTreeElement.java
new file mode 100644
index 00000000000..af886255a1e
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/EAttributeTreeElement.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider
+ * Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements()
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy;
+
+import org.eclipse.emf.ecore.EAttribute;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>EAttribute Tree Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Represents an EAttribute in a tree view
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EAttributeTreeElement#getEAttribute <em>EAttribute</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage#getEAttributeTreeElement()
+ * @model
+ * @generated
+ */
+public interface EAttributeTreeElement extends EStructuralFeatureTreeElement {
+ /**
+ * Returns the value of the '<em><b>EAttribute</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The EAttribute represented by this tree element
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>EAttribute</em>' reference.
+ * @see #setEAttribute(EAttribute)
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage#getEAttributeTreeElement_EAttribute()
+ * @model
+ * @generated
+ */
+ EAttribute getEAttribute();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EAttributeTreeElement#getEAttribute <em>EAttribute</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>EAttribute</em>' reference.
+ * @see #getEAttribute()
+ * @generated
+ */
+ void setEAttribute(EAttribute value);
+
+} // EAttributeTreeElement
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/EObjectTreeElement.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/EObjectTreeElement.java
new file mode 100644
index 00000000000..f5b98b88435
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/EObjectTreeElement.java
@@ -0,0 +1,111 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider
+ * Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements()
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>EObject Tree Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Represents a model element in a tree view
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement#getEObject <em>EObject</em>}</li>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement#getSfTreeElmement <em>Sf Tree Elmement</em>}</li>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement#getParent <em>Parent</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage#getEObjectTreeElement()
+ * @model
+ * @generated
+ */
+public interface EObjectTreeElement extends TreeElement {
+ /**
+ * Returns the value of the '<em><b>EObject</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The model element represented by this tree element
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>EObject</em>' reference.
+ * @see #setEObject(EObject)
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage#getEObjectTreeElement_EObject()
+ * @model
+ * @generated
+ */
+ EObject getEObject();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement#getEObject <em>EObject</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>EObject</em>' reference.
+ * @see #getEObject()
+ * @generated
+ */
+ void setEObject(EObject value);
+
+ /**
+ * Returns the value of the '<em><b>Sf Tree Elmement</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement#getParent <em>Parent</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sf Tree Elmement</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>Sf Tree Elmement</em>' containment reference list.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage#getEObjectTreeElement_SfTreeElmement()
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement#getParent
+ * @model opposite="parent" containment="true"
+ * @generated
+ */
+ EList<EStructuralFeatureTreeElement> getSfTreeElmement();
+
+ /**
+ * Returns the value of the '<em><b>Parent</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement#getReferedEObjectTE <em>Refered EObject TE</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parent</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parent</em>' container reference.
+ * @see #setParent(EStructuralFeatureTreeElement)
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage#getEObjectTreeElement_Parent()
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement#getReferedEObjectTE
+ * @model opposite="referedEObjectTE" transient="false"
+ * @generated
+ */
+ EStructuralFeatureTreeElement getParent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement#getParent <em>Parent</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Parent</em>' container reference.
+ * @see #getParent()
+ * @generated
+ */
+ void setParent(EStructuralFeatureTreeElement value);
+
+} // EObjectTreeElement
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/EReferenceTreeElement.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/EReferenceTreeElement.java
new file mode 100644
index 00000000000..c755dfbc16c
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/EReferenceTreeElement.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider
+ * Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements()
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy;
+
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>EReference Tree Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Represents an EReference as a link between two model elements in a tree view
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EReferenceTreeElement#getEReference <em>EReference</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage#getEReferenceTreeElement()
+ * @model
+ * @generated
+ */
+public interface EReferenceTreeElement extends EStructuralFeatureTreeElement {
+ /**
+ * Returns the value of the '<em><b>EReference</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The EReference represented by this tree element
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>EReference</em>' reference.
+ * @see #setEReference(EReference)
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage#getEReferenceTreeElement_EReference()
+ * @model
+ * @generated
+ */
+ EReference getEReference();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EReferenceTreeElement#getEReference <em>EReference</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>EReference</em>' reference.
+ * @see #getEReference()
+ * @generated
+ */
+ void setEReference(EReference value);
+
+} // EReferenceTreeElement
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/EStructuralFeatureTreeElement.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/EStructuralFeatureTreeElement.java
new file mode 100644
index 00000000000..fd124dd8b5c
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/EStructuralFeatureTreeElement.java
@@ -0,0 +1,81 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider
+ * Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements()
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>EStructural Feature Tree Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement#getParent <em>Parent</em>}</li>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement#getReferedEObjectTE <em>Refered EObject TE</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage#getEStructuralFeatureTreeElement()
+ * @model
+ * @generated
+ */
+public interface EStructuralFeatureTreeElement extends TreeElement {
+
+ /**
+ * Returns the value of the '<em><b>Parent</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement#getSfTreeElmement <em>Sf Tree Elmement</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parent</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parent</em>' container reference.
+ * @see #setParent(EObjectTreeElement)
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage#getEStructuralFeatureTreeElement_Parent()
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement#getSfTreeElmement
+ * @model opposite="sfTreeElmement" transient="false"
+ * @generated
+ */
+ EObjectTreeElement getParent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement#getParent <em>Parent</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Parent</em>' container reference.
+ * @see #getParent()
+ * @generated
+ */
+ void setParent(EObjectTreeElement value);
+
+ /**
+ * Returns the value of the '<em><b>Refered EObject TE</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement#getParent <em>Parent</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Refered EObject TE</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>Refered EObject TE</em>' containment reference list.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage#getEStructuralFeatureTreeElement_ReferedEObjectTE()
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement#getParent
+ * @model opposite="parent" containment="true"
+ * @generated
+ */
+ EList<EObjectTreeElement> getReferedEObjectTE();
+} // EStructuralFeatureTreeElement
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/TreeElement.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/TreeElement.java
new file mode 100644
index 00000000000..b236a36626a
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/TreeElement.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider
+ * Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements()
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Tree Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Represents a proxy element in a tree view
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage#getTreeElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface TreeElement extends EObject {
+
+} // TreeElement
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/TreeproxyFactory.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/TreeproxyFactory.java
new file mode 100644
index 00000000000..b871e2719cc
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/TreeproxyFactory.java
@@ -0,0 +1,78 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider
+ * Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements()
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy;
+
+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.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage
+ * @generated
+ */
+public interface TreeproxyFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ TreeproxyFactory eINSTANCE = org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.TreeproxyFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>EObject Tree Element</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>EObject Tree Element</em>'.
+ * @generated
+ */
+ EObjectTreeElement createEObjectTreeElement();
+
+ /**
+ * Returns a new object of class '<em>EReference Tree Element</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>EReference Tree Element</em>'.
+ * @generated
+ */
+ EReferenceTreeElement createEReferenceTreeElement();
+
+ /**
+ * Returns a new object of class '<em>EAttribute Tree Element</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>EAttribute Tree Element</em>'.
+ * @generated
+ */
+ EAttributeTreeElement createEAttributeTreeElement();
+
+ /**
+ * Returns a new object of class '<em>EStructural Feature Tree Element</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>EStructural Feature Tree Element</em>'.
+ * @generated
+ */
+ EStructuralFeatureTreeElement createEStructuralFeatureTreeElement();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ TreeproxyPackage getTreeproxyPackage();
+
+} //TreeproxyFactory
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/TreeproxyPackage.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/TreeproxyPackage.java
new file mode 100644
index 00000000000..665d2d85b1f
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/TreeproxyPackage.java
@@ -0,0 +1,518 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider
+ * Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements()
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy;
+
+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.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface TreeproxyPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "treeproxy";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/emf/facet/custom/0.2.incubation/internal/treeproxy";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "treeproxy";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ TreeproxyPackage eINSTANCE = org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.TreeproxyPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.TreeElementImpl <em>Tree Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.TreeElementImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.TreeproxyPackageImpl#getTreeElement()
+ * @generated
+ */
+ int TREE_ELEMENT = 0;
+
+ /**
+ * The number of structural features of the '<em>Tree Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TREE_ELEMENT_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EObjectTreeElementImpl <em>EObject Tree Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EObjectTreeElementImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.TreeproxyPackageImpl#getEObjectTreeElement()
+ * @generated
+ */
+ int EOBJECT_TREE_ELEMENT = 1;
+
+ /**
+ * The feature id for the '<em><b>EObject</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EOBJECT_TREE_ELEMENT__EOBJECT = TREE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Sf Tree Elmement</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EOBJECT_TREE_ELEMENT__SF_TREE_ELMEMENT = TREE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EOBJECT_TREE_ELEMENT__PARENT = TREE_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>EObject Tree Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EOBJECT_TREE_ELEMENT_FEATURE_COUNT = TREE_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EStructuralFeatureTreeElementImpl <em>EStructural Feature Tree Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EStructuralFeatureTreeElementImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.TreeproxyPackageImpl#getEStructuralFeatureTreeElement()
+ * @generated
+ */
+ int ESTRUCTURAL_FEATURE_TREE_ELEMENT = 4;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT = TREE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Refered EObject TE</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ESTRUCTURAL_FEATURE_TREE_ELEMENT__REFERED_EOBJECT_TE = TREE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>EStructural Feature Tree Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ESTRUCTURAL_FEATURE_TREE_ELEMENT_FEATURE_COUNT = TREE_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EReferenceTreeElementImpl <em>EReference Tree Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EReferenceTreeElementImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.TreeproxyPackageImpl#getEReferenceTreeElement()
+ * @generated
+ */
+ int EREFERENCE_TREE_ELEMENT = 2;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EREFERENCE_TREE_ELEMENT__PARENT = ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Refered EObject TE</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EREFERENCE_TREE_ELEMENT__REFERED_EOBJECT_TE = ESTRUCTURAL_FEATURE_TREE_ELEMENT__REFERED_EOBJECT_TE;
+
+ /**
+ * The feature id for the '<em><b>EReference</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EREFERENCE_TREE_ELEMENT__EREFERENCE = ESTRUCTURAL_FEATURE_TREE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>EReference Tree Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EREFERENCE_TREE_ELEMENT_FEATURE_COUNT = ESTRUCTURAL_FEATURE_TREE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EAttributeTreeElementImpl <em>EAttribute Tree Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EAttributeTreeElementImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.TreeproxyPackageImpl#getEAttributeTreeElement()
+ * @generated
+ */
+ int EATTRIBUTE_TREE_ELEMENT = 3;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EATTRIBUTE_TREE_ELEMENT__PARENT = ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT;
+
+ /**
+ * The feature id for the '<em><b>Refered EObject TE</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EATTRIBUTE_TREE_ELEMENT__REFERED_EOBJECT_TE = ESTRUCTURAL_FEATURE_TREE_ELEMENT__REFERED_EOBJECT_TE;
+
+ /**
+ * The feature id for the '<em><b>EAttribute</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EATTRIBUTE_TREE_ELEMENT__EATTRIBUTE = ESTRUCTURAL_FEATURE_TREE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>EAttribute Tree Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EATTRIBUTE_TREE_ELEMENT_FEATURE_COUNT = ESTRUCTURAL_FEATURE_TREE_ELEMENT_FEATURE_COUNT + 1;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeElement <em>Tree Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tree Element</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeElement
+ * @generated
+ */
+ EClass getTreeElement();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement <em>EObject Tree Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>EObject Tree Element</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement
+ * @generated
+ */
+ EClass getEObjectTreeElement();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement#getEObject <em>EObject</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>EObject</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement#getEObject()
+ * @see #getEObjectTreeElement()
+ * @generated
+ */
+ EReference getEObjectTreeElement_EObject();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement#getSfTreeElmement <em>Sf Tree Elmement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Sf Tree Elmement</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement#getSfTreeElmement()
+ * @see #getEObjectTreeElement()
+ * @generated
+ */
+ EReference getEObjectTreeElement_SfTreeElmement();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement#getParent <em>Parent</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Parent</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement#getParent()
+ * @see #getEObjectTreeElement()
+ * @generated
+ */
+ EReference getEObjectTreeElement_Parent();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EReferenceTreeElement <em>EReference Tree Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>EReference Tree Element</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EReferenceTreeElement
+ * @generated
+ */
+ EClass getEReferenceTreeElement();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EReferenceTreeElement#getEReference <em>EReference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>EReference</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EReferenceTreeElement#getEReference()
+ * @see #getEReferenceTreeElement()
+ * @generated
+ */
+ EReference getEReferenceTreeElement_EReference();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EAttributeTreeElement <em>EAttribute Tree Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>EAttribute Tree Element</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EAttributeTreeElement
+ * @generated
+ */
+ EClass getEAttributeTreeElement();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EAttributeTreeElement#getEAttribute <em>EAttribute</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>EAttribute</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EAttributeTreeElement#getEAttribute()
+ * @see #getEAttributeTreeElement()
+ * @generated
+ */
+ EReference getEAttributeTreeElement_EAttribute();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement <em>EStructural Feature Tree Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>EStructural Feature Tree Element</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement
+ * @generated
+ */
+ EClass getEStructuralFeatureTreeElement();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement#getParent <em>Parent</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Parent</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement#getParent()
+ * @see #getEStructuralFeatureTreeElement()
+ * @generated
+ */
+ EReference getEStructuralFeatureTreeElement_Parent();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement#getReferedEObjectTE <em>Refered EObject TE</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Refered EObject TE</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement#getReferedEObjectTE()
+ * @see #getEStructuralFeatureTreeElement()
+ * @generated
+ */
+ EReference getEStructuralFeatureTreeElement_ReferedEObjectTE();
+
+ /**
+ * 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
+ */
+ TreeproxyFactory getTreeproxyFactory();
+
+ /**
+ * <!-- 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.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.TreeElementImpl <em>Tree Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.TreeElementImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.TreeproxyPackageImpl#getTreeElement()
+ * @generated
+ */
+ EClass TREE_ELEMENT = eINSTANCE.getTreeElement();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EObjectTreeElementImpl <em>EObject Tree Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EObjectTreeElementImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.TreeproxyPackageImpl#getEObjectTreeElement()
+ * @generated
+ */
+ EClass EOBJECT_TREE_ELEMENT = eINSTANCE.getEObjectTreeElement();
+
+ /**
+ * The meta object literal for the '<em><b>EObject</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EOBJECT_TREE_ELEMENT__EOBJECT = eINSTANCE.getEObjectTreeElement_EObject();
+
+ /**
+ * The meta object literal for the '<em><b>Sf Tree Elmement</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EOBJECT_TREE_ELEMENT__SF_TREE_ELMEMENT = eINSTANCE.getEObjectTreeElement_SfTreeElmement();
+
+ /**
+ * The meta object literal for the '<em><b>Parent</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EOBJECT_TREE_ELEMENT__PARENT = eINSTANCE.getEObjectTreeElement_Parent();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EReferenceTreeElementImpl <em>EReference Tree Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EReferenceTreeElementImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.TreeproxyPackageImpl#getEReferenceTreeElement()
+ * @generated
+ */
+ EClass EREFERENCE_TREE_ELEMENT = eINSTANCE.getEReferenceTreeElement();
+
+ /**
+ * The meta object literal for the '<em><b>EReference</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EREFERENCE_TREE_ELEMENT__EREFERENCE = eINSTANCE.getEReferenceTreeElement_EReference();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EAttributeTreeElementImpl <em>EAttribute Tree Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EAttributeTreeElementImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.TreeproxyPackageImpl#getEAttributeTreeElement()
+ * @generated
+ */
+ EClass EATTRIBUTE_TREE_ELEMENT = eINSTANCE.getEAttributeTreeElement();
+
+ /**
+ * The meta object literal for the '<em><b>EAttribute</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference EATTRIBUTE_TREE_ELEMENT__EATTRIBUTE = eINSTANCE.getEAttributeTreeElement_EAttribute();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EStructuralFeatureTreeElementImpl <em>EStructural Feature Tree Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EStructuralFeatureTreeElementImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.TreeproxyPackageImpl#getEStructuralFeatureTreeElement()
+ * @generated
+ */
+ EClass ESTRUCTURAL_FEATURE_TREE_ELEMENT = eINSTANCE.getEStructuralFeatureTreeElement();
+
+ /**
+ * The meta object literal for the '<em><b>Parent</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT = eINSTANCE.getEStructuralFeatureTreeElement_Parent();
+
+ /**
+ * The meta object literal for the '<em><b>Refered EObject TE</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ESTRUCTURAL_FEATURE_TREE_ELEMENT__REFERED_EOBJECT_TE = eINSTANCE.getEStructuralFeatureTreeElement_ReferedEObjectTE();
+
+ }
+
+} //TreeproxyPackage
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/EAttributeTreeElementImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/EAttributeTreeElementImpl.java
new file mode 100644
index 00000000000..e119d388e59
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/EAttributeTreeElementImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider
+ * Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements()
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EAttributeTreeElement;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>EAttribute Tree Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EAttributeTreeElementImpl#getEAttribute <em>EAttribute</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EAttributeTreeElementImpl extends EStructuralFeatureTreeElementImpl implements EAttributeTreeElement {
+ /**
+ * The cached value of the '{@link #getEAttribute() <em>EAttribute</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEAttribute()
+ * @generated
+ * @ordered
+ */
+ protected EAttribute eAttribute;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EAttributeTreeElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TreeproxyPackage.Literals.EATTRIBUTE_TREE_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEAttribute() {
+ if (eAttribute != null && eAttribute.eIsProxy()) {
+ InternalEObject oldEAttribute = (InternalEObject)eAttribute;
+ eAttribute = (EAttribute)eResolveProxy(oldEAttribute);
+ if (eAttribute != oldEAttribute) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, TreeproxyPackage.EATTRIBUTE_TREE_ELEMENT__EATTRIBUTE, oldEAttribute, eAttribute));
+ }
+ }
+ return eAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute basicGetEAttribute() {
+ return eAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEAttribute(EAttribute newEAttribute) {
+ EAttribute oldEAttribute = eAttribute;
+ eAttribute = newEAttribute;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TreeproxyPackage.EATTRIBUTE_TREE_ELEMENT__EATTRIBUTE, oldEAttribute, eAttribute));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TreeproxyPackage.EATTRIBUTE_TREE_ELEMENT__EATTRIBUTE:
+ if (resolve) return getEAttribute();
+ return basicGetEAttribute();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TreeproxyPackage.EATTRIBUTE_TREE_ELEMENT__EATTRIBUTE:
+ setEAttribute((EAttribute)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TreeproxyPackage.EATTRIBUTE_TREE_ELEMENT__EATTRIBUTE:
+ setEAttribute((EAttribute)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TreeproxyPackage.EATTRIBUTE_TREE_ELEMENT__EATTRIBUTE:
+ return eAttribute != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //EAttributeTreeElementImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/EObjectTreeElementImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/EObjectTreeElementImpl.java
new file mode 100644
index 00000000000..fe41c28b9f4
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/EObjectTreeElementImpl.java
@@ -0,0 +1,308 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider
+ * Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements()
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.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.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>EObject Tree Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EObjectTreeElementImpl#getEObject <em>EObject</em>}</li>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EObjectTreeElementImpl#getSfTreeElmement <em>Sf Tree Elmement</em>}</li>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EObjectTreeElementImpl#getParent <em>Parent</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EObjectTreeElementImpl extends TreeElementImpl implements EObjectTreeElement {
+ /**
+ * The cached value of the '{@link #getEObject() <em>EObject</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEObject()
+ * @generated
+ * @ordered
+ */
+ protected EObject eObject;
+
+ /**
+ * The cached value of the '{@link #getSfTreeElmement() <em>Sf Tree Elmement</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSfTreeElmement()
+ * @generated
+ * @ordered
+ */
+ protected EList<EStructuralFeatureTreeElement> sfTreeElmement;
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EObjectTreeElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TreeproxyPackage.Literals.EOBJECT_TREE_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject getEObject() {
+ if (eObject != null && eObject.eIsProxy()) {
+ InternalEObject oldEObject = (InternalEObject)eObject;
+ eObject = eResolveProxy(oldEObject);
+ if (eObject != oldEObject) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, TreeproxyPackage.EOBJECT_TREE_ELEMENT__EOBJECT, oldEObject, eObject));
+ }
+ }
+ return eObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject basicGetEObject() {
+ return eObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEObject(EObject newEObject) {
+ EObject oldEObject = eObject;
+ eObject = newEObject;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TreeproxyPackage.EOBJECT_TREE_ELEMENT__EOBJECT, oldEObject, eObject));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<EStructuralFeatureTreeElement> getSfTreeElmement() {
+ if (sfTreeElmement == null) {
+ sfTreeElmement = new EObjectContainmentWithInverseEList<EStructuralFeatureTreeElement>(EStructuralFeatureTreeElement.class, this, TreeproxyPackage.EOBJECT_TREE_ELEMENT__SF_TREE_ELMEMENT, TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT);
+ }
+ return sfTreeElmement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EStructuralFeatureTreeElement getParent() {
+ if (eContainerFeatureID() != TreeproxyPackage.EOBJECT_TREE_ELEMENT__PARENT) return null;
+ return (EStructuralFeatureTreeElement)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetParent(EStructuralFeatureTreeElement newParent, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newParent, TreeproxyPackage.EOBJECT_TREE_ELEMENT__PARENT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParent(EStructuralFeatureTreeElement newParent) {
+ if (newParent != eInternalContainer() || (eContainerFeatureID() != TreeproxyPackage.EOBJECT_TREE_ELEMENT__PARENT && newParent != null)) {
+ if (EcoreUtil.isAncestor(this, newParent))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newParent != null)
+ msgs = ((InternalEObject)newParent).eInverseAdd(this, TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__REFERED_EOBJECT_TE, EStructuralFeatureTreeElement.class, msgs);
+ msgs = basicSetParent(newParent, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TreeproxyPackage.EOBJECT_TREE_ELEMENT__PARENT, newParent, newParent));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT__SF_TREE_ELMEMENT:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getSfTreeElmement()).basicAdd(otherEnd, msgs);
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT__PARENT:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetParent((EStructuralFeatureTreeElement)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT__SF_TREE_ELMEMENT:
+ return ((InternalEList<?>)getSfTreeElmement()).basicRemove(otherEnd, msgs);
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT__PARENT:
+ return basicSetParent(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT__PARENT:
+ return eInternalContainer().eInverseRemove(this, TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__REFERED_EOBJECT_TE, EStructuralFeatureTreeElement.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT__EOBJECT:
+ if (resolve) return getEObject();
+ return basicGetEObject();
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT__SF_TREE_ELMEMENT:
+ return getSfTreeElmement();
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT__PARENT:
+ return getParent();
+ }
+ 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 TreeproxyPackage.EOBJECT_TREE_ELEMENT__EOBJECT:
+ setEObject((EObject)newValue);
+ return;
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT__SF_TREE_ELMEMENT:
+ getSfTreeElmement().clear();
+ getSfTreeElmement().addAll((Collection<? extends EStructuralFeatureTreeElement>)newValue);
+ return;
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT__PARENT:
+ setParent((EStructuralFeatureTreeElement)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT__EOBJECT:
+ setEObject((EObject)null);
+ return;
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT__SF_TREE_ELMEMENT:
+ getSfTreeElmement().clear();
+ return;
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT__PARENT:
+ setParent((EStructuralFeatureTreeElement)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT__EOBJECT:
+ return eObject != null;
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT__SF_TREE_ELMEMENT:
+ return sfTreeElmement != null && !sfTreeElmement.isEmpty();
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT__PARENT:
+ return getParent() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //EObjectTreeElementImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/EReferenceTreeElementImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/EReferenceTreeElementImpl.java
new file mode 100644
index 00000000000..1879885ebf8
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/EReferenceTreeElementImpl.java
@@ -0,0 +1,165 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider
+ * Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements()
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EReferenceTreeElement;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>EReference Tree Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EReferenceTreeElementImpl#getEReference <em>EReference</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EReferenceTreeElementImpl extends EStructuralFeatureTreeElementImpl implements EReferenceTreeElement {
+ /**
+ * The cached value of the '{@link #getEReference() <em>EReference</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEReference()
+ * @generated
+ * @ordered
+ */
+ protected EReference eReference;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EReferenceTreeElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TreeproxyPackage.Literals.EREFERENCE_TREE_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEReference() {
+ if (eReference != null && eReference.eIsProxy()) {
+ InternalEObject oldEReference = (InternalEObject)eReference;
+ eReference = (EReference)eResolveProxy(oldEReference);
+ if (eReference != oldEReference) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, TreeproxyPackage.EREFERENCE_TREE_ELEMENT__EREFERENCE, oldEReference, eReference));
+ }
+ }
+ return eReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference basicGetEReference() {
+ return eReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEReference(EReference newEReference) {
+ EReference oldEReference = eReference;
+ eReference = newEReference;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TreeproxyPackage.EREFERENCE_TREE_ELEMENT__EREFERENCE, oldEReference, eReference));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TreeproxyPackage.EREFERENCE_TREE_ELEMENT__EREFERENCE:
+ if (resolve) return getEReference();
+ return basicGetEReference();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TreeproxyPackage.EREFERENCE_TREE_ELEMENT__EREFERENCE:
+ setEReference((EReference)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TreeproxyPackage.EREFERENCE_TREE_ELEMENT__EREFERENCE:
+ setEReference((EReference)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TreeproxyPackage.EREFERENCE_TREE_ELEMENT__EREFERENCE:
+ return eReference != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //EReferenceTreeElementImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/EStructuralFeatureTreeElementImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/EStructuralFeatureTreeElementImpl.java
new file mode 100644
index 00000000000..bca7fb2b4d9
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/EStructuralFeatureTreeElementImpl.java
@@ -0,0 +1,246 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider
+ * Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements()
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.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.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>EStructural Feature Tree Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EStructuralFeatureTreeElementImpl#getParent <em>Parent</em>}</li>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl.EStructuralFeatureTreeElementImpl#getReferedEObjectTE <em>Refered EObject TE</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EStructuralFeatureTreeElementImpl extends TreeElementImpl implements EStructuralFeatureTreeElement {
+ /**
+ * The cached value of the '{@link #getReferedEObjectTE() <em>Refered EObject TE</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReferedEObjectTE()
+ * @generated
+ * @ordered
+ */
+ protected EList<EObjectTreeElement> referedEObjectTE;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EStructuralFeatureTreeElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TreeproxyPackage.Literals.ESTRUCTURAL_FEATURE_TREE_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObjectTreeElement getParent() {
+ if (eContainerFeatureID() != TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT) return null;
+ return (EObjectTreeElement)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetParent(EObjectTreeElement newParent, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newParent, TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParent(EObjectTreeElement newParent) {
+ if (newParent != eInternalContainer() || (eContainerFeatureID() != TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT && newParent != null)) {
+ if (EcoreUtil.isAncestor(this, newParent))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newParent != null)
+ msgs = ((InternalEObject)newParent).eInverseAdd(this, TreeproxyPackage.EOBJECT_TREE_ELEMENT__SF_TREE_ELMEMENT, EObjectTreeElement.class, msgs);
+ msgs = basicSetParent(newParent, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT, newParent, newParent));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<EObjectTreeElement> getReferedEObjectTE() {
+ if (referedEObjectTE == null) {
+ referedEObjectTE = new EObjectContainmentWithInverseEList<EObjectTreeElement>(EObjectTreeElement.class, this, TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__REFERED_EOBJECT_TE, TreeproxyPackage.EOBJECT_TREE_ELEMENT__PARENT);
+ }
+ return referedEObjectTE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetParent((EObjectTreeElement)otherEnd, msgs);
+ case TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__REFERED_EOBJECT_TE:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getReferedEObjectTE()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT:
+ return basicSetParent(null, msgs);
+ case TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__REFERED_EOBJECT_TE:
+ return ((InternalEList<?>)getReferedEObjectTE()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT:
+ return eInternalContainer().eInverseRemove(this, TreeproxyPackage.EOBJECT_TREE_ELEMENT__SF_TREE_ELMEMENT, EObjectTreeElement.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT:
+ return getParent();
+ case TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__REFERED_EOBJECT_TE:
+ return getReferedEObjectTE();
+ }
+ 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 TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT:
+ setParent((EObjectTreeElement)newValue);
+ return;
+ case TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__REFERED_EOBJECT_TE:
+ getReferedEObjectTE().clear();
+ getReferedEObjectTE().addAll((Collection<? extends EObjectTreeElement>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT:
+ setParent((EObjectTreeElement)null);
+ return;
+ case TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__REFERED_EOBJECT_TE:
+ getReferedEObjectTE().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT:
+ return getParent() != null;
+ case TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT__REFERED_EOBJECT_TE:
+ return referedEObjectTE != null && !referedEObjectTE.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //EStructuralFeatureTreeElementImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/TreeElementImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/TreeElementImpl.java
new file mode 100644
index 00000000000..0c4c73369cc
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/TreeElementImpl.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider
+ * Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements()
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.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.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeElement;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Tree Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class TreeElementImpl extends EObjectImpl implements TreeElement {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TreeproxyPackage.Literals.TREE_ELEMENT;
+ }
+
+} //TreeElementImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/TreeproxyFactoryImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/TreeproxyFactoryImpl.java
new file mode 100644
index 00000000000..5ce3653fcf6
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/TreeproxyFactoryImpl.java
@@ -0,0 +1,137 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider
+ * Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements()
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.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.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TreeproxyFactoryImpl extends EFactoryImpl implements TreeproxyFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TreeproxyFactory init() {
+ try {
+ TreeproxyFactory theTreeproxyFactory = (TreeproxyFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/emf/facet/custom/0.2.incubation/internal/treeproxy");
+ if (theTreeproxyFactory != null) {
+ return theTreeproxyFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new TreeproxyFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TreeproxyFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT: return createEObjectTreeElement();
+ case TreeproxyPackage.EREFERENCE_TREE_ELEMENT: return createEReferenceTreeElement();
+ case TreeproxyPackage.EATTRIBUTE_TREE_ELEMENT: return createEAttributeTreeElement();
+ case TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT: return createEStructuralFeatureTreeElement();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObjectTreeElement createEObjectTreeElement() {
+ EObjectTreeElementImpl eObjectTreeElement = new EObjectTreeElementImpl();
+ return eObjectTreeElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReferenceTreeElement createEReferenceTreeElement() {
+ EReferenceTreeElementImpl eReferenceTreeElement = new EReferenceTreeElementImpl();
+ return eReferenceTreeElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttributeTreeElement createEAttributeTreeElement() {
+ EAttributeTreeElementImpl eAttributeTreeElement = new EAttributeTreeElementImpl();
+ return eAttributeTreeElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EStructuralFeatureTreeElement createEStructuralFeatureTreeElement() {
+ EStructuralFeatureTreeElementImpl eStructuralFeatureTreeElement = new EStructuralFeatureTreeElementImpl();
+ return eStructuralFeatureTreeElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TreeproxyPackage getTreeproxyPackage() {
+ return (TreeproxyPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static TreeproxyPackage getPackage() {
+ return TreeproxyPackage.eINSTANCE;
+ }
+
+} //TreeproxyFactoryImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/TreeproxyPackageImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/TreeproxyPackageImpl.java
new file mode 100644
index 00000000000..76970d9b106
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/impl/TreeproxyPackageImpl.java
@@ -0,0 +1,347 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider
+ * Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements()
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.impl;
+
+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.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EAttributeTreeElement;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EReferenceTreeElement;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeElement;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyFactory;
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TreeproxyPackageImpl extends EPackageImpl implements TreeproxyPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass treeElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eObjectTreeElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eReferenceTreeElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eAttributeTreeElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eStructuralFeatureTreeElementEClass = 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.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private TreeproxyPackageImpl() {
+ super(eNS_URI, TreeproxyFactory.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 TreeproxyPackage#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 TreeproxyPackage init() {
+ if (isInited) return (TreeproxyPackage)EPackage.Registry.INSTANCE.getEPackage(TreeproxyPackage.eNS_URI);
+
+ // Obtain or create and register package
+ TreeproxyPackageImpl theTreeproxyPackage = (TreeproxyPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof TreeproxyPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new TreeproxyPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theTreeproxyPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theTreeproxyPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theTreeproxyPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(TreeproxyPackage.eNS_URI, theTreeproxyPackage);
+ return theTreeproxyPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTreeElement() {
+ return treeElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEObjectTreeElement() {
+ return eObjectTreeElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEObjectTreeElement_EObject() {
+ return (EReference)eObjectTreeElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEObjectTreeElement_SfTreeElmement() {
+ return (EReference)eObjectTreeElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEObjectTreeElement_Parent() {
+ return (EReference)eObjectTreeElementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEReferenceTreeElement() {
+ return eReferenceTreeElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEReferenceTreeElement_EReference() {
+ return (EReference)eReferenceTreeElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEAttributeTreeElement() {
+ return eAttributeTreeElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEAttributeTreeElement_EAttribute() {
+ return (EReference)eAttributeTreeElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEStructuralFeatureTreeElement() {
+ return eStructuralFeatureTreeElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEStructuralFeatureTreeElement_Parent() {
+ return (EReference)eStructuralFeatureTreeElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEStructuralFeatureTreeElement_ReferedEObjectTE() {
+ return (EReference)eStructuralFeatureTreeElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TreeproxyFactory getTreeproxyFactory() {
+ return (TreeproxyFactory)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
+ treeElementEClass = createEClass(TREE_ELEMENT);
+
+ eObjectTreeElementEClass = createEClass(EOBJECT_TREE_ELEMENT);
+ createEReference(eObjectTreeElementEClass, EOBJECT_TREE_ELEMENT__EOBJECT);
+ createEReference(eObjectTreeElementEClass, EOBJECT_TREE_ELEMENT__SF_TREE_ELMEMENT);
+ createEReference(eObjectTreeElementEClass, EOBJECT_TREE_ELEMENT__PARENT);
+
+ eReferenceTreeElementEClass = createEClass(EREFERENCE_TREE_ELEMENT);
+ createEReference(eReferenceTreeElementEClass, EREFERENCE_TREE_ELEMENT__EREFERENCE);
+
+ eAttributeTreeElementEClass = createEClass(EATTRIBUTE_TREE_ELEMENT);
+ createEReference(eAttributeTreeElementEClass, EATTRIBUTE_TREE_ELEMENT__EATTRIBUTE);
+
+ eStructuralFeatureTreeElementEClass = createEClass(ESTRUCTURAL_FEATURE_TREE_ELEMENT);
+ createEReference(eStructuralFeatureTreeElementEClass, ESTRUCTURAL_FEATURE_TREE_ELEMENT__PARENT);
+ createEReference(eStructuralFeatureTreeElementEClass, ESTRUCTURAL_FEATURE_TREE_ELEMENT__REFERED_EOBJECT_TE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ eObjectTreeElementEClass.getESuperTypes().add(this.getTreeElement());
+ eReferenceTreeElementEClass.getESuperTypes().add(this.getEStructuralFeatureTreeElement());
+ eAttributeTreeElementEClass.getESuperTypes().add(this.getEStructuralFeatureTreeElement());
+ eStructuralFeatureTreeElementEClass.getESuperTypes().add(this.getTreeElement());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(treeElementEClass, TreeElement.class, "TreeElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(eObjectTreeElementEClass, EObjectTreeElement.class, "EObjectTreeElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getEObjectTreeElement_EObject(), ecorePackage.getEObject(), null, "eObject", null, 0, 1, EObjectTreeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getEObjectTreeElement_SfTreeElmement(), this.getEStructuralFeatureTreeElement(), this.getEStructuralFeatureTreeElement_Parent(), "sfTreeElmement", null, 0, -1, EObjectTreeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getEObjectTreeElement_Parent(), this.getEStructuralFeatureTreeElement(), this.getEStructuralFeatureTreeElement_ReferedEObjectTE(), "parent", null, 0, 1, EObjectTreeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(eReferenceTreeElementEClass, EReferenceTreeElement.class, "EReferenceTreeElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getEReferenceTreeElement_EReference(), theEcorePackage.getEReference(), null, "eReference", null, 0, 1, EReferenceTreeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(eAttributeTreeElementEClass, EAttributeTreeElement.class, "EAttributeTreeElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getEAttributeTreeElement_EAttribute(), theEcorePackage.getEAttribute(), null, "eAttribute", null, 0, 1, EAttributeTreeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(eStructuralFeatureTreeElementEClass, EStructuralFeatureTreeElement.class, "EStructuralFeatureTreeElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getEStructuralFeatureTreeElement_Parent(), this.getEObjectTreeElement(), this.getEObjectTreeElement_SfTreeElmement(), "parent", null, 0, 1, EStructuralFeatureTreeElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getEStructuralFeatureTreeElement_ReferedEObjectTE(), this.getEObjectTreeElement(), this.getEObjectTreeElement_Parent(), "referedEObjectTE", null, 0, -1, EStructuralFeatureTreeElement.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);
+ }
+
+} //TreeproxyPackageImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/util/TreeproxyAdapterFactory.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/util/TreeproxyAdapterFactory.java
new file mode 100644
index 00000000000..1f08371a747
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/util/TreeproxyAdapterFactory.java
@@ -0,0 +1,201 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider
+ * Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements()
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.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.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.*;
+
+/**
+ * <!-- 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.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage
+ * @generated
+ */
+public class TreeproxyAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static TreeproxyPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TreeproxyAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = TreeproxyPackage.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 TreeproxySwitch<Adapter> modelSwitch =
+ new TreeproxySwitch<Adapter>() {
+ @Override
+ public Adapter caseTreeElement(TreeElement object) {
+ return createTreeElementAdapter();
+ }
+ @Override
+ public Adapter caseEObjectTreeElement(EObjectTreeElement object) {
+ return createEObjectTreeElementAdapter();
+ }
+ @Override
+ public Adapter caseEReferenceTreeElement(EReferenceTreeElement object) {
+ return createEReferenceTreeElementAdapter();
+ }
+ @Override
+ public Adapter caseEAttributeTreeElement(EAttributeTreeElement object) {
+ return createEAttributeTreeElementAdapter();
+ }
+ @Override
+ public Adapter caseEStructuralFeatureTreeElement(EStructuralFeatureTreeElement object) {
+ return createEStructuralFeatureTreeElementAdapter();
+ }
+ @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.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeElement <em>Tree Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeElement
+ * @generated
+ */
+ public Adapter createTreeElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement <em>EObject Tree Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EObjectTreeElement
+ * @generated
+ */
+ public Adapter createEObjectTreeElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EReferenceTreeElement <em>EReference Tree Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EReferenceTreeElement
+ * @generated
+ */
+ public Adapter createEReferenceTreeElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EAttributeTreeElement <em>EAttribute Tree Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EAttributeTreeElement
+ * @generated
+ */
+ public Adapter createEAttributeTreeElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement <em>EStructural Feature Tree Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.EStructuralFeatureTreeElement
+ * @generated
+ */
+ public Adapter createEStructuralFeatureTreeElementAdapter() {
+ 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;
+ }
+
+} //TreeproxyAdapterFactory
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/util/TreeproxySwitch.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/util/TreeproxySwitch.java
new file mode 100644
index 00000000000..6ac29251415
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_2_0/internal/treeproxy/util/TreeproxySwitch.java
@@ -0,0 +1,225 @@
+/**
+ * Copyright (c) 2012 Mia-Software.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nicolas Bros (Mia-Software) - Bug 379683 - customizable Tree content provider
+ * Gregoire Dupe (Mia-Software) - Bug 386387 - [CustomizedTreeContentProvider] The TreeElements are not preserved between two calls to getElements()
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.*;
+
+/**
+ * <!-- 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.emf.facet.custom.metamodel.v0_2_0.internal.treeproxy.TreeproxyPackage
+ * @generated
+ */
+public class TreeproxySwitch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static TreeproxyPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TreeproxySwitch() {
+ if (modelPackage == null) {
+ modelPackage = TreeproxyPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public T doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case TreeproxyPackage.TREE_ELEMENT: {
+ TreeElement treeElement = (TreeElement)theEObject;
+ T result = caseTreeElement(treeElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TreeproxyPackage.EOBJECT_TREE_ELEMENT: {
+ EObjectTreeElement eObjectTreeElement = (EObjectTreeElement)theEObject;
+ T result = caseEObjectTreeElement(eObjectTreeElement);
+ if (result == null) result = caseTreeElement(eObjectTreeElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TreeproxyPackage.EREFERENCE_TREE_ELEMENT: {
+ EReferenceTreeElement eReferenceTreeElement = (EReferenceTreeElement)theEObject;
+ T result = caseEReferenceTreeElement(eReferenceTreeElement);
+ if (result == null) result = caseEStructuralFeatureTreeElement(eReferenceTreeElement);
+ if (result == null) result = caseTreeElement(eReferenceTreeElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TreeproxyPackage.EATTRIBUTE_TREE_ELEMENT: {
+ EAttributeTreeElement eAttributeTreeElement = (EAttributeTreeElement)theEObject;
+ T result = caseEAttributeTreeElement(eAttributeTreeElement);
+ if (result == null) result = caseEStructuralFeatureTreeElement(eAttributeTreeElement);
+ if (result == null) result = caseTreeElement(eAttributeTreeElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case TreeproxyPackage.ESTRUCTURAL_FEATURE_TREE_ELEMENT: {
+ EStructuralFeatureTreeElement eStructuralFeatureTreeElement = (EStructuralFeatureTreeElement)theEObject;
+ T result = caseEStructuralFeatureTreeElement(eStructuralFeatureTreeElement);
+ if (result == null) result = caseTreeElement(eStructuralFeatureTreeElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Tree 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>Tree Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTreeElement(TreeElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject Tree 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>EObject Tree Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEObjectTreeElement(EObjectTreeElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EReference Tree 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>EReference Tree Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEReferenceTreeElement(EReferenceTreeElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EAttribute Tree 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>EAttribute Tree Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEAttributeTreeElement(EAttributeTreeElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EStructural Feature Tree 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>EStructural Feature Tree Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEStructuralFeatureTreeElement(EStructuralFeatureTreeElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //TreeproxySwitch
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/QueryFactory.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/QueryFactory.java
new file mode 100644
index 00000000000..cae541a1036
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/QueryFactory.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) 2013 Soft-Maint.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * David Couvrand (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ * Nicolas Rault (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_3_0.query;
+
+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.emf.facet.custom.metamodel.v0_3_0.query.QueryPackage
+ * @generated
+ * @since 0.3
+ */
+public interface QueryFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ QueryFactory eINSTANCE = org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.impl.QueryFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>URI Image Query</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>URI Image Query</em>'.
+ * @generated
+ */
+ URIImageQuery createURIImageQuery();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ QueryPackage getQueryPackage();
+
+} //QueryFactory
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/QueryPackage.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/QueryPackage.java
new file mode 100644
index 00000000000..dfd95a64b5a
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/QueryPackage.java
@@ -0,0 +1,179 @@
+/**
+ * Copyright (c) 2013 Soft-Maint.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * David Couvrand (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ * Nicolas Rault (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_3_0.query;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.ExtensiblePackage;
+
+/**
+ * <!-- 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.emf.facet.custom.metamodel.v0_3_0.query.QueryFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface QueryPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "query";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/emf/facet/custom/0.3.incubation/query";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "customQuery";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ QueryPackage eINSTANCE = org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.impl.QueryPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.impl.URIImageQueryImpl <em>URI Image Query</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.impl.URIImageQueryImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.impl.QueryPackageImpl#getURIImageQuery()
+ * @generated
+ */
+ int URI_IMAGE_QUERY = 0;
+
+ /**
+ * The feature id for the '<em><b>Can Have Side Effects</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int URI_IMAGE_QUERY__CAN_HAVE_SIDE_EFFECTS = ExtensiblePackage.QUERY__CAN_HAVE_SIDE_EFFECTS;
+
+ /**
+ * The feature id for the '<em><b>Can Be Cached</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int URI_IMAGE_QUERY__CAN_BE_CACHED = ExtensiblePackage.QUERY__CAN_BE_CACHED;
+
+ /**
+ * The feature id for the '<em><b>Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int URI_IMAGE_QUERY__URI = ExtensiblePackage.QUERY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>URI Image Query</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int URI_IMAGE_QUERY_FEATURE_COUNT = ExtensiblePackage.QUERY_FEATURE_COUNT + 1;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.URIImageQuery <em>URI Image Query</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>URI Image Query</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.URIImageQuery
+ * @generated
+ */
+ EClass getURIImageQuery();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.URIImageQuery#getUri <em>Uri</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Uri</em>'.
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.URIImageQuery#getUri()
+ * @see #getURIImageQuery()
+ * @generated
+ */
+ EAttribute getURIImageQuery_Uri();
+
+ /**
+ * 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
+ */
+ QueryFactory getQueryFactory();
+
+ /**
+ * <!-- 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.emf.facet.custom.metamodel.v0_3_0.query.impl.URIImageQueryImpl <em>URI Image Query</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.impl.URIImageQueryImpl
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.impl.QueryPackageImpl#getURIImageQuery()
+ * @generated
+ */
+ EClass URI_IMAGE_QUERY = eINSTANCE.getURIImageQuery();
+
+ /**
+ * The meta object literal for the '<em><b>Uri</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute URI_IMAGE_QUERY__URI = eINSTANCE.getURIImageQuery_Uri();
+
+ }
+
+} //QueryPackage
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/URIImageQuery.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/URIImageQuery.java
new file mode 100644
index 00000000000..583dbda2154
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/URIImageQuery.java
@@ -0,0 +1,62 @@
+/**
+ * Copyright (c) 2013 Soft-Maint.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * David Couvrand (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ * Nicolas Rault (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_3_0.query;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.Query;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '
+ * <em><b>URI Image Query</b></em>'. <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>
+ * {@link org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.URIImageQuery#getUri
+ * <em>Uri</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.QueryPackage#getURIImageQuery()
+ * @model
+ * @generated
+ * @since 0.3
+ */
+public interface URIImageQuery extends Query {
+ /**
+ * Returns the value of the '<em><b>Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Uri</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Uri</em>' attribute.
+ * @see #setUri(String)
+ * @see org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.QueryPackage#getURIImageQuery_Uri()
+ * @model
+ * @generated
+ */
+ String getUri();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.URIImageQuery#getUri <em>Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Uri</em>' attribute.
+ * @see #getUri()
+ * @generated
+ */
+ void setUri(String value);
+
+} // URIImageQuery
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/impl/QueryFactoryImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/impl/QueryFactoryImpl.java
new file mode 100644
index 00000000000..ac14f777e9b
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/impl/QueryFactoryImpl.java
@@ -0,0 +1,105 @@
+/**
+ * Copyright (c) 2013 Soft-Maint.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * David Couvrand (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ * Nicolas Rault (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.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.emf.facet.custom.metamodel.v0_3_0.query.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueryFactoryImpl extends EFactoryImpl implements QueryFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static QueryFactory init() {
+ try {
+ QueryFactory theQueryFactory = (QueryFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/emf/facet/custom/0.3.incubation/query");
+ if (theQueryFactory != null) {
+ return theQueryFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new QueryFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QueryFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case QueryPackage.URI_IMAGE_QUERY: return createURIImageQuery();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public URIImageQuery createURIImageQuery() {
+ URIImageQueryImpl uriImageQuery = new URIImageQueryImpl();
+ return uriImageQuery;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QueryPackage getQueryPackage() {
+ return (QueryPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static QueryPackage getPackage() {
+ return QueryPackage.eINSTANCE;
+ }
+
+} //QueryFactoryImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/impl/QueryPackageImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/impl/QueryPackageImpl.java
new file mode 100644
index 00000000000..dbb7c82e7c8
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/impl/QueryPackageImpl.java
@@ -0,0 +1,198 @@
+/**
+ * Copyright (c) 2013 Soft-Maint.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * David Couvrand (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ * Nicolas Rault (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.QueryFactory;
+import org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.QueryPackage;
+import org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.URIImageQuery;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.EFacetPackage;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.ExtensiblePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class QueryPackageImpl extends EPackageImpl implements QueryPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass uriImageQueryEClass = 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.emf.facet.custom.metamodel.v0_3_0.query.QueryPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private QueryPackageImpl() {
+ super(eNS_URI, QueryFactory.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 QueryPackage#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 QueryPackage init() {
+ if (isInited) return (QueryPackage)EPackage.Registry.INSTANCE.getEPackage(QueryPackage.eNS_URI);
+
+ // Obtain or create and register package
+ QueryPackageImpl theQueryPackage = (QueryPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof QueryPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new QueryPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EFacetPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theQueryPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theQueryPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theQueryPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(QueryPackage.eNS_URI, theQueryPackage);
+ return theQueryPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getURIImageQuery() {
+ return uriImageQueryEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getURIImageQuery_Uri() {
+ return (EAttribute)uriImageQueryEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QueryFactory getQueryFactory() {
+ return (QueryFactory)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
+ uriImageQueryEClass = createEClass(URI_IMAGE_QUERY);
+ createEAttribute(uriImageQueryEClass, URI_IMAGE_QUERY__URI);
+ }
+
+ /**
+ * <!-- 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
+ ExtensiblePackage theExtensiblePackage = (ExtensiblePackage)EPackage.Registry.INSTANCE.getEPackage(ExtensiblePackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ uriImageQueryEClass.getESuperTypes().add(theExtensiblePackage.getQuery());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(uriImageQueryEClass, URIImageQuery.class, "URIImageQuery", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getURIImageQuery_Uri(), ecorePackage.getEString(), "uri", null, 0, 1, URIImageQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //QueryPackageImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/impl/URIImageQueryImpl.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/impl/URIImageQueryImpl.java
new file mode 100644
index 00000000000..a42a231a2ed
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/impl/URIImageQueryImpl.java
@@ -0,0 +1,174 @@
+/**
+ * Copyright (c) 2013 Soft-Maint.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * David Couvrand (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ * Nicolas Rault (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.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.facet.custom.metamodel.v0_3_0.query.QueryPackage;
+import org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.URIImageQuery;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.impl.QueryImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>URI Image Query</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.impl.URIImageQueryImpl#getUri <em>Uri</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class URIImageQueryImpl extends QueryImpl implements URIImageQuery {
+ /**
+ * The default value of the '{@link #getUri() <em>Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUri()
+ * @generated
+ * @ordered
+ */
+ protected static final String URI_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getUri() <em>Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUri()
+ * @generated
+ * @ordered
+ */
+ protected String uri = URI_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected URIImageQueryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return QueryPackage.Literals.URI_IMAGE_QUERY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getUri() {
+ return uri;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUri(String newUri) {
+ String oldUri = uri;
+ uri = newUri;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, QueryPackage.URI_IMAGE_QUERY__URI, oldUri, uri));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case QueryPackage.URI_IMAGE_QUERY__URI:
+ return getUri();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case QueryPackage.URI_IMAGE_QUERY__URI:
+ setUri((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case QueryPackage.URI_IMAGE_QUERY__URI:
+ setUri(URI_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case QueryPackage.URI_IMAGE_QUERY__URI:
+ return URI_EDEFAULT == null ? uri != null : !URI_EDEFAULT.equals(uri);
+ }
+ 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(" (uri: ");
+ result.append(uri);
+ result.append(')');
+ return result.toString();
+ }
+
+} //URIImageQueryImpl
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/util/QueryAdapterFactory.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/util/QueryAdapterFactory.java
new file mode 100644
index 00000000000..058cdd7347c
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/util/QueryAdapterFactory.java
@@ -0,0 +1,150 @@
+/**
+ * Copyright (c) 2013 Soft-Maint.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * David Couvrand (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ * Nicolas Rault (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.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.emf.facet.custom.metamodel.v0_3_0.query.*;
+
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.Query;
+
+/**
+ * <!-- 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.emf.facet.custom.metamodel.v0_3_0.query.QueryPackage
+ * @generated
+ */
+public class QueryAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static QueryPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QueryAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = QueryPackage.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 QuerySwitch<Adapter> modelSwitch =
+ new QuerySwitch<Adapter>() {
+ @Override
+ public Adapter caseURIImageQuery(URIImageQuery object) {
+ return createURIImageQueryAdapter();
+ }
+ @Override
+ public Adapter caseQuery(Query object) {
+ return createQueryAdapter();
+ }
+ @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 query.URIImageQuery <em>URI Image Query</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 query.URIImageQuery
+ * @generated
+ */
+ public Adapter createURIImageQueryAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.Query <em>Query</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.Query
+ * @generated
+ */
+ public Adapter createQueryAdapter() {
+ 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;
+ }
+
+} //QueryAdapterFactory
diff --git a/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/util/QuerySwitch.java b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/util/QuerySwitch.java
new file mode 100644
index 00000000000..d00426d97e1
--- /dev/null
+++ b/plugins/facet/org.eclipse.papyrus.emf.facet.custom.metamodel/src/org/eclipse/emf/facet/custom/metamodel/v0_3_0/query/util/QuerySwitch.java
@@ -0,0 +1,153 @@
+/**
+ * Copyright (c) 2013 Soft-Maint.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * David Couvrand (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ * Nicolas Rault (Soft-Maint) - Bug 402725 - Need a query to get an image from an URI
+ */
+package org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.QueryPackage;
+import org.eclipse.emf.facet.custom.metamodel.v0_3_0.query.URIImageQuery;
+import org.eclipse.emf.facet.efacet.metamodel.v0_2_0.efacet.extensible.Query;
+
+/**
+ * <!-- 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.emf.facet.custom.metamodel.v0_3_0.query.QueryPackage
+ * @generated
+ */
+public class QuerySwitch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static QueryPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QuerySwitch() {
+ if (modelPackage == null) {
+ modelPackage = QueryPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public T doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List<EClass> eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch(eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case QueryPackage.URI_IMAGE_QUERY: {
+ URIImageQuery uriImageQuery = (URIImageQuery)theEObject;
+ T result = caseURIImageQuery(uriImageQuery);
+ if (result == null) result = caseQuery(uriImageQuery);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>URI Image Query</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>URI Image Query</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseURIImageQuery(URIImageQuery object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Query</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>Query</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseQuery(Query object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //QuerySwitch

Back to the top