Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.compare.tests')
-rw-r--r--plugins/org.eclipse.emf.compare.tests/.checkstyle9
-rw-r--r--plugins/org.eclipse.emf.compare.tests/.classpath7
-rw-r--r--plugins/org.eclipse.emf.compare.tests/.cvsignore1
-rw-r--r--plugins/org.eclipse.emf.compare.tests/.project34
-rw-r--r--plugins/org.eclipse.emf.compare.tests/.settings/org.eclipse.jdt.core.prefs317
-rw-r--r--plugins/org.eclipse.emf.compare.tests/.settings/org.eclipse.jdt.ui.prefs56
-rw-r--r--plugins/org.eclipse.emf.compare.tests/JUnitTest.xml.xml83
-rw-r--r--plugins/org.eclipse.emf.compare.tests/META-INF/MANIFEST.MF24
-rw-r--r--plugins/org.eclipse.emf.compare.tests/about.html106
-rw-r--r--plugins/org.eclipse.emf.compare.tests/build.properties33
-rw-r--r--plugins/org.eclipse.emf.compare.tests/data/testInput.ecore78
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/attribute/attributeChange/result.emfdiff66
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/attribute/uml/result.emfdiff572
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/attribute/volatile/result.emfdiff69
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/composite/manyMoves/result.emfdiff3224
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/composite/order/result.emfdiff1144
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/composite/uml/result.emfdiff469
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/element/addedElement/elemAdd/result.emfdiff65
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/element/addedElement/simple/result.emfdiff76
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/element/addedElement/simple2/result.emfdiff85
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/element/movedElement/result.emfdiff31
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/element/removedElement/elemRemove/result.emfdiff64
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/emfdiff/result.emfdiff118
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/genmodel/attributeChange/result.emfdiff87
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/gmfgen/result.emfdiff328
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/reference/refAdd/manual.emfdiff1024
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/reference/refAdd/result.emfdiff1024
-rw-r--r--plugins/org.eclipse.emf.compare.tests/expected/inputs/reference/refRemove/result.emfdiff100
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore8
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore17
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore17
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore17
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/fatv1.ecore7179
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/fatv2.ecore7158
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore1447
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore1445
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore465
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore465
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore19
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore18
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore30
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore38
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore50
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore38
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/element/movedElement/v1.ecore18
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/element/movedElement/v2.ecore19
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore17
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v2.ecore17
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/fragment/v1/child.ecore6
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/fragment/v1/parent.ecore7
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/fragment/v2/child.ecore6
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/fragment/v2/parent.ecore7
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel21
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel21
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/nonstd/attribute/uml/mm.uml13242
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/nonstd/attribute/uml/mm2.uml242
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/nonstd/composite/uml/mm.uml242
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/nonstd/composite/uml/mm2.uml242
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/nonstd/gmfgen/entity.bkp.gmfgen500
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/nonstd/gmfgen/entity.gmfgen500
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore314
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore314
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore28
-rw-r--r--plugins/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore28
-rw-r--r--plugins/org.eclipse.emf.compare.tests/modeling32.pngbin0 -> 2414 bytes
-rw-r--r--plugins/org.eclipse.emf.compare.tests/plugin.properties12
-rw-r--r--plugins/org.eclipse.emf.compare.tests/plugin.xml56
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/EMFCompareTestPlugin.java65
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AllMergeTests.java32
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AttributeOrderTest.java69
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/ContainmentOrderTest.java56
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/MergeTestBase.java123
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/NonContainmentOrderTest.java66
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/NonUniqueAttributeOrderTest.java72
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/TestContainmentOrderAddMany.java70
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/TestContainmentRemove.java69
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/TestContainmentRemoveMany.java88
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/suite/AllTests.java79
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/NonRegressionModelsTest.java164
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/CoreTestSuite.java59
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/EMFComparePluginTest.java295
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/MessagesTest.java215
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/AdapterUtilsTest.java114
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/ClassUtilsTest.java187
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/EAddTest.java207
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/EFactoryTestSuite.java49
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/EGetAsListTest.java161
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/EGetTest.java139
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/ERemoveTest.java206
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/ESetTest.java283
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/ConstructorsTest.java182
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/ContainsKeyValueTest.java118
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/EMFCompareMapTestSuite.java54
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/EntrySetTest.java354
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/EqualsTest.java171
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/GetPutTest.java125
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/KeySetTest.java350
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/MethodsTest.java198
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/PutAllTest.java199
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/RemoveTest.java98
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/ValuesTest.java358
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/AttachResourceTest.java164
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/GetModelsFromTest.java295
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/LoadFromFileTest.java189
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/LoadFromInputStreamTest.java239
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/LoadFromStringTest.java161
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/ModelUtilsTestSuite.java50
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/SaveSerializeTest.java193
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/diff/DiffTestSuite.java52
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/diff/MessagesTest.java231
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/diff/ThreeWayDiffTest.java338
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/diff/TwoWayDiffTest.java285
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/MatchTestSuite.java57
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/EnginesPriorityTest.java38
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/MatchEngineSelectionTest.java114
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/MatchEngineTestSuite.java54
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/MatchOptionsTest.java85
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/ThreeWayContentMatchTest.java320
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/ThreeWayModelMatchTest.java363
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/ThreeWayResourceMatchTest.java365
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/TwoWayContentMatchTest.java307
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/TwoWayModelMatchFragments.java112
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/TwoWayModelMatchTest.java335
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/TwoWayResourceMatchTest.java336
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/AEngine.java98
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/BEngine.java98
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/CHighEngine.java98
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/CLowEngine.java98
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/DEngine.java98
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/EEngine.java98
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/GenericHighestEngine.java98
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/NameSimilarityTest.java369
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/ResourceSimilarityTest.java55
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/RelationsSimilarityBehaviorTest.java171
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/RelationsSimilarityDistinctTest.java132
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/RelationsSimilaritySimilarTest.java266
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/StructureSimilarityTestSuite.java48
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/TypeSimilarityBehaviorTest.java120
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/util/EcoreModelUtils.java455
-rw-r--r--plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/util/FileUtils.java52
-rwxr-xr-xplugins/org.eclipse.emf.compare.tests/test.xml48
141 files changed, 42724 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.compare.tests/.checkstyle b/plugins/org.eclipse.emf.compare.tests/.checkstyle
new file mode 100644
index 000000000..4b5918627
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/.checkstyle
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<fileset-config file-format-version="1.2.0" simple-config="true">
+ <local-check-config name="EMF Compare" location="/org.eclipse.emf.compare/codeStyle/EMFCompareCheckstyleConfiguration.xml" type="project" description="">
+ <additional-data name="protect-config-file" value="false"/>
+ </local-check-config>
+ <fileset name="tous" enabled="true" check-config-name="EMF Compare" local="true">
+ <file-match-pattern match-pattern="." include-pattern="true"/>
+ </fileset>
+</fileset-config>
diff --git a/plugins/org.eclipse.emf.compare.tests/.classpath b/plugins/org.eclipse.emf.compare.tests/.classpath
new file mode 100644
index 000000000..304e86186
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/.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/org.eclipse.emf.compare.tests/.cvsignore b/plugins/org.eclipse.emf.compare.tests/.cvsignore
new file mode 100644
index 000000000..ba077a403
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/.cvsignore
@@ -0,0 +1 @@
+bin
diff --git a/plugins/org.eclipse.emf.compare.tests/.project b/plugins/org.eclipse.emf.compare.tests/.project
new file mode 100644
index 000000000..69ac4b138
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.compare.tests</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>com.atlassw.tools.eclipse.checkstyle.CheckstyleBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>com.atlassw.tools.eclipse.checkstyle.CheckstyleNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.compare.tests/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.compare.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..a94283a5e
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,317 @@
+#Fri Mar 13 15:48:57 CET 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=enabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=error
+org.eclipse.jdt.core.compiler.problem.emptyStatement=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=error
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=1
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=110
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=8
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=110
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/plugins/org.eclipse.emf.compare.tests/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.compare.tests/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 000000000..2eea888e2
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,56 @@
+#Fri Mar 13 15:48:57 CET 2009
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_EMF Compare
+formatter_settings_version=11
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=false
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=true
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/plugins/org.eclipse.emf.compare.tests/JUnitTest.xml.xml b/plugins/org.eclipse.emf.compare.tests/JUnitTest.xml.xml
new file mode 100644
index 000000000..8bdf81063
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/JUnitTest.xml.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<testsuite errors="1" failures="0" name="org.eclipse.emf.compare.tests.suite.AllTests" tests="1" time="0.0">
+ <properties>
+ <property name="java.runtime.name" value="Java(TM) SE Runtime Environment"></property>
+ <property name="sun.boot.library.path" value="C:\Program Files\Java\jdk1.6.0\jre\bin"></property>
+ <property name="java.vm.version" value="1.6.0-b105"></property>
+ <property name="ant.library.dir" value="D:\dev\programs\eclipse\3.2.2\eclipse\plugins\org.apache.ant_1.6.5\lib"></property>
+ <property name="ant.version" value="Apache Ant version 1.6.5 compiled on June 2 2005"></property>
+ <property name="ant.java.version" value="1.5"></property>
+ <property name="java.vm.vendor" value="Sun Microsystems Inc."></property>
+ <property name="java.vendor.url" value="http://java.sun.com/"></property>
+ <property name="path.separator" value=";"></property>
+ <property name="java.vm.name" value="Java HotSpot(TM) Client VM"></property>
+ <property name="file.encoding.pkg" value="sun.io"></property>
+ <property name="user.country" value="FR"></property>
+ <property name="sun.java.launcher" value="SUN_STANDARD"></property>
+ <property name="sun.os.patch.level" value="Service Pack 2"></property>
+ <property name="java.vm.specification.name" value="Java Virtual Machine Specification"></property>
+ <property name="user.dir" value="D:\dev\workspaces\EMFCompare\org.eclipse.emf.compare.tests"></property>
+ <property name="java.runtime.version" value="1.6.0-b105"></property>
+ <property name="java.awt.graphicsenv" value="sun.awt.Win32GraphicsEnvironment"></property>
+ <property name="eclipse.pdebuild.scripts" value="/D:/dev/programs/eclipse/3.2.2/eclipse/plugins/org.eclipse.pde.build_3.2.1.r321_v20060823/scripts/"></property>
+ <property name="basedir" value="D:\dev\workspaces\EMFCompare\org.eclipse.emf.compare.tests"></property>
+ <property name="java.endorsed.dirs" value="C:\Program Files\Java\jdk1.6.0\jre\lib\endorsed"></property>
+ <property name="os.arch" value="x86"></property>
+ <property name="java.io.tmpdir" value="C:\DOCUME~1\lgoubet\LOCALS~1\Temp\"></property>
+ <property name="line.separator" value="
+"></property>
+ <property name="java.vm.specification.vendor" value="Sun Microsystems Inc."></property>
+ <property name="user.variant" value=""></property>
+ <property name="test.class.name" value="org.eclipse.emf.compare.tests.suite.AllTests"></property>
+ <property name="os.name" value="Windows XP"></property>
+ <property name="ant.home" value="D:\dev\programs\eclipse\3.2.2\eclipse\plugins\org.apache.ant_1.6.5"></property>
+ <property name="eclipse.pdebuild.templates" value="/D:/dev/programs/eclipse/3.2.2/eclipse/plugins/org.eclipse.pde.build_3.2.1.r321_v20060823/templates/"></property>
+ <property name="ant.project.name" value="org.eclipse.emf.compare.tests"></property>
+ <property name="sun.jnu.encoding" value="Cp1252"></property>
+ <property name="java.library.path" value="C:\Program Files\Java\jdk1.6.0\jre\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Fichiers communs\GTK\2.0\bin;C:\Sun\AppServer\bin;;C:\PROGRA~1\FICHIE~1\MUVEET~1\030625"></property>
+ <property name="eclipse.pdebuild.home" value="/D:/dev/programs/eclipse/3.2.2/eclipse/plugins/org.eclipse.pde.build_3.2.1.r321_v20060823/./"></property>
+ <property name="java.specification.name" value="Java Platform API Specification"></property>
+ <property name="java.class.version" value="50.0"></property>
+ <property name="sun.management.compiler" value="HotSpot Client Compiler"></property>
+ <property name="os.version" value="5.1"></property>
+ <property name="ant.file" value="D:\dev\workspaces\EMFCompare\org.eclipse.emf.compare.tests\build.xml"></property>
+ <property name="ant.file.org.eclipse.emf.compare.tests" value="D:\dev\workspaces\EMFCompare\org.eclipse.emf.compare.tests\build.xml"></property>
+ <property name="user.home" value="C:\Documents and Settings\lgoubet"></property>
+ <property name="user.timezone" value=""></property>
+ <property name="java.awt.printerjob" value="sun.awt.windows.WPrinterJob"></property>
+ <property name="java.specification.version" value="1.6"></property>
+ <property name="file.encoding" value="Cp1252"></property>
+ <property name="user.name" value="lgoubet"></property>
+ <property name="java.class.path" value="D:\dev\programs\eclipse\3.2.2\eclipse\plugins\org.junit_3.8.1\junit.jar;D:\dev\programs\eclipse\3.2.2\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-launcher.jar;D:\dev\programs\eclipse\3.2.2\eclipse\plugins\org.apache.ant_1.6.5\lib\ant.jar;D:\dev\programs\eclipse\3.2.2\eclipse\plugins\org.apache.ant_1.6.5\lib\ant-junit.jar"></property>
+ <property name="java.vm.specification.version" value="1.0"></property>
+ <property name="sun.arch.data.model" value="32"></property>
+ <property name="java.home" value="C:\Program Files\Java\jdk1.6.0\jre"></property>
+ <property name="java.specification.vendor" value="Sun Microsystems Inc."></property>
+ <property name="user.language" value="fr"></property>
+ <property name="awt.toolkit" value="sun.awt.windows.WToolkit"></property>
+ <property name="java.vm.info" value="mixed mode, sharing"></property>
+ <property name="java.version" value="1.6.0"></property>
+ <property name="java.ext.dirs" value="C:\Program Files\Java\jdk1.6.0\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext"></property>
+ <property name="sun.boot.class.path" value="C:\Program Files\Java\jdk1.6.0\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.6.0\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.6.0\jre\classes"></property>
+ <property name="java.vendor" value="Sun Microsystems Inc."></property>
+ <property name="file.separator" value="\"></property>
+ <property name="java.vendor.url.bug" value="http://java.sun.com/cgi-bin/bugreport.cgi"></property>
+ <property name="sun.io.unicode.encoding" value="UnicodeLittle"></property>
+ <property name="sun.cpu.endian" value="little"></property>
+ <property name="sun.desktop" value="windows"></property>
+ <property name="sun.cpu.isalist" value="pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86"></property>
+ </properties>
+ <error message="org.eclipse.emf.compare.tests.suite.AllTests" type="java.lang.ClassNotFoundException">java.lang.ClassNotFoundException: org.eclipse.emf.compare.tests.suite.AllTests
+ at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
+ at java.security.AccessController.doPrivileged(Native Method)
+ at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
+ at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
+ at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
+ at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
+ at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
+ at java.lang.Class.forName0(Native Method)
+ at java.lang.Class.forName(Class.java:169)
+</error>
+ <system-out><![CDATA[]]></system-out>
+ <system-err><![CDATA[]]></system-err>
+</testsuite>
diff --git a/plugins/org.eclipse.emf.compare.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.compare.tests/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..5ce90397b
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.compare.tests;singleton:=true
+Bundle-Version: 1.1.1.qualifier
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Export-Package: org.eclipse.emf.compare.tests,
+ org.eclipse.emf.compare.tests.util
+Require-Bundle: org.eclipse.core.resources,
+ org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.emf.compare,
+ org.eclipse.emf.compare.diff,
+ org.eclipse.emf.compare.match,
+ org.eclipse.emf.ecore;bundle-version="[2.2.0,3.0.0)",
+ org.eclipse.emf.ecore.edit,
+ org.eclipse.emf.ecore.xmi,
+ org.eclipse.emf.edit,
+ org.eclipse.ui,
+ org.junit
+Bundle-Activator: org.eclipse.emf.compare.tests.EMFCompareTestPlugin
+Bundle-ActivationPolicy: lazy
+Eclipse-LazyStart: true
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.emf.compare.tests/about.html b/plugins/org.eclipse.emf.compare.tests/about.html
new file mode 100644
index 000000000..670d10856
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/about.html
@@ -0,0 +1,106 @@
+<!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>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>April 14, 2010</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+ (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+ CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+ OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+ NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+ CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation 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 provided with this Content and is also 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>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+ repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+ <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+ <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+ <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+ and/or Fragments associated with that Feature.</li>
+ <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+ <li>The top-level (root) directory</li>
+ <li>Plug-in and Fragment directories</li>
+ <li>Inside Plug-ins and Fragments packaged as JARs</li>
+ <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+ <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+ <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+ <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+ <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+ <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+ <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+ Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+ other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+ install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+ href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+ (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+ applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+ in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+ Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+ <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+ on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+ product.</li>
+ <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+ accessed and copied to the Target Machine.</li>
+ <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+ Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+ Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+ the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+ indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+ another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+ possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.tests/build.properties b/plugins/org.eclipse.emf.compare.tests/build.properties
new file mode 100644
index 000000000..5992fb64a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/build.properties
@@ -0,0 +1,33 @@
+###############################################################################
+# Copyright (c) 2006, 2009 Obeo.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Obeo - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+ plugin.properties,\
+ META-INF/,\
+ .,\
+ modeling32.png,\
+ about.html,\
+ test.xml,\
+ data/,\
+ inputs/,\
+ expected/
+src.includes = data/,\
+ expected/,\
+ inputs/,\
+ modeling32.png,\
+ plugin.properties,\
+ plugin.xml,\
+ test.xml,\
+ META-INF/,\
+ about.html,\
+ src/
+
diff --git a/plugins/org.eclipse.emf.compare.tests/data/testInput.ecore b/plugins/org.eclipse.emf.compare.tests/data/testInput.ecore
new file mode 100644
index 000000000..95c299763
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/data/testInput.ecore
@@ -0,0 +1,78 @@
+<?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="root"
+ nsURI="none">
+ <eClassifiers xsi:type="ecore:EClass" name="Class1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="class1Attribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" eType="#//Visibility"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Class1Clone">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="class1Attribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" eType="#//Visibility"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Class1Altered" interface="true">
+ <eOperations name="class1Operation"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="class1Attribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="EString" instanceClassName="java.lang.String"/>
+ <eClassifiers xsi:type="ecore:EEnum" name="Visibility">
+ <eLiterals name="public"/>
+ <eLiterals name="package" value="1"/>
+ <eLiterals name="protected" value="2"/>
+ <eLiterals name="private" value="3"/>
+ <eLiterals name="anonynner" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass"/>
+ <eSubpackages name="Package1"/>
+ <eSubpackages name="structureSimilarityTests">
+ <eSubpackages name="similar">
+ <eClassifiers xsi:type="ecore:EClass" name="AClass">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="anAttribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="aReference" eType="#//structureSimilarityTests/similar/AnotherClass"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SecondClass"/>
+ <eClassifiers xsi:type="ecore:EClass" name="AnotherClass" eSuperTypes="#//structureSimilarityTests/similar/AClass">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="itsAttrIsntTheSame"
+ eType="#//structureSimilarityTests/similar/AndADataType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="AndADataType" instanceClassName="java.lang.Object"/>
+ <eSubpackages name="ThisIsToAddSomethingToTheSurroundings"/>
+ </eSubpackages>
+ <eSubpackages name="similar">
+ <eClassifiers xsi:type="ecore:EClass" name="AClass">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="anAttribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="aReference" eType="#//structureSimilarityTests/similar.1/AnotherClass"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SecondClass"/>
+ <eClassifiers xsi:type="ecore:EClass" name="AnotherClass" eSuperTypes="#//structureSimilarityTests/similar.1/AClass">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="itsAttrIsntTheSame"
+ eType="#//structureSimilarityTests/similar.1/AndADataType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="AndADataType" instanceClassName="java.lang.Object"/>
+ <eSubpackages name="ThisIsToAddSomethingToTheSurroundings"/>
+ </eSubpackages>
+ <eSubpackages name="noPairInCommon">
+ <eClassifiers xsi:type="ecore:EClass" name="Library">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="books" upperBound="-1"
+ eType="#//structureSimilarityTests/noPairInCommon/Book"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="authors" upperBound="-1"
+ eType="#//structureSimilarityTests/noPairInCommon/Author"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Book">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="author" eType="#//structureSimilarityTests/noPairInCommon/Author"
+ eOpposite="#//structureSimilarityTests/noPairInCommon/Author/books"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="#//structureSimilarityTests/noPairInCommon/LString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="pages" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EShort"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Author">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="#//structureSimilarityTests/noPairInCommon/LString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="books" upperBound="-1"
+ eType="#//structureSimilarityTests/noPairInCommon/Book" eOpposite="#//structureSimilarityTests/noPairInCommon/Book/author"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="LString" instanceClassName="java.lang.String">
+ <eAnnotations source="This will add to the difference"/>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/attribute/attributeChange/result.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/attribute/attributeChange/result.emfdiff
new file mode 100644
index 000000000..6d5b642dd
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/attribute/attributeChange/result.emfdiff
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T11:10:27.801+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:UpdateAttribute">
+ <attribute href="http://www.eclipse.org/emf/2002/Ecore#//EClass/interface"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore#/"/>
+ </ownedElements>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9999996000000001">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/ejbCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/ejbPostCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/ejbPostCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/ejbRemove"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/ejbActivate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/ejbActivate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/ejbPassivate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/ejbPassivate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/sc"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/sc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/poLocalHome"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/poLocalHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/processManagerLocal"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/processManagerLocal"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore#/"/>
+ </matchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/attribute/uml/result.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/attribute/uml/result.emfdiff
new file mode 100644
index 000000000..b04bb01c5
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/attribute/uml/result.emfdiff
@@ -0,0 +1,572 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T11:10:27.653+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:UpdateAttribute">
+ <attribute href="http://www.eclipse.org/uml2/2.0.0/UML#//NamedElement/name"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSPgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSPgKLEdq6wrOLNneL2Q"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSPgKLEdq6wrOLNneL2Q"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSPQKLEdq6wrOLNneL2Q"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSPAKLEdq6wrOLNneL2Q"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSMQKLEdq6wrOLNneL2Q"/>
+ </ownedElements>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSOwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSOwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.991304347826087">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9601092896174864">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9800000000000001">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSQAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSQAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSPwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSPwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9666666666666668">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSQQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSQQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9666666666666668">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSQgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSQgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9666666666666668">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSQwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSQwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9666666666666668">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSRAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSRAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9666666666666668">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSRQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSRQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9966666666666668">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSSAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSSAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSRwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSRwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSSQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSSQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSSgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSSgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSSwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSSwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSTAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSTAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSRgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSRgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSPgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSPgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSTwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSTwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSTgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSTgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSUAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSUAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSUQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSUQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSUgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSUgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSVAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSVAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSVQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSVQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSUwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSUwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSTQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSTQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSWAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSWAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSWQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSWQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSVwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSVwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSVgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSVgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSPQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSPQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSPAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSPAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSWwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSWwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSWgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSWgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSYAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSYAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSXwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSXwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_pX9e4GNcEdqA9eCD16eJRQ"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_pX9e4GNcEdqA9eCD16eJRQ"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSYwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSYwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSYgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSYgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSYQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSYQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSZgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSZgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSZQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSZQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSZAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSZAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSaQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSaQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSaAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSaAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSZwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSZwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSbAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSbAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSawKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSawKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSagKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSagKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSbwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSbwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSbgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSbgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSbQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSbQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuScAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuScAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSdAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSdAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSXgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSXgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSdwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSdwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSdgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSdgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_xWDW0GNcEdqA9eCD16eJRQ"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_xWDW0GNcEdqA9eCD16eJRQ"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSegKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSegKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSeQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSeQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSeAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSeAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSfQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSfQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSfAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSfAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSewKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSewKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSgAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSgAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSfwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSfwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSfgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSfgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSgwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSgwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSggKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSggKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSgQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSgQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuShgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuShgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuShQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuShQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuShAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuShAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuShwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuShwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSiwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSiwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSdQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSdQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSjgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSjgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSjQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSjQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_7M3D4GNcEdqA9eCD16eJRQ"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_7M3D4GNcEdqA9eCD16eJRQ"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSkQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSkQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSkAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSkAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSjwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSjwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSlAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSlAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSkwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSkwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSkgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSkgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSlQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSlQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSlgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSlgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSmgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSmgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSmwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSmwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSjAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSjAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSnAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSnAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSXQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSXQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSoAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSoAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSnwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSnwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#__pFXkGNcEdqA9eCD16eJRQ"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#__pFXkGNcEdqA9eCD16eJRQ"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSowKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSowKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSogKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSogKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSoQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSoQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSpgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSpgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSpQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSpQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSpAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSpAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSpwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSpwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSqwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSqwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSngKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSngKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fYAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fYAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSrQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSrQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_djk1YGNdEdqA9eCD16eJRQ"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_djk1YGNdEdqA9eCD16eJRQ"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fYwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fYwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fYgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fYgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fZAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fZAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fZQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fZQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fYQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fYQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6faAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6faAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fZwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fZwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fZgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fZgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fawKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fawKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fagKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fagKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6faQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6faQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fbAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fbAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fbQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fbQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fbgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fbgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fcgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fcgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fcwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fcwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fdAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fdAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fdgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fdgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSrAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSrAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6fdwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6fdwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSnQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSnQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6feAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6feAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0c6feQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0c6feQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSXAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSXAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSMwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSMwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSMgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSMgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSNgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSNgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSNQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSNQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSOQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSOQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSOAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSOAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm.uml#_0cuSMQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/uml/mm2.uml#_0cuSMQKLEdq6wrOLNneL2Q"/>
+ </matchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/attribute/volatile/result.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/attribute/volatile/result.emfdiff
new file mode 100644
index 000000000..bc6a02b21
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/attribute/volatile/result.emfdiff
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T11:10:26.290+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:UpdateAttribute">
+ <attribute href="http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore#//OPCAdminFacadeEJB/sc"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore#//OPCAdminFacadeEJB/scp"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore#//OPCAdminFacadeEJB/sc"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore#//OPCAdminFacadeEJB"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore#/"/>
+ </ownedElements>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9985185185185186">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore#//OPCAdminFacadeEJB/ejbCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore#//OPCAdminFacadeEJB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore#//OPCAdminFacadeEJB/ejbPostCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore#//OPCAdminFacadeEJB/ejbPostCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore#//OPCAdminFacadeEJB/ejbRemove"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore#//OPCAdminFacadeEJB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore#//OPCAdminFacadeEJB/ejbActivate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore#//OPCAdminFacadeEJB/ejbActivate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore#//OPCAdminFacadeEJB/ejbPassivate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore#//OPCAdminFacadeEJB/ejbPassivate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore#//OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore#//OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore#//OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore#//OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6896103896103896">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore#//OPCAdminFacadeEJB/sc"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore#//OPCAdminFacadeEJB/scp"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore#//OPCAdminFacadeEJB/poLocalHome"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore#//OPCAdminFacadeEJB/poLocalHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore#//OPCAdminFacadeEJB/processManagerLocal"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore#//OPCAdminFacadeEJB/processManagerLocal"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore#//OPCAdminFacadeEJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore#//OPCAdminFacadeEJB"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore#/"/>
+ </matchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/composite/manyMoves/result.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/composite/manyMoves/result.emfdiff
new file mode 100644
index 000000000..1e8411a59
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/composite/manyMoves/result.emfdiff
@@ -0,0 +1,3224 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T11:10:25.887+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:RemoveReferenceValue">
+ <reference href="http://www.eclipse.org/emf/2002/Ecore#//ETypedElement/eType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/modelElementInitializer"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/modelElementInitializer"/>
+ <leftRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenElementInitializer"/>
+ <rightRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage/GenElementInitializer"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/modelElementInitializer"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:RemoveReferenceValue">
+ <reference href="http://www.eclipse.org/emf/2002/Ecore#//ETypedElement/eType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Palette/groups"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Palette/groups"/>
+ <leftRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolGroup"/>
+ <rightRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage/ToolGroup"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Palette/groups"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Palette"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:RemoveReferenceValue">
+ <reference href="http://www.eclipse.org/emf/2002/Ecore#//EClass/eSuperTypes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ToolEntry"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolEntry"/>
+ <leftRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolGroupItem"/>
+ <rightRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage/ToolGroupItem"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolEntry"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:RemoveReferenceValue">
+ <reference href="http://www.eclipse.org/emf/2002/Ecore#//EClass/eSuperTypes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram"/>
+ <leftRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/EditorCandies"/>
+ <rightRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/EditorCandies"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:RemoveReferenceValue">
+ <reference href="http://www.eclipse.org/emf/2002/Ecore#//ETypedElement/eType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/getAllNodes"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/getAllNodes"/>
+ <leftRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenNode"/>
+ <rightRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenNode"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/getAllNodes"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:RemoveReferenceValue">
+ <reference href="http://www.eclipse.org/emf/2002/Ecore#//EClass/eSuperTypes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/FeatureLinkModelFacet"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/FeatureLinkModelFacet"/>
+ <leftRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/LinkModelFacet"/>
+ <rightRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/LinkModelFacet"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/FeatureLinkModelFacet"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:RemoveReferenceValue">
+ <reference href="http://www.eclipse.org/emf/2002/Ecore#//ETypedElement/eType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer/metrics"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer/metrics"/>
+ <leftRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule"/>
+ <rightRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenMetricRule"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer/metrics"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:RemoveReferenceValue">
+ <reference href="http://www.eclipse.org/emf/2002/Ecore#//ETypedElement/eType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget/metric"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget/metric"/>
+ <leftRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule"/>
+ <rightRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenMetricRule"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget/metric"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenMetricRule"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/EditorCandies"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/EditorCandies"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/EditorCandies"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenNode"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenNode"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenNode"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/LinkModelFacet"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/LinkModelFacet"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/LinkModelFacet"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage/ToolGroupItem"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolGroupItem"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#/"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolGroupItem"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage/Separator"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Separator"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#/"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Separator"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage/ToolGroup"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolGroup"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#/"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolGroup"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage/GenElementInitializer"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenElementInitializer"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#/"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenElementInitializer"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage/GenFeatureSeqInitializer"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenFeatureSeqInitializer"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#/"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenFeatureSeqInitializer"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage/GenFeatureValueSpec"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenFeatureValueSpec"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#/"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenFeatureValueSpec"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenNotationElementTarget"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage/GenNotationElementTarget"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#/"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage/GenNotationElementTarget"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenMeasurable"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage/GenMeasurable"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#/"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage/GenMeasurable"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenExpressionProviderContainer"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage/GenExpressionProviderContainer"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#/"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage/GenExpressionProviderContainer"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenExpressionProviderBase"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage/GenExpressionProviderBase"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#/"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage/GenExpressionProviderBase"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#/"/>
+ </ownedElements>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//%http:%2F%2Fwww.eclipse.org%2Femf%2F2004%2FEmfaticAnnotationMap%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//%http:%2F%2Fwww.eclipse.org%2Femf%2F2004%2FEmfaticAnnotationMap%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//%http:%2F%2Fwww.eclipse.org%2Femf%2F2004%2FEmfaticAnnotationMap%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//%http:%2F%2Fwww.eclipse.org%2Femf%2F2004%2FEmfaticAnnotationMap%/@details.1"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//%http:%2F%2Fwww.eclipse.org%2Femf%2F2004%2FEmfaticAnnotationMap%/@details.2"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//%http:%2F%2Fwww.eclipse.org%2Femf%2F2004%2FEmfaticAnnotationMap%/@details.2"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//%http:%2F%2Fwww.eclipse.org%2Femf%2F2004%2FEmfaticAnnotationMap%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//%http:%2F%2Fwww.eclipse.org%2Femf%2F2004%2FEmfaticAnnotationMap%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/getAllDomainGenPackages/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/getAllDomainGenPackages/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/getAllDomainGenPackages/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/getAllDomainGenPackages/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/getAllDomainGenPackages/withUsed"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/getAllDomainGenPackages/withUsed"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/getAllDomainGenPackages"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/getAllDomainGenPackages"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/audits"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/audits"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/metrics"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/metrics"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/diagram"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/diagram"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/plugin"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/plugin"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/editor"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/editor"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/domainGenModel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/domainGenModel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/domainGenModel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/domainGenModel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/domainGenModel"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/domainGenModel"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/packageNamePrefix/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/packageNamePrefix/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/packageNamePrefix/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/packageNamePrefix/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/packageNamePrefix"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/packageNamePrefix"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/modelID"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/modelID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/sameFileForDiagramAndModel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/sameFileForDiagramAndModel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/sameFileForDiagramAndModel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/sameFileForDiagramAndModel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/sameFileForDiagramAndModel"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/sameFileForDiagramAndModel"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/diagramFileExtension/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/diagramFileExtension/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/diagramFileExtension/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/diagramFileExtension/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/diagramFileExtension"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/diagramFileExtension"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/domainFileExtension/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/domainFileExtension/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/domainFileExtension/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/domainFileExtension/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/domainFileExtension"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/domainFileExtension"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/dynamicTemplates"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/dynamicTemplates"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/templateDirectory"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/templateDirectory"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/copyrightText"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/copyrightText"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator/expressionProviders"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator/expressionProviders"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorGenerator"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorGenerator"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorView/getActionBarContributorQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorView/getActionBarContributorQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorView/getQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorView/getQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorView/editorGen"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorView/editorGen"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorView/packageName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorView/packageName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorView/actionBarContributorClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorView/actionBarContributorClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorView/className"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorView/className"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorView/iconPath"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorView/iconPath"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorView/iD"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorView/iD"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenEditorView"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenEditorView"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/getValidationProviderQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/getValidationProviderQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/getValidationDiagnosticMarkerType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/getValidationDiagnosticMarkerType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/getValidationDiagnosticMarkerType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/getValidationDiagnosticMarkerType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/getValidationDiagnosticMarkerType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/getValidationDiagnosticMarkerType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/getMarkerNavigationProviderQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/getMarkerNavigationProviderQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/getMetricProviderQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/getMetricProviderQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/getMetricViewID"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/getMetricViewID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/getValidationDecoratorProviderQualifedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/getValidationDecoratorProviderQualifedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/validationProviderClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/validationProviderClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/validationProviderPriority"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/validationProviderPriority"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/markerNavigationProviderClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/markerNavigationProviderClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/markerNavigationProviderPriority"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/markerNavigationProviderPriority"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/validationEnabled/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/validationEnabled/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/validationEnabled/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/validationEnabled/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/validationEnabled"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/validationEnabled"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/metricProviderClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/metricProviderClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/metricProviderPriority"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/metricProviderPriority"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/validationDecoratorProviderClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/validationDecoratorProviderClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/validationDecorators"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/validationDecorators"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation/validationDecoratorProviderPriority"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation/validationDecoratorProviderPriority"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//BatchValidation"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//BatchValidation"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/getElementTypesQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/getElementTypesQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/getNotationViewProviderQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/getNotationViewProviderQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/getEditPartProviderQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/getEditPartProviderQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/getPaletteProviderQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/getPaletteProviderQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/getModelingAssistantProviderQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/getModelingAssistantProviderQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/getPropertyProviderQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/getPropertyProviderQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/getIconProviderQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/getIconProviderQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/getParserProviderQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/getParserProviderQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/getAbstractParserQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/getAbstractParserQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/getStructuralFeatureParserQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/getStructuralFeatureParserQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/getStructuralFeaturesParserQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/getStructuralFeaturesParserQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/getContributionItemProviderQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/getContributionItemProviderQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/elementTypesClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/elementTypesClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/notationViewProviderClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/notationViewProviderClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/notationViewProviderPriority"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/notationViewProviderPriority"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/editPartProviderClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/editPartProviderClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/editPartProviderPriority"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/editPartProviderPriority"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/paletteProviderClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/paletteProviderClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/paletteProviderPriority"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/paletteProviderPriority"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/modelingAssistantProviderClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/modelingAssistantProviderClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/modelingAssistantProviderPriority"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/modelingAssistantProviderPriority"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/propertyProviderClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/propertyProviderClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/propertyProviderPriority"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/propertyProviderPriority"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/iconProviderClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/iconProviderClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/iconProviderPriority"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/iconProviderPriority"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/parserProviderClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/parserProviderClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/parserProviderPriority"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/parserProviderPriority"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/abstractParserClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/abstractParserClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/structuralFeatureParserClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/structuralFeatureParserClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/structuralFeaturesParserClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/structuralFeaturesParserClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames/contributionItemProviderClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames/contributionItemProviderClassName"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ProviderClassNames"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ProviderClassNames"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Shortcuts/getShortcutsDecoratorProviderQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Shortcuts/getShortcutsDecoratorProviderQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Shortcuts/getCreateShortcutActionQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Shortcuts/getCreateShortcutActionQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Shortcuts/generateCreateShortcutAction"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Shortcuts/generateCreateShortcutAction"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Shortcuts/generateShortcutIcon"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Shortcuts/generateShortcutIcon"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Shortcuts/shortcutsDecoratorProviderClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Shortcuts/shortcutsDecoratorProviderClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Shortcuts/shortcutsDecoratorProviderPriority"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Shortcuts/shortcutsDecoratorProviderPriority"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Shortcuts/createShortcutActionClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Shortcuts/createShortcutActionClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Shortcuts/containsShortcutsTo/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Shortcuts/containsShortcutsTo/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Shortcuts/containsShortcutsTo/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Shortcuts/containsShortcutsTo/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Shortcuts/containsShortcutsTo"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Shortcuts/containsShortcutsTo"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Shortcuts/shortcutsProvidedFor/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Shortcuts/shortcutsProvidedFor/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Shortcuts/shortcutsProvidedFor/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Shortcuts/shortcutsProvidedFor/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Shortcuts/shortcutsProvidedFor"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Shortcuts/shortcutsProvidedFor"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Shortcuts"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Shortcuts"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//PackageNames/editCommandsPackageName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//PackageNames/editCommandsPackageName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//PackageNames/editHelpersPackageName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//PackageNames/editHelpersPackageName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//PackageNames/editPartsPackageName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//PackageNames/editPartsPackageName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//PackageNames/editPoliciesPackageName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//PackageNames/editPoliciesPackageName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//PackageNames/providersPackageName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//PackageNames/providersPackageName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//PackageNames/notationViewFactoriesPackageName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//PackageNames/notationViewFactoriesPackageName"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//PackageNames"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//PackageNames"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LinkConstraints/hasLinkCreationConstraints/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LinkConstraints/hasLinkCreationConstraints/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LinkConstraints/hasLinkCreationConstraints/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LinkConstraints/hasLinkCreationConstraints/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LinkConstraints/hasLinkCreationConstraints"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LinkConstraints/hasLinkCreationConstraints"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LinkConstraints/getLinkCreationConstraintsClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LinkConstraints/getLinkCreationConstraintsClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LinkConstraints/getLinkCreationConstraintsClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LinkConstraints/getLinkCreationConstraintsClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LinkConstraints/getLinkCreationConstraintsClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LinkConstraints/getLinkCreationConstraintsClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LinkConstraints/getLinkCreationConstraintsQualifiedClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LinkConstraints/getLinkCreationConstraintsQualifiedClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LinkConstraints/getLinkCreationConstraintsQualifiedClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LinkConstraints/getLinkCreationConstraintsQualifiedClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LinkConstraints/getLinkCreationConstraintsQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LinkConstraints/getLinkCreationConstraintsQualifiedClassName"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LinkConstraints"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LinkConstraints"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/getReorientConnectionViewCommandQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/getReorientConnectionViewCommandQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/getBaseEditHelperQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/getBaseEditHelperQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/getEditPartFactoryQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/getEditPartFactoryQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/getBaseExternalNodeLabelEditPartQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/getBaseExternalNodeLabelEditPartQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/getBaseItemSemanticEditPolicyQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/getBaseItemSemanticEditPolicyQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/getBaseGraphicalNodeEditPolicyQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/getBaseGraphicalNodeEditPolicyQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/getReferenceConnectionEditPolicyQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/getReferenceConnectionEditPolicyQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/getCanonicalEditPolicyQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/getCanonicalEditPolicyQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/getTextSelectionEditPolicyQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/getTextSelectionEditPolicyQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/getTextNonResizableEditPolicyQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/getTextNonResizableEditPolicyQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/reorientConnectionViewCommandClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/reorientConnectionViewCommandClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/baseEditHelperClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/baseEditHelperClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/editPartFactoryClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/editPartFactoryClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/baseExternalNodeLabelEditPartClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/baseExternalNodeLabelEditPartClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/baseItemSemanticEditPolicyClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/baseItemSemanticEditPolicyClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/baseGraphicalNodeEditPolicyClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/baseGraphicalNodeEditPolicyClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/referenceConnectionEditPolicyClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/referenceConnectionEditPolicyClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/canonicalEditPolicyClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/canonicalEditPolicyClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/textSelectionEditPolicyClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/textSelectionEditPolicyClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies/textNonResizableEditPolicyClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies/textNonResizableEditPolicyClassName"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EditPartCandies"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EditPartCandies"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//MeasurementUnit/units"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//MeasurementUnit/units"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//MeasurementUnit"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//MeasurementUnit"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenPlugin/getRequiredPluginIDs/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenPlugin/getRequiredPluginIDs/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenPlugin/getRequiredPluginIDs/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenPlugin/getRequiredPluginIDs/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenPlugin/getRequiredPluginIDs"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenPlugin/getRequiredPluginIDs"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenPlugin/getActivatorQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenPlugin/getActivatorQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenPlugin/editorGen"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenPlugin/editorGen"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenPlugin/iD"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenPlugin/iD"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenPlugin/name"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenPlugin/name"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenPlugin/provider"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenPlugin/provider"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenPlugin/version"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenPlugin/version"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenPlugin/printingEnabled"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenPlugin/printingEnabled"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenPlugin/activatorClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenPlugin/activatorClassName"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenPlugin"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenPlugin"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/getEditPartQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/getEditPartQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/getItemSemanticEditPolicyQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/getItemSemanticEditPolicyQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/getNotationViewFactoryQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/getNotationViewFactoryQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/getDiagram"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/getDiagram"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/getClassNamePrefix"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/getClassNamePrefix"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/getClassNameSuffux"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/getClassNameSuffux"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/getUniqueIdentifier/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/getUniqueIdentifier/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/getUniqueIdentifier/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/getUniqueIdentifier/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/getUniqueIdentifier"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/getUniqueIdentifier"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/getLayoutType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/getLayoutType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/diagramRunTimeClass"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/diagramRunTimeClass"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/visualID/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/visualID/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/visualID/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/visualID/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/visualID/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/visualID/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/visualID/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/visualID/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/visualID/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/visualID/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/visualID"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/visualID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/elementType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/elementType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/editPartClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/editPartClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/itemSemanticEditPolicyClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/itemSemanticEditPolicyClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/notationViewFactoryClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/notationViewFactoryClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase/viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase/viewmap"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCommonBase"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCommonBase"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenContainerBase/containedNodes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenContainerBase/containedNodes"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenContainerBase"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenContainerBase"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildContainer/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildContainer/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildContainer/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildContainer/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildContainer/getCanonicalEditPolicyQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildContainer/getCanonicalEditPolicyQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildContainer/childNodes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildContainer/childNodes"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildContainer/canonicalEditPolicyClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildContainer/canonicalEditPolicyClassName"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildContainer"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildContainer"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenTopLevelNode/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenTopLevelNode/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenTopLevelNode/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenTopLevelNode/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenTopLevelNode/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenTopLevelNode/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenTopLevelNode/diagram"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenTopLevelNode/diagram"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenTopLevelNode"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenTopLevelNode"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildNode/diagram"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildNode/diagram"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildNode/containers/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildNode/containers/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildNode/containers/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildNode/containers/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildNode/containers/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildNode/containers/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildNode/containers"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildNode/containers"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildNode"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildNode"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildLabelNode/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildLabelNode/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildLabelNode/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildLabelNode/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildLabelNode/getLabelMetaFeatures/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildLabelNode/getLabelMetaFeatures/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildLabelNode/getLabelMetaFeatures/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildLabelNode/getLabelMetaFeatures/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildLabelNode/getLabelMetaFeatures"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildLabelNode/getLabelMetaFeatures"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildLabelNode/labelReadOnly"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildLabelNode/labelReadOnly"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildLabelNode/labelElementIcon"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildLabelNode/labelElementIcon"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildLabelNode/labelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildLabelNode/labelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildLabelNode/labelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildLabelNode/labelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildLabelNode/labelModelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildLabelNode/labelModelFacet"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenChildLabelNode"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenChildLabelNode"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCompartment/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCompartment/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCompartment/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCompartment/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCompartment/title"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCompartment/title"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCompartment/canCollapse"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCompartment/canCollapse"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCompartment/hideIfEmpty"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCompartment/hideIfEmpty"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCompartment/needsTitle"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCompartment/needsTitle"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCompartment/diagram"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCompartment/diagram"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCompartment/node"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCompartment/node"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCompartment/listLayout"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCompartment/listLayout"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenCompartment"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenCompartment"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/getSources/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/getSources/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/getSources/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/getSources/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/getSources"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/getSources"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/getTargets/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/getTargets/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/getTargets/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/getTargets/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/getTargets"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/getTargets"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/diagram"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/diagram"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/modelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/modelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/labels"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/labels"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/outgoingCreationAllowed/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/outgoingCreationAllowed/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/outgoingCreationAllowed/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/outgoingCreationAllowed/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/outgoingCreationAllowed"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/outgoingCreationAllowed"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/incomingCreationAllowed/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/incomingCreationAllowed/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/incomingCreationAllowed/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/incomingCreationAllowed/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/incomingCreationAllowed"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/incomingCreationAllowed"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/viewDirectionAlignedWithModel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/viewDirectionAlignedWithModel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/viewDirectionAlignedWithModel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/viewDirectionAlignedWithModel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/viewDirectionAlignedWithModel"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/viewDirectionAlignedWithModel"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/creationConstraints/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/creationConstraints/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/creationConstraints/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/creationConstraints/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink/creationConstraints"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink/creationConstraints"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLink"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLink"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLabel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLabel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLabel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLabel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLabel/getMetaFeatures/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLabel/getMetaFeatures/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLabel/getMetaFeatures/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLabel/getMetaFeatures/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLabel/getMetaFeatures"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLabel/getMetaFeatures"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLabel/readOnly"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLabel/readOnly"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLabel/elementIcon"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLabel/elementIcon"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLabel/modelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLabel/modelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLabel/modelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLabel/modelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLabel/modelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLabel/modelFacet"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLabel"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLabel"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenNodeLabel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenNodeLabel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenNodeLabel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenNodeLabel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenNodeLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenNodeLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenNodeLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenNodeLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenNodeLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenNodeLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenNodeLabel/node"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenNodeLabel/node"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenNodeLabel"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenNodeLabel"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenExternalNodeLabel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenExternalNodeLabel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenExternalNodeLabel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenExternalNodeLabel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenExternalNodeLabel"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenExternalNodeLabel"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkLabel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkLabel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkLabel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkLabel/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%.1/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%.1/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%.1/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%.1/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkLabel/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%.1"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkLabel/link"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkLabel/link"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkLabel/alignment"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkLabel/alignment"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkLabel"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkLabel"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LinkLabelAlignment/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LinkLabelAlignment/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LinkLabelAlignment/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LinkLabelAlignment/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LinkLabelAlignment/MIDDLE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LinkLabelAlignment/MIDDLE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LinkLabelAlignment/TARGET"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LinkLabelAlignment/TARGET"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LinkLabelAlignment/SOURCE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LinkLabelAlignment/SOURCE"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LinkLabelAlignment"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LinkLabelAlignment"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ElementType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ElementType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ElementType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ElementType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ElementType/diagramElement"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ElementType/diagramElement"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ElementType/uniqueIdentifier"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ElementType/uniqueIdentifier"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ElementType/displayName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ElementType/displayName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ElementType/displayName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ElementType/displayName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ElementType/displayName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ElementType/displayName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ElementType/definedExternally"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ElementType/definedExternally"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ElementType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ElementType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//MetamodelType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//MetamodelType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//MetamodelType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//MetamodelType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//MetamodelType/getEditHelperQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//MetamodelType/getEditHelperQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//MetamodelType/getMetaClass"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//MetamodelType/getMetaClass"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//MetamodelType/editHelperClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//MetamodelType/editHelperClassName"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//MetamodelType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//MetamodelType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//SpecializationType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//SpecializationType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//SpecializationType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//SpecializationType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//SpecializationType/getEditHelperAdviceQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//SpecializationType/getEditHelperAdviceQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//SpecializationType/metamodelType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//SpecializationType/metamodelType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//SpecializationType/editHelperAdviceClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//SpecializationType/editHelperAdviceClassName"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//SpecializationType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//SpecializationType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//NotationType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//NotationType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//NotationType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//NotationType/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//NotationType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//NotationType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ModelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ModelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LabelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LabelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LabelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LabelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LabelModelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LabelModelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/isPhantomElement"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/isPhantomElement"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/metaClass"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/metaClass"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/containmentMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/containmentMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/containmentMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/containmentMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/containmentMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/containmentMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/containmentMetaFeature"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/containmentMetaFeature"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/childMetaFeature/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/childMetaFeature/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/childMetaFeature/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/childMetaFeature/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/childMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/childMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/childMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/childMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/childMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/childMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/childMetaFeature"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/childMetaFeature"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/modelElementSelector/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/modelElementSelector/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/modelElementSelector/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/modelElementSelector/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/modelElementSelector/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/modelElementSelector/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/modelElementSelector/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/modelElementSelector/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/modelElementSelector/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/modelElementSelector/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/modelElementSelector"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/modelElementSelector"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/modelElementInitializer/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/modelElementInitializer/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/modelElementInitializer/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/modelElementInitializer/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet/modelElementInitializer"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet/modelElementInitializer"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeModelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeModelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FeatureModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FeatureModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FeatureModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FeatureModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FeatureModelFacet/metaFeature"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FeatureModelFacet/metaFeature"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FeatureModelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FeatureModelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//CompositeFeatureModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//CompositeFeatureModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//CompositeFeatureModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//CompositeFeatureModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//CompositeFeatureModelFacet/metaFeatures"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//CompositeFeatureModelFacet/metaFeatures"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//CompositeFeatureModelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//CompositeFeatureModelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeLinkModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeLinkModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeLinkModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeLinkModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeLinkModelFacet/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeLinkModelFacet/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeLinkModelFacet/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeLinkModelFacet/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeLinkModelFacet/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeLinkModelFacet/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeLinkModelFacet/sourceMetaFeature/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeLinkModelFacet/sourceMetaFeature/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeLinkModelFacet/sourceMetaFeature/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeLinkModelFacet/sourceMetaFeature/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeLinkModelFacet/sourceMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeLinkModelFacet/sourceMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeLinkModelFacet/sourceMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeLinkModelFacet/sourceMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeLinkModelFacet/sourceMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeLinkModelFacet/sourceMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeLinkModelFacet/sourceMetaFeature"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeLinkModelFacet/sourceMetaFeature"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeLinkModelFacet/targetMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeLinkModelFacet/targetMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeLinkModelFacet/targetMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeLinkModelFacet/targetMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeLinkModelFacet/targetMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeLinkModelFacet/targetMetaFeature/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeLinkModelFacet/targetMetaFeature"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeLinkModelFacet/targetMetaFeature"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//TypeLinkModelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//TypeLinkModelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FeatureLabelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FeatureLabelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FeatureLabelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FeatureLabelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FeatureLabelModelFacet/viewPattern/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FeatureLabelModelFacet/viewPattern/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FeatureLabelModelFacet/viewPattern/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FeatureLabelModelFacet/viewPattern/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FeatureLabelModelFacet/viewPattern"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FeatureLabelModelFacet/viewPattern"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FeatureLabelModelFacet/editPattern/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FeatureLabelModelFacet/editPattern/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FeatureLabelModelFacet/editPattern/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FeatureLabelModelFacet/editPattern/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FeatureLabelModelFacet/editPattern"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FeatureLabelModelFacet/editPattern"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FeatureLabelModelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FeatureLabelModelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//CompositeFeatureLabelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//CompositeFeatureLabelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//CompositeFeatureLabelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//CompositeFeatureLabelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//CompositeFeatureLabelModelFacet/viewPattern/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//CompositeFeatureLabelModelFacet/viewPattern/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//CompositeFeatureLabelModelFacet/viewPattern/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//CompositeFeatureLabelModelFacet/viewPattern/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//CompositeFeatureLabelModelFacet/viewPattern"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//CompositeFeatureLabelModelFacet/viewPattern"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//CompositeFeatureLabelModelFacet/editPattern/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//CompositeFeatureLabelModelFacet/editPattern/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//CompositeFeatureLabelModelFacet/editPattern/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//CompositeFeatureLabelModelFacet/editPattern/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//CompositeFeatureLabelModelFacet/editPattern"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//CompositeFeatureLabelModelFacet/editPattern"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//CompositeFeatureLabelModelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//CompositeFeatureLabelModelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//DesignLabelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//DesignLabelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//DesignLabelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//DesignLabelModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//DesignLabelModelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//DesignLabelModelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Attributes/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Attributes/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Attributes/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Attributes/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Attributes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Attributes"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ColorAttributes/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ColorAttributes/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ColorAttributes/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ColorAttributes/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ColorAttributes/foregroundColor"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ColorAttributes/foregroundColor"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ColorAttributes/backgroundColor"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ColorAttributes/backgroundColor"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ColorAttributes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ColorAttributes"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ResizeConstraints/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ResizeConstraints/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ResizeConstraints/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ResizeConstraints/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ResizeConstraints/getResizeHandleNames/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ResizeConstraints/getResizeHandleNames/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ResizeConstraints/getResizeHandleNames/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ResizeConstraints/getResizeHandleNames/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ResizeConstraints/getResizeHandleNames"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ResizeConstraints/getResizeHandleNames"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ResizeConstraints/getNonResizeHandleNames/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ResizeConstraints/getNonResizeHandleNames/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ResizeConstraints/getNonResizeHandleNames/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ResizeConstraints/getNonResizeHandleNames/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ResizeConstraints/getNonResizeHandleNames"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ResizeConstraints/getNonResizeHandleNames"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ResizeConstraints/resizeHandles/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ResizeConstraints/resizeHandles/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ResizeConstraints/resizeHandles/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ResizeConstraints/resizeHandles/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ResizeConstraints/resizeHandles"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ResizeConstraints/resizeHandles"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ResizeConstraints/nonResizeHandles/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ResizeConstraints/nonResizeHandles/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ResizeConstraints/nonResizeHandles/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ResizeConstraints/nonResizeHandles/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ResizeConstraints/nonResizeHandles"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ResizeConstraints/nonResizeHandles"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ResizeConstraints"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ResizeConstraints"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//DefaultSizeAttributes/width"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//DefaultSizeAttributes/width"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//DefaultSizeAttributes/height"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//DefaultSizeAttributes/height"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//DefaultSizeAttributes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//DefaultSizeAttributes"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LabelOffsetAttributes/x"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LabelOffsetAttributes/x"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LabelOffsetAttributes/y"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LabelOffsetAttributes/y"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//LabelOffsetAttributes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//LabelOffsetAttributes"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Viewmap/find/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Viewmap/find/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Viewmap/find/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Viewmap/find/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Viewmap/find/attributesClass"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Viewmap/find/attributesClass"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Viewmap/find"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Viewmap/find"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Viewmap/attributes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Viewmap/attributes"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Viewmap/requiredPluginIDs"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Viewmap/requiredPluginIDs"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Viewmap/layoutType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Viewmap/layoutType"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Viewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ViewmapLayoutType/UNKNOWN"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ViewmapLayoutType/UNKNOWN"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ViewmapLayoutType/XY_LAYOUT"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ViewmapLayoutType/XY_LAYOUT"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ViewmapLayoutType/FLOW_LAYOUT"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ViewmapLayoutType/FLOW_LAYOUT"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ViewmapLayoutType/TOOLBAR_LAYOUT"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ViewmapLayoutType/TOOLBAR_LAYOUT"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ViewmapLayoutType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ViewmapLayoutType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FigureViewmap/figureQualifiedClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FigureViewmap/figureQualifiedClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FigureViewmap/figureQualifiedClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FigureViewmap/figureQualifiedClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FigureViewmap/figureQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FigureViewmap/figureQualifiedClassName"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//FigureViewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//FigureViewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//SnippetViewmap/body"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//SnippetViewmap/body"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//SnippetViewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//SnippetViewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//InnerClassViewmap/className"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//InnerClassViewmap/className"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//InnerClassViewmap/classBody"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//InnerClassViewmap/classBody"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//InnerClassViewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//InnerClassViewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ParentAssignedViewmap/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ParentAssignedViewmap/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ParentAssignedViewmap/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ParentAssignedViewmap/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ParentAssignedViewmap/getterName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ParentAssignedViewmap/getterName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ParentAssignedViewmap/getterName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ParentAssignedViewmap/getterName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ParentAssignedViewmap/getterName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ParentAssignedViewmap/getterName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ParentAssignedViewmap/setterName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ParentAssignedViewmap/setterName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ParentAssignedViewmap/setterName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ParentAssignedViewmap/setterName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ParentAssignedViewmap/setterName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ParentAssignedViewmap/setterName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ParentAssignedViewmap/figureQualifiedClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ParentAssignedViewmap/figureQualifiedClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ParentAssignedViewmap/figureQualifiedClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ParentAssignedViewmap/figureQualifiedClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ParentAssignedViewmap/figureQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ParentAssignedViewmap/figureQualifiedClassName"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ParentAssignedViewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ParentAssignedViewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ValueExpression/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ValueExpression/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ValueExpression/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ValueExpression/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ValueExpression/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ValueExpression/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ValueExpression/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ValueExpression/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ValueExpression/body/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ValueExpression/body/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ValueExpression/body/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ValueExpression/body/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ValueExpression/body/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ValueExpression/body/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ValueExpression/body/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ValueExpression/body/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ValueExpression/body"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ValueExpression/body"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ValueExpression/language/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ValueExpression/language/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ValueExpression/language/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ValueExpression/language/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ValueExpression/language"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ValueExpression/language"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ValueExpression/langName/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ValueExpression/langName/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ValueExpression/langName/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ValueExpression/langName/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ValueExpression/langName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ValueExpression/langName"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ValueExpression"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ValueExpression"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenConstraint/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenConstraint/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenConstraint/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenConstraint/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenConstraint/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenConstraint/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenConstraint/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenConstraint/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenConstraint"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenConstraint"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Palette/getFactoryQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Palette/getFactoryQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Palette/diagram"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Palette/diagram"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Palette/flyout"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Palette/flyout"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Palette/groups/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Palette/groups/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Palette/groups/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Palette/groups/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Palette/groups"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Palette/groups"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Palette/packageName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Palette/packageName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Palette/factoryClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Palette/factoryClassName"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Palette"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//Palette"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EntryBase/title"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EntryBase/title"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EntryBase/description"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EntryBase/description"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EntryBase/largeIconPath"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EntryBase/largeIconPath"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EntryBase/smallIconPath"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EntryBase/smallIconPath"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EntryBase/createMethodName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EntryBase/createMethodName"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//EntryBase"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//EntryBase"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolEntry/default"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ToolEntry/default"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolEntry/genNodes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ToolEntry/genNodes"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolEntry/genLinks"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ToolEntry/genLinks"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolEntry/elements/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ToolEntry/elements/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolEntry/elements/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ToolEntry/elements/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolEntry/elements"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ToolEntry/elements"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolEntry/qualifiedToolName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ToolEntry/qualifiedToolName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolEntry/qualifiedToolName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ToolEntry/qualifiedToolName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolEntry/qualifiedToolName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ToolEntry/qualifiedToolName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolEntry/properties"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ToolEntry/properties"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolEntry"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//ToolEntry"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/getLinkClass/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/getLinkClass/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/getLinkClass/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/getLinkClass/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/getLinkClass"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/getLinkClass"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/getSourceEndContextClass/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/getSourceEndContextClass/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/getSourceEndContextClass/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/getSourceEndContextClass/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/getSourceEndContextClass"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/getSourceEndContextClass"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/getTargetEndContextClass/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/getTargetEndContextClass/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/getTargetEndContextClass/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/getTargetEndContextClass/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/getTargetEndContextClass"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/getTargetEndContextClass"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/getConstraintsInstanceFieldName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/getConstraintsInstanceFieldName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/getConstraintsInstanceFieldName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/getConstraintsInstanceFieldName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/getConstraintsInstanceFieldName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/getConstraintsInstanceFieldName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/link/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/link/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/link/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/link/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/link"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/link"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%.1/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%.1/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%.1/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%.1/@details.1"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%.1/@details.2"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%.1/@details.2"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/sourceEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/sourceEnd"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/sourceEnd"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%.1/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%.1/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%.1/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%.1/@details.1"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%.1/@details.2"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%.1/@details.2"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/targetEnd/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints/targetEnd"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints/targetEnd"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLinkConstraints"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLinkConstraints"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenRuleContainerBase/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenRuleContainerBase/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenRuleContainerBase/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenRuleContainerBase/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenRuleContainerBase/editor/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenRuleContainerBase/editor/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenRuleContainerBase/editor/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenRuleContainerBase/editor/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenRuleContainerBase/editor"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenRuleContainerBase/editor"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenRuleContainerBase"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenRuleContainerBase"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenExpressionInterpreter/getQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenExpressionInterpreter/getQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenExpressionInterpreter/getExpressionAccessor/expression"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenExpressionInterpreter/getExpressionAccessor/expression"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenExpressionInterpreter/getExpressionAccessor"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenExpressionInterpreter/getExpressionAccessor"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenExpressionInterpreter/language"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenExpressionInterpreter/language"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenExpressionInterpreter/className"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenExpressionInterpreter/className"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenExpressionInterpreter/requiredPluginIDs"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenExpressionInterpreter/requiredPluginIDs"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenExpressionInterpreter"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenExpressionInterpreter"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLanguage/ocl"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLanguage/ocl"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLanguage/java"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLanguage/java"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLanguage/regexp"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLanguage/regexp"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLanguage/nregexp"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLanguage/nregexp"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenLanguage"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenLanguage"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.8952380952380954">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9999998000000001">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/getAllNodes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/getAllNodes"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/getAllChildContainers"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/getAllChildContainers"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/getAllContainers"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/getAllContainers"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/getElementInitializersClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/getElementInitializersClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/getElementInitializersClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/getElementInitializersClassName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/getElementInitializersClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/getElementInitializersClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/getElementInitializersPackageName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/getElementInitializersPackageName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/getElementInitializersPackageName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/getElementInitializersPackageName/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/getElementInitializersPackageName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/getElementInitializersPackageName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/editorGen"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/editorGen"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/domainDiagramElement"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/domainDiagramElement"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/childNodes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/childNodes"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/topLevelNodes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/topLevelNodes"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/links"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/links"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/compartments"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/compartments"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/palette"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/palette"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram/synchronized"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram/synchronized"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenDiagram"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/GenDiagram"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/ProviderPriority/Lowest"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/ProviderPriority/Lowest"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/ProviderPriority/Low"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/ProviderPriority/Low"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/ProviderPriority/Medium"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/ProviderPriority/Medium"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/ProviderPriority/High"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/ProviderPriority/High"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/ProviderPriority/Highest"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/ProviderPriority/Highest"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/ProviderPriority"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/ProviderPriority"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9849056603773586">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/FeatureLinkModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/FeatureLinkModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/FeatureLinkModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/FeatureLinkModelFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/FeatureLinkModelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/FeatureLinkModelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/StyleAttributes/fixedFont"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/StyleAttributes/fixedFont"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/StyleAttributes/fixedForeground"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/StyleAttributes/fixedForeground"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/StyleAttributes/fixedBackground"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/StyleAttributes/fixedBackground"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/StyleAttributes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/StyleAttributes"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9761467889908257">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllAuditRules/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllAuditRules/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllAuditRules/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllAuditRules/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllAuditRules"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllAuditRules"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllAuditContainers/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllAuditContainers/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllAuditContainers/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllAuditContainers/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllAuditContainers"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllAuditContainers"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getPath/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getPath/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getPath/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getPath/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getPath"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getPath"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllRulesToTargetContextMap/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllRulesToTargetContextMap/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllRulesToTargetContextMap/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllRulesToTargetContextMap/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllRulesToTargetContextMap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllRulesToTargetContextMap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllTargetedModelPackages/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllTargetedModelPackages/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllTargetedModelPackages/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllTargetedModelPackages/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllTargetedModelPackages"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/getAllTargetedModelPackages"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/hasDiagramElementRule/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/hasDiagramElementRule/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/hasDiagramElementRule/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/hasDiagramElementRule/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/hasDiagramElementRule"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/hasDiagramElementRule"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/id/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/id/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/id/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/id/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/id"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/id"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/name/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/name/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/name/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/name/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/name"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/name"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/description/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/description/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/description/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/description/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/description"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/description"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/parentContainer"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/parentContainer"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/audits/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/audits/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/audits/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/audits/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/audits"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/audits"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/childContainers"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer/childContainers"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditContainer"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenRuleBase/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenRuleBase/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenRuleBase/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenRuleBase/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenRuleBase/name/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenRuleBase/name/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenRuleBase/name/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenRuleBase/name/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenRuleBase/name"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenRuleBase/name"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenRuleBase/description/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenRuleBase/description/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenRuleBase/description/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenRuleBase/description/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenRuleBase/description"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenRuleBase/description"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenRuleBase"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenRuleBase"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/getContextSelectorClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/getContextSelectorClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/getContextSelectorQualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/getContextSelectorQualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/getContextSelectorLocalClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/getContextSelectorLocalClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/id/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/id/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/id/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/id/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/id/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/id/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/id/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/id/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/id/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/id/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/id"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/id"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/rule/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/rule/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/rule/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/rule/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/rule/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/rule/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/rule/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/rule/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/rule/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/rule/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%2Fmeta%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/rule"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/rule"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/target/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/target/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/target/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/target/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/target"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/target"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/message/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/message/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/message/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/message/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/message"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/message"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/severity/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/severity/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/severity/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/severity/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/severity"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/severity"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/useInLiveMode/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/useInLiveMode/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/useInLiveMode/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/useInLiveMode/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/useInLiveMode"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/useInLiveMode"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/container/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/container/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/container/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/container/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/container"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule/container"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenAuditRule"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenAuditRule"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenSeverity/INFO"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenSeverity/INFO"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenSeverity/WARNING"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenSeverity/WARNING"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenSeverity/ERROR"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenSeverity/ERROR"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenSeverity"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenSeverity"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenRuleTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenRuleTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenRuleTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenRuleTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenRuleTarget/getContext/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenRuleTarget/getContext/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenRuleTarget/getContext/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenRuleTarget/getContext/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenRuleTarget/getContext"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenRuleTarget/getContext"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenRuleTarget"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenRuleTarget"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDomainElementTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDomainElementTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDomainElementTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDomainElementTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDomainElementTarget/element/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDomainElementTarget/element/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDomainElementTarget/element/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDomainElementTarget/element/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDomainElementTarget/element"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDomainElementTarget/element"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDomainElementTarget"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDomainElementTarget"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget/element/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget/element/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget/element/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget/element/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget/element/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget/element/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget/element/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget/element/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget/element/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget/element/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget/element"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget/element"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDiagramElementTarget"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/attribute/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/attribute/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/attribute/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/attribute/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%/@details.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/attribute/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/attribute/%http:%2F%2Fwww.eclipse.org%2Fgmf%2F2005%2Fconstraints%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/attribute"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/attribute"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/nullAsError/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/nullAsError/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/nullAsError/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/nullAsError/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/nullAsError"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget/nullAsError"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenDomainAttributeTarget"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenJavaExpressionProvider/getOperationName/expression"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenJavaExpressionProvider/getOperationName/expression"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenJavaExpressionProvider/getOperationName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenJavaExpressionProvider/getOperationName"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/GenJavaExpressionProvider"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenJavaExpressionProvider"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9999998000000001">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer/metrics"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer/metrics"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget/metric/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget/metric/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget/metric/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget/metric/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget/metric"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget/metric"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget/metricValueContext"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget/metricValueContext"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditedMetricTarget"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable/getClientContextID/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable/getClientContextID/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable/getClientContextID/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable/getClientContextID/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable/getClientContextID"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable/getClientContextID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable/getTargetClass/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable/getTargetClass/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable/getTargetClass/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable/getTargetClass/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable/getTargetClass"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable/getTargetClass"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/aNewPackage3"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6222222222222223">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolGroupItem"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage/ToolGroupItem"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6222222222222223">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//Separator"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage/Separator"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.7666666666666668">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//ToolGroup"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage/ToolGroup"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.7815384615384616">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenElementInitializer"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage/GenElementInitializer"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.7908396946564886">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenFeatureSeqInitializer"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage/GenFeatureSeqInitializer"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.7961832061068703">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//GenFeatureValueSpec"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage/GenFeatureValueSpec"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.7724137931034484">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage/GenNotationElementTarget"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenNotationElementTarget"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.7680000000000001">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage/GenMeasurable"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenMeasurable"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.7969696969696971">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage/GenExpressionProviderContainer"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenExpressionProviderContainer"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.7875000000000001">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage/GenExpressionProviderBase"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//GenExpressionProviderBase"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.7992523364485982">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/EditorCandies"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/EditorCandies"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.7982222222222224">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/GenNode"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenNode"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.7951807228915664">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/LinkModelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/LinkModelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.7960396039603961">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#//aNewPackage1/aNewPackage2/GenMetricRule"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore#/"/>
+ </matchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/composite/order/result.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/composite/order/result.emfdiff
new file mode 100644
index 000000000..974b7b211
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/composite/order/result.emfdiff
@@ -0,0 +1,1144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T11:10:13.032+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup"/>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="0.9952380952380954">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Canvas/figures/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Canvas/figures/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Canvas/figures/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Canvas/figures/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Canvas/figures"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Canvas/figures"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Canvas/nodes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Canvas/nodes"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Canvas/connections"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Canvas/connections"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Canvas/compartments"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Canvas/compartments"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Canvas/labels"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Canvas/labels"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Canvas"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Canvas"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureGallery/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureGallery/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureGallery/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureGallery/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureGallery/figures"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureGallery/figures"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureGallery/implementationBundle"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureGallery/implementationBundle"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureGallery"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureGallery"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Identity/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Identity/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Identity/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Identity/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Identity/name"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Identity/name"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Identity"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Identity"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//DiagramElement/find/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//DiagramElement/find/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//DiagramElement/find/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//DiagramElement/find/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//DiagramElement/find/facetClass"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//DiagramElement/find/facetClass"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//DiagramElement/find"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//DiagramElement/find"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//DiagramElement/figure"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//DiagramElement/figure"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//DiagramElement/facets/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//DiagramElement/facets/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//DiagramElement/facets/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//DiagramElement/facets/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//DiagramElement/facets"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//DiagramElement/facets"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//DiagramElement"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//DiagramElement"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Node/nodeFigure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Node/nodeFigure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Node/nodeFigure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Node/nodeFigure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Node/nodeFigure"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Node/nodeFigure"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Node/resizeConstraint"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Node/resizeConstraint"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Node/affixedParentSide"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Node/affixedParentSide"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Node"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Node"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Connection/connectionFigure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Connection/connectionFigure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Connection/connectionFigure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Connection/connectionFigure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Connection/connectionFigure"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Connection/connectionFigure"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Connection"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Connection"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Compartment/collapsible"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Compartment/collapsible"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Compartment/needsTitle"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Compartment/needsTitle"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Compartment"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Compartment"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//DiagramLabel/elementIcon"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//DiagramLabel/elementIcon"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//DiagramLabel"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//DiagramLabel"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//VisualFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//VisualFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GeneralFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GeneralFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GeneralFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GeneralFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GeneralFacet/identifier"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GeneralFacet/identifier"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GeneralFacet/data"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GeneralFacet/data"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GeneralFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GeneralFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//AlignmentFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//AlignmentFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//AlignmentFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//AlignmentFacet/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//AlignmentFacet/alignment"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//AlignmentFacet/alignment"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//AlignmentFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//AlignmentFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GradientFacet/direction"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GradientFacet/direction"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GradientFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GradientFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LabelOffsetFacet/x"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LabelOffsetFacet/x"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LabelOffsetFacet/y"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LabelOffsetFacet/y"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LabelOffsetFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LabelOffsetFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//DefaultSizeFacet/defaultSize"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//DefaultSizeFacet/defaultSize"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//DefaultSizeFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//DefaultSizeFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureMarker/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureMarker/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureMarker/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureMarker/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureMarker/parent"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureMarker/parent"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureMarker"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureMarker"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureHandle/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureHandle/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureHandle/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureHandle/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureHandle/referencingElements"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureHandle/referencingElements"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureHandle"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureHandle"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Figure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Figure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Figure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Figure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Figure/children"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Figure/children"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Figure/foregroundColor"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Figure/foregroundColor"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Figure/backgroundColor"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Figure/backgroundColor"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Figure/maximumSize"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Figure/maximumSize"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Figure/minimumSize"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Figure/minimumSize"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Figure/preferredSize"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Figure/preferredSize"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Figure/font"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Figure/font"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Figure/insets"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Figure/insets"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Figure/border"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Figure/border"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Figure/location"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Figure/location"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Figure/size"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Figure/size"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Figure"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Figure"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureRef/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureRef/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureRef/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureRef/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureRef/figure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureRef/figure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureRef/figure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureRef/figure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureRef/figure"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureRef/figure"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureRef"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureRef"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ConnectionFigure"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ConnectionFigure"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//DecorationFigure"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//DecorationFigure"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Shape/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Shape/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Shape/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Shape/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Shape/outline"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Shape/outline"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Shape/fill"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Shape/fill"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Shape/lineWidth"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Shape/lineWidth"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Shape/lineKind"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Shape/lineKind"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Shape/xorFill"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Shape/xorFill"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Shape/xorOutline"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Shape/xorOutline"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Shape/resolvedChildren/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Shape/resolvedChildren/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Shape/resolvedChildren/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Shape/resolvedChildren/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Shape/resolvedChildren"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Shape/resolvedChildren"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Shape"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Shape"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Label/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Label/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Label/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Label/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Label/text"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Label/text"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Label"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Label"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LabeledContainer/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LabeledContainer/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LabeledContainer/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LabeledContainer/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LabeledContainer"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LabeledContainer"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Rectangle/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Rectangle/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Rectangle/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Rectangle/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Rectangle"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Rectangle"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//RoundedRectangle/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//RoundedRectangle/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//RoundedRectangle/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//RoundedRectangle/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//RoundedRectangle/cornerWidth"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//RoundedRectangle/cornerWidth"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//RoundedRectangle/cornerHeight"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//RoundedRectangle/cornerHeight"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//RoundedRectangle"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//RoundedRectangle"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Ellipse/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Ellipse/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Ellipse/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Ellipse/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Ellipse"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Ellipse"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Polyline/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Polyline/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Polyline/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Polyline/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Polyline/template"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Polyline/template"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Polyline"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Polyline"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Polygon/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Polygon/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Polygon/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Polygon/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Polygon"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Polygon"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ScalablePolygon/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ScalablePolygon/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ScalablePolygon/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ScalablePolygon/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ScalablePolygon"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ScalablePolygon"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//PolylineConnection/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//PolylineConnection/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//PolylineConnection/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//PolylineConnection/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//PolylineConnection/sourceDecoration"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//PolylineConnection/sourceDecoration"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//PolylineConnection/targetDecoration"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//PolylineConnection/targetDecoration"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//PolylineConnection"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//PolylineConnection"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//PolylineDecoration/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//PolylineDecoration/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//PolylineDecoration/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//PolylineDecoration/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//PolylineDecoration"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//PolylineDecoration"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//PolygonDecoration/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//PolygonDecoration/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//PolygonDecoration/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//PolygonDecoration/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//PolygonDecoration"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//PolygonDecoration"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomClass/qualifiedClassName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomClass/qualifiedClassName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomClass/bundleName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomClass/bundleName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomClass/attributes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomClass/attributes"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomClass"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomClass"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomAttribute/name"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomAttribute/name"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomAttribute/value"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomAttribute/value"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomAttribute/directAccess"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomAttribute/directAccess"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomAttribute/multiStatementValue"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomAttribute/multiStatementValue"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomAttribute"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomAttribute"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureAccessor/accessor"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureAccessor/accessor"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureAccessor/typedFigure"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureAccessor/typedFigure"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FigureAccessor"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FigureAccessor"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomFigure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomFigure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomFigure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomFigure/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomFigure/customChildren"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomFigure/customChildren"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomFigure"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomFigure"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomDecoration/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomDecoration/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomDecoration/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomDecoration/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomDecoration"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomDecoration"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomConnection/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomConnection/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomConnection/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomConnection/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomConnection"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomConnection"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Color"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Color"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//RGBColor/red"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//RGBColor/red"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//RGBColor/green"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//RGBColor/green"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//RGBColor/blue"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//RGBColor/blue"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//RGBColor"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//RGBColor"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ConstantColor/value"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ConstantColor/value"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ConstantColor"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ConstantColor"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ColorConstants/white"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ColorConstants/white"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ColorConstants/black"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ColorConstants/black"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ColorConstants/lightGray"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ColorConstants/lightGray"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ColorConstants/gray"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ColorConstants/gray"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ColorConstants/darkGray"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ColorConstants/darkGray"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ColorConstants/red"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ColorConstants/red"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ColorConstants/orange"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ColorConstants/orange"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ColorConstants/yellow"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ColorConstants/yellow"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ColorConstants/green"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ColorConstants/green"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ColorConstants/lightGreen"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ColorConstants/lightGreen"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ColorConstants/darkGreen"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ColorConstants/darkGreen"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ColorConstants/cyan"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ColorConstants/cyan"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ColorConstants/lightBlue"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ColorConstants/lightBlue"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ColorConstants/blue"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ColorConstants/blue"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ColorConstants/darkBlue"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ColorConstants/darkBlue"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//ColorConstants"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//ColorConstants"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Font"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Font"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//BasicFont/faceName"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//BasicFont/faceName"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//BasicFont/height"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//BasicFont/height"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//BasicFont/style"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//BasicFont/style"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//BasicFont"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//BasicFont"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FontStyle/NORMAL"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FontStyle/NORMAL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FontStyle/BOLD"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FontStyle/BOLD"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FontStyle/ITALIC"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FontStyle/ITALIC"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FontStyle"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FontStyle"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Point/x"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Point/x"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Point/y"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Point/y"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Point"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Point"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Dimension/dx"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Dimension/dx"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Dimension/dy"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Dimension/dy"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Dimension"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Dimension"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Insets/top"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Insets/top"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Insets/left"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Insets/left"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Insets/bottom"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Insets/bottom"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Insets/right"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Insets/right"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Insets"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Insets"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Border"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Border"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LineBorder/color"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LineBorder/color"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LineBorder/width"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LineBorder/width"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LineBorder"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LineBorder"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//MarginBorder/insets"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//MarginBorder/insets"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//MarginBorder"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//MarginBorder"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CompoundBorder/outer"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CompoundBorder/outer"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CompoundBorder/inner"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CompoundBorder/inner"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CompoundBorder"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CompoundBorder"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomBorder"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomBorder"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Direction/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Direction/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Direction/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Direction/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Direction/NONE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Direction/NONE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Direction/NORTH"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Direction/NORTH"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Direction/SOUTH"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Direction/SOUTH"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Direction/WEST"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Direction/WEST"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Direction/EAST"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Direction/EAST"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Direction/NORTH_EAST"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Direction/NORTH_EAST"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Direction/NORTH_WEST"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Direction/NORTH_WEST"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Direction/SOUTH_EAST"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Direction/SOUTH_EAST"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Direction/SOUTH_WEST"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Direction/SOUTH_WEST"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Direction/NORTH_SOUTH"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Direction/NORTH_SOUTH"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Direction/EAST_WEST"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Direction/EAST_WEST"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Direction/NSEW"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Direction/NSEW"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Direction"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Direction"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LineKind/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LineKind/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%/@details.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LineKind/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LineKind/%http:%2F%2Fwww.eclipse.org%2Femf%2F2002%2FGenModel%"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LineKind/LINE_SOLID"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LineKind/LINE_SOLID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LineKind/LINE_DASH"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LineKind/LINE_DASH"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LineKind/LINE_DOT"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LineKind/LINE_DOT"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LineKind/LINE_DASHDOT"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LineKind/LINE_DASHDOT"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LineKind/LINE_DASHDOTDOT"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LineKind/LINE_DASHDOTDOT"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LineKind/LINE_CUSTOM"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LineKind/LINE_CUSTOM"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LineKind"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LineKind"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LayoutData/owner"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LayoutData/owner"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//LayoutData"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//LayoutData"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomLayoutData"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomLayoutData"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GridLayoutData/grabExcessHorizontalSpace"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GridLayoutData/grabExcessHorizontalSpace"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GridLayoutData/grabExcessVerticalSpace"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GridLayoutData/grabExcessVerticalSpace"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GridLayoutData/verticalAlignment"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GridLayoutData/verticalAlignment"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GridLayoutData/horizontalAlignment"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GridLayoutData/horizontalAlignment"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GridLayoutData/verticalSpan"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GridLayoutData/verticalSpan"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GridLayoutData/horizontalSpan"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GridLayoutData/horizontalSpan"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GridLayoutData/horizontalIndent"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GridLayoutData/horizontalIndent"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GridLayoutData/sizeHint"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GridLayoutData/sizeHint"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GridLayoutData"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GridLayoutData"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//BorderLayoutData/alignment"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//BorderLayoutData/alignment"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//BorderLayoutData/vertical"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//BorderLayoutData/vertical"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//BorderLayoutData"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//BorderLayoutData"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Alignment/BEGINNING"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Alignment/BEGINNING"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Alignment/CENTER"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Alignment/CENTER"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Alignment/END"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Alignment/END"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Alignment/FILL"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Alignment/FILL"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Alignment"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Alignment"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Layoutable/layoutData"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Layoutable/layoutData"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Layoutable/layout"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Layoutable/layout"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Layoutable"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Layoutable"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//Layout"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//Layout"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//CustomLayout"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//CustomLayout"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GridLayout/numColumns"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GridLayout/numColumns"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GridLayout/equalWidth"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GridLayout/equalWidth"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GridLayout/margins"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GridLayout/margins"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GridLayout/spacing"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GridLayout/spacing"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//GridLayout"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//GridLayout"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//BorderLayout/spacing"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//BorderLayout/spacing"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//BorderLayout"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//BorderLayout"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FlowLayout/vertical"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FlowLayout/vertical"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FlowLayout/matchMinorSize"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FlowLayout/matchMinorSize"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FlowLayout/forceSingleLine"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FlowLayout/forceSingleLine"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FlowLayout/majorAlignment"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FlowLayout/majorAlignment"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FlowLayout/minorAlignment"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FlowLayout/minorAlignment"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FlowLayout/majorSpacing"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FlowLayout/majorSpacing"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FlowLayout/minorSpacing"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FlowLayout/minorSpacing"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//FlowLayout"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//FlowLayout"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//XYLayout"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//XYLayout"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//XYLayoutData/topLeft"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//XYLayoutData/topLeft"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//XYLayoutData/size"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//XYLayoutData/size"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//XYLayoutData"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//XYLayoutData"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#//StackLayout"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#//StackLayout"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore#/"/>
+ </matchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/composite/uml/result.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/composite/uml/result.emfdiff
new file mode 100644
index 000000000..91a1fe4f7
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/composite/uml/result.emfdiff
@@ -0,0 +1,469 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T11:10:07.368+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:UpdateAttribute">
+ <attribute href="http://www.eclipse.org/uml2/2.0.0/UML#//NamedElement/name"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSPgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSPgKLEdq6wrOLNneL2Q"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSPgKLEdq6wrOLNneL2Q"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSPQKLEdq6wrOLNneL2Q"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSPAKLEdq6wrOLNneL2Q"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:UpdateAttribute">
+ <attribute href="http://www.eclipse.org/uml2/2.0.0/UML#//NamedElement/name"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSXAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSXAKLEdq6wrOLNneL2Q"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSXgKLEdq6wrOLNneL2Q"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSXgKLEdq6wrOLNneL2Q"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSXQKLEdq6wrOLNneL2Q"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSnQKLEdq6wrOLNneL2Q"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSXgKLEdq6wrOLNneL2Q"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSjAKLEdq6wrOLNneL2Q"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSjAKLEdq6wrOLNneL2Q"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSXQKLEdq6wrOLNneL2Q"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSnQKLEdq6wrOLNneL2Q"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSjAKLEdq6wrOLNneL2Q"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSXQKLEdq6wrOLNneL2Q"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSXAKLEdq6wrOLNneL2Q"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSMQKLEdq6wrOLNneL2Q"/>
+ </ownedElements>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="0.9896551724137932">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSOwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSOwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.991304347826087">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9601092896174864">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9800000000000001">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSQAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSQAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSPwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSPwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9666666666666668">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSQQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSQQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9666666666666668">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSQgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSQgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9666666666666668">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSQwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSQwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9666666666666668">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSRAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSRAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9666666666666668">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSRQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSRQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9966666666666668">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSSAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSSAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSRwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSRwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSSQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSSQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSSgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSSgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSSwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSSwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSTAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSTAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSRgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSRgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSPgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSPgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSTwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSTwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSTgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSTgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSUAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSUAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSUQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSUQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSUgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSUgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSVAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSVAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSVQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSVQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSUwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSUwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSTQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSTQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSWAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSWAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSWQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSWQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSVwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSVwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSVgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSVgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSPQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSPQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSPAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSPAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSWwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSWwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSWgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSWgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9329729729729731">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9714283714285714">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSdwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSdwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSdgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSdgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_xWDW0GNcEdqA9eCD16eJRQ"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_xWDW0GNcEdqA9eCD16eJRQ"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSegKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSegKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSeQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSeQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSeAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSeAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSfQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSfQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSfAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSfAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSewKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSewKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSgAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSgAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSfwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSfwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSfgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSfgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSgwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSgwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSggKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSggKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSgQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSgQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuShgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuShgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuShQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuShQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuShAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuShAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuShwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuShwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSiwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSiwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSdQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSdQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSnAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSnAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSXQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSXQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9420892494929007">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSoAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSoAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSnwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSnwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#__pFXkGNcEdqA9eCD16eJRQ"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#__pFXkGNcEdqA9eCD16eJRQ"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSowKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSowKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSogKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSogKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSoQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSoQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSpgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSpgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSpQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSpQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSpAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSpAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSpwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSpwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSqwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSqwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSngKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSngKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fYAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fYAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSrQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSrQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_djk1YGNdEdqA9eCD16eJRQ"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_djk1YGNdEdqA9eCD16eJRQ"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fYwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fYwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fYgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fYgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fZAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fZAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fZQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fZQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fYQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fYQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6faAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6faAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fZwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fZwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fZgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fZgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fawKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fawKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fagKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fagKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6faQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6faQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fbAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fbAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fbQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fbQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fbgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fbgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fcgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fcgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fcwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fcwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fdAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fdAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fdgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fdgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSrAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSrAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6fdwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6fdwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSnQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSnQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9636363636363638">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6feAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6feAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9636363636363638">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0c6feQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0c6feQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSXAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSXAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSMwKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSMwKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSMgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSMgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSNgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSNgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSNQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSNQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSOQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSOQKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSOAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSOAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9937500000000001">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSXgKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSXgKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9918032786885247">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSjAKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSjAKLEdq6wrOLNneL2Q"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm.uml#_0cuSMQKLEdq6wrOLNneL2Q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/composite/uml/mm2.uml#_0cuSMQKLEdq6wrOLNneL2Q"/>
+ </matchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/element/addedElement/elemAdd/result.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/element/addedElement/elemAdd/result.emfdiff
new file mode 100644
index 000000000..8975bf7da
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/element/addedElement/elemAdd/result.emfdiff
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T11:10:04.908+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:AddModelElement">
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore#//NewClass"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore#/"/>
+ </ownedElements>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="0.9545454545454546">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore#//OPCAdminFacadeEJB/ejbCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore#//OPCAdminFacadeEJB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore#//OPCAdminFacadeEJB/ejbPostCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore#//OPCAdminFacadeEJB/ejbPostCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore#//OPCAdminFacadeEJB/ejbRemove"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore#//OPCAdminFacadeEJB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore#//OPCAdminFacadeEJB/ejbActivate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore#//OPCAdminFacadeEJB/ejbActivate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore#//OPCAdminFacadeEJB/ejbPassivate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore#//OPCAdminFacadeEJB/ejbPassivate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore#//OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore#//OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore#//OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore#//OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore#//OPCAdminFacadeEJB/sc"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore#//OPCAdminFacadeEJB/sc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore#//OPCAdminFacadeEJB/poLocalHome"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore#//OPCAdminFacadeEJB/poLocalHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore#//OPCAdminFacadeEJB/processManagerLocal"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore#//OPCAdminFacadeEJB/processManagerLocal"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore#//OPCAdminFacadeEJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore#//OPCAdminFacadeEJB"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore#/"/>
+ </matchedElements>
+ <unMatchedElements>
+ <element href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore#//NewClass"/>
+ </unMatchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/element/addedElement/simple/result.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/element/addedElement/simple/result.emfdiff
new file mode 100644
index 000000000..ed565fa5d
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/element/addedElement/simple/result.emfdiff
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T11:10:04.755+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:AddModelElement">
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#//Match3Element"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:AddModelElement">
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#//UnMatchElement"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore#/"/>
+ </ownedElements>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="0.9433962264150944">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore#//MatchModel/leftModel"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#//MatchModel/leftModel"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore#//MatchModel/rightModel"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#//MatchModel/rightModel"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore#//MatchModel/originModel"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#//MatchModel/originModel"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore#//MatchModel/matchedElements"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#//MatchModel/matchedElements"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore#//MatchModel/unMatchedElements"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#//MatchModel/unMatchedElements"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore#//MatchModel"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#//MatchModel"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore#//MatchElement/similarity"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#//MatchElement/similarity"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore#//MatchElement/subMatchElements"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#//MatchElement/subMatchElements"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore#//MatchElement"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#//MatchElement"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore#//Match2Elements/leftElement"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#//Match2Elements/leftElement"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore#//Match2Elements/rightElement"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#//Match2Elements/rightElement"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore#//Match2Elements"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#//Match2Elements"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#/"/>
+ </matchedElements>
+ <unMatchedElements>
+ <element href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#//Match3Element"/>
+ </unMatchedElements>
+ <unMatchedElements>
+ <element href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore#//UnMatchElement"/>
+ </unMatchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/element/addedElement/simple2/result.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/element/addedElement/simple2/result.emfdiff
new file mode 100644
index 000000000..654d9ac98
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/element/addedElement/simple2/result.emfdiff
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T11:10:04.645+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:RemoveModelElement">
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#/"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//MatchModelBis"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#/"/>
+ </ownedElements>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="0.9999998000000001">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//MatchModel/leftModel"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#//MatchModel/leftModel"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//MatchModel/rightModel"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#//MatchModel/rightModel"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//MatchModel/originModel"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#//MatchModel/originModel"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//MatchModel/matchedElements"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#//MatchModel/matchedElements"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//MatchModel/unMatchedElements"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#//MatchModel/unMatchedElements"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//MatchModel"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#//MatchModel"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//MatchElement/similarity"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#//MatchElement/similarity"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//MatchElement/subMatchElements"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#//MatchElement/subMatchElements"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//MatchElement"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#//MatchElement"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//Match2Elements/leftElement"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#//Match2Elements/leftElement"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//Match2Elements/rightElement"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#//Match2Elements/rightElement"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//Match2Elements"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#//Match2Elements"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//Match3Element/originElement"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#//Match3Element/originElement"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//Match3Element"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#//Match3Element"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//UnMatchElement/element"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#//UnMatchElement/element"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//UnMatchElement"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#//UnMatchElement"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore#/"/>
+ </matchedElements>
+ <unMatchedElements>
+ <element href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore#//MatchModelBis"/>
+ </unMatchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/element/movedElement/result.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/element/movedElement/result.emfdiff
new file mode 100644
index 000000000..eeab04d59
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/element/movedElement/result.emfdiff
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T11:10:04.432+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:MoveModelElement">
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/movedElement/v2.ecore#//bis/OPCAdminFacadeEJB"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/movedElement/v1.ecore#//OPCAdminFacadeEJB"/>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/movedElement/v1.ecore#/"/>
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/movedElement/v2.ecore#//bis"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/movedElement/v1.ecore#//OPCAdminFacadeEJB"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/movedElement/v1.ecore#/"/>
+ </ownedElements>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="0.75">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.8499996000000001">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/movedElement/v1.ecore#//bis"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/movedElement/v2.ecore#//bis"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.7985185185185186">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/movedElement/v1.ecore#//OPCAdminFacadeEJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/movedElement/v2.ecore#//bis/OPCAdminFacadeEJB"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/movedElement/v1.ecore#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/movedElement/v2.ecore#/"/>
+ </matchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/element/removedElement/elemRemove/result.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/element/removedElement/elemRemove/result.emfdiff
new file mode 100644
index 000000000..007338af0
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/element/removedElement/elemRemove/result.emfdiff
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T11:10:04.370+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:RemoveModelElement">
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v2.ecore#//OPCAdminFacadeEJB"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore#//OPCAdminFacadeEJB/ejbRemove"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore#//OPCAdminFacadeEJB"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore#/"/>
+ </ownedElements>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9999998000000001">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore#//OPCAdminFacadeEJB/ejbCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v2.ecore#//OPCAdminFacadeEJB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore#//OPCAdminFacadeEJB/ejbPostCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v2.ecore#//OPCAdminFacadeEJB/ejbPostCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore#//OPCAdminFacadeEJB/ejbActivate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v2.ecore#//OPCAdminFacadeEJB/ejbActivate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore#//OPCAdminFacadeEJB/ejbPassivate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v2.ecore#//OPCAdminFacadeEJB/ejbPassivate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore#//OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v2.ecore#//OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore#//OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v2.ecore#//OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore#//OPCAdminFacadeEJB/sc"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v2.ecore#//OPCAdminFacadeEJB/sc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore#//OPCAdminFacadeEJB/poLocalHome"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v2.ecore#//OPCAdminFacadeEJB/poLocalHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore#//OPCAdminFacadeEJB/processManagerLocal"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v2.ecore#//OPCAdminFacadeEJB/processManagerLocal"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore#//OPCAdminFacadeEJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v2.ecore#//OPCAdminFacadeEJB"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v2.ecore#/"/>
+ </matchedElements>
+ <unMatchedElements>
+ <element href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore#//OPCAdminFacadeEJB/ejbRemove"/>
+ </unMatchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/emfdiff/result.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/emfdiff/result.emfdiff
new file mode 100644
index 000000000..2ec78cce9
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/emfdiff/result.emfdiff
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T11:10:04.232+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:UpdateAttribute">
+ <attribute href="http://www.eclipse.org/emf/compare/diff/1.0#//ModelInputSnapshot/date"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#/"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:RemoveModelElement">
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@diff"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@diff/@ownedElements.0"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:AddModelElement">
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@diff"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@diff/@ownedElements.0"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@diff"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:RemoveModelElement">
+ <rightParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.2"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:AddModelElement">
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.2"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0/@subMatchElements.0"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#/"/>
+ </ownedElements>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="0.896551724137931">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.5548387096774194">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@diff"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@diff"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9829787234042554">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9757575757575758">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.1"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.3"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.3"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.4"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.4"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.5"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.5"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.6"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.6"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.7"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.7"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.8"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.8"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.9"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.9"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0/@subMatchElements.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@match/@matchedElements.0/@subMatchElements.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@match/@matchedElements.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@match"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#/"/>
+ </matchedElements>
+ <unMatchedElements>
+ <element href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@diff/@ownedElements.0"/>
+ </unMatchedElements>
+ <unMatchedElements>
+ <element href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v1.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.2"/>
+ </unMatchedElements>
+ <unMatchedElements>
+ <element href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@diff/@ownedElements.0"/>
+ </unMatchedElements>
+ <unMatchedElements>
+ <element href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/emfdiff/v2.emfdiff#//@match/@matchedElements.0/@subMatchElements.0/@subMatchElements.0/@subMatchElements.2"/>
+ </unMatchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/genmodel/attributeChange/result.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/genmodel/attributeChange/result.emfdiff
new file mode 100644
index 000000000..099a2544b
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/genmodel/attributeChange/result.emfdiff
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T11:10:03.440+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:UpdateAttribute">
+ <attribute href="http://www.eclipse.org/emf/2002/GenModel#//GenModel/foreignModel"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#/"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:UpdateAttribute">
+ <attribute href="http://www.eclipse.org/emf/2002/GenModel#//GenModel/modelName"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#/"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:UpdateAttribute">
+ <attribute href="http://www.eclipse.org/emf/2002/GenModel#//GenModel/editPluginClass"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#/"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:UpdateAttribute">
+ <attribute href="http://www.eclipse.org/emf/2002/GenModel#//GenModel/editorPluginClass"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#/"/>
+ </subDiffElements>
+ <subDiffElements xsi:type="diff:UpdateAttribute">
+ <attribute href="http://www.eclipse.org/emf/2002/GenModel#//GenModel/testSuiteClass"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#/"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#/"/>
+ </ownedElements>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="0.793621867881549">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9555555555555557">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#//src/OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#//src/OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#//src/OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#//src/OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#//src/OPCAdminFacadeEJB/sc"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#//src/OPCAdminFacadeEJB/sc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#//src/OPCAdminFacadeEJB/poLocalHome"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#//src/OPCAdminFacadeEJB/poLocalHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#//src/OPCAdminFacadeEJB/processManagerLocal"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#//src/OPCAdminFacadeEJB/processManagerLocal"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#//src/OPCAdminFacadeEJB/ejbCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#//src/OPCAdminFacadeEJB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#//src/OPCAdminFacadeEJB/ejbPostCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#//src/OPCAdminFacadeEJB/ejbPostCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#//src/OPCAdminFacadeEJB/ejbRemove"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#//src/OPCAdminFacadeEJB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#//src/OPCAdminFacadeEJB/ejbActivate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#//src/OPCAdminFacadeEJB/ejbActivate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#//src/OPCAdminFacadeEJB/ejbPassivate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#//src/OPCAdminFacadeEJB/ejbPassivate"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#//src/OPCAdminFacadeEJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#//src/OPCAdminFacadeEJB"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#//src"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#//src"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel#/"/>
+ </matchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/gmfgen/result.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/gmfgen/result.emfdiff
new file mode 100644
index 000000000..c716bbf21
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/gmfgen/result.emfdiff
@@ -0,0 +1,328 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T11:10:03.152+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup"/>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@elementType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@elementType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@viewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.0/@elementType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.0/@elementType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.0/@viewmap/@attributes.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.0/@viewmap/@attributes.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.0/@viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.0/@viewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6000000000000001">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.0/@modelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.0/@modelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.0/@labels.0/@viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.0/@labels.0/@viewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6000000000000001">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.0/@labels.0/@modelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.0/@labels.0/@modelFacet"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.0/@labels.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.0/@labels.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.1/@elementType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.1/@elementType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.1/@viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.1/@viewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6000000000000001">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6000000000000001">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.1/@modelFacet/@modelElementInitializer/@initializers.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.1/@modelFacet/@modelElementInitializer/@initializers.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.1/@modelFacet/@modelElementInitializer"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.1/@modelFacet/@modelElementInitializer"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.1/@modelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.1/@modelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.1/@labelModelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.1/@labelModelFacet"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.1"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.2/@elementType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.2/@elementType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.2/@viewmap/@attributes.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.2/@viewmap/@attributes.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.2/@viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.2/@viewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6000000000000001">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.2/@modelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.2/@modelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.2/@labels.0/@viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.2/@labels.0/@viewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6000000000000001">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.2/@labels.0/@modelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.2/@labels.0/@modelFacet"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.2/@labels.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.2/@labels.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@childNodes.2"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@childNodes.2"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@topLevelNodes.0/@elementType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@topLevelNodes.0/@elementType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@topLevelNodes.0/@viewmap/@attributes.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@topLevelNodes.0/@viewmap/@attributes.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@topLevelNodes.0/@viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@topLevelNodes.0/@viewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6000000000000001">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@topLevelNodes.0/@modelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@topLevelNodes.0/@modelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@topLevelNodes.0/@labels.0/@viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@topLevelNodes.0/@labels.0/@viewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6000000000000001">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@topLevelNodes.0/@labels.0/@modelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@topLevelNodes.0/@labels.0/@modelFacet"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@topLevelNodes.0/@labels.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@topLevelNodes.0/@labels.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@topLevelNodes.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@topLevelNodes.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.0/@elementType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.0/@elementType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.0/@viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.0/@viewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6000000000000001">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.0/@modelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.0/@modelFacet"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.1/@elementType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.1/@elementType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.1/@viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.1/@viewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6000000000000001">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.1/@modelFacet/@modelElementSelector"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.1/@modelFacet/@modelElementSelector"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6000000000000001">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.1/@modelFacet/@modelElementInitializer/@initializers.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.1/@modelFacet/@modelElementInitializer/@initializers.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.1/@modelFacet/@modelElementInitializer"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.1/@modelFacet/@modelElementInitializer"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.1/@modelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.1/@modelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.1/@labels.0/@viewmap/@attributes.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.1/@labels.0/@viewmap/@attributes.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.1/@labels.0/@viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.1/@labels.0/@viewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.1/@labels.0/@modelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.1/@labels.0/@modelFacet"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.1/@labels.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.1/@labels.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.1"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.2/@elementType"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.2/@elementType"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.2/@viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.2/@viewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6000000000000001">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.2/@modelFacet/@modelElementSelector"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.2/@modelFacet/@modelElementSelector"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6000000000000001">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.2/@modelFacet/@modelElementInitializer/@initializers.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.2/@modelFacet/@modelElementInitializer/@initializers.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.2/@modelFacet/@modelElementInitializer"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.2/@modelFacet/@modelElementInitializer"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.2/@modelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.2/@modelFacet"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.2/@labels.0/@viewmap/@attributes.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.2/@labels.0/@viewmap/@attributes.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.2/@labels.0/@viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.2/@labels.0/@viewmap"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.6000000000000001">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.2/@labels.0/@modelFacet"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.2/@labels.0/@modelFacet"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.2/@labels.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.2/@labels.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@links.2"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@links.2"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@compartments.0/@viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@compartments.0/@viewmap"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@compartments.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@compartments.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@compartments.1/@viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@compartments.1/@viewmap"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@compartments.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@compartments.1"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@compartments.2/@viewmap"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@compartments.2/@viewmap"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@compartments.2"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@compartments.2"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@palette/@groups.0/@entries.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@palette/@groups.0/@entries.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@palette/@groups.0/@entries.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@palette/@groups.0/@entries.1"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@palette/@groups.0/@entries.2"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@palette/@groups.0/@entries.2"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@palette/@groups.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@palette/@groups.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@palette/@groups.1/@entries.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@palette/@groups.1/@entries.0"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@palette/@groups.1/@entries.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@palette/@groups.1/@entries.1"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@palette/@groups.1/@entries.2"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@palette/@groups.1/@entries.2"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@palette/@groups.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@palette/@groups.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram/@palette"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram/@palette"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@diagram"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@diagram"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@plugin"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@plugin"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@editor"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@editor"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@expressionProviders/@providers.0"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@expressionProviders/@providers.0"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#//@expressionProviders"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#//@expressionProviders"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.bkp.gmfgen#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/gmfgen/entity.gmfgen#/"/>
+ </matchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/reference/refAdd/manual.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/reference/refAdd/manual.emfdiff
new file mode 100644
index 000000000..c642565fc
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/reference/refAdd/manual.emfdiff
@@ -0,0 +1,1024 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T10:25:44.865+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:AddReferenceValue">
+ <reference href="http://www.eclipse.org/emf/2002/Ecore#//EClass/eSuperTypes"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB"/>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB"/>
+ <leftAddedTarget href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE"/>
+ <rightAddedTarget href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE"/>
+ </subDiffElements>
+ <leftParent href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB"/>
+ </subDiffElements>
+ <leftParent href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#/"/>
+ </ownedElements>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacade/getOrdersByStatus/status"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacade/getOrdersByStatus/status"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacade/getOrdersByStatus"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacade/getOrdersByStatus"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacade/getChartInfo/request"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacade/getChartInfo/request"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacade/getChartInfo/start"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacade/getChartInfo/start"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacade/getChartInfo/end"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacade/getChartInfo/end"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacade/getChartInfo/requestedCategory"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacade/getChartInfo/requestedCategory"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacade/getChartInfo"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacade/getChartInfo"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacade"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacade"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/ejbCreate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/ejbPostCreate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/ejbPostCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/ejbRemove"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/ejbActivate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/ejbActivate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/ejbPassivate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/ejbPassivate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/sc"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/sc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/poLocalHome"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/poLocalHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/processManagerLocal"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/processManagerLocal"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeException"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeException"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeHome/create"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeHome/create"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeHome"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderDetails/orderId"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderDetails/orderId"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderDetails/userId"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderDetails/userId"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderDetails/orderDate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderDetails/orderDate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderDetails/orderValue"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderDetails/orderValue"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderDetails/orderStatus"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderDetails/orderStatus"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderDetails"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderDetails"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/iterator"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/iterator"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/size"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/size"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/contains/o"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/contains/o"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/contains"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/contains"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/containsAll/c"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/containsAll/c"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/containsAll"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/containsAll"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/equals/o"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/equals/o"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/equals"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/equals"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/hashCode"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/hashCode"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/isEmpty"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/isEmpty"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/toArray"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/toArray"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/toArray.1/a"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/toArray.1/a"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/toArray.1"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/toArray.1"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames/PURCHASE_ORDER_EJB"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames/PURCHASE_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames/SEND_CONFIRMATION_MAIL"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames/SEND_CONFIRMATION_MAIL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames/SEND_APPROVAL_MAIL"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames/SEND_APPROVAL_MAIL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames/SEND_COMPLETED_ORDER_MAIL"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames/SEND_COMPLETED_ORDER_MAIL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames/XML_VALIDATION_INVOICE"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames/XML_VALIDATION_INVOICE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames/XML_VALIDATION_ORDER_APPROVAL"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames/XML_VALIDATION_ORDER_APPROVAL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames/XML_XSD_VALIDATION"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames/XML_XSD_VALIDATION"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames/XML_ENTITY_CATALOG_URL"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames/XML_ENTITY_CATALOG_URL"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//LocaleUtil"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//LocaleUtil"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9999996000000001">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/ejbCreate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/onMessage/recvMsg"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/onMessage/recvMsg"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/onMessage"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/onMessage"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/ejbRemove"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/doWork/orderId"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/doWork/orderId"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/doWork"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/doWork"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/doTransition/orderMail"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/doTransition/orderMail"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/doTransition"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/MAIL_SUBJECT"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/MAIL_SUBJECT"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/COMPLETED_ORDER_STYLE_SHEET"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/COMPLETED_ORDER_STYLE_SHEET"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/context"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/context"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/mdc"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/mdc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/sendConfirmationMail"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/sendConfirmationMail"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/mailContentXDE"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/mailContentXDE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/transitionDelegate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/transitionDelegate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/poHome"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/poHome"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/format/source"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/format/source"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/format/locale"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/format/locale"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/format"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/format"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/transformerFactory"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/transformerFactory"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/transformers"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/transformers"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/styleSheetPath"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/styleSheetPath"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/source"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/source"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/result"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/result"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/locale"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/locale"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/ejbCreate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/onMessage/recvMsg"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/onMessage/recvMsg"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/onMessage"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/onMessage"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/ejbRemove"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/doWork/xmlMessage"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/doWork/xmlMessage"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/doWork"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/doWork"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/doTransition/xmlMail"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/doTransition/xmlMail"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/doTransition"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/MAIL_SUBJECT"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/MAIL_SUBJECT"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/INVOICE_STYLE_SHEET"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/INVOICE_STYLE_SHEET"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/context"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/context"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/mdc"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/mdc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/sendConfirmationMail"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/sendConfirmationMail"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/mailContentXDE"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/mailContentXDE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/transitionDelegate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/transitionDelegate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/invoiceXDE"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/invoiceXDE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/poHome"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/poHome"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/ejbCreate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/onMessage/recvMsg"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/onMessage/recvMsg"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/onMessage"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/onMessage"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/ejbRemove"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/doWork/xmlMessage"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/doWork/xmlMessage"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/doWork"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/doWork"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/doTransition/mailingList"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/doTransition/mailingList"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/doTransition"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/MAIL_SUBJECT"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/MAIL_SUBJECT"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/ORDER_APPROVAL_STYLE_SHEET"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/ORDER_APPROVAL_STYLE_SHEET"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/context"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/context"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/mdc"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/mdc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/sendConfirmationMail"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/sendConfirmationMail"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/mailContentXDE"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/mailContentXDE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/transitionDelegate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/transitionDelegate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/poHome"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/poHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/entityCatalogURL"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/entityCatalogURL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/validateXmlOrderApproval"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/validateXmlOrderApproval"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/ejbCreate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/onMessage/recvMsg"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/onMessage/recvMsg"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/onMessage"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/onMessage"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/ejbRemove"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/doWork/xmlInvoice"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/doWork/xmlInvoice"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/doWork"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/doWork"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/doTransition/completedOrder"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/doTransition/completedOrder"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/doTransition"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/context"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/context"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/mdc"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/mdc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/processManager"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/processManager"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/poHome"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/poHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/invoiceXDE"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/invoiceXDE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/transitionDelegate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/transitionDelegate"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1/PROCESS_MANAGER_EJB"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1/PROCESS_MANAGER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1/PURCHASE_ORDER_EJB"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1/PURCHASE_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1/XML_VALIDATION_PURCHASE_ORDER"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1/XML_VALIDATION_PURCHASE_ORDER"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1/XML_VALIDATION_INVOICE"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1/XML_VALIDATION_INVOICE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1/XML_VALIDATION_ORDER_APPROVAL"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1/XML_VALIDATION_ORDER_APPROVAL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1/XML_XSD_VALIDATION"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1/XML_XSD_VALIDATION"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1/XML_ENTITY_CATALOG_URL"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1/XML_ENTITY_CATALOG_URL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1/TRANSITION_DELEGATE_ORDER_APPROVAL"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1/TRANSITION_DELEGATE_ORDER_APPROVAL"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/ejbCreate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/onMessage/recvMsg"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/onMessage/recvMsg"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/onMessage"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/onMessage"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/ejbRemove"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/doWork/xmlMessage"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/doWork/xmlMessage"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/doWork"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/doWork"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/doTransition/supplierPoList"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/doTransition/supplierPoList"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/doTransition/xmlMailOrderApprovals"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/doTransition/xmlMailOrderApprovals"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/doTransition"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/context"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/context"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/mdc"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/mdc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/transitionDelegate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/transitionDelegate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/processManager"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/processManager"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/supplierOrderXDE"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/supplierOrderXDE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/poHome"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/poHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/entityCatalogURL"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/entityCatalogURL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/validateXmlOrderApproval"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/validateXmlOrderApproval"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/ejbCreate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/onMessage/recvMsg"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/onMessage/recvMsg"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/onMessage"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/onMessage"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/ejbRemove"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/doWork/xmlMessage"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/doWork/xmlMessage"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/doWork"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/doWork"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/doTransition/xmlOrderApproval"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/doTransition/xmlOrderApproval"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/doTransition"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/canIApprove/purchaseOrder"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/canIApprove/purchaseOrder"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/canIApprove"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/canIApprove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/context"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/context"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/mdc"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/mdc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/transitionDelegate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/transitionDelegate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/processManager"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/processManager"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/poHome"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/poHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/entityCatalogURL"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/entityCatalogURL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/validateXmlPurchaseOrder"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/validateXmlPurchaseOrder"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/extractData"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/extractData"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/main/args"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/main/args"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/main"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/main"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/DTD_PUBLIC_ID"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/DTD_PUBLIC_ID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/XSD_PUBLIC_ID"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/XSD_PUBLIC_ID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/INVOICE_NS"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/INVOICE_NS"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/LINEITEM_NS"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/LINEITEM_NS"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/DTD_SYSTEM_ID"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/DTD_SYSTEM_ID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/XSD_SYSTEM_ID"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/XSD_SYSTEM_ID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/XML_INVOICE"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/XML_INVOICE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/XML_ORDERID"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/XML_ORDERID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/XML_LINEITEMS"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/XML_LINEITEMS"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/XML_LINEITEM"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/XML_LINEITEM"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/XML_ITEMID"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/XML_ITEMID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/XML_QUANTITY"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/XML_QUANTITY"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/transformer"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/transformer"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/orderId"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/orderId"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/lineItemIds"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/lineItemIds"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/invoiceDocument"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/invoiceDocument"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceTD/doTransition/info"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceTD/doTransition/info"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceTD/doTransition"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceTD/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceTD/q"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceTD/q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceTD/qFactory"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceTD/qFactory"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceTD/queueHelper"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceTD/queueHelper"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceTD"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceTD"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.2/QUEUE_CONNECTION_FACTORY"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.2/QUEUE_CONNECTION_FACTORY"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.2/ORDER_APPROVAL_MDB_QUEUE"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.2/ORDER_APPROVAL_MDB_QUEUE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.2/CR_MAIL_ORDER_APPROVAL_MDB_QUEUE"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.2/CR_MAIL_ORDER_APPROVAL_MDB_QUEUE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.2/CR_MAIL_COMPLETED_ORDER_MDB_QUEUE"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.2/CR_MAIL_COMPLETED_ORDER_MDB_QUEUE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.2/SUPPLIER_PURCHASE_ORDER_QUEUE"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.2/SUPPLIER_PURCHASE_ORDER_QUEUE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.2/MAIL_SENDER_QUEUE"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.2/MAIL_SENDER_QUEUE"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.2"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.2"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderTD/doTransition/info"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderTD/doTransition/info"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderTD/doTransition"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderTD/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderTD/mailHelper"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderTD/mailHelper"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderTD/q"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderTD/q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderTD/qFactory"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderTD/qFactory"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderTD"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderTD"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceTransitionDelegate/doTransition/info"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceTransitionDelegate/doTransition/info"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceTransitionDelegate/doTransition"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceTransitionDelegate/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceTransitionDelegate/mailHelper"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceTransitionDelegate/mailHelper"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceTransitionDelegate/q"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceTransitionDelegate/q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceTransitionDelegate/qFactory"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceTransitionDelegate/qFactory"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceTransitionDelegate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceTransitionDelegate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalTransitionDelegate/doTransition/info"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalTransitionDelegate/doTransition/info"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalTransitionDelegate/doTransition"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalTransitionDelegate/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalTransitionDelegate/q"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalTransitionDelegate/q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalTransitionDelegate/qFactory"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalTransitionDelegate/qFactory"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalTransitionDelegate/mailHelper"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalTransitionDelegate/mailHelper"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalTransitionDelegate"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalTransitionDelegate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/doTransition/info"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/doTransition/info"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/doTransition"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/sendMail/xmlOrderApproval"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/sendMail/xmlOrderApproval"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/sendMail"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/sendMail"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/qFactory"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/qFactory"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/mailQueue"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/mailQueue"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/supplierPoQueue"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/supplierPoQueue"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/supplierQueueHelper"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/supplierQueueHelper"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/mailQueueHelper"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/mailQueueHelper"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderTD/doTransition/info"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderTD/doTransition/info"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderTD/doTransition"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderTD/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderTD/q"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderTD/q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderTD/qFactory"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderTD/qFactory"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderTD/queueHelper"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderTD/queueHelper"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderTD"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderTD"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//QueueHelper/sendMessage/xmlMessage"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//QueueHelper/sendMessage/xmlMessage"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//QueueHelper/sendMessage"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//QueueHelper/sendMessage"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//QueueHelper/q"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//QueueHelper/q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//QueueHelper/qFactory"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//QueueHelper/qFactory"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//QueueHelper"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//QueueHelper"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//NewClass/name"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//NewClass/name"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//NewClass"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//NewClass"/>
+ </subMatchElements>
+ <leftElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#/"/>
+ <rightElement href="/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#/"/>
+ </matchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/reference/refAdd/result.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/reference/refAdd/result.emfdiff
new file mode 100644
index 000000000..580f8f3a6
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/reference/refAdd/result.emfdiff
@@ -0,0 +1,1024 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T11:09:59.402+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:AddReferenceValue">
+ <reference href="http://www.eclipse.org/emf/2002/Ecore#//EClass/eSuperTypes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB"/>
+ <leftAddedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE"/>
+ <rightAddedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#/"/>
+ </ownedElements>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacade/getOrdersByStatus/status"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacade/getOrdersByStatus/status"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacade/getOrdersByStatus"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacade/getOrdersByStatus"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacade/getChartInfo/request"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacade/getChartInfo/request"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacade/getChartInfo/start"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacade/getChartInfo/start"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacade/getChartInfo/end"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacade/getChartInfo/end"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacade/getChartInfo/requestedCategory"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacade/getChartInfo/requestedCategory"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacade/getChartInfo"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacade/getChartInfo"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacade"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacade"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/ejbCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/ejbPostCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/ejbPostCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/ejbRemove"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/ejbActivate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/ejbActivate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/ejbPassivate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/ejbPassivate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/sc"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/sc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/poLocalHome"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/poLocalHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB/processManagerLocal"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB/processManagerLocal"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeEJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeEJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeException"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeException"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeHome/create"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeHome/create"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OPCAdminFacadeHome"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OPCAdminFacadeHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderDetails/orderId"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderDetails/orderId"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderDetails/userId"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderDetails/userId"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderDetails/orderDate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderDetails/orderDate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderDetails/orderValue"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderDetails/orderValue"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderDetails/orderStatus"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderDetails/orderStatus"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderDetails"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderDetails"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/iterator"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/iterator"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/size"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/size"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/contains/o"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/contains/o"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/contains"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/contains"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/containsAll/c"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/containsAll/c"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/containsAll"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/containsAll"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/equals/o"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/equals/o"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/equals"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/equals"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/hashCode"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/hashCode"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/isEmpty"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/isEmpty"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/toArray"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/toArray"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/toArray.1/a"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/toArray.1/a"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO/toArray.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO/toArray.1"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrdersTO"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrdersTO"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames/PURCHASE_ORDER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames/PURCHASE_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames/SEND_CONFIRMATION_MAIL"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames/SEND_CONFIRMATION_MAIL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames/SEND_APPROVAL_MAIL"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames/SEND_APPROVAL_MAIL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames/SEND_COMPLETED_ORDER_MAIL"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames/SEND_COMPLETED_ORDER_MAIL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames/XML_VALIDATION_INVOICE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames/XML_VALIDATION_INVOICE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames/XML_VALIDATION_ORDER_APPROVAL"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames/XML_VALIDATION_ORDER_APPROVAL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames/XML_XSD_VALIDATION"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames/XML_XSD_VALIDATION"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames/XML_ENTITY_CATALOG_URL"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames/XML_ENTITY_CATALOG_URL"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//LocaleUtil"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//LocaleUtil"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9999996000000001">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/ejbCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/onMessage/recvMsg"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/onMessage/recvMsg"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/onMessage"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/onMessage"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/ejbRemove"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/doWork/orderId"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/doWork/orderId"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/doWork"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/doWork"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/doTransition/orderMail"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/doTransition/orderMail"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/doTransition"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/MAIL_SUBJECT"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/MAIL_SUBJECT"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/COMPLETED_ORDER_STYLE_SHEET"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/COMPLETED_ORDER_STYLE_SHEET"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/context"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/context"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/mdc"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/mdc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/sendConfirmationMail"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/sendConfirmationMail"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/mailContentXDE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/mailContentXDE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/transitionDelegate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/transitionDelegate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB/poHome"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB/poHome"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderMDB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderMDB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/format/source"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/format/source"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/format/locale"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/format/locale"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/format"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/format"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/transformerFactory"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/transformerFactory"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/transformers"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/transformers"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/styleSheetPath"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/styleSheetPath"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/source"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/source"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/result"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/result"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE/locale"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE/locale"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailContentXDE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailContentXDE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/ejbCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/onMessage/recvMsg"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/onMessage/recvMsg"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/onMessage"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/onMessage"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/ejbRemove"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/doWork/xmlMessage"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/doWork/xmlMessage"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/doWork"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/doWork"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/doTransition/xmlMail"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/doTransition/xmlMail"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/doTransition"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/MAIL_SUBJECT"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/MAIL_SUBJECT"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/INVOICE_STYLE_SHEET"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/INVOICE_STYLE_SHEET"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/context"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/context"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/mdc"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/mdc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/sendConfirmationMail"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/sendConfirmationMail"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/mailContentXDE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/mailContentXDE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/transitionDelegate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/transitionDelegate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/invoiceXDE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/invoiceXDE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB/poHome"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB/poHome"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceMDB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceMDB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/ejbCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/onMessage/recvMsg"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/onMessage/recvMsg"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/onMessage"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/onMessage"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/ejbRemove"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/doWork/xmlMessage"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/doWork/xmlMessage"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/doWork"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/doWork"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/doTransition/mailingList"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/doTransition/mailingList"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/doTransition"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/MAIL_SUBJECT"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/MAIL_SUBJECT"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/ORDER_APPROVAL_STYLE_SHEET"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/ORDER_APPROVAL_STYLE_SHEET"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/context"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/context"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/mdc"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/mdc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/sendConfirmationMail"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/sendConfirmationMail"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/mailContentXDE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/mailContentXDE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/transitionDelegate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/transitionDelegate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/poHome"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/poHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/entityCatalogURL"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/entityCatalogURL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB/validateXmlOrderApproval"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB/validateXmlOrderApproval"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalMDB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalMDB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/ejbCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/onMessage/recvMsg"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/onMessage/recvMsg"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/onMessage"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/onMessage"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/ejbRemove"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/doWork/xmlInvoice"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/doWork/xmlInvoice"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/doWork"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/doWork"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/doTransition/completedOrder"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/doTransition/completedOrder"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/doTransition"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/context"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/context"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/mdc"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/mdc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/processManager"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/processManager"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/poHome"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/poHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/invoiceXDE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/invoiceXDE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB/transitionDelegate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB/transitionDelegate"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceMDB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceMDB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1/PROCESS_MANAGER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1/PROCESS_MANAGER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1/PURCHASE_ORDER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1/PURCHASE_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1/XML_VALIDATION_PURCHASE_ORDER"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1/XML_VALIDATION_PURCHASE_ORDER"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1/XML_VALIDATION_INVOICE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1/XML_VALIDATION_INVOICE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1/XML_VALIDATION_ORDER_APPROVAL"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1/XML_VALIDATION_ORDER_APPROVAL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1/XML_XSD_VALIDATION"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1/XML_XSD_VALIDATION"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1/XML_ENTITY_CATALOG_URL"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1/XML_ENTITY_CATALOG_URL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1/TRANSITION_DELEGATE_ORDER_APPROVAL"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1/TRANSITION_DELEGATE_ORDER_APPROVAL"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.1"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.1"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/ejbCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/onMessage/recvMsg"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/onMessage/recvMsg"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/onMessage"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/onMessage"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/ejbRemove"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/doWork/xmlMessage"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/doWork/xmlMessage"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/doWork"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/doWork"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/doTransition/supplierPoList"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/doTransition/supplierPoList"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/doTransition/xmlMailOrderApprovals"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/doTransition/xmlMailOrderApprovals"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/doTransition"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/context"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/context"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/mdc"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/mdc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/transitionDelegate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/transitionDelegate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/processManager"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/processManager"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/supplierOrderXDE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/supplierOrderXDE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/poHome"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/poHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/entityCatalogURL"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/entityCatalogURL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB/validateXmlOrderApproval"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB/validateXmlOrderApproval"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalMDB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalMDB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/ejbCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/onMessage/recvMsg"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/onMessage/recvMsg"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/onMessage"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/onMessage"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/ejbRemove"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/doWork/xmlMessage"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/doWork/xmlMessage"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/doWork"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/doWork"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/doTransition/xmlOrderApproval"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/doTransition/xmlOrderApproval"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/doTransition"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/canIApprove/purchaseOrder"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/canIApprove/purchaseOrder"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/canIApprove"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/canIApprove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/context"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/context"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/mdc"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/mdc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/transitionDelegate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/transitionDelegate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/processManager"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/processManager"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/poHome"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/poHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/entityCatalogURL"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/entityCatalogURL"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB/validateXmlPurchaseOrder"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB/validateXmlPurchaseOrder"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderMDB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderMDB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/extractData"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/extractData"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/main/args"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/main/args"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/main"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/main"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/DTD_PUBLIC_ID"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/DTD_PUBLIC_ID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/XSD_PUBLIC_ID"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/XSD_PUBLIC_ID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/INVOICE_NS"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/INVOICE_NS"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/LINEITEM_NS"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/LINEITEM_NS"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/DTD_SYSTEM_ID"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/DTD_SYSTEM_ID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/XSD_SYSTEM_ID"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/XSD_SYSTEM_ID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/XML_INVOICE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/XML_INVOICE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/XML_ORDERID"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/XML_ORDERID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/XML_LINEITEMS"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/XML_LINEITEMS"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/XML_LINEITEM"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/XML_LINEITEM"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/XML_ITEMID"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/XML_ITEMID"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/XML_QUANTITY"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/XML_QUANTITY"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/transformer"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/transformer"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/orderId"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/orderId"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/lineItemIds"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/lineItemIds"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE/invoiceDocument"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE/invoiceDocument"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//TPAInvoiceXDE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//TPAInvoiceXDE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceTD/doTransition/info"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceTD/doTransition/info"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceTD/doTransition"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceTD/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceTD/q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceTD/q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceTD/qFactory"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceTD/qFactory"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceTD/queueHelper"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceTD/queueHelper"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//InvoiceTD"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//InvoiceTD"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.2/QUEUE_CONNECTION_FACTORY"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.2/QUEUE_CONNECTION_FACTORY"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.2/ORDER_APPROVAL_MDB_QUEUE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.2/ORDER_APPROVAL_MDB_QUEUE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.2/CR_MAIL_ORDER_APPROVAL_MDB_QUEUE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.2/CR_MAIL_ORDER_APPROVAL_MDB_QUEUE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.2/CR_MAIL_COMPLETED_ORDER_MDB_QUEUE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.2/CR_MAIL_COMPLETED_ORDER_MDB_QUEUE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.2/SUPPLIER_PURCHASE_ORDER_QUEUE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.2/SUPPLIER_PURCHASE_ORDER_QUEUE"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.2/MAIL_SENDER_QUEUE"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.2/MAIL_SENDER_QUEUE"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//JNDINames.2"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//JNDINames.2"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderTD/doTransition/info"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderTD/doTransition/info"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderTD/doTransition"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderTD/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderTD/mailHelper"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderTD/mailHelper"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderTD/q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderTD/q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderTD/qFactory"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderTD/qFactory"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailCompletedOrderTD"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailCompletedOrderTD"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceTransitionDelegate/doTransition/info"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceTransitionDelegate/doTransition/info"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceTransitionDelegate/doTransition"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceTransitionDelegate/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceTransitionDelegate/mailHelper"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceTransitionDelegate/mailHelper"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceTransitionDelegate/q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceTransitionDelegate/q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceTransitionDelegate/qFactory"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceTransitionDelegate/qFactory"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailInvoiceTransitionDelegate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailInvoiceTransitionDelegate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalTransitionDelegate/doTransition/info"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalTransitionDelegate/doTransition/info"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalTransitionDelegate/doTransition"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalTransitionDelegate/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalTransitionDelegate/q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalTransitionDelegate/q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalTransitionDelegate/qFactory"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalTransitionDelegate/qFactory"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalTransitionDelegate/mailHelper"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalTransitionDelegate/mailHelper"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//MailOrderApprovalTransitionDelegate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//MailOrderApprovalTransitionDelegate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/doTransition/info"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/doTransition/info"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/doTransition"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/sendMail/xmlOrderApproval"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/sendMail/xmlOrderApproval"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/sendMail"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/sendMail"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/qFactory"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/qFactory"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/mailQueue"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/mailQueue"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/supplierPoQueue"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/supplierPoQueue"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/supplierQueueHelper"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/supplierQueueHelper"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD/mailQueueHelper"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD/mailQueueHelper"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//OrderApprovalTD"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//OrderApprovalTD"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderTD/doTransition/info"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderTD/doTransition/info"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderTD/doTransition"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderTD/doTransition"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderTD/q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderTD/q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderTD/qFactory"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderTD/qFactory"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderTD/queueHelper"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderTD/queueHelper"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//PurchaseOrderTD"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//PurchaseOrderTD"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//QueueHelper/sendMessage/xmlMessage"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//QueueHelper/sendMessage/xmlMessage"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//QueueHelper/sendMessage"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//QueueHelper/sendMessage"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//QueueHelper/q"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//QueueHelper/q"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//QueueHelper/qFactory"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//QueueHelper/qFactory"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//QueueHelper"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//QueueHelper"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//NewClass/name"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//NewClass/name"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#//NewClass"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#//NewClass"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore#/"/>
+ </matchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/expected/inputs/reference/refRemove/result.emfdiff b/plugins/org.eclipse.emf.compare.tests/expected/inputs/reference/refRemove/result.emfdiff
new file mode 100644
index 000000000..f50f5b92e
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/expected/inputs/reference/refRemove/result.emfdiff
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<diff:ModelInputSnapshot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:diff="http://www.eclipse.org/emf/compare/diff/1.0" xmlns:match="http://www.eclipse.org/emf/compare/match/1.0" date="2007-06-06T11:09:54.933+0200">
+ <diff>
+ <ownedElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:DiffGroup">
+ <subDiffElements xsi:type="diff:RemoveReferenceValue">
+ <reference href="http://www.eclipse.org/emf/2002/Ecore#//EClass/eSuperTypes"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacade"/>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacade"/>
+ <leftRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacadeEJB"/>
+ <rightRemovedTarget href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacadeEJB"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacade"/>
+ </subDiffElements>
+ <leftParent href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#/"/>
+ </ownedElements>
+ </diff>
+ <match>
+ <matchedElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="0.9510204081632653">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacade/getOrdersByStatus/status"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacade/getOrdersByStatus/status"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacade/getOrdersByStatus"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacade/getOrdersByStatus"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacade/getChartInfo/request"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacade/getChartInfo/request"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacade/getChartInfo/start"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacade/getChartInfo/start"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacade/getChartInfo/end"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacade/getChartInfo/end"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacade/getChartInfo/requestedCategory"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacade/getChartInfo/requestedCategory"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacade/getChartInfo"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacade/getChartInfo"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacade"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacade"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacadeEJB/ejbCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacadeEJB/ejbCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacadeEJB/ejbPostCreate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacadeEJB/ejbPostCreate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacadeEJB/ejbRemove"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacadeEJB/ejbRemove"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacadeEJB/ejbActivate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacadeEJB/ejbActivate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacadeEJB/ejbPassivate"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacadeEJB/ejbPassivate"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacadeEJB/sc"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacadeEJB/sc"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacadeEJB/poLocalHome"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacadeEJB/poLocalHome"/>
+ </subMatchElements>
+ <subMatchElements xsi:type="match:Match2Elements" similarity="1.0">
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacadeEJB/processManagerLocal"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacadeEJB/processManagerLocal"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#//OPCAdminFacadeEJB"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#//OPCAdminFacadeEJB"/>
+ </subMatchElements>
+ <leftElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore#/"/>
+ <rightElement href="file:/home/cbrun/Spaces/EmfCompare/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore#/"/>
+ </matchedElements>
+ </match>
+</diff:ModelInputSnapshot>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.ecore
new file mode 100644
index 000000000..a81e1d44b
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v1.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="src">
+ <eClassifiers xsi:type="ecore:EClass" name="NewClass" eSuperTypes="#//SuperType2"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SuperType1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SuperType2"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore
new file mode 100644
index 000000000..6f64b3e44
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/attribute/attributeChange/v2.ecore
@@ -0,0 +1,17 @@
+<?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="src">
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeEJB" interface="true">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="ejbPostCreate"/>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="ejbActivate"/>
+ <eOperations name="ejbPassivate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PROCMGR_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poLocalHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManagerLocal"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore
new file mode 100644
index 000000000..890bf9302
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v1.ecore
@@ -0,0 +1,17 @@
+<?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="src">
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeEJB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="ejbPostCreate"/>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="ejbActivate"/>
+ <eOperations name="ejbPassivate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PROCMGR_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sc" volatile="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poLocalHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManagerLocal"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore
new file mode 100644
index 000000000..c72d783b8
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/attribute/volatile/v2.ecore
@@ -0,0 +1,17 @@
+<?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="src">
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeEJB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="ejbPostCreate"/>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="ejbActivate"/>
+ <eOperations name="ejbPassivate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PROCMGR_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="scp" volatile="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poLocalHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManagerLocal"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/fatv1.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/fatv1.ecore
new file mode 100755
index 000000000..fd997f7f6
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/fatv1.ecore
@@ -0,0 +1,7179 @@
+<?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="fatv1"
+ nsURI="http://www.eclipse.org/gmf/2005/GenModel" nsPrefix="fatv1">
+ <eAnnotations source="http://www.eclipse.org/emf/2004/EmfaticAnnotationMap">
+ <details key="constraints" value="http://www.eclipse.org/gmf/2005/constraints"/>
+ <details key="meta" value="http://www.eclipse.org/gmf/2005/constraints/meta"/>
+ <details key="deprecated" value="http://www.eclipse.org/gmf/2006/deprecated"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="import" value="http://www.eclipse.org/gmf/runtime/1.0.0/notation"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorGenerator">
+ <eOperations name="getAllDomainGenPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns all genpackages from domain genmodel"/>
+ </eAnnotations>
+ <eParameters name="withUsed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="plugin" lowerBound="1"
+ eType="#//GenPlugin" containment="true" eOpposite="#//GenPlugin/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorView" containment="true" eOpposite="#//GenEditorView/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainGenModel" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenModel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This is primary EMF genmodel for user's domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Derived from genModel.genPackage[0].getBasePackage() by default"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sameFileForDiagramAndModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specified whether editor should create separate file for domain elements if diagram file references no domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Distinct even when sameFileForDiagramAndModel is true. On init diagram, we just copy domain model element to new file with that extension. I won't try to set this equal to domainFileExtension"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="domainFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="By default, genModel.genPackage[0].getPrefix().toLowerCase(), as in emf/templates/editor/pluign.xmljet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dynamicTemplates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="templateDirectory" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="copyrightText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressionProviders" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorView">
+ <eOperations name="getActionBarContributorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false" eOpposite="#//GenEditorGenerator/editor"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionBarContributorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconPath" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BatchValidation" interface="true">
+ <eOperations name="getValidationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDiagnosticMarkerType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets diagnostic marker type ID local to the editor plugin. The editor pluginID should be used to fully-qualify this ID."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getMarkerNavigationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricViewID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDecoratorProviderQualifedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If enabled, ValidationAction is contributed by the editor plugin"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecorators" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderPriority"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProviderClassNames" interface="true">
+ <eOperations name="getElementTypesQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPaletteProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getModelingAssistantProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPropertyProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getIconProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getParserProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getAbstractParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeatureParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeaturesParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContributionItemProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypesClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeatureParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeaturesParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="contributionItemProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Shortcuts" interface="true">
+ <eOperations name="getShortcutsDecoratorProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreateShortcutActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateCreateShortcutAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="generateShortcutIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createShortcutActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="containsShortcutsTo" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model file extensions. Elements of the corresponding models could be shortcutted on this diagram."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsProvidedFor" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model names. Elements of this diagram domain model could be added as a shortcuts to the diagrams of the specified domains."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackageNames" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editCommandsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelpersPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartsPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPoliciesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="providersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoriesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkConstraints" interface="true">
+ <eOperations name="hasLinkCreationConstraints" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this diagram contains link creation constraints or not"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsQualifiedClassName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditPartCandies" interface="true">
+ <eOperations name="getReorientConnectionViewCommandQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseExternalNodeLabelEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getReferenceConnectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextSelectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextNonResizableEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="reorientConnectionViewCommandClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseEditHelperClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseExternalNodeLabelEditPartClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseItemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseGraphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceConnectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textSelectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textNonResizableEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MeasurementUnit" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="units" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Pixel"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenPlugin">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Computed additional dependencies of generated plug-in"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getActivatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false" eOpposite="#//GenEditorGenerator/plugin"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="provider" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Sample Plugin Provider, Inc"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="1.0.0.qualifier"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="printingEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activatorClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCommonBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="One that combines attributes that are essential for diagram elements"/>
+ </eAnnotations>
+ <eOperations name="getEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagram"/>
+ <eOperations name="getClassNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getClassNameSuffux" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getUniqueIdentifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This unique string identifier could be used to construct unique identifiers in generated java code"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLayoutType" eType="#//ViewmapLayoutType"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramRunTimeClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="way to decide which editpart to use for specific diagram element. Maps to attribute in DRT."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="visualID >= 0"/>
+ <details key="description" value="Visual ID must be a non-negative integer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//ElementType"
+ containment="true" eOpposite="#//ElementType/diagramElement"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="itemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewmap" lowerBound="1"
+ eType="#//Viewmap" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenContainerBase" interface="true" eSuperTypes="#//GenCommonBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containedNodes" upperBound="-1"
+ volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildContainer" abstract="true" eSuperTypes="#//GenContainerBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for all ChildNode containers"/>
+ </eAnnotations>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode" eOpposite="#//GenChildNode/containers"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenTopLevelNode" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not modelFacet.containmentMetaFeature.oclIsUndefined() implies modelFacet.containmentMetaFeature.genClass.ecoreClass.isSuperTypeOf(diagram.domainDiagramElement.ecoreClass)"/>
+ <details key="description" value="Top level node 'Containment Feature' must be available in the diagram 'Domain Element' or its super-class"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildNode" eSuperTypes="">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containers" upperBound="-1"
+ eType="#//GenChildContainer" changeable="false" eOpposite="#//GenChildContainer/childNodes">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let cmps:OrderedSet(GenChildContainer)=containers->select(oclIsKindOf(GenCompartment)) in cmps->exists(oclAsType(GenCompartment).listLayout) implies not cmps->exists(not oclAsType(GenCompartment).listLayout)"/>
+ <details key="description" value="Node is referenced from multiple containers with different 'List Layout' value"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildLabelNode" eSuperTypes="#//GenChildNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child node represented by label; typically hosted by list compartment"/>
+ </eAnnotations>
+ <eOperations name="getLabelMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelReadOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelElementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labelModelFacet" eType="#//LabelModelFacet"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCompartment" eSuperTypes="#//GenChildContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child container within node. Compartment, iow."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canCollapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="hideIfEmpty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="needsTitle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="listLayout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLink" eSuperTypes="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Edge')"/>
+ <details key="description" value="Link 'Diagram Runtime Class' must be a notation::Edge or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getSources" upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link sources in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargets" upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link targets in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenLinkLabel" containment="true" eOpposite="#//GenLinkLabel/link"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="outgoingCreationAllowed"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Support link creation from source to target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="incomingCreationAllowed"
+ 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="Support link creation from target to source"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewDirectionAlignedWithModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="View (Edge) will always be directed from model source to model target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="creationConstraints" eType="#//GenLinkConstraints"
+ containment="true" eOpposite="#//GenLinkConstraints/link">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies additional restrictions on link creation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLabel" abstract="true" eSuperTypes="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label on diagram"/>
+ </eAnnotations>
+ <eOperations name="getMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="readOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//LabelModelFacet"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNodeLabel" eSuperTypes="#//GenLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label within node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(node.getDomainMetaClass().ecoreClass))"/>
+ <details key="description" value="Node label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExternalNodeLabel" eSuperTypes="#//GenNodeLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to node"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkLabel" eSuperTypes="#//GenLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to link"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="(modelFacet.oclIsTypeOf(FeatureLabelModelFacet) or modelFacet.oclIsTypeOf(CompositeFeatureLabelModelFacet))=true implies link.modelFacet.oclIsTypeOf(TypeLinkModelFacet)"/>
+ <details key="description" value="Feature based link labels can only be used on link with class (TypeLinkModelFacet)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let tl: TypeLinkModelFacet = link.modelFacet.oclAsType(TypeLinkModelFacet) in not tl.oclIsUndefined() implies self.getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(tl.metaClass.ecoreClass))"/>
+ <details key="description" value="Link label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink"
+ eOpposite="#//GenLink/labels"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="#//LinkLabelAlignment"
+ defaultValueLiteral="MIDDLE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LinkLabelAlignment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constants from {@link org.eclipse.draw2d.ConnectionLocator}"/>
+ </eAnnotations>
+ <eLiterals name="MIDDLE" value="4"/>
+ <eLiterals name="TARGET" value="3"/>
+ <eLiterals name="SOURCE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementType" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base element type"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramElement" lowerBound="1"
+ eType="#//GenCommonBase" eOpposite="#//GenCommonBase/elementType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueIdentifier" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When there's palette, defaults to title of first tool that uses element with this type"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="definedExternally" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MetamodelType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Element type based on ecore type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetaClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SpecializationType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specialization of metamodel type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperAdviceQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metamodelType" eType="#//MetamodelType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperAdviceClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NotationType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pure design element"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelFacet" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for the particular model facets"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelModelFacet" interface="true" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of labels"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass"/>
+ </eAnnotations>
+ <eOperations name="isPhantomElement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containmentMetaFeature"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let r: ecore::EReference=containmentMetaFeature.ecoreFeature.oclAsType(ecore::EReference) in not containmentMetaFeature.oclIsUndefined() implies r.containment or r.eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Containment Meta Feature' must reference 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Usually the same as containmentMetaFeature, unless you need to distinguish where to put and where to get from"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not childMetaFeature.oclIsUndefined() implies childMetaFeature.ecoreFeature.oclAsType(ecore::EReference).eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Child Meta Feature' must reference 'Meta Class' or its sub-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementSelector" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Selection criterion for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementInitializer"
+ eType="#//GenElementInitializer" containment="true" eOpposite="#//GenElementInitializer/typeModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="State initializer for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeatures" lowerBound="2"
+ upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeLinkModelFacet" eSuperTypes="#//TypeModelFacet ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass that associates two EClasses"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not containmentMetaFeature.oclIsUndefined()"/>
+ <details key="description" value="Link 'Containment Meta Feature' must be specified"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If source feature is not specified then link container is a link source"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceMetaFeature.oclIsUndefined() implies sourceMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Source Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetMetaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not targetMetaFeature.oclIsUndefined() implies targetMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Target Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLabelModelFacet" eSuperTypes="#//FeatureModelFacet #//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of label based on an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureLabelModelFacet" eSuperTypes="#//CompositeFeatureModelFacet #//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label based on a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DesignLabelModelFacet" eSuperTypes="#//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label with DescriptionStyle"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Attributes" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Captures aspects of variuos draw2d classes"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ColorAttributes" eSuperTypes="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Deprecated, use StyleAttributes instead"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="foregroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="backgroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ResizeConstraints" eSuperTypes="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Bit-wise OR of any {@link org.eclipse.draw2d.PositionConstants#NORTH}, {@link org.eclipse.draw2d.PositionConstants#SOUTH}, {@link org.eclipse.draw2d.PositionConstants#EAST} or {@link org.eclipse.draw2d.PositionConstants#WEST}"/>
+ </eAnnotations>
+ <eOperations name="getResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Convenient method to get {@link org.eclipse.draw2d.PositionConstants} names from resizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getNonResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as {@link #getResizeHandleNames()}, for nonResizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Any direction mentioned here (and combination thereof, like e.g. NORTH_WEST) is added as resizable handle"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonResizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Directions mentioned with this attribute are explicitly denoted as non-resizable (i.e. with 'move' cursor). If you'd like to omit handle {@link org.eclipse.gef.editpolicies.ResizableEditPolicy#createSelectionHandles} completely, just don't list it here"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DefaultSizeAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="40"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="30"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelOffsetAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Viewmap" abstract="true">
+ <eOperations name="find" eType="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns first attributes instance of specified class, if any"/>
+ </eAnnotations>
+ <eParameters name="attributesClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//Attributes" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="layoutType" eType="#//ViewmapLayoutType"
+ defaultValueLiteral="UNKNOWN"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ViewmapLayoutType">
+ <eLiterals name="UNKNOWN"/>
+ <eLiterals name="XY_LAYOUT" value="1"/>
+ <eLiterals name="FLOW_LAYOUT" value="2"/>
+ <eLiterals name="TOOLBAR_LAYOUT" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Name of GEF Figure class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SnippetViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InnerClassViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classBody" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ParentAssignedViewmap" eSuperTypes="#//Viewmap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Figure (with specified class name, if any) will be assigned by (or should be taken from) parent"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="getterName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Access figure from parent's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="setterName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child could provide typed alternative to setFigure() method"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When specified, type of child's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression as a is textual statement which results in a value when evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text of the expression"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="body"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage" defaultValueLiteral="ocl">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the language in which the expression is stated"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="langName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="lang"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenConstraint" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Boolean type value expression which is to be evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="Constraint"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Palette">
+ <eOperations name="getFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="flyout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroup" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="GEF allows only containers as palette immediate children"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="factoryClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntryBase" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="largeIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="smallIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createMethodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolEntry" eSuperTypes="#//EntryBase #//ToolGroupItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genNodes" upperBound="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genLinks" upperBound="-1"
+ eType="#//GenLink"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+ eType="#//GenCommonBase" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Enforces 'tool for either node or link' - if there are values in genNodes list, returns it (no respect to values in genLinks); returns value of genLinks otherwise"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedToolName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroupItem" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Separator" eSuperTypes="#//ToolGroupItem"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroup" eSuperTypes="#//EntryBase #//ToolGroupItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stack" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="collapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroupItem" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="toolsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenElementInitializer" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for initializers of domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeModelFacet" lowerBound="1"
+ eType="#//TypeModelFacet" changeable="false" eOpposite="#//TypeModelFacet/modelElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type model facet whose domain model element is to be intialized by this initializer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureSeqInitializer" eSuperTypes="#//GenElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Feature sequence initializer"/>
+ </eAnnotations>
+ <eOperations name="getElementClassAccessorName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the accessor name of this initializer's element class meta object within its package interface"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains this initializer's element class meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initializers" lowerBound="1"
+ upperBound="-1" eType="#//GenFeatureValueSpec" containment="true" eOpposite="#//GenFeatureValueSpec/featureSeqInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specifications as initializers for individual features which should be initialized in the order given by this list"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="typeModelFacet.metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureValueSpec" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specification associated with a specific feature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="feature.ecoreFeature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies feature.ecoreFeature.eContainingClass.isSuperTypeOf(featureSeqInitializer.typeModelFacet.metaClass.ecoreClass)"/>
+ <details key="description" value="The feature of 'GenFeatureValueSpec' must be available in 'Meta Class' of the initialized element"/>
+ </eAnnotations>
+ <eOperations name="getFeatureQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains the given feature meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The feature for which this value expression is specified"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies not featureSeqInitializer.initializers->exists(i| i &lt;> self and feature = self.feature)"/>
+ <details key="description" value="The feature is already initialized by another 'GenFeatureValueSpec' in the sequence"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="featureSeqInitializer"
+ lowerBound="1" eType="#//GenFeatureSeqInitializer" eOpposite="#//GenFeatureSeqInitializer/initializers"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Groups constraints on the link source and target end"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceEnd.oclIsUndefined() or not targetEnd.oclIsUndefined()"/>
+ <details key="description" value="Either 'sourceEnd' or 'targetEnd' constraint must be specified"/>
+ </eAnnotations>
+ <eOperations name="getLinkClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The domain meta element class of the link restricted by this constraints"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSourceEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the source end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the target end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getConstraintsInstanceFieldName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns the name of the field holding Link Constraints instance"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink"
+ eOpposite="#//GenLink/creationConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the owning link of this constraints"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the source end, may reference variables 'oppositeEnd' pointing to targetEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetEnd" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the target end, may reference variables 'oppositeEnd' pointing to sourceEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleContainerBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base container for rules like audit, metrics..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorGenerator" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The editor generator containing this rule container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionInterpreter" eSuperTypes="">
+ <eOperations name="getQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getExpressionAccessor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenLanguage">
+ <eLiterals name="ocl"/>
+ <eLiterals name="java" value="1"/>
+ <eLiterals name="regexp" value="2"/>
+ <eLiterals name="nregexp" value="3"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage">
+ <eClassifiers xsi:type="ecore:EClass" name="GenNotationElementTarget" eSuperTypes=" #//aNewPackage/GenMeasurable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted diagram notation model element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element.ecoreClass.eAllSuperTypes->including(element.ecoreClass)->one(ePackage.name = 'notation' and name = 'View')"/>
+ <details key="description" value="'notation::View' or its sub-class must be set to NotationElement target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMeasurable" interface="true" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for anything that can be subject to metrics"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderContainer">
+ <eOperations name="getProvider" eType="#//aNewPackage/GenExpressionProviderBase">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ <eOperations name="getAbstractExpressionQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expressionsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractExpressionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="providers" upperBound="-1"
+ eType="#//aNewPackage/GenExpressionProviderBase" containment="true" eOpposite="#//aNewPackage/GenExpressionProviderBase/container"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" lowerBound="1"
+ eType="#//GenEditorGenerator"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderBase" abstract="true">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLanguage" lowerBound="1" eType="#//GenLanguage"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" upperBound="-1"
+ eType="#//ValueExpression"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage/GenExpressionProviderContainer" eOpposite="#//aNewPackage/GenExpressionProviderContainer/providers"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="aNewPackage1">
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagram" eSuperTypes="#//GenContainerBase #//PackageNames #//ProviderClassNames #//LinkConstraints #//EditPartCandies #//aNewPackage1/EditorCandies #//Shortcuts #//BatchValidation #//MeasurementUnit">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Diagram')"/>
+ <details key="description" value="'Diagram Runtime Class' must be a notation::Diagram or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getAllNodes" upperBound="-1" eType="#//aNewPackage1/GenNode"/>
+ <eOperations name="getAllChildContainers" upperBound="-1" eType="#//GenChildContainer"/>
+ <eOperations name="getAllContainers" upperBound="-1" eType="#//GenContainerBase"/>
+ <eOperations name="getElementInitializersClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the class to hold the initializer methods for domain elements"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementInitializersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the package to hold the element initializers class"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainDiagramElement"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="topLevelNodes" upperBound="-1"
+ eType="#//GenTopLevelNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="links" upperBound="-1"
+ eType="#//GenLink" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="palette" eType="#//Palette"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ProviderPriority">
+ <eLiterals name="Lowest"/>
+ <eLiterals name="Low" value="1"/>
+ <eLiterals name="Medium" value="2"/>
+ <eLiterals name="High" value="3"/>
+ <eLiterals name="Highest" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditorCandies" interface="true">
+ <eOperations name="getCreationWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreationWizardPageQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramEditorUtilQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramFileCreatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDocumentProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getInitDiagramFileActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNewDiagramFileWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMatchingStrategyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPreferenceInitializerQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getVisualIDRegistryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getElementChooserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLoadResourceActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateInitDiagramAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardPageClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardIconPath"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardCategoryID"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramEditorUtilClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileCreatorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="documentProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initDiagramFileActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="newDiagramFileWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="matchingStrategyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="preferenceInitializerClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualIDRegistryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementChooserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadResourceActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editingDomainID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNode" abstract="true" eSuperTypes="#//GenChildContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="EClass mapped to Node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Node')"/>
+ <details key="description" value="Node 'Diagram Runtime Class' must be a notation::Node or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getDomainMetaClass" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Delegates to modelFacet"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="valid only when there are compartments"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//TypeModelFacet"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenNodeLabel" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="graphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkModelFacet" interface="true" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of links"/>
+ </eAnnotations>
+ <eOperations name="getSourceTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eOperations name="getTargetTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLinkModelFacet" eSuperTypes="#//FeatureModelFacet #//aNewPackage1/LinkModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a feature-based link"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StyleAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedFont" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedForeground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedBackground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage2">
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditContainer" eSuperTypes="#//GenRuleContainerBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Container for audit rules representing a hierarchical organization of audits in the constraint category hierarchy of emft.validation framework"/>
+ </eAnnotations>
+ <eOperations name="getAllAuditRules" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit rules from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllAuditContainers" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit containers from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getPath" lowerBound="1" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets hierarchical path of this audit container as ordered list of containers beginning with the root and ended with this container"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllRulesToTargetContextMap" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Maps all rules in the container hierarchy to client context IDs of their target contexts. key: (context ID of rule target) value: (EList&lt;GenAuditRule>)"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllTargetedModelPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all model packages to which rules in this container hierarchy are targeted. Checks rules recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="hasDiagramElementRule" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this container hierarchy contains at least 1 rule targeted on notation elements. Checks recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Identifier which is unique within the scope of its parent container."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name for the category of audits organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this audit container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parentContainer" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/childContainers"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditRule" containment="true" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditRule/container">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The audit rules organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childContainers" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" containment="true"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/parentContainer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for rule like audit, metric rules..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name of this rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this rule semantics"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditRule" eSuperTypes="#//aNewPackage1/aNewPackage2/GenRuleBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Auditing rule in the form of a constraint evaluated against its target"/>
+ </eAnnotations>
+ <eOperations name="getContextSelectorClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorLocalClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique identifier of this audit rule"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not id.oclIsUndefined() implies container.audits->one(i | i.id = self.id)"/>
+ <details key="description" value="Audit rule with the same ID already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//GenConstraint" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A boolean type condition which if not satisfied indicates this audit rule violation. It is evaluated in the context of the target"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this audit is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="message" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text message to be reported in case of this audit violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="severity" eType="#//aNewPackage1/aNewPackage2/GenSeverity"
+ defaultValueLiteral="ERROR">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Describes the severity of this audit rule violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="useInLiveMode" 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="Indicates if this audit should be evaluated also in Live mode. If 'false', only Batch mode is applicable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/audits">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing audit container of this audit rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenSeverity">
+ <eLiterals name="INFO"/>
+ <eLiterals name="WARNING" value="1"/>
+ <eLiterals name="ERROR" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleTarget" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target against which a rule can be evaluated"/>
+ </eAnnotations>
+ <eOperations name="getContext" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the classifier to be used as this rule target evaluation context"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainElementTarget" eSuperTypes=" ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted domain model element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagramElementTarget" eSuperTypes=" ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model selectively, for specific visualized element"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted visualized element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element &lt;> null and element->size() > 1 implies element->forAll(oclIsKindOf(GenNode))"/>
+ <details key="description" value="Multiple diagram elements must be GenNode type conformant"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainAttributeTarget" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents value based target, useful for audit rules expression not capable of ecore meta-model access"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="attribute.ecoreFeature.oclIsKindOf(ecore::EAttribute)"/>
+ <details key="description" value="EAttribute element required for auditable domain attribute"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullAsError" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether null value of the attribute is reported as audit failure or success"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenJavaExpressionProvider" eSuperTypes="">
+ <eOperations name="getOperationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage3">
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricContainer" eSuperTypes="#//GenRuleContainerBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" lowerBound="1"
+ upperBound="-1" eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule"
+ containment="true" eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule/container"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricRule" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not lowLimit.oclIsUndefined() and not highLimit.oclIsUndefined() implies lowLimit &lt; highLimit"/>
+ <details key="description" value="Metric value 'lowLimit' must be smaller then 'highLimit'"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique key identifying this metric an abbreviation for this metric"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not key.oclIsUndefined() implies container.metrics->one(i | i.key = self.key)"/>
+ <details key="description" value="Metric rule with the same 'key' already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//ValueExpression" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression that calculates the value of this metric which is of EDataType that encapsulates java.lang.Number subclasses or their primitives"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="'ecore::EDoubleObject'"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ eType="#//aNewPackage/GenMeasurable" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this metric is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="highLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer/metrics">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing metric container of this metric rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditedMetricTarget" eSuperTypes="#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target metric which can be evaluated by audit rule. The target context here is the metric rule resulting type classifier"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metric" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Metric wich can be involved in audit"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metricValueContext"
+ lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenDataType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditable" abstract="true"
+ eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target suitable for auditing"/>
+ </eAnnotations>
+ <eOperations name="getClientContextID" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets identifier of the validation client context for this target. It's guaranteed as a valid java identifier."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the validation target class in terms of EMFT validation framework."/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ </eSubpackages>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorGenerator">
+ <eOperations name="getAllDomainGenPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns all genpackages from domain genmodel"/>
+ </eAnnotations>
+ <eParameters name="withUsed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="plugin" lowerBound="1"
+ eType="#//GenPlugin" containment="true" eOpposite="#//GenPlugin/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorView" containment="true" eOpposite="#//GenEditorView/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainGenModel" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenModel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This is primary EMF genmodel for user's domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Derived from genModel.genPackage[0].getBasePackage() by default"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sameFileForDiagramAndModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specified whether editor should create separate file for domain elements if diagram file references no domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Distinct even when sameFileForDiagramAndModel is true. On init diagram, we just copy domain model element to new file with that extension. I won't try to set this equal to domainFileExtension"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="domainFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="By default, genModel.genPackage[0].getPrefix().toLowerCase(), as in emf/templates/editor/pluign.xmljet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dynamicTemplates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="templateDirectory" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="copyrightText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressionProviders" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorView">
+ <eOperations name="getActionBarContributorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false" eOpposite="#//GenEditorGenerator/editor"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionBarContributorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconPath" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BatchValidation" interface="true">
+ <eOperations name="getValidationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDiagnosticMarkerType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets diagnostic marker type ID local to the editor plugin. The editor pluginID should be used to fully-qualify this ID."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getMarkerNavigationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricViewID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDecoratorProviderQualifedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If enabled, ValidationAction is contributed by the editor plugin"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecorators" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderPriority"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProviderClassNames" interface="true">
+ <eOperations name="getElementTypesQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPaletteProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getModelingAssistantProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPropertyProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getIconProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getParserProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getAbstractParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeatureParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeaturesParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContributionItemProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypesClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeatureParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeaturesParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="contributionItemProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Shortcuts" interface="true">
+ <eOperations name="getShortcutsDecoratorProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreateShortcutActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateCreateShortcutAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="generateShortcutIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createShortcutActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="containsShortcutsTo" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model file extensions. Elements of the corresponding models could be shortcutted on this diagram."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsProvidedFor" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model names. Elements of this diagram domain model could be added as a shortcuts to the diagrams of the specified domains."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackageNames" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editCommandsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelpersPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartsPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPoliciesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="providersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoriesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkConstraints" interface="true">
+ <eOperations name="hasLinkCreationConstraints" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this diagram contains link creation constraints or not"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsQualifiedClassName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditPartCandies" interface="true">
+ <eOperations name="getReorientConnectionViewCommandQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseExternalNodeLabelEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getReferenceConnectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextSelectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextNonResizableEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="reorientConnectionViewCommandClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseEditHelperClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseExternalNodeLabelEditPartClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseItemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseGraphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceConnectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textSelectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textNonResizableEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MeasurementUnit" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="units" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Pixel"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenPlugin">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Computed additional dependencies of generated plug-in"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getActivatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false" eOpposite="#//GenEditorGenerator/plugin"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="provider" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Sample Plugin Provider, Inc"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="1.0.0.qualifier"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="printingEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activatorClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCommonBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="One that combines attributes that are essential for diagram elements"/>
+ </eAnnotations>
+ <eOperations name="getEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagram"/>
+ <eOperations name="getClassNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getClassNameSuffux" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getUniqueIdentifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This unique string identifier could be used to construct unique identifiers in generated java code"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLayoutType" eType="#//ViewmapLayoutType"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramRunTimeClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="way to decide which editpart to use for specific diagram element. Maps to attribute in DRT."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="visualID >= 0"/>
+ <details key="description" value="Visual ID must be a non-negative integer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//ElementType"
+ containment="true" eOpposite="#//ElementType/diagramElement"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="itemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewmap" lowerBound="1"
+ eType="#//Viewmap" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenContainerBase" interface="true" eSuperTypes="#//GenCommonBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containedNodes" upperBound="-1"
+ volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildContainer" abstract="true" eSuperTypes="#//GenContainerBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for all ChildNode containers"/>
+ </eAnnotations>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode" eOpposite="#//GenChildNode/containers"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenTopLevelNode" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not modelFacet.containmentMetaFeature.oclIsUndefined() implies modelFacet.containmentMetaFeature.genClass.ecoreClass.isSuperTypeOf(diagram.domainDiagramElement.ecoreClass)"/>
+ <details key="description" value="Top level node 'Containment Feature' must be available in the diagram 'Domain Element' or its super-class"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildNode" eSuperTypes="">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containers" upperBound="-1"
+ eType="#//GenChildContainer" changeable="false" eOpposite="#//GenChildContainer/childNodes">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let cmps:OrderedSet(GenChildContainer)=containers->select(oclIsKindOf(GenCompartment)) in cmps->exists(oclAsType(GenCompartment).listLayout) implies not cmps->exists(not oclAsType(GenCompartment).listLayout)"/>
+ <details key="description" value="Node is referenced from multiple containers with different 'List Layout' value"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildLabelNode" eSuperTypes="#//GenChildNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child node represented by label; typically hosted by list compartment"/>
+ </eAnnotations>
+ <eOperations name="getLabelMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelReadOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelElementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labelModelFacet" eType="#//LabelModelFacet"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCompartment" eSuperTypes="#//GenChildContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child container within node. Compartment, iow."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canCollapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="hideIfEmpty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="needsTitle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="listLayout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLink" eSuperTypes="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Edge')"/>
+ <details key="description" value="Link 'Diagram Runtime Class' must be a notation::Edge or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getSources" upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link sources in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargets" upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link targets in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenLinkLabel" containment="true" eOpposite="#//GenLinkLabel/link"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="outgoingCreationAllowed"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Support link creation from source to target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="incomingCreationAllowed"
+ 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="Support link creation from target to source"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewDirectionAlignedWithModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="View (Edge) will always be directed from model source to model target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="creationConstraints" eType="#//GenLinkConstraints"
+ containment="true" eOpposite="#//GenLinkConstraints/link">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies additional restrictions on link creation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLabel" abstract="true" eSuperTypes="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label on diagram"/>
+ </eAnnotations>
+ <eOperations name="getMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="readOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//LabelModelFacet"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNodeLabel" eSuperTypes="#//GenLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label within node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(node.getDomainMetaClass().ecoreClass))"/>
+ <details key="description" value="Node label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExternalNodeLabel" eSuperTypes="#//GenNodeLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to node"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkLabel" eSuperTypes="#//GenLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to link"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="(modelFacet.oclIsTypeOf(FeatureLabelModelFacet) or modelFacet.oclIsTypeOf(CompositeFeatureLabelModelFacet))=true implies link.modelFacet.oclIsTypeOf(TypeLinkModelFacet)"/>
+ <details key="description" value="Feature based link labels can only be used on link with class (TypeLinkModelFacet)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let tl: TypeLinkModelFacet = link.modelFacet.oclAsType(TypeLinkModelFacet) in not tl.oclIsUndefined() implies self.getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(tl.metaClass.ecoreClass))"/>
+ <details key="description" value="Link label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink"
+ eOpposite="#//GenLink/labels"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="#//LinkLabelAlignment"
+ defaultValueLiteral="MIDDLE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LinkLabelAlignment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constants from {@link org.eclipse.draw2d.ConnectionLocator}"/>
+ </eAnnotations>
+ <eLiterals name="MIDDLE" value="4"/>
+ <eLiterals name="TARGET" value="3"/>
+ <eLiterals name="SOURCE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementType" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base element type"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramElement" lowerBound="1"
+ eType="#//GenCommonBase" eOpposite="#//GenCommonBase/elementType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueIdentifier" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When there's palette, defaults to title of first tool that uses element with this type"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="definedExternally" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MetamodelType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Element type based on ecore type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetaClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SpecializationType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specialization of metamodel type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperAdviceQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metamodelType" eType="#//MetamodelType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperAdviceClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NotationType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pure design element"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelFacet" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for the particular model facets"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelModelFacet" interface="true" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of labels"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass"/>
+ </eAnnotations>
+ <eOperations name="isPhantomElement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containmentMetaFeature"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let r: ecore::EReference=containmentMetaFeature.ecoreFeature.oclAsType(ecore::EReference) in not containmentMetaFeature.oclIsUndefined() implies r.containment or r.eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Containment Meta Feature' must reference 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Usually the same as containmentMetaFeature, unless you need to distinguish where to put and where to get from"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not childMetaFeature.oclIsUndefined() implies childMetaFeature.ecoreFeature.oclAsType(ecore::EReference).eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Child Meta Feature' must reference 'Meta Class' or its sub-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementSelector" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Selection criterion for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementInitializer"
+ eType="#//GenElementInitializer" containment="true" eOpposite="#//GenElementInitializer/typeModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="State initializer for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeatures" lowerBound="2"
+ upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeLinkModelFacet" eSuperTypes="#//TypeModelFacet ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass that associates two EClasses"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not containmentMetaFeature.oclIsUndefined()"/>
+ <details key="description" value="Link 'Containment Meta Feature' must be specified"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If source feature is not specified then link container is a link source"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceMetaFeature.oclIsUndefined() implies sourceMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Source Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetMetaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not targetMetaFeature.oclIsUndefined() implies targetMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Target Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLabelModelFacet" eSuperTypes="#//FeatureModelFacet #//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of label based on an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureLabelModelFacet" eSuperTypes="#//CompositeFeatureModelFacet #//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label based on a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DesignLabelModelFacet" eSuperTypes="#//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label with DescriptionStyle"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Attributes" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Captures aspects of variuos draw2d classes"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ColorAttributes" eSuperTypes="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Deprecated, use StyleAttributes instead"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="foregroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="backgroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ResizeConstraints" eSuperTypes="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Bit-wise OR of any {@link org.eclipse.draw2d.PositionConstants#NORTH}, {@link org.eclipse.draw2d.PositionConstants#SOUTH}, {@link org.eclipse.draw2d.PositionConstants#EAST} or {@link org.eclipse.draw2d.PositionConstants#WEST}"/>
+ </eAnnotations>
+ <eOperations name="getResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Convenient method to get {@link org.eclipse.draw2d.PositionConstants} names from resizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getNonResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as {@link #getResizeHandleNames()}, for nonResizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Any direction mentioned here (and combination thereof, like e.g. NORTH_WEST) is added as resizable handle"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonResizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Directions mentioned with this attribute are explicitly denoted as non-resizable (i.e. with 'move' cursor). If you'd like to omit handle {@link org.eclipse.gef.editpolicies.ResizableEditPolicy#createSelectionHandles} completely, just don't list it here"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DefaultSizeAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="40"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="30"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelOffsetAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Viewmap" abstract="true">
+ <eOperations name="find" eType="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns first attributes instance of specified class, if any"/>
+ </eAnnotations>
+ <eParameters name="attributesClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//Attributes" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="layoutType" eType="#//ViewmapLayoutType"
+ defaultValueLiteral="UNKNOWN"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ViewmapLayoutType">
+ <eLiterals name="UNKNOWN"/>
+ <eLiterals name="XY_LAYOUT" value="1"/>
+ <eLiterals name="FLOW_LAYOUT" value="2"/>
+ <eLiterals name="TOOLBAR_LAYOUT" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Name of GEF Figure class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SnippetViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InnerClassViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classBody" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ParentAssignedViewmap" eSuperTypes="#//Viewmap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Figure (with specified class name, if any) will be assigned by (or should be taken from) parent"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="getterName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Access figure from parent's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="setterName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child could provide typed alternative to setFigure() method"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When specified, type of child's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression as a is textual statement which results in a value when evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text of the expression"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="body"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage" defaultValueLiteral="ocl">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the language in which the expression is stated"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="langName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="lang"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenConstraint" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Boolean type value expression which is to be evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="Constraint"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Palette">
+ <eOperations name="getFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="flyout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroup" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="GEF allows only containers as palette immediate children"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="factoryClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntryBase" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="largeIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="smallIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createMethodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolEntry" eSuperTypes="#//EntryBase #//ToolGroupItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genNodes" upperBound="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genLinks" upperBound="-1"
+ eType="#//GenLink"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+ eType="#//GenCommonBase" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Enforces 'tool for either node or link' - if there are values in genNodes list, returns it (no respect to values in genLinks); returns value of genLinks otherwise"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedToolName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroupItem" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Separator" eSuperTypes="#//ToolGroupItem"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroup" eSuperTypes="#//EntryBase #//ToolGroupItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stack" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="collapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroupItem" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="toolsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenElementInitializer" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for initializers of domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeModelFacet" lowerBound="1"
+ eType="#//TypeModelFacet" changeable="false" eOpposite="#//TypeModelFacet/modelElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type model facet whose domain model element is to be intialized by this initializer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureSeqInitializer" eSuperTypes="#//GenElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Feature sequence initializer"/>
+ </eAnnotations>
+ <eOperations name="getElementClassAccessorName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the accessor name of this initializer's element class meta object within its package interface"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains this initializer's element class meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initializers" lowerBound="1"
+ upperBound="-1" eType="#//GenFeatureValueSpec" containment="true" eOpposite="#//GenFeatureValueSpec/featureSeqInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specifications as initializers for individual features which should be initialized in the order given by this list"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="typeModelFacet.metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureValueSpec" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specification associated with a specific feature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="feature.ecoreFeature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies feature.ecoreFeature.eContainingClass.isSuperTypeOf(featureSeqInitializer.typeModelFacet.metaClass.ecoreClass)"/>
+ <details key="description" value="The feature of 'GenFeatureValueSpec' must be available in 'Meta Class' of the initialized element"/>
+ </eAnnotations>
+ <eOperations name="getFeatureQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains the given feature meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The feature for which this value expression is specified"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies not featureSeqInitializer.initializers->exists(i| i &lt;> self and feature = self.feature)"/>
+ <details key="description" value="The feature is already initialized by another 'GenFeatureValueSpec' in the sequence"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="featureSeqInitializer"
+ lowerBound="1" eType="#//GenFeatureSeqInitializer" eOpposite="#//GenFeatureSeqInitializer/initializers"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Groups constraints on the link source and target end"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceEnd.oclIsUndefined() or not targetEnd.oclIsUndefined()"/>
+ <details key="description" value="Either 'sourceEnd' or 'targetEnd' constraint must be specified"/>
+ </eAnnotations>
+ <eOperations name="getLinkClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The domain meta element class of the link restricted by this constraints"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSourceEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the source end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the target end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getConstraintsInstanceFieldName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns the name of the field holding Link Constraints instance"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink"
+ eOpposite="#//GenLink/creationConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the owning link of this constraints"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the source end, may reference variables 'oppositeEnd' pointing to targetEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetEnd" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the target end, may reference variables 'oppositeEnd' pointing to sourceEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleContainerBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base container for rules like audit, metrics..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorGenerator" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The editor generator containing this rule container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionInterpreter" eSuperTypes="">
+ <eOperations name="getQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getExpressionAccessor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenLanguage">
+ <eLiterals name="ocl"/>
+ <eLiterals name="java" value="1"/>
+ <eLiterals name="regexp" value="2"/>
+ <eLiterals name="nregexp" value="3"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage">
+ <eClassifiers xsi:type="ecore:EClass" name="GenNotationElementTarget" eSuperTypes=" #//aNewPackage/GenMeasurable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted diagram notation model element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element.ecoreClass.eAllSuperTypes->including(element.ecoreClass)->one(ePackage.name = 'notation' and name = 'View')"/>
+ <details key="description" value="'notation::View' or its sub-class must be set to NotationElement target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMeasurable" interface="true" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for anything that can be subject to metrics"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderContainer">
+ <eOperations name="getProvider" eType="#//aNewPackage/GenExpressionProviderBase">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ <eOperations name="getAbstractExpressionQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expressionsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractExpressionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="providers" upperBound="-1"
+ eType="#//aNewPackage/GenExpressionProviderBase" containment="true" eOpposite="#//aNewPackage/GenExpressionProviderBase/container"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" lowerBound="1"
+ eType="#//GenEditorGenerator"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderBase" abstract="true">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLanguage" lowerBound="1" eType="#//GenLanguage"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" upperBound="-1"
+ eType="#//ValueExpression"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage/GenExpressionProviderContainer" eOpposite="#//aNewPackage/GenExpressionProviderContainer/providers"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="aNewPackage1">
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagram" eSuperTypes="#//GenContainerBase #//PackageNames #//ProviderClassNames #//LinkConstraints #//EditPartCandies #//aNewPackage1/EditorCandies #//Shortcuts #//BatchValidation #//MeasurementUnit">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Diagram')"/>
+ <details key="description" value="'Diagram Runtime Class' must be a notation::Diagram or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getAllNodes" upperBound="-1" eType="#//aNewPackage1/GenNode"/>
+ <eOperations name="getAllChildContainers" upperBound="-1" eType="#//GenChildContainer"/>
+ <eOperations name="getAllContainers" upperBound="-1" eType="#//GenContainerBase"/>
+ <eOperations name="getElementInitializersClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the class to hold the initializer methods for domain elements"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementInitializersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the package to hold the element initializers class"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainDiagramElement"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="topLevelNodes" upperBound="-1"
+ eType="#//GenTopLevelNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="links" upperBound="-1"
+ eType="#//GenLink" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="palette" eType="#//Palette"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ProviderPriority">
+ <eLiterals name="Lowest"/>
+ <eLiterals name="Low" value="1"/>
+ <eLiterals name="Medium" value="2"/>
+ <eLiterals name="High" value="3"/>
+ <eLiterals name="Highest" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditorCandies" interface="true">
+ <eOperations name="getCreationWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreationWizardPageQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramEditorUtilQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramFileCreatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDocumentProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getInitDiagramFileActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNewDiagramFileWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMatchingStrategyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPreferenceInitializerQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getVisualIDRegistryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getElementChooserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLoadResourceActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateInitDiagramAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardPageClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardIconPath"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardCategoryID"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramEditorUtilClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileCreatorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="documentProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initDiagramFileActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="newDiagramFileWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="matchingStrategyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="preferenceInitializerClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualIDRegistryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementChooserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadResourceActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editingDomainID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNode" abstract="true" eSuperTypes="#//GenChildContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="EClass mapped to Node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Node')"/>
+ <details key="description" value="Node 'Diagram Runtime Class' must be a notation::Node or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getDomainMetaClass" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Delegates to modelFacet"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="valid only when there are compartments"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//TypeModelFacet"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenNodeLabel" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="graphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkModelFacet" interface="true" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of links"/>
+ </eAnnotations>
+ <eOperations name="getSourceTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eOperations name="getTargetTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLinkModelFacet" eSuperTypes="#//FeatureModelFacet #//aNewPackage1/LinkModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a feature-based link"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StyleAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedFont" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedForeground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedBackground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage2">
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditContainer" eSuperTypes="#//GenRuleContainerBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Container for audit rules representing a hierarchical organization of audits in the constraint category hierarchy of emft.validation framework"/>
+ </eAnnotations>
+ <eOperations name="getAllAuditRules" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit rules from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllAuditContainers" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit containers from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getPath" lowerBound="1" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets hierarchical path of this audit container as ordered list of containers beginning with the root and ended with this container"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllRulesToTargetContextMap" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Maps all rules in the container hierarchy to client context IDs of their target contexts. key: (context ID of rule target) value: (EList&lt;GenAuditRule>)"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllTargetedModelPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all model packages to which rules in this container hierarchy are targeted. Checks rules recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="hasDiagramElementRule" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this container hierarchy contains at least 1 rule targeted on notation elements. Checks recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Identifier which is unique within the scope of its parent container."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name for the category of audits organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this audit container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parentContainer" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/childContainers"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditRule" containment="true" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditRule/container">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The audit rules organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childContainers" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" containment="true"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/parentContainer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for rule like audit, metric rules..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name of this rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this rule semantics"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditRule" eSuperTypes="#//aNewPackage1/aNewPackage2/GenRuleBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Auditing rule in the form of a constraint evaluated against its target"/>
+ </eAnnotations>
+ <eOperations name="getContextSelectorClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorLocalClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique identifier of this audit rule"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not id.oclIsUndefined() implies container.audits->one(i | i.id = self.id)"/>
+ <details key="description" value="Audit rule with the same ID already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//GenConstraint" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A boolean type condition which if not satisfied indicates this audit rule violation. It is evaluated in the context of the target"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this audit is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="message" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text message to be reported in case of this audit violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="severity" eType="#//aNewPackage1/aNewPackage2/GenSeverity"
+ defaultValueLiteral="ERROR">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Describes the severity of this audit rule violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="useInLiveMode" 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="Indicates if this audit should be evaluated also in Live mode. If 'false', only Batch mode is applicable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/audits">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing audit container of this audit rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenSeverity">
+ <eLiterals name="INFO"/>
+ <eLiterals name="WARNING" value="1"/>
+ <eLiterals name="ERROR" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleTarget" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target against which a rule can be evaluated"/>
+ </eAnnotations>
+ <eOperations name="getContext" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the classifier to be used as this rule target evaluation context"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainElementTarget" eSuperTypes=" ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted domain model element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagramElementTarget" eSuperTypes=" ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model selectively, for specific visualized element"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted visualized element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element &lt;> null and element->size() > 1 implies element->forAll(oclIsKindOf(GenNode))"/>
+ <details key="description" value="Multiple diagram elements must be GenNode type conformant"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainAttributeTarget" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents value based target, useful for audit rules expression not capable of ecore meta-model access"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="attribute.ecoreFeature.oclIsKindOf(ecore::EAttribute)"/>
+ <details key="description" value="EAttribute element required for auditable domain attribute"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullAsError" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether null value of the attribute is reported as audit failure or success"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenJavaExpressionProvider" eSuperTypes="">
+ <eOperations name="getOperationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage3">
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricContainer" eSuperTypes="#//GenRuleContainerBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" lowerBound="1"
+ upperBound="-1" eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule"
+ containment="true" eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule/container"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricRule" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not lowLimit.oclIsUndefined() and not highLimit.oclIsUndefined() implies lowLimit &lt; highLimit"/>
+ <details key="description" value="Metric value 'lowLimit' must be smaller then 'highLimit'"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique key identifying this metric an abbreviation for this metric"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not key.oclIsUndefined() implies container.metrics->one(i | i.key = self.key)"/>
+ <details key="description" value="Metric rule with the same 'key' already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//ValueExpression" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression that calculates the value of this metric which is of EDataType that encapsulates java.lang.Number subclasses or their primitives"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="'ecore::EDoubleObject'"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ eType="#//aNewPackage/GenMeasurable" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this metric is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="highLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer/metrics">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing metric container of this metric rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditedMetricTarget" eSuperTypes="#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target metric which can be evaluated by audit rule. The target context here is the metric rule resulting type classifier"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metric" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Metric wich can be involved in audit"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metricValueContext"
+ lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenDataType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditable" abstract="true"
+ eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target suitable for auditing"/>
+ </eAnnotations>
+ <eOperations name="getClientContextID" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets identifier of the validation client context for this target. It's guaranteed as a valid java identifier."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the validation target class in terms of EMFT validation framework."/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ </eSubpackages>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorGenerator">
+ <eOperations name="getAllDomainGenPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns all genpackages from domain genmodel"/>
+ </eAnnotations>
+ <eParameters name="withUsed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="plugin" lowerBound="1"
+ eType="#//GenPlugin" containment="true" eOpposite="#//GenPlugin/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorView" containment="true" eOpposite="#//GenEditorView/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainGenModel" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenModel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This is primary EMF genmodel for user's domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Derived from genModel.genPackage[0].getBasePackage() by default"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sameFileForDiagramAndModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specified whether editor should create separate file for domain elements if diagram file references no domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Distinct even when sameFileForDiagramAndModel is true. On init diagram, we just copy domain model element to new file with that extension. I won't try to set this equal to domainFileExtension"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="domainFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="By default, genModel.genPackage[0].getPrefix().toLowerCase(), as in emf/templates/editor/pluign.xmljet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dynamicTemplates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="templateDirectory" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="copyrightText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressionProviders" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorView">
+ <eOperations name="getActionBarContributorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false" eOpposite="#//GenEditorGenerator/editor"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionBarContributorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconPath" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BatchValidation" interface="true">
+ <eOperations name="getValidationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDiagnosticMarkerType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets diagnostic marker type ID local to the editor plugin. The editor pluginID should be used to fully-qualify this ID."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getMarkerNavigationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricViewID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDecoratorProviderQualifedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If enabled, ValidationAction is contributed by the editor plugin"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecorators" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderPriority"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProviderClassNames" interface="true">
+ <eOperations name="getElementTypesQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPaletteProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getModelingAssistantProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPropertyProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getIconProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getParserProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getAbstractParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeatureParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeaturesParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContributionItemProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypesClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeatureParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeaturesParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="contributionItemProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Shortcuts" interface="true">
+ <eOperations name="getShortcutsDecoratorProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreateShortcutActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateCreateShortcutAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="generateShortcutIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createShortcutActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="containsShortcutsTo" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model file extensions. Elements of the corresponding models could be shortcutted on this diagram."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsProvidedFor" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model names. Elements of this diagram domain model could be added as a shortcuts to the diagrams of the specified domains."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackageNames" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editCommandsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelpersPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartsPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPoliciesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="providersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoriesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkConstraints" interface="true">
+ <eOperations name="hasLinkCreationConstraints" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this diagram contains link creation constraints or not"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsQualifiedClassName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditPartCandies" interface="true">
+ <eOperations name="getReorientConnectionViewCommandQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseExternalNodeLabelEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getReferenceConnectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextSelectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextNonResizableEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="reorientConnectionViewCommandClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseEditHelperClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseExternalNodeLabelEditPartClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseItemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseGraphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceConnectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textSelectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textNonResizableEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MeasurementUnit" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="units" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Pixel"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenPlugin">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Computed additional dependencies of generated plug-in"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getActivatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false" eOpposite="#//GenEditorGenerator/plugin"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="provider" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Sample Plugin Provider, Inc"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="1.0.0.qualifier"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="printingEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activatorClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCommonBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="One that combines attributes that are essential for diagram elements"/>
+ </eAnnotations>
+ <eOperations name="getEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagram"/>
+ <eOperations name="getClassNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getClassNameSuffux" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getUniqueIdentifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This unique string identifier could be used to construct unique identifiers in generated java code"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLayoutType" eType="#//ViewmapLayoutType"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramRunTimeClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="way to decide which editpart to use for specific diagram element. Maps to attribute in DRT."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="visualID >= 0"/>
+ <details key="description" value="Visual ID must be a non-negative integer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//ElementType"
+ containment="true" eOpposite="#//ElementType/diagramElement"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="itemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewmap" lowerBound="1"
+ eType="#//Viewmap" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenContainerBase" interface="true" eSuperTypes="#//GenCommonBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containedNodes" upperBound="-1"
+ volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildContainer" abstract="true" eSuperTypes="#//GenContainerBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for all ChildNode containers"/>
+ </eAnnotations>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode" eOpposite="#//GenChildNode/containers"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenTopLevelNode" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not modelFacet.containmentMetaFeature.oclIsUndefined() implies modelFacet.containmentMetaFeature.genClass.ecoreClass.isSuperTypeOf(diagram.domainDiagramElement.ecoreClass)"/>
+ <details key="description" value="Top level node 'Containment Feature' must be available in the diagram 'Domain Element' or its super-class"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildNode" eSuperTypes="">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containers" upperBound="-1"
+ eType="#//GenChildContainer" changeable="false" eOpposite="#//GenChildContainer/childNodes">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let cmps:OrderedSet(GenChildContainer)=containers->select(oclIsKindOf(GenCompartment)) in cmps->exists(oclAsType(GenCompartment).listLayout) implies not cmps->exists(not oclAsType(GenCompartment).listLayout)"/>
+ <details key="description" value="Node is referenced from multiple containers with different 'List Layout' value"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildLabelNode" eSuperTypes="#//GenChildNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child node represented by label; typically hosted by list compartment"/>
+ </eAnnotations>
+ <eOperations name="getLabelMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelReadOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelElementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labelModelFacet" eType="#//LabelModelFacet"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCompartment" eSuperTypes="#//GenChildContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child container within node. Compartment, iow."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canCollapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="hideIfEmpty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="needsTitle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="listLayout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLink" eSuperTypes="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Edge')"/>
+ <details key="description" value="Link 'Diagram Runtime Class' must be a notation::Edge or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getSources" upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link sources in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargets" upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link targets in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenLinkLabel" containment="true" eOpposite="#//GenLinkLabel/link"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="outgoingCreationAllowed"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Support link creation from source to target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="incomingCreationAllowed"
+ 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="Support link creation from target to source"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewDirectionAlignedWithModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="View (Edge) will always be directed from model source to model target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="creationConstraints" eType="#//GenLinkConstraints"
+ containment="true" eOpposite="#//GenLinkConstraints/link">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies additional restrictions on link creation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLabel" abstract="true" eSuperTypes="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label on diagram"/>
+ </eAnnotations>
+ <eOperations name="getMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="readOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//LabelModelFacet"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNodeLabel" eSuperTypes="#//GenLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label within node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(node.getDomainMetaClass().ecoreClass))"/>
+ <details key="description" value="Node label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExternalNodeLabel" eSuperTypes="#//GenNodeLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to node"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkLabel" eSuperTypes="#//GenLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to link"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="(modelFacet.oclIsTypeOf(FeatureLabelModelFacet) or modelFacet.oclIsTypeOf(CompositeFeatureLabelModelFacet))=true implies link.modelFacet.oclIsTypeOf(TypeLinkModelFacet)"/>
+ <details key="description" value="Feature based link labels can only be used on link with class (TypeLinkModelFacet)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let tl: TypeLinkModelFacet = link.modelFacet.oclAsType(TypeLinkModelFacet) in not tl.oclIsUndefined() implies self.getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(tl.metaClass.ecoreClass))"/>
+ <details key="description" value="Link label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink"
+ eOpposite="#//GenLink/labels"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="#//LinkLabelAlignment"
+ defaultValueLiteral="MIDDLE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LinkLabelAlignment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constants from {@link org.eclipse.draw2d.ConnectionLocator}"/>
+ </eAnnotations>
+ <eLiterals name="MIDDLE" value="4"/>
+ <eLiterals name="TARGET" value="3"/>
+ <eLiterals name="SOURCE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementType" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base element type"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramElement" lowerBound="1"
+ eType="#//GenCommonBase" eOpposite="#//GenCommonBase/elementType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueIdentifier" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When there's palette, defaults to title of first tool that uses element with this type"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="definedExternally" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MetamodelType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Element type based on ecore type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetaClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SpecializationType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specialization of metamodel type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperAdviceQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metamodelType" eType="#//MetamodelType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperAdviceClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NotationType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pure design element"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelFacet" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for the particular model facets"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelModelFacet" interface="true" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of labels"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass"/>
+ </eAnnotations>
+ <eOperations name="isPhantomElement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containmentMetaFeature"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let r: ecore::EReference=containmentMetaFeature.ecoreFeature.oclAsType(ecore::EReference) in not containmentMetaFeature.oclIsUndefined() implies r.containment or r.eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Containment Meta Feature' must reference 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Usually the same as containmentMetaFeature, unless you need to distinguish where to put and where to get from"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not childMetaFeature.oclIsUndefined() implies childMetaFeature.ecoreFeature.oclAsType(ecore::EReference).eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Child Meta Feature' must reference 'Meta Class' or its sub-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementSelector" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Selection criterion for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementInitializer"
+ eType="#//GenElementInitializer" containment="true" eOpposite="#//GenElementInitializer/typeModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="State initializer for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeatures" lowerBound="2"
+ upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeLinkModelFacet" eSuperTypes="#//TypeModelFacet ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass that associates two EClasses"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not containmentMetaFeature.oclIsUndefined()"/>
+ <details key="description" value="Link 'Containment Meta Feature' must be specified"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If source feature is not specified then link container is a link source"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceMetaFeature.oclIsUndefined() implies sourceMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Source Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetMetaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not targetMetaFeature.oclIsUndefined() implies targetMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Target Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLabelModelFacet" eSuperTypes="#//FeatureModelFacet #//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of label based on an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureLabelModelFacet" eSuperTypes="#//CompositeFeatureModelFacet #//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label based on a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DesignLabelModelFacet" eSuperTypes="#//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label with DescriptionStyle"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Attributes" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Captures aspects of variuos draw2d classes"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ColorAttributes" eSuperTypes="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Deprecated, use StyleAttributes instead"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="foregroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="backgroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ResizeConstraints" eSuperTypes="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Bit-wise OR of any {@link org.eclipse.draw2d.PositionConstants#NORTH}, {@link org.eclipse.draw2d.PositionConstants#SOUTH}, {@link org.eclipse.draw2d.PositionConstants#EAST} or {@link org.eclipse.draw2d.PositionConstants#WEST}"/>
+ </eAnnotations>
+ <eOperations name="getResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Convenient method to get {@link org.eclipse.draw2d.PositionConstants} names from resizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getNonResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as {@link #getResizeHandleNames()}, for nonResizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Any direction mentioned here (and combination thereof, like e.g. NORTH_WEST) is added as resizable handle"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonResizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Directions mentioned with this attribute are explicitly denoted as non-resizable (i.e. with 'move' cursor). If you'd like to omit handle {@link org.eclipse.gef.editpolicies.ResizableEditPolicy#createSelectionHandles} completely, just don't list it here"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DefaultSizeAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="40"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="30"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelOffsetAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Viewmap" abstract="true">
+ <eOperations name="find" eType="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns first attributes instance of specified class, if any"/>
+ </eAnnotations>
+ <eParameters name="attributesClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//Attributes" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="layoutType" eType="#//ViewmapLayoutType"
+ defaultValueLiteral="UNKNOWN"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ViewmapLayoutType">
+ <eLiterals name="UNKNOWN"/>
+ <eLiterals name="XY_LAYOUT" value="1"/>
+ <eLiterals name="FLOW_LAYOUT" value="2"/>
+ <eLiterals name="TOOLBAR_LAYOUT" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Name of GEF Figure class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SnippetViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InnerClassViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classBody" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ParentAssignedViewmap" eSuperTypes="#//Viewmap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Figure (with specified class name, if any) will be assigned by (or should be taken from) parent"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="getterName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Access figure from parent's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="setterName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child could provide typed alternative to setFigure() method"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When specified, type of child's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression as a is textual statement which results in a value when evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text of the expression"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="body"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage" defaultValueLiteral="ocl">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the language in which the expression is stated"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="langName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="lang"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenConstraint" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Boolean type value expression which is to be evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="Constraint"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Palette">
+ <eOperations name="getFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="flyout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroup" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="GEF allows only containers as palette immediate children"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="factoryClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntryBase" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="largeIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="smallIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createMethodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolEntry" eSuperTypes="#//EntryBase #//ToolGroupItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genNodes" upperBound="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genLinks" upperBound="-1"
+ eType="#//GenLink"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+ eType="#//GenCommonBase" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Enforces 'tool for either node or link' - if there are values in genNodes list, returns it (no respect to values in genLinks); returns value of genLinks otherwise"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedToolName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroupItem" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Separator" eSuperTypes="#//ToolGroupItem"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroup" eSuperTypes="#//EntryBase #//ToolGroupItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stack" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="collapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroupItem" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="toolsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenElementInitializer" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for initializers of domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeModelFacet" lowerBound="1"
+ eType="#//TypeModelFacet" changeable="false" eOpposite="#//TypeModelFacet/modelElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type model facet whose domain model element is to be intialized by this initializer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureSeqInitializer" eSuperTypes="#//GenElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Feature sequence initializer"/>
+ </eAnnotations>
+ <eOperations name="getElementClassAccessorName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the accessor name of this initializer's element class meta object within its package interface"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains this initializer's element class meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initializers" lowerBound="1"
+ upperBound="-1" eType="#//GenFeatureValueSpec" containment="true" eOpposite="#//GenFeatureValueSpec/featureSeqInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specifications as initializers for individual features which should be initialized in the order given by this list"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="typeModelFacet.metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureValueSpec" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specification associated with a specific feature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="feature.ecoreFeature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies feature.ecoreFeature.eContainingClass.isSuperTypeOf(featureSeqInitializer.typeModelFacet.metaClass.ecoreClass)"/>
+ <details key="description" value="The feature of 'GenFeatureValueSpec' must be available in 'Meta Class' of the initialized element"/>
+ </eAnnotations>
+ <eOperations name="getFeatureQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains the given feature meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The feature for which this value expression is specified"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies not featureSeqInitializer.initializers->exists(i| i &lt;> self and feature = self.feature)"/>
+ <details key="description" value="The feature is already initialized by another 'GenFeatureValueSpec' in the sequence"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="featureSeqInitializer"
+ lowerBound="1" eType="#//GenFeatureSeqInitializer" eOpposite="#//GenFeatureSeqInitializer/initializers"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Groups constraints on the link source and target end"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceEnd.oclIsUndefined() or not targetEnd.oclIsUndefined()"/>
+ <details key="description" value="Either 'sourceEnd' or 'targetEnd' constraint must be specified"/>
+ </eAnnotations>
+ <eOperations name="getLinkClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The domain meta element class of the link restricted by this constraints"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSourceEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the source end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the target end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getConstraintsInstanceFieldName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns the name of the field holding Link Constraints instance"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink"
+ eOpposite="#//GenLink/creationConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the owning link of this constraints"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the source end, may reference variables 'oppositeEnd' pointing to targetEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetEnd" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the target end, may reference variables 'oppositeEnd' pointing to sourceEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleContainerBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base container for rules like audit, metrics..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorGenerator" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The editor generator containing this rule container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionInterpreter" eSuperTypes="">
+ <eOperations name="getQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getExpressionAccessor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenLanguage">
+ <eLiterals name="ocl"/>
+ <eLiterals name="java" value="1"/>
+ <eLiterals name="regexp" value="2"/>
+ <eLiterals name="nregexp" value="3"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage">
+ <eClassifiers xsi:type="ecore:EClass" name="GenNotationElementTarget" eSuperTypes=" #//aNewPackage/GenMeasurable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted diagram notation model element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element.ecoreClass.eAllSuperTypes->including(element.ecoreClass)->one(ePackage.name = 'notation' and name = 'View')"/>
+ <details key="description" value="'notation::View' or its sub-class must be set to NotationElement target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMeasurable" interface="true" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for anything that can be subject to metrics"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderContainer">
+ <eOperations name="getProvider" eType="#//aNewPackage/GenExpressionProviderBase">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ <eOperations name="getAbstractExpressionQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expressionsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractExpressionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="providers" upperBound="-1"
+ eType="#//aNewPackage/GenExpressionProviderBase" containment="true" eOpposite="#//aNewPackage/GenExpressionProviderBase/container"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" lowerBound="1"
+ eType="#//GenEditorGenerator"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderBase" abstract="true">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLanguage" lowerBound="1" eType="#//GenLanguage"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" upperBound="-1"
+ eType="#//ValueExpression"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage/GenExpressionProviderContainer" eOpposite="#//aNewPackage/GenExpressionProviderContainer/providers"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="aNewPackage1">
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagram" eSuperTypes="#//GenContainerBase #//PackageNames #//ProviderClassNames #//LinkConstraints #//EditPartCandies #//aNewPackage1/EditorCandies #//Shortcuts #//BatchValidation #//MeasurementUnit">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Diagram')"/>
+ <details key="description" value="'Diagram Runtime Class' must be a notation::Diagram or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getAllNodes" upperBound="-1" eType="#//aNewPackage1/GenNode"/>
+ <eOperations name="getAllChildContainers" upperBound="-1" eType="#//GenChildContainer"/>
+ <eOperations name="getAllContainers" upperBound="-1" eType="#//GenContainerBase"/>
+ <eOperations name="getElementInitializersClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the class to hold the initializer methods for domain elements"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementInitializersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the package to hold the element initializers class"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainDiagramElement"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="topLevelNodes" upperBound="-1"
+ eType="#//GenTopLevelNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="links" upperBound="-1"
+ eType="#//GenLink" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="palette" eType="#//Palette"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ProviderPriority">
+ <eLiterals name="Lowest"/>
+ <eLiterals name="Low" value="1"/>
+ <eLiterals name="Medium" value="2"/>
+ <eLiterals name="High" value="3"/>
+ <eLiterals name="Highest" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditorCandies" interface="true">
+ <eOperations name="getCreationWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreationWizardPageQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramEditorUtilQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramFileCreatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDocumentProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getInitDiagramFileActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNewDiagramFileWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMatchingStrategyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPreferenceInitializerQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getVisualIDRegistryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getElementChooserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLoadResourceActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateInitDiagramAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardPageClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardIconPath"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardCategoryID"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramEditorUtilClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileCreatorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="documentProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initDiagramFileActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="newDiagramFileWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="matchingStrategyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="preferenceInitializerClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualIDRegistryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementChooserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadResourceActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editingDomainID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNode" abstract="true" eSuperTypes="#//GenChildContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="EClass mapped to Node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Node')"/>
+ <details key="description" value="Node 'Diagram Runtime Class' must be a notation::Node or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getDomainMetaClass" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Delegates to modelFacet"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="valid only when there are compartments"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//TypeModelFacet"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenNodeLabel" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="graphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkModelFacet" interface="true" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of links"/>
+ </eAnnotations>
+ <eOperations name="getSourceTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eOperations name="getTargetTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLinkModelFacet" eSuperTypes="#//FeatureModelFacet #//aNewPackage1/LinkModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a feature-based link"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StyleAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedFont" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedForeground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedBackground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage2">
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditContainer" eSuperTypes="#//GenRuleContainerBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Container for audit rules representing a hierarchical organization of audits in the constraint category hierarchy of emft.validation framework"/>
+ </eAnnotations>
+ <eOperations name="getAllAuditRules" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit rules from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllAuditContainers" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit containers from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getPath" lowerBound="1" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets hierarchical path of this audit container as ordered list of containers beginning with the root and ended with this container"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllRulesToTargetContextMap" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Maps all rules in the container hierarchy to client context IDs of their target contexts. key: (context ID of rule target) value: (EList&lt;GenAuditRule>)"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllTargetedModelPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all model packages to which rules in this container hierarchy are targeted. Checks rules recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="hasDiagramElementRule" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this container hierarchy contains at least 1 rule targeted on notation elements. Checks recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Identifier which is unique within the scope of its parent container."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name for the category of audits organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this audit container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parentContainer" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/childContainers"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditRule" containment="true" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditRule/container">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The audit rules organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childContainers" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" containment="true"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/parentContainer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for rule like audit, metric rules..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name of this rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this rule semantics"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditRule" eSuperTypes="#//aNewPackage1/aNewPackage2/GenRuleBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Auditing rule in the form of a constraint evaluated against its target"/>
+ </eAnnotations>
+ <eOperations name="getContextSelectorClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorLocalClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique identifier of this audit rule"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not id.oclIsUndefined() implies container.audits->one(i | i.id = self.id)"/>
+ <details key="description" value="Audit rule with the same ID already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//GenConstraint" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A boolean type condition which if not satisfied indicates this audit rule violation. It is evaluated in the context of the target"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this audit is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="message" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text message to be reported in case of this audit violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="severity" eType="#//aNewPackage1/aNewPackage2/GenSeverity"
+ defaultValueLiteral="ERROR">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Describes the severity of this audit rule violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="useInLiveMode" 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="Indicates if this audit should be evaluated also in Live mode. If 'false', only Batch mode is applicable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/audits">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing audit container of this audit rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenSeverity">
+ <eLiterals name="INFO"/>
+ <eLiterals name="WARNING" value="1"/>
+ <eLiterals name="ERROR" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleTarget" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target against which a rule can be evaluated"/>
+ </eAnnotations>
+ <eOperations name="getContext" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the classifier to be used as this rule target evaluation context"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainElementTarget" eSuperTypes=" ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted domain model element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagramElementTarget" eSuperTypes=" ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model selectively, for specific visualized element"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted visualized element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element &lt;> null and element->size() > 1 implies element->forAll(oclIsKindOf(GenNode))"/>
+ <details key="description" value="Multiple diagram elements must be GenNode type conformant"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainAttributeTarget" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents value based target, useful for audit rules expression not capable of ecore meta-model access"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="attribute.ecoreFeature.oclIsKindOf(ecore::EAttribute)"/>
+ <details key="description" value="EAttribute element required for auditable domain attribute"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullAsError" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether null value of the attribute is reported as audit failure or success"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenJavaExpressionProvider" eSuperTypes="">
+ <eOperations name="getOperationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage3">
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricContainer" eSuperTypes="#//GenRuleContainerBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" lowerBound="1"
+ upperBound="-1" eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule"
+ containment="true" eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule/container"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricRule" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not lowLimit.oclIsUndefined() and not highLimit.oclIsUndefined() implies lowLimit &lt; highLimit"/>
+ <details key="description" value="Metric value 'lowLimit' must be smaller then 'highLimit'"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique key identifying this metric an abbreviation for this metric"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not key.oclIsUndefined() implies container.metrics->one(i | i.key = self.key)"/>
+ <details key="description" value="Metric rule with the same 'key' already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//ValueExpression" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression that calculates the value of this metric which is of EDataType that encapsulates java.lang.Number subclasses or their primitives"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="'ecore::EDoubleObject'"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ eType="#//aNewPackage/GenMeasurable" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this metric is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="highLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer/metrics">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing metric container of this metric rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditedMetricTarget" eSuperTypes="#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target metric which can be evaluated by audit rule. The target context here is the metric rule resulting type classifier"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metric" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Metric wich can be involved in audit"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metricValueContext"
+ lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenDataType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditable" abstract="true"
+ eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target suitable for auditing"/>
+ </eAnnotations>
+ <eOperations name="getClientContextID" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets identifier of the validation client context for this target. It's guaranteed as a valid java identifier."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the validation target class in terms of EMFT validation framework."/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorGenerator">
+ <eOperations name="getAllDomainGenPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns all genpackages from domain genmodel"/>
+ </eAnnotations>
+ <eParameters name="withUsed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="plugin" lowerBound="1"
+ eType="#//GenPlugin" containment="true" eOpposite="#//GenPlugin/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorView" containment="true" eOpposite="#//GenEditorView/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainGenModel" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenModel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This is primary EMF genmodel for user's domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Derived from genModel.genPackage[0].getBasePackage() by default"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sameFileForDiagramAndModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specified whether editor should create separate file for domain elements if diagram file references no domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Distinct even when sameFileForDiagramAndModel is true. On init diagram, we just copy domain model element to new file with that extension. I won't try to set this equal to domainFileExtension"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="domainFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="By default, genModel.genPackage[0].getPrefix().toLowerCase(), as in emf/templates/editor/pluign.xmljet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dynamicTemplates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="templateDirectory" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="copyrightText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressionProviders" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorView">
+ <eOperations name="getActionBarContributorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false" eOpposite="#//GenEditorGenerator/editor"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionBarContributorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconPath" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BatchValidation" interface="true">
+ <eOperations name="getValidationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDiagnosticMarkerType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets diagnostic marker type ID local to the editor plugin. The editor pluginID should be used to fully-qualify this ID."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getMarkerNavigationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricViewID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDecoratorProviderQualifedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If enabled, ValidationAction is contributed by the editor plugin"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecorators" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderPriority"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProviderClassNames" interface="true">
+ <eOperations name="getElementTypesQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPaletteProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getModelingAssistantProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPropertyProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getIconProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getParserProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getAbstractParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeatureParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeaturesParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContributionItemProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypesClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeatureParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeaturesParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="contributionItemProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Shortcuts" interface="true">
+ <eOperations name="getShortcutsDecoratorProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreateShortcutActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateCreateShortcutAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="generateShortcutIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createShortcutActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="containsShortcutsTo" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model file extensions. Elements of the corresponding models could be shortcutted on this diagram."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsProvidedFor" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model names. Elements of this diagram domain model could be added as a shortcuts to the diagrams of the specified domains."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackageNames" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editCommandsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelpersPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartsPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPoliciesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="providersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoriesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkConstraints" interface="true">
+ <eOperations name="hasLinkCreationConstraints" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this diagram contains link creation constraints or not"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsQualifiedClassName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditPartCandies" interface="true">
+ <eOperations name="getReorientConnectionViewCommandQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseExternalNodeLabelEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getReferenceConnectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextSelectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextNonResizableEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="reorientConnectionViewCommandClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseEditHelperClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseExternalNodeLabelEditPartClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseItemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseGraphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceConnectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textSelectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textNonResizableEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MeasurementUnit" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="units" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Pixel"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenPlugin">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Computed additional dependencies of generated plug-in"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getActivatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false" eOpposite="#//GenEditorGenerator/plugin"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="provider" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Sample Plugin Provider, Inc"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="1.0.0.qualifier"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="printingEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activatorClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCommonBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="One that combines attributes that are essential for diagram elements"/>
+ </eAnnotations>
+ <eOperations name="getEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagram"/>
+ <eOperations name="getClassNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getClassNameSuffux" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getUniqueIdentifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This unique string identifier could be used to construct unique identifiers in generated java code"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLayoutType" eType="#//ViewmapLayoutType"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramRunTimeClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="way to decide which editpart to use for specific diagram element. Maps to attribute in DRT."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="visualID >= 0"/>
+ <details key="description" value="Visual ID must be a non-negative integer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//ElementType"
+ containment="true" eOpposite="#//ElementType/diagramElement"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="itemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewmap" lowerBound="1"
+ eType="#//Viewmap" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenContainerBase" interface="true" eSuperTypes="#//GenCommonBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containedNodes" upperBound="-1"
+ volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildContainer" abstract="true" eSuperTypes="#//GenContainerBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for all ChildNode containers"/>
+ </eAnnotations>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode" eOpposite="#//GenChildNode/containers"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenTopLevelNode" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not modelFacet.containmentMetaFeature.oclIsUndefined() implies modelFacet.containmentMetaFeature.genClass.ecoreClass.isSuperTypeOf(diagram.domainDiagramElement.ecoreClass)"/>
+ <details key="description" value="Top level node 'Containment Feature' must be available in the diagram 'Domain Element' or its super-class"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildNode" eSuperTypes="">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containers" upperBound="-1"
+ eType="#//GenChildContainer" changeable="false" eOpposite="#//GenChildContainer/childNodes">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let cmps:OrderedSet(GenChildContainer)=containers->select(oclIsKindOf(GenCompartment)) in cmps->exists(oclAsType(GenCompartment).listLayout) implies not cmps->exists(not oclAsType(GenCompartment).listLayout)"/>
+ <details key="description" value="Node is referenced from multiple containers with different 'List Layout' value"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildLabelNode" eSuperTypes="#//GenChildNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child node represented by label; typically hosted by list compartment"/>
+ </eAnnotations>
+ <eOperations name="getLabelMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelReadOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelElementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labelModelFacet" eType="#//LabelModelFacet"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCompartment" eSuperTypes="#//GenChildContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child container within node. Compartment, iow."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canCollapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="hideIfEmpty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="needsTitle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="listLayout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLink" eSuperTypes="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Edge')"/>
+ <details key="description" value="Link 'Diagram Runtime Class' must be a notation::Edge or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getSources" upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link sources in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargets" upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link targets in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenLinkLabel" containment="true" eOpposite="#//GenLinkLabel/link"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="outgoingCreationAllowed"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Support link creation from source to target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="incomingCreationAllowed"
+ 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="Support link creation from target to source"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewDirectionAlignedWithModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="View (Edge) will always be directed from model source to model target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="creationConstraints" eType="#//GenLinkConstraints"
+ containment="true" eOpposite="#//GenLinkConstraints/link">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies additional restrictions on link creation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLabel" abstract="true" eSuperTypes="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label on diagram"/>
+ </eAnnotations>
+ <eOperations name="getMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="readOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//LabelModelFacet"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNodeLabel" eSuperTypes="#//GenLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label within node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(node.getDomainMetaClass().ecoreClass))"/>
+ <details key="description" value="Node label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExternalNodeLabel" eSuperTypes="#//GenNodeLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to node"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkLabel" eSuperTypes="#//GenLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to link"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="(modelFacet.oclIsTypeOf(FeatureLabelModelFacet) or modelFacet.oclIsTypeOf(CompositeFeatureLabelModelFacet))=true implies link.modelFacet.oclIsTypeOf(TypeLinkModelFacet)"/>
+ <details key="description" value="Feature based link labels can only be used on link with class (TypeLinkModelFacet)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let tl: TypeLinkModelFacet = link.modelFacet.oclAsType(TypeLinkModelFacet) in not tl.oclIsUndefined() implies self.getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(tl.metaClass.ecoreClass))"/>
+ <details key="description" value="Link label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink"
+ eOpposite="#//GenLink/labels"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="#//LinkLabelAlignment"
+ defaultValueLiteral="MIDDLE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LinkLabelAlignment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constants from {@link org.eclipse.draw2d.ConnectionLocator}"/>
+ </eAnnotations>
+ <eLiterals name="MIDDLE" value="4"/>
+ <eLiterals name="TARGET" value="3"/>
+ <eLiterals name="SOURCE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementType" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base element type"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramElement" lowerBound="1"
+ eType="#//GenCommonBase" eOpposite="#//GenCommonBase/elementType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueIdentifier" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When there's palette, defaults to title of first tool that uses element with this type"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="definedExternally" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MetamodelType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Element type based on ecore type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetaClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SpecializationType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specialization of metamodel type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperAdviceQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metamodelType" eType="#//MetamodelType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperAdviceClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NotationType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pure design element"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelFacet" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for the particular model facets"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelModelFacet" interface="true" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of labels"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass"/>
+ </eAnnotations>
+ <eOperations name="isPhantomElement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containmentMetaFeature"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let r: ecore::EReference=containmentMetaFeature.ecoreFeature.oclAsType(ecore::EReference) in not containmentMetaFeature.oclIsUndefined() implies r.containment or r.eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Containment Meta Feature' must reference 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Usually the same as containmentMetaFeature, unless you need to distinguish where to put and where to get from"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not childMetaFeature.oclIsUndefined() implies childMetaFeature.ecoreFeature.oclAsType(ecore::EReference).eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Child Meta Feature' must reference 'Meta Class' or its sub-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementSelector" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Selection criterion for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementInitializer"
+ eType="#//GenElementInitializer" containment="true" eOpposite="#//GenElementInitializer/typeModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="State initializer for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeatures" lowerBound="2"
+ upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeLinkModelFacet" eSuperTypes="#//TypeModelFacet ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass that associates two EClasses"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not containmentMetaFeature.oclIsUndefined()"/>
+ <details key="description" value="Link 'Containment Meta Feature' must be specified"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If source feature is not specified then link container is a link source"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceMetaFeature.oclIsUndefined() implies sourceMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Source Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetMetaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not targetMetaFeature.oclIsUndefined() implies targetMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Target Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLabelModelFacet" eSuperTypes="#//FeatureModelFacet #//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of label based on an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureLabelModelFacet" eSuperTypes="#//CompositeFeatureModelFacet #//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label based on a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DesignLabelModelFacet" eSuperTypes="#//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label with DescriptionStyle"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Attributes" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Captures aspects of variuos draw2d classes"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ColorAttributes" eSuperTypes="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Deprecated, use StyleAttributes instead"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="foregroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="backgroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ResizeConstraints" eSuperTypes="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Bit-wise OR of any {@link org.eclipse.draw2d.PositionConstants#NORTH}, {@link org.eclipse.draw2d.PositionConstants#SOUTH}, {@link org.eclipse.draw2d.PositionConstants#EAST} or {@link org.eclipse.draw2d.PositionConstants#WEST}"/>
+ </eAnnotations>
+ <eOperations name="getResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Convenient method to get {@link org.eclipse.draw2d.PositionConstants} names from resizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getNonResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as {@link #getResizeHandleNames()}, for nonResizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Any direction mentioned here (and combination thereof, like e.g. NORTH_WEST) is added as resizable handle"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonResizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Directions mentioned with this attribute are explicitly denoted as non-resizable (i.e. with 'move' cursor). If you'd like to omit handle {@link org.eclipse.gef.editpolicies.ResizableEditPolicy#createSelectionHandles} completely, just don't list it here"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DefaultSizeAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="40"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="30"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelOffsetAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Viewmap" abstract="true">
+ <eOperations name="find" eType="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns first attributes instance of specified class, if any"/>
+ </eAnnotations>
+ <eParameters name="attributesClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//Attributes" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="layoutType" eType="#//ViewmapLayoutType"
+ defaultValueLiteral="UNKNOWN"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ViewmapLayoutType">
+ <eLiterals name="UNKNOWN"/>
+ <eLiterals name="XY_LAYOUT" value="1"/>
+ <eLiterals name="FLOW_LAYOUT" value="2"/>
+ <eLiterals name="TOOLBAR_LAYOUT" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Name of GEF Figure class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SnippetViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InnerClassViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classBody" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ParentAssignedViewmap" eSuperTypes="#//Viewmap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Figure (with specified class name, if any) will be assigned by (or should be taken from) parent"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="getterName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Access figure from parent's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="setterName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child could provide typed alternative to setFigure() method"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When specified, type of child's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression as a is textual statement which results in a value when evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text of the expression"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="body"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage" defaultValueLiteral="ocl">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the language in which the expression is stated"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="langName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="lang"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenConstraint" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Boolean type value expression which is to be evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="Constraint"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Palette">
+ <eOperations name="getFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="flyout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroup" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="GEF allows only containers as palette immediate children"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="factoryClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntryBase" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="largeIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="smallIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createMethodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolEntry" eSuperTypes="#//EntryBase #//ToolGroupItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genNodes" upperBound="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genLinks" upperBound="-1"
+ eType="#//GenLink"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+ eType="#//GenCommonBase" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Enforces 'tool for either node or link' - if there are values in genNodes list, returns it (no respect to values in genLinks); returns value of genLinks otherwise"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedToolName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroupItem" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Separator" eSuperTypes="#//ToolGroupItem"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroup" eSuperTypes="#//EntryBase #//ToolGroupItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stack" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="collapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroupItem" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="toolsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenElementInitializer" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for initializers of domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeModelFacet" lowerBound="1"
+ eType="#//TypeModelFacet" changeable="false" eOpposite="#//TypeModelFacet/modelElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type model facet whose domain model element is to be intialized by this initializer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureSeqInitializer" eSuperTypes="#//GenElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Feature sequence initializer"/>
+ </eAnnotations>
+ <eOperations name="getElementClassAccessorName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the accessor name of this initializer's element class meta object within its package interface"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains this initializer's element class meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initializers" lowerBound="1"
+ upperBound="-1" eType="#//GenFeatureValueSpec" containment="true" eOpposite="#//GenFeatureValueSpec/featureSeqInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specifications as initializers for individual features which should be initialized in the order given by this list"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="typeModelFacet.metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureValueSpec" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specification associated with a specific feature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="feature.ecoreFeature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies feature.ecoreFeature.eContainingClass.isSuperTypeOf(featureSeqInitializer.typeModelFacet.metaClass.ecoreClass)"/>
+ <details key="description" value="The feature of 'GenFeatureValueSpec' must be available in 'Meta Class' of the initialized element"/>
+ </eAnnotations>
+ <eOperations name="getFeatureQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains the given feature meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The feature for which this value expression is specified"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies not featureSeqInitializer.initializers->exists(i| i &lt;> self and feature = self.feature)"/>
+ <details key="description" value="The feature is already initialized by another 'GenFeatureValueSpec' in the sequence"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="featureSeqInitializer"
+ lowerBound="1" eType="#//GenFeatureSeqInitializer" eOpposite="#//GenFeatureSeqInitializer/initializers"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Groups constraints on the link source and target end"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceEnd.oclIsUndefined() or not targetEnd.oclIsUndefined()"/>
+ <details key="description" value="Either 'sourceEnd' or 'targetEnd' constraint must be specified"/>
+ </eAnnotations>
+ <eOperations name="getLinkClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The domain meta element class of the link restricted by this constraints"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSourceEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the source end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the target end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getConstraintsInstanceFieldName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns the name of the field holding Link Constraints instance"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink"
+ eOpposite="#//GenLink/creationConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the owning link of this constraints"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the source end, may reference variables 'oppositeEnd' pointing to targetEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetEnd" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the target end, may reference variables 'oppositeEnd' pointing to sourceEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleContainerBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base container for rules like audit, metrics..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorGenerator" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The editor generator containing this rule container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionInterpreter" eSuperTypes="">
+ <eOperations name="getQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getExpressionAccessor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenLanguage">
+ <eLiterals name="ocl"/>
+ <eLiterals name="java" value="1"/>
+ <eLiterals name="regexp" value="2"/>
+ <eLiterals name="nregexp" value="3"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage">
+ <eClassifiers xsi:type="ecore:EClass" name="GenNotationElementTarget" eSuperTypes=" #//aNewPackage/GenMeasurable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted diagram notation model element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element.ecoreClass.eAllSuperTypes->including(element.ecoreClass)->one(ePackage.name = 'notation' and name = 'View')"/>
+ <details key="description" value="'notation::View' or its sub-class must be set to NotationElement target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMeasurable" interface="true" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for anything that can be subject to metrics"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderContainer">
+ <eOperations name="getProvider" eType="#//aNewPackage/GenExpressionProviderBase">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ <eOperations name="getAbstractExpressionQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expressionsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractExpressionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="providers" upperBound="-1"
+ eType="#//aNewPackage/GenExpressionProviderBase" containment="true" eOpposite="#//aNewPackage/GenExpressionProviderBase/container"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" lowerBound="1"
+ eType="#//GenEditorGenerator"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderBase" abstract="true">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLanguage" lowerBound="1" eType="#//GenLanguage"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" upperBound="-1"
+ eType="#//ValueExpression"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage/GenExpressionProviderContainer" eOpposite="#//aNewPackage/GenExpressionProviderContainer/providers"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="aNewPackage1">
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagram" eSuperTypes="#//GenContainerBase #//PackageNames #//ProviderClassNames #//LinkConstraints #//EditPartCandies #//aNewPackage1/EditorCandies #//Shortcuts #//BatchValidation #//MeasurementUnit">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Diagram')"/>
+ <details key="description" value="'Diagram Runtime Class' must be a notation::Diagram or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getAllNodes" upperBound="-1" eType="#//aNewPackage1/GenNode"/>
+ <eOperations name="getAllChildContainers" upperBound="-1" eType="#//GenChildContainer"/>
+ <eOperations name="getAllContainers" upperBound="-1" eType="#//GenContainerBase"/>
+ <eOperations name="getElementInitializersClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the class to hold the initializer methods for domain elements"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementInitializersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the package to hold the element initializers class"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainDiagramElement"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="topLevelNodes" upperBound="-1"
+ eType="#//GenTopLevelNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="links" upperBound="-1"
+ eType="#//GenLink" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="palette" eType="#//Palette"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ProviderPriority">
+ <eLiterals name="Lowest"/>
+ <eLiterals name="Low" value="1"/>
+ <eLiterals name="Medium" value="2"/>
+ <eLiterals name="High" value="3"/>
+ <eLiterals name="Highest" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditorCandies" interface="true">
+ <eOperations name="getCreationWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreationWizardPageQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramEditorUtilQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramFileCreatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDocumentProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getInitDiagramFileActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNewDiagramFileWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMatchingStrategyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPreferenceInitializerQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getVisualIDRegistryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getElementChooserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLoadResourceActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateInitDiagramAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardPageClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardIconPath"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardCategoryID"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramEditorUtilClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileCreatorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="documentProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initDiagramFileActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="newDiagramFileWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="matchingStrategyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="preferenceInitializerClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualIDRegistryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementChooserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadResourceActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editingDomainID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNode" abstract="true" eSuperTypes="#//GenChildContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="EClass mapped to Node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Node')"/>
+ <details key="description" value="Node 'Diagram Runtime Class' must be a notation::Node or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getDomainMetaClass" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Delegates to modelFacet"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="valid only when there are compartments"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//TypeModelFacet"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenNodeLabel" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="graphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkModelFacet" interface="true" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of links"/>
+ </eAnnotations>
+ <eOperations name="getSourceTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eOperations name="getTargetTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLinkModelFacet" eSuperTypes="#//FeatureModelFacet #//aNewPackage1/LinkModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a feature-based link"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StyleAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedFont" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedForeground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedBackground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage2">
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditContainer" eSuperTypes="#//GenRuleContainerBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Container for audit rules representing a hierarchical organization of audits in the constraint category hierarchy of emft.validation framework"/>
+ </eAnnotations>
+ <eOperations name="getAllAuditRules" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit rules from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllAuditContainers" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit containers from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getPath" lowerBound="1" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets hierarchical path of this audit container as ordered list of containers beginning with the root and ended with this container"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllRulesToTargetContextMap" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Maps all rules in the container hierarchy to client context IDs of their target contexts. key: (context ID of rule target) value: (EList&lt;GenAuditRule>)"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllTargetedModelPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all model packages to which rules in this container hierarchy are targeted. Checks rules recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="hasDiagramElementRule" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this container hierarchy contains at least 1 rule targeted on notation elements. Checks recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Identifier which is unique within the scope of its parent container."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name for the category of audits organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this audit container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parentContainer" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/childContainers"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditRule" containment="true" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditRule/container">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The audit rules organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childContainers" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" containment="true"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/parentContainer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for rule like audit, metric rules..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name of this rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this rule semantics"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditRule" eSuperTypes="#//aNewPackage1/aNewPackage2/GenRuleBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Auditing rule in the form of a constraint evaluated against its target"/>
+ </eAnnotations>
+ <eOperations name="getContextSelectorClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorLocalClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique identifier of this audit rule"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not id.oclIsUndefined() implies container.audits->one(i | i.id = self.id)"/>
+ <details key="description" value="Audit rule with the same ID already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//GenConstraint" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A boolean type condition which if not satisfied indicates this audit rule violation. It is evaluated in the context of the target"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this audit is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="message" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text message to be reported in case of this audit violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="severity" eType="#//aNewPackage1/aNewPackage2/GenSeverity"
+ defaultValueLiteral="ERROR">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Describes the severity of this audit rule violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="useInLiveMode" 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="Indicates if this audit should be evaluated also in Live mode. If 'false', only Batch mode is applicable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/audits">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing audit container of this audit rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenSeverity">
+ <eLiterals name="INFO"/>
+ <eLiterals name="WARNING" value="1"/>
+ <eLiterals name="ERROR" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleTarget" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target against which a rule can be evaluated"/>
+ </eAnnotations>
+ <eOperations name="getContext" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the classifier to be used as this rule target evaluation context"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainElementTarget" eSuperTypes=" ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted domain model element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagramElementTarget" eSuperTypes=" ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model selectively, for specific visualized element"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted visualized element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element &lt;> null and element->size() > 1 implies element->forAll(oclIsKindOf(GenNode))"/>
+ <details key="description" value="Multiple diagram elements must be GenNode type conformant"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainAttributeTarget" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents value based target, useful for audit rules expression not capable of ecore meta-model access"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="attribute.ecoreFeature.oclIsKindOf(ecore::EAttribute)"/>
+ <details key="description" value="EAttribute element required for auditable domain attribute"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullAsError" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether null value of the attribute is reported as audit failure or success"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenJavaExpressionProvider" eSuperTypes="">
+ <eOperations name="getOperationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage3">
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricContainer" eSuperTypes="#//GenRuleContainerBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" lowerBound="1"
+ upperBound="-1" eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule"
+ containment="true" eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule/container"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricRule" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not lowLimit.oclIsUndefined() and not highLimit.oclIsUndefined() implies lowLimit &lt; highLimit"/>
+ <details key="description" value="Metric value 'lowLimit' must be smaller then 'highLimit'"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique key identifying this metric an abbreviation for this metric"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not key.oclIsUndefined() implies container.metrics->one(i | i.key = self.key)"/>
+ <details key="description" value="Metric rule with the same 'key' already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//ValueExpression" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression that calculates the value of this metric which is of EDataType that encapsulates java.lang.Number subclasses or their primitives"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="'ecore::EDoubleObject'"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ eType="#//aNewPackage/GenMeasurable" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this metric is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="highLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer/metrics">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing metric container of this metric rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditedMetricTarget" eSuperTypes="#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target metric which can be evaluated by audit rule. The target context here is the metric rule resulting type classifier"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metric" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Metric wich can be involved in audit"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metricValueContext"
+ lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenDataType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditable" abstract="true"
+ eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target suitable for auditing"/>
+ </eAnnotations>
+ <eOperations name="getClientContextID" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets identifier of the validation client context for this target. It's guaranteed as a valid java identifier."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the validation target class in terms of EMFT validation framework."/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ </eSubpackages>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorGenerator">
+ <eOperations name="getAllDomainGenPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns all genpackages from domain genmodel"/>
+ </eAnnotations>
+ <eParameters name="withUsed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="plugin" lowerBound="1"
+ eType="#//GenPlugin" containment="true" eOpposite="#//GenPlugin/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorView" containment="true" eOpposite="#//GenEditorView/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainGenModel" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenModel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This is primary EMF genmodel for user's domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Derived from genModel.genPackage[0].getBasePackage() by default"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sameFileForDiagramAndModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specified whether editor should create separate file for domain elements if diagram file references no domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Distinct even when sameFileForDiagramAndModel is true. On init diagram, we just copy domain model element to new file with that extension. I won't try to set this equal to domainFileExtension"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="domainFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="By default, genModel.genPackage[0].getPrefix().toLowerCase(), as in emf/templates/editor/pluign.xmljet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dynamicTemplates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="templateDirectory" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="copyrightText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressionProviders" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorView">
+ <eOperations name="getActionBarContributorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false" eOpposite="#//GenEditorGenerator/editor"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionBarContributorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconPath" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BatchValidation" interface="true">
+ <eOperations name="getValidationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDiagnosticMarkerType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets diagnostic marker type ID local to the editor plugin. The editor pluginID should be used to fully-qualify this ID."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getMarkerNavigationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricViewID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDecoratorProviderQualifedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If enabled, ValidationAction is contributed by the editor plugin"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecorators" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderPriority"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProviderClassNames" interface="true">
+ <eOperations name="getElementTypesQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPaletteProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getModelingAssistantProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPropertyProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getIconProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getParserProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getAbstractParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeatureParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeaturesParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContributionItemProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypesClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeatureParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeaturesParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="contributionItemProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Shortcuts" interface="true">
+ <eOperations name="getShortcutsDecoratorProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreateShortcutActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateCreateShortcutAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="generateShortcutIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createShortcutActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="containsShortcutsTo" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model file extensions. Elements of the corresponding models could be shortcutted on this diagram."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsProvidedFor" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model names. Elements of this diagram domain model could be added as a shortcuts to the diagrams of the specified domains."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackageNames" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editCommandsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelpersPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartsPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPoliciesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="providersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoriesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkConstraints" interface="true">
+ <eOperations name="hasLinkCreationConstraints" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this diagram contains link creation constraints or not"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsQualifiedClassName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditPartCandies" interface="true">
+ <eOperations name="getReorientConnectionViewCommandQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseExternalNodeLabelEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getReferenceConnectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextSelectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextNonResizableEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="reorientConnectionViewCommandClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseEditHelperClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseExternalNodeLabelEditPartClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseItemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseGraphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceConnectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textSelectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textNonResizableEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MeasurementUnit" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="units" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Pixel"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenPlugin">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Computed additional dependencies of generated plug-in"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getActivatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false" eOpposite="#//GenEditorGenerator/plugin"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="provider" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Sample Plugin Provider, Inc"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="1.0.0.qualifier"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="printingEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activatorClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCommonBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="One that combines attributes that are essential for diagram elements"/>
+ </eAnnotations>
+ <eOperations name="getEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagram"/>
+ <eOperations name="getClassNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getClassNameSuffux" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getUniqueIdentifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This unique string identifier could be used to construct unique identifiers in generated java code"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLayoutType" eType="#//ViewmapLayoutType"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramRunTimeClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="way to decide which editpart to use for specific diagram element. Maps to attribute in DRT."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="visualID >= 0"/>
+ <details key="description" value="Visual ID must be a non-negative integer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//ElementType"
+ containment="true" eOpposite="#//ElementType/diagramElement"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="itemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewmap" lowerBound="1"
+ eType="#//Viewmap" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenContainerBase" interface="true" eSuperTypes="#//GenCommonBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containedNodes" upperBound="-1"
+ volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildContainer" abstract="true" eSuperTypes="#//GenContainerBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for all ChildNode containers"/>
+ </eAnnotations>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode" eOpposite="#//GenChildNode/containers"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenTopLevelNode" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not modelFacet.containmentMetaFeature.oclIsUndefined() implies modelFacet.containmentMetaFeature.genClass.ecoreClass.isSuperTypeOf(diagram.domainDiagramElement.ecoreClass)"/>
+ <details key="description" value="Top level node 'Containment Feature' must be available in the diagram 'Domain Element' or its super-class"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildNode" eSuperTypes="">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containers" upperBound="-1"
+ eType="#//GenChildContainer" changeable="false" eOpposite="#//GenChildContainer/childNodes">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let cmps:OrderedSet(GenChildContainer)=containers->select(oclIsKindOf(GenCompartment)) in cmps->exists(oclAsType(GenCompartment).listLayout) implies not cmps->exists(not oclAsType(GenCompartment).listLayout)"/>
+ <details key="description" value="Node is referenced from multiple containers with different 'List Layout' value"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildLabelNode" eSuperTypes="#//GenChildNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child node represented by label; typically hosted by list compartment"/>
+ </eAnnotations>
+ <eOperations name="getLabelMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelReadOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelElementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labelModelFacet" eType="#//LabelModelFacet"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCompartment" eSuperTypes="#//GenChildContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child container within node. Compartment, iow."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canCollapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="hideIfEmpty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="needsTitle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="listLayout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLink" eSuperTypes="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Edge')"/>
+ <details key="description" value="Link 'Diagram Runtime Class' must be a notation::Edge or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getSources" upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link sources in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargets" upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link targets in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenLinkLabel" containment="true" eOpposite="#//GenLinkLabel/link"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="outgoingCreationAllowed"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Support link creation from source to target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="incomingCreationAllowed"
+ 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="Support link creation from target to source"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewDirectionAlignedWithModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="View (Edge) will always be directed from model source to model target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="creationConstraints" eType="#//GenLinkConstraints"
+ containment="true" eOpposite="#//GenLinkConstraints/link">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies additional restrictions on link creation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLabel" abstract="true" eSuperTypes="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label on diagram"/>
+ </eAnnotations>
+ <eOperations name="getMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="readOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//LabelModelFacet"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNodeLabel" eSuperTypes="#//GenLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label within node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(node.getDomainMetaClass().ecoreClass))"/>
+ <details key="description" value="Node label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExternalNodeLabel" eSuperTypes="#//GenNodeLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to node"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkLabel" eSuperTypes="#//GenLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to link"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="(modelFacet.oclIsTypeOf(FeatureLabelModelFacet) or modelFacet.oclIsTypeOf(CompositeFeatureLabelModelFacet))=true implies link.modelFacet.oclIsTypeOf(TypeLinkModelFacet)"/>
+ <details key="description" value="Feature based link labels can only be used on link with class (TypeLinkModelFacet)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let tl: TypeLinkModelFacet = link.modelFacet.oclAsType(TypeLinkModelFacet) in not tl.oclIsUndefined() implies self.getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(tl.metaClass.ecoreClass))"/>
+ <details key="description" value="Link label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink"
+ eOpposite="#//GenLink/labels"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="#//LinkLabelAlignment"
+ defaultValueLiteral="MIDDLE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LinkLabelAlignment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constants from {@link org.eclipse.draw2d.ConnectionLocator}"/>
+ </eAnnotations>
+ <eLiterals name="MIDDLE" value="4"/>
+ <eLiterals name="TARGET" value="3"/>
+ <eLiterals name="SOURCE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementType" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base element type"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramElement" lowerBound="1"
+ eType="#//GenCommonBase" eOpposite="#//GenCommonBase/elementType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueIdentifier" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When there's palette, defaults to title of first tool that uses element with this type"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="definedExternally" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MetamodelType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Element type based on ecore type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetaClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SpecializationType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specialization of metamodel type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperAdviceQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metamodelType" eType="#//MetamodelType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperAdviceClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NotationType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pure design element"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelFacet" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for the particular model facets"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelModelFacet" interface="true" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of labels"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass"/>
+ </eAnnotations>
+ <eOperations name="isPhantomElement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containmentMetaFeature"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let r: ecore::EReference=containmentMetaFeature.ecoreFeature.oclAsType(ecore::EReference) in not containmentMetaFeature.oclIsUndefined() implies r.containment or r.eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Containment Meta Feature' must reference 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Usually the same as containmentMetaFeature, unless you need to distinguish where to put and where to get from"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not childMetaFeature.oclIsUndefined() implies childMetaFeature.ecoreFeature.oclAsType(ecore::EReference).eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Child Meta Feature' must reference 'Meta Class' or its sub-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementSelector" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Selection criterion for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementInitializer"
+ eType="#//GenElementInitializer" containment="true" eOpposite="#//GenElementInitializer/typeModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="State initializer for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeatures" lowerBound="2"
+ upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeLinkModelFacet" eSuperTypes="#//TypeModelFacet ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass that associates two EClasses"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not containmentMetaFeature.oclIsUndefined()"/>
+ <details key="description" value="Link 'Containment Meta Feature' must be specified"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If source feature is not specified then link container is a link source"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceMetaFeature.oclIsUndefined() implies sourceMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Source Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetMetaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not targetMetaFeature.oclIsUndefined() implies targetMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Target Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLabelModelFacet" eSuperTypes="#//FeatureModelFacet #//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of label based on an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureLabelModelFacet" eSuperTypes="#//CompositeFeatureModelFacet #//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label based on a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DesignLabelModelFacet" eSuperTypes="#//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label with DescriptionStyle"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Attributes" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Captures aspects of variuos draw2d classes"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ColorAttributes" eSuperTypes="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Deprecated, use StyleAttributes instead"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="foregroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="backgroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ResizeConstraints" eSuperTypes="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Bit-wise OR of any {@link org.eclipse.draw2d.PositionConstants#NORTH}, {@link org.eclipse.draw2d.PositionConstants#SOUTH}, {@link org.eclipse.draw2d.PositionConstants#EAST} or {@link org.eclipse.draw2d.PositionConstants#WEST}"/>
+ </eAnnotations>
+ <eOperations name="getResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Convenient method to get {@link org.eclipse.draw2d.PositionConstants} names from resizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getNonResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as {@link #getResizeHandleNames()}, for nonResizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Any direction mentioned here (and combination thereof, like e.g. NORTH_WEST) is added as resizable handle"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonResizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Directions mentioned with this attribute are explicitly denoted as non-resizable (i.e. with 'move' cursor). If you'd like to omit handle {@link org.eclipse.gef.editpolicies.ResizableEditPolicy#createSelectionHandles} completely, just don't list it here"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DefaultSizeAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="40"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="30"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelOffsetAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Viewmap" abstract="true">
+ <eOperations name="find" eType="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns first attributes instance of specified class, if any"/>
+ </eAnnotations>
+ <eParameters name="attributesClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//Attributes" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="layoutType" eType="#//ViewmapLayoutType"
+ defaultValueLiteral="UNKNOWN"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ViewmapLayoutType">
+ <eLiterals name="UNKNOWN"/>
+ <eLiterals name="XY_LAYOUT" value="1"/>
+ <eLiterals name="FLOW_LAYOUT" value="2"/>
+ <eLiterals name="TOOLBAR_LAYOUT" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Name of GEF Figure class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SnippetViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InnerClassViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classBody" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ParentAssignedViewmap" eSuperTypes="#//Viewmap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Figure (with specified class name, if any) will be assigned by (or should be taken from) parent"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="getterName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Access figure from parent's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="setterName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child could provide typed alternative to setFigure() method"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When specified, type of child's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression as a is textual statement which results in a value when evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text of the expression"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="body"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage" defaultValueLiteral="ocl">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the language in which the expression is stated"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="langName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="lang"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenConstraint" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Boolean type value expression which is to be evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="Constraint"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Palette">
+ <eOperations name="getFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="flyout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroup" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="GEF allows only containers as palette immediate children"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="factoryClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntryBase" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="largeIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="smallIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createMethodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolEntry" eSuperTypes="#//EntryBase #//ToolGroupItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genNodes" upperBound="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genLinks" upperBound="-1"
+ eType="#//GenLink"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+ eType="#//GenCommonBase" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Enforces 'tool for either node or link' - if there are values in genNodes list, returns it (no respect to values in genLinks); returns value of genLinks otherwise"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedToolName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroupItem" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Separator" eSuperTypes="#//ToolGroupItem"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroup" eSuperTypes="#//EntryBase #//ToolGroupItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stack" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="collapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroupItem" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="toolsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenElementInitializer" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for initializers of domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeModelFacet" lowerBound="1"
+ eType="#//TypeModelFacet" changeable="false" eOpposite="#//TypeModelFacet/modelElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type model facet whose domain model element is to be intialized by this initializer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureSeqInitializer" eSuperTypes="#//GenElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Feature sequence initializer"/>
+ </eAnnotations>
+ <eOperations name="getElementClassAccessorName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the accessor name of this initializer's element class meta object within its package interface"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains this initializer's element class meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initializers" lowerBound="1"
+ upperBound="-1" eType="#//GenFeatureValueSpec" containment="true" eOpposite="#//GenFeatureValueSpec/featureSeqInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specifications as initializers for individual features which should be initialized in the order given by this list"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="typeModelFacet.metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureValueSpec" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specification associated with a specific feature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="feature.ecoreFeature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies feature.ecoreFeature.eContainingClass.isSuperTypeOf(featureSeqInitializer.typeModelFacet.metaClass.ecoreClass)"/>
+ <details key="description" value="The feature of 'GenFeatureValueSpec' must be available in 'Meta Class' of the initialized element"/>
+ </eAnnotations>
+ <eOperations name="getFeatureQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains the given feature meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The feature for which this value expression is specified"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies not featureSeqInitializer.initializers->exists(i| i &lt;> self and feature = self.feature)"/>
+ <details key="description" value="The feature is already initialized by another 'GenFeatureValueSpec' in the sequence"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="featureSeqInitializer"
+ lowerBound="1" eType="#//GenFeatureSeqInitializer" eOpposite="#//GenFeatureSeqInitializer/initializers"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Groups constraints on the link source and target end"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceEnd.oclIsUndefined() or not targetEnd.oclIsUndefined()"/>
+ <details key="description" value="Either 'sourceEnd' or 'targetEnd' constraint must be specified"/>
+ </eAnnotations>
+ <eOperations name="getLinkClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The domain meta element class of the link restricted by this constraints"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSourceEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the source end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the target end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getConstraintsInstanceFieldName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns the name of the field holding Link Constraints instance"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink"
+ eOpposite="#//GenLink/creationConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the owning link of this constraints"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the source end, may reference variables 'oppositeEnd' pointing to targetEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetEnd" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the target end, may reference variables 'oppositeEnd' pointing to sourceEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleContainerBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base container for rules like audit, metrics..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorGenerator" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The editor generator containing this rule container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionInterpreter" eSuperTypes="">
+ <eOperations name="getQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getExpressionAccessor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenLanguage">
+ <eLiterals name="ocl"/>
+ <eLiterals name="java" value="1"/>
+ <eLiterals name="regexp" value="2"/>
+ <eLiterals name="nregexp" value="3"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage">
+ <eClassifiers xsi:type="ecore:EClass" name="GenNotationElementTarget" eSuperTypes=" #//aNewPackage/GenMeasurable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted diagram notation model element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element.ecoreClass.eAllSuperTypes->including(element.ecoreClass)->one(ePackage.name = 'notation' and name = 'View')"/>
+ <details key="description" value="'notation::View' or its sub-class must be set to NotationElement target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMeasurable" interface="true" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for anything that can be subject to metrics"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderContainer">
+ <eOperations name="getProvider" eType="#//aNewPackage/GenExpressionProviderBase">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ <eOperations name="getAbstractExpressionQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expressionsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractExpressionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="providers" upperBound="-1"
+ eType="#//aNewPackage/GenExpressionProviderBase" containment="true" eOpposite="#//aNewPackage/GenExpressionProviderBase/container"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" lowerBound="1"
+ eType="#//GenEditorGenerator"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderBase" abstract="true">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLanguage" lowerBound="1" eType="#//GenLanguage"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" upperBound="-1"
+ eType="#//ValueExpression"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage/GenExpressionProviderContainer" eOpposite="#//aNewPackage/GenExpressionProviderContainer/providers"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="aNewPackage1">
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagram" eSuperTypes="#//GenContainerBase #//PackageNames #//ProviderClassNames #//LinkConstraints #//EditPartCandies #//aNewPackage1/EditorCandies #//Shortcuts #//BatchValidation #//MeasurementUnit">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Diagram')"/>
+ <details key="description" value="'Diagram Runtime Class' must be a notation::Diagram or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getAllNodes" upperBound="-1" eType="#//aNewPackage1/GenNode"/>
+ <eOperations name="getAllChildContainers" upperBound="-1" eType="#//GenChildContainer"/>
+ <eOperations name="getAllContainers" upperBound="-1" eType="#//GenContainerBase"/>
+ <eOperations name="getElementInitializersClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the class to hold the initializer methods for domain elements"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementInitializersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the package to hold the element initializers class"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainDiagramElement"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="topLevelNodes" upperBound="-1"
+ eType="#//GenTopLevelNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="links" upperBound="-1"
+ eType="#//GenLink" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="palette" eType="#//Palette"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ProviderPriority">
+ <eLiterals name="Lowest"/>
+ <eLiterals name="Low" value="1"/>
+ <eLiterals name="Medium" value="2"/>
+ <eLiterals name="High" value="3"/>
+ <eLiterals name="Highest" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditorCandies" interface="true">
+ <eOperations name="getCreationWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreationWizardPageQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramEditorUtilQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramFileCreatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDocumentProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getInitDiagramFileActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNewDiagramFileWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMatchingStrategyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPreferenceInitializerQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getVisualIDRegistryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getElementChooserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLoadResourceActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateInitDiagramAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardPageClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardIconPath"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardCategoryID"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramEditorUtilClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileCreatorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="documentProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initDiagramFileActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="newDiagramFileWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="matchingStrategyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="preferenceInitializerClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualIDRegistryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementChooserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadResourceActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editingDomainID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNode" abstract="true" eSuperTypes="#//GenChildContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="EClass mapped to Node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Node')"/>
+ <details key="description" value="Node 'Diagram Runtime Class' must be a notation::Node or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getDomainMetaClass" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Delegates to modelFacet"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="valid only when there are compartments"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//TypeModelFacet"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenNodeLabel" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="graphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkModelFacet" interface="true" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of links"/>
+ </eAnnotations>
+ <eOperations name="getSourceTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eOperations name="getTargetTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLinkModelFacet" eSuperTypes="#//FeatureModelFacet #//aNewPackage1/LinkModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a feature-based link"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StyleAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedFont" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedForeground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedBackground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage2">
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditContainer" eSuperTypes="#//GenRuleContainerBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Container for audit rules representing a hierarchical organization of audits in the constraint category hierarchy of emft.validation framework"/>
+ </eAnnotations>
+ <eOperations name="getAllAuditRules" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit rules from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllAuditContainers" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit containers from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getPath" lowerBound="1" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets hierarchical path of this audit container as ordered list of containers beginning with the root and ended with this container"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllRulesToTargetContextMap" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Maps all rules in the container hierarchy to client context IDs of their target contexts. key: (context ID of rule target) value: (EList&lt;GenAuditRule>)"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllTargetedModelPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all model packages to which rules in this container hierarchy are targeted. Checks rules recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="hasDiagramElementRule" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this container hierarchy contains at least 1 rule targeted on notation elements. Checks recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Identifier which is unique within the scope of its parent container."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name for the category of audits organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this audit container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parentContainer" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/childContainers"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditRule" containment="true" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditRule/container">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The audit rules organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childContainers" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" containment="true"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/parentContainer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for rule like audit, metric rules..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name of this rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this rule semantics"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditRule" eSuperTypes="#//aNewPackage1/aNewPackage2/GenRuleBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Auditing rule in the form of a constraint evaluated against its target"/>
+ </eAnnotations>
+ <eOperations name="getContextSelectorClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorLocalClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique identifier of this audit rule"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not id.oclIsUndefined() implies container.audits->one(i | i.id = self.id)"/>
+ <details key="description" value="Audit rule with the same ID already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//GenConstraint" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A boolean type condition which if not satisfied indicates this audit rule violation. It is evaluated in the context of the target"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this audit is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="message" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text message to be reported in case of this audit violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="severity" eType="#//aNewPackage1/aNewPackage2/GenSeverity"
+ defaultValueLiteral="ERROR">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Describes the severity of this audit rule violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="useInLiveMode" 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="Indicates if this audit should be evaluated also in Live mode. If 'false', only Batch mode is applicable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/audits">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing audit container of this audit rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenSeverity">
+ <eLiterals name="INFO"/>
+ <eLiterals name="WARNING" value="1"/>
+ <eLiterals name="ERROR" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleTarget" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target against which a rule can be evaluated"/>
+ </eAnnotations>
+ <eOperations name="getContext" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the classifier to be used as this rule target evaluation context"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainElementTarget" eSuperTypes=" ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted domain model element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagramElementTarget" eSuperTypes=" ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model selectively, for specific visualized element"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted visualized element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element &lt;> null and element->size() > 1 implies element->forAll(oclIsKindOf(GenNode))"/>
+ <details key="description" value="Multiple diagram elements must be GenNode type conformant"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainAttributeTarget" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents value based target, useful for audit rules expression not capable of ecore meta-model access"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="attribute.ecoreFeature.oclIsKindOf(ecore::EAttribute)"/>
+ <details key="description" value="EAttribute element required for auditable domain attribute"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullAsError" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether null value of the attribute is reported as audit failure or success"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenJavaExpressionProvider" eSuperTypes="">
+ <eOperations name="getOperationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage3">
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricContainer" eSuperTypes="#//GenRuleContainerBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" lowerBound="1"
+ upperBound="-1" eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule"
+ containment="true" eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule/container"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricRule" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not lowLimit.oclIsUndefined() and not highLimit.oclIsUndefined() implies lowLimit &lt; highLimit"/>
+ <details key="description" value="Metric value 'lowLimit' must be smaller then 'highLimit'"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique key identifying this metric an abbreviation for this metric"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not key.oclIsUndefined() implies container.metrics->one(i | i.key = self.key)"/>
+ <details key="description" value="Metric rule with the same 'key' already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//ValueExpression" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression that calculates the value of this metric which is of EDataType that encapsulates java.lang.Number subclasses or their primitives"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="'ecore::EDoubleObject'"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ eType="#//aNewPackage/GenMeasurable" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this metric is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="highLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer/metrics">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing metric container of this metric rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditedMetricTarget" eSuperTypes="#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target metric which can be evaluated by audit rule. The target context here is the metric rule resulting type classifier"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metric" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Metric wich can be involved in audit"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metricValueContext"
+ lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenDataType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditable" abstract="true"
+ eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target suitable for auditing"/>
+ </eAnnotations>
+ <eOperations name="getClientContextID" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets identifier of the validation client context for this target. It's guaranteed as a valid java identifier."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the validation target class in terms of EMFT validation framework."/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ </eSubpackages>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/fatv2.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/fatv2.ecore
new file mode 100755
index 000000000..bdc282a70
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/fatv2.ecore
@@ -0,0 +1,7158 @@
+<?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="fatv2"
+ nsURI="http://www.eclipse.org/gmf/2005/GenModel" nsPrefix="fatv2">
+ <eAnnotations source="http://www.eclipse.org/emf/2004/EmfaticAnnotationMap">
+ <details key="constraints" value="http://www.eclipse.org/gmf/2005/constraints"/>
+ <details key="meta" value="http://www.eclipse.org/gmf/2005/constraints/meta"/>
+ <details key="deprecated" value="http://www.eclipse.org/gmf/2006/deprecated"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="import" value="http://www.eclipse.org/gmf/runtime/1.0.0/notation"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorView">
+ <eOperations name="getActionBarContributorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionBarContributorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconPath" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BatchValidation" interface="true">
+ <eOperations name="getValidationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDiagnosticMarkerType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets diagnostic marker type ID local to the editor plugin. The editor pluginID should be used to fully-qualify this ID."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getMarkerNavigationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricViewID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDecoratorProviderQualifedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If enabled, ValidationAction is contributed by the editor plugin"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecorators" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderPriority"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProviderClassNames" interface="true">
+ <eOperations name="getElementTypesQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPaletteProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getModelingAssistantProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPropertyProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getIconProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getParserProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getAbstractParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeatureParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeaturesParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContributionItemProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypesClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeatureParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeaturesParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="contributionItemProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Shortcuts" interface="true">
+ <eOperations name="getShortcutsDecoratorProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreateShortcutActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateCreateShortcutAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="generateShortcutIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createShortcutActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="containsShortcutsTo" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model file extensions. Elements of the corresponding models could be shortcutted on this diagram."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsProvidedFor" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model names. Elements of this diagram domain model could be added as a shortcuts to the diagrams of the specified domains."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackageNames" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editCommandsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelpersPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartsPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPoliciesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="providersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoriesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkConstraints" interface="true">
+ <eOperations name="hasLinkCreationConstraints" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this diagram contains link creation constraints or not"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsQualifiedClassName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditPartCandies" interface="true">
+ <eOperations name="getReorientConnectionViewCommandQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseExternalNodeLabelEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getReferenceConnectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextSelectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextNonResizableEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="reorientConnectionViewCommandClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseEditHelperClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseExternalNodeLabelEditPartClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseItemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseGraphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceConnectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textSelectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textNonResizableEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MeasurementUnit" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="units" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Pixel"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenPlugin">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Computed additional dependencies of generated plug-in"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getActivatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="provider" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Sample Plugin Provider, Inc"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="1.0.0.qualifier"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="printingEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activatorClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCommonBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="One that combines attributes that are essential for diagram elements"/>
+ </eAnnotations>
+ <eOperations name="getEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagram"/>
+ <eOperations name="getClassNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getClassNameSuffux" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getUniqueIdentifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This unique string identifier could be used to construct unique identifiers in generated java code"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLayoutType" eType="#//ViewmapLayoutType.2"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramRunTimeClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="way to decide which editpart to use for specific diagram element. Maps to attribute in DRT."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="visualID >= 0"/>
+ <details key="description" value="Visual ID must be a non-negative integer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//ElementType.2"
+ containment="true" eOpposite="#//ElementType.2/diagramElement"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="itemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewmap" lowerBound="1"
+ eType="#//Viewmap.2" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenContainerBase" interface="true" eSuperTypes="#//GenCommonBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containedNodes" upperBound="-1"
+ volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildContainer" abstract="true" eSuperTypes="#//GenContainerBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for all ChildNode containers"/>
+ </eAnnotations>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode.2" eOpposite="#//GenChildNode.2/containers"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenTopLevelNode">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not modelFacet.containmentMetaFeature.oclIsUndefined() implies modelFacet.containmentMetaFeature.genClass.ecoreClass.isSuperTypeOf(diagram.domainDiagramElement.ecoreClass)"/>
+ <details key="description" value="Top level node 'Containment Feature' must be available in the diagram 'Domain Element' or its super-class"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildNode">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containers" upperBound="-1"
+ eType="#//GenChildContainer" changeable="false" eOpposite="#//GenChildContainer/childNodes">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let cmps:OrderedSet(GenChildContainer)=containers->select(oclIsKindOf(GenCompartment)) in cmps->exists(oclAsType(GenCompartment).listLayout) implies not cmps->exists(not oclAsType(GenCompartment).listLayout)"/>
+ <details key="description" value="Node is referenced from multiple containers with different 'List Layout' value"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildLabelNode" eSuperTypes="#//GenChildNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child node represented by label; typically hosted by list compartment"/>
+ </eAnnotations>
+ <eOperations name="getLabelMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelReadOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelElementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labelModelFacet" eType="#//LabelModelFacet.2"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCompartment" eSuperTypes="#//GenChildContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child container within node. Compartment, iow."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canCollapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="hideIfEmpty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="needsTitle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="listLayout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLink" eSuperTypes="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Edge')"/>
+ <details key="description" value="Link 'Diagram Runtime Class' must be a notation::Edge or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getSources" upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link sources in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargets" upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link targets in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenLinkLabel.2" containment="true" eOpposite="#//GenLinkLabel.2/link"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="outgoingCreationAllowed"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Support link creation from source to target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="incomingCreationAllowed"
+ 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="Support link creation from target to source"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewDirectionAlignedWithModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="View (Edge) will always be directed from model source to model target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="creationConstraints" eType="#//GenLinkConstraints.2"
+ containment="true" eOpposite="#//GenLinkConstraints.2/link">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies additional restrictions on link creation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLabel" abstract="true" eSuperTypes="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label on diagram"/>
+ </eAnnotations>
+ <eOperations name="getMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="readOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//LabelModelFacet.2"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNodeLabel" eSuperTypes="#//GenLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label within node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(node.getDomainMetaClass().ecoreClass))"/>
+ <details key="description" value="Node label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExternalNodeLabel" eSuperTypes="#//GenNodeLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to node"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkLabel" eSuperTypes="#//GenLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to link"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="(modelFacet.oclIsTypeOf(FeatureLabelModelFacet) or modelFacet.oclIsTypeOf(CompositeFeatureLabelModelFacet))=true implies link.modelFacet.oclIsTypeOf(TypeLinkModelFacet)"/>
+ <details key="description" value="Feature based link labels can only be used on link with class (TypeLinkModelFacet)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let tl: TypeLinkModelFacet = link.modelFacet.oclAsType(TypeLinkModelFacet) in not tl.oclIsUndefined() implies self.getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(tl.metaClass.ecoreClass))"/>
+ <details key="description" value="Link label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink"
+ eOpposite="#//GenLink/labels"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="#//LinkLabelAlignment.2"
+ defaultValueLiteral="MIDDLE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LinkLabelAlignment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constants from {@link org.eclipse.draw2d.ConnectionLocator}"/>
+ </eAnnotations>
+ <eLiterals name="MIDDLE" value="4"/>
+ <eLiterals name="TARGET" value="3"/>
+ <eLiterals name="SOURCE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementType" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base element type"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramElement" lowerBound="1"
+ eType="#//GenCommonBase" eOpposite="#//GenCommonBase/elementType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueIdentifier" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When there's palette, defaults to title of first tool that uses element with this type"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="definedExternally" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MetamodelType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Element type based on ecore type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetaClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SpecializationType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specialization of metamodel type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperAdviceQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metamodelType" eType="#//MetamodelType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperAdviceClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NotationType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pure design element"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelFacet" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for the particular model facets"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelModelFacet" interface="true" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of labels"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass"/>
+ </eAnnotations>
+ <eOperations name="isPhantomElement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containmentMetaFeature"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let r: ecore::EReference=containmentMetaFeature.ecoreFeature.oclAsType(ecore::EReference) in not containmentMetaFeature.oclIsUndefined() implies r.containment or r.eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Containment Meta Feature' must reference 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Usually the same as containmentMetaFeature, unless you need to distinguish where to put and where to get from"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not childMetaFeature.oclIsUndefined() implies childMetaFeature.ecoreFeature.oclAsType(ecore::EReference).eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Child Meta Feature' must reference 'Meta Class' or its sub-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementSelector" eType="#//GenConstraint.2"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Selection criterion for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementInitializer"
+ eType="#//GenElementInitializer.2" containment="true" eOpposite="#//GenElementInitializer.2/typeModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="State initializer for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeatures" lowerBound="2"
+ upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeLinkModelFacet" eSuperTypes="#//TypeModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass that associates two EClasses"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not containmentMetaFeature.oclIsUndefined()"/>
+ <details key="description" value="Link 'Containment Meta Feature' must be specified"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If source feature is not specified then link container is a link source"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceMetaFeature.oclIsUndefined() implies sourceMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Source Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetMetaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not targetMetaFeature.oclIsUndefined() implies targetMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Target Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLabelModelFacet" eSuperTypes="#//FeatureModelFacet #//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of label based on an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureLabelModelFacet" eSuperTypes="#//CompositeFeatureModelFacet #//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label based on a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DesignLabelModelFacet" eSuperTypes="#//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label with DescriptionStyle"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Attributes" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Captures aspects of variuos draw2d classes"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ColorAttributes" eSuperTypes="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Deprecated, use StyleAttributes instead"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="foregroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="backgroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ResizeConstraints" eSuperTypes="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Bit-wise OR of any {@link org.eclipse.draw2d.PositionConstants#NORTH}, {@link org.eclipse.draw2d.PositionConstants#SOUTH}, {@link org.eclipse.draw2d.PositionConstants#EAST} or {@link org.eclipse.draw2d.PositionConstants#WEST}"/>
+ </eAnnotations>
+ <eOperations name="getResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Convenient method to get {@link org.eclipse.draw2d.PositionConstants} names from resizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getNonResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as {@link #getResizeHandleNames()}, for nonResizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Any direction mentioned here (and combination thereof, like e.g. NORTH_WEST) is added as resizable handle"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonResizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Directions mentioned with this attribute are explicitly denoted as non-resizable (i.e. with 'move' cursor). If you'd like to omit handle {@link org.eclipse.gef.editpolicies.ResizableEditPolicy#createSelectionHandles} completely, just don't list it here"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DefaultSizeAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="40"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="30"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelOffsetAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Viewmap" abstract="true">
+ <eOperations name="find" eType="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns first attributes instance of specified class, if any"/>
+ </eAnnotations>
+ <eParameters name="attributesClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//Attributes" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="layoutType" eType="#//ViewmapLayoutType.2"
+ defaultValueLiteral="UNKNOWN"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ViewmapLayoutType">
+ <eLiterals name="UNKNOWN"/>
+ <eLiterals name="XY_LAYOUT" value="1"/>
+ <eLiterals name="FLOW_LAYOUT" value="2"/>
+ <eLiterals name="TOOLBAR_LAYOUT" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Name of GEF Figure class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SnippetViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InnerClassViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classBody" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ParentAssignedViewmap" eSuperTypes="#//Viewmap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Figure (with specified class name, if any) will be assigned by (or should be taken from) parent"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="getterName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Access figure from parent's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="setterName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child could provide typed alternative to setFigure() method"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When specified, type of child's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression as a is textual statement which results in a value when evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text of the expression"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="body"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage.2" defaultValueLiteral="ocl">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the language in which the expression is stated"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="langName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="lang"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenConstraint" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Boolean type value expression which is to be evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="Constraint"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Palette">
+ <eOperations name="getFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="flyout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroup.2" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="GEF allows only containers as palette immediate children"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="factoryClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntryBase" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="largeIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="smallIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createMethodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolEntry" eSuperTypes="#//EntryBase #//ToolGroupItem.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genNodes" upperBound="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genLinks" upperBound="-1"
+ eType="#//GenLink"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+ eType="#//GenCommonBase" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Enforces 'tool for either node or link' - if there are values in genNodes list, returns it (no respect to values in genLinks); returns value of genLinks otherwise"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedToolName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroupItem" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Separator" eSuperTypes="#//ToolGroupItem"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroup" eSuperTypes="#//EntryBase #//ToolGroupItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stack" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="collapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroupItem" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="toolsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenElementInitializer" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for initializers of domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeModelFacet" lowerBound="1"
+ eType="#//TypeModelFacet" changeable="false" eOpposite="#//TypeModelFacet/modelElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type model facet whose domain model element is to be intialized by this initializer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureSeqInitializer" eSuperTypes="#//GenElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Feature sequence initializer"/>
+ </eAnnotations>
+ <eOperations name="getElementClassAccessorName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the accessor name of this initializer's element class meta object within its package interface"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains this initializer's element class meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initializers" lowerBound="1"
+ upperBound="-1" eType="#//GenFeatureValueSpec.2" containment="true" eOpposite="#//GenFeatureValueSpec.2/featureSeqInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specifications as initializers for individual features which should be initialized in the order given by this list"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="typeModelFacet.metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureValueSpec" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specification associated with a specific feature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="feature.ecoreFeature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies feature.ecoreFeature.eContainingClass.isSuperTypeOf(featureSeqInitializer.typeModelFacet.metaClass.ecoreClass)"/>
+ <details key="description" value="The feature of 'GenFeatureValueSpec' must be available in 'Meta Class' of the initialized element"/>
+ </eAnnotations>
+ <eOperations name="getFeatureQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains the given feature meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The feature for which this value expression is specified"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies not featureSeqInitializer.initializers->exists(i| i &lt;> self and feature = self.feature)"/>
+ <details key="description" value="The feature is already initialized by another 'GenFeatureValueSpec' in the sequence"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="featureSeqInitializer"
+ lowerBound="1" eType="#//GenFeatureSeqInitializer" eOpposite="#//GenFeatureSeqInitializer/initializers"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Groups constraints on the link source and target end"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceEnd.oclIsUndefined() or not targetEnd.oclIsUndefined()"/>
+ <details key="description" value="Either 'sourceEnd' or 'targetEnd' constraint must be specified"/>
+ </eAnnotations>
+ <eOperations name="getLinkClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The domain meta element class of the link restricted by this constraints"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSourceEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the source end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the target end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getConstraintsInstanceFieldName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns the name of the field holding Link Constraints instance"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink"
+ eOpposite="#//GenLink/creationConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the owning link of this constraints"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the source end, may reference variables 'oppositeEnd' pointing to targetEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetEnd" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the target end, may reference variables 'oppositeEnd' pointing to sourceEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleContainerBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base container for rules like audit, metrics..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The editor generator containing this rule container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionInterpreter">
+ <eOperations name="getQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getExpressionAccessor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage.2"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenLanguage">
+ <eLiterals name="ocl"/>
+ <eLiterals name="java" value="1"/>
+ <eLiterals name="regexp" value="2"/>
+ <eLiterals name="nregexp" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorGenerator">
+ <eOperations name="getAllDomainGenPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns all genpackages from domain genmodel"/>
+ </eAnnotations>
+ <eParameters name="withUsed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="plugin" lowerBound="1"
+ eType="#//GenPlugin" containment="true" eOpposite="#//GenPlugin/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorView" containment="true" eOpposite="#//GenEditorView/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainGenModel" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenModel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This is primary EMF genmodel for user's domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Derived from genModel.genPackage[0].getBasePackage() by default"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sameFileForDiagramAndModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specified whether editor should create separate file for domain elements if diagram file references no domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Distinct even when sameFileForDiagramAndModel is true. On init diagram, we just copy domain model element to new file with that extension. I won't try to set this equal to domainFileExtension"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="domainFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="By default, genModel.genPackage[0].getPrefix().toLowerCase(), as in emf/templates/editor/pluign.xmljet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dynamicTemplates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="templateDirectory" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="copyrightText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressionProviders" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorView">
+ <eOperations name="getActionBarContributorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false" eOpposite="#//GenEditorGenerator/editor"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionBarContributorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconPath" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BatchValidation" interface="true">
+ <eOperations name="getValidationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDiagnosticMarkerType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets diagnostic marker type ID local to the editor plugin. The editor pluginID should be used to fully-qualify this ID."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getMarkerNavigationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricViewID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDecoratorProviderQualifedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If enabled, ValidationAction is contributed by the editor plugin"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecorators" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderPriority"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProviderClassNames" interface="true">
+ <eOperations name="getElementTypesQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPaletteProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getModelingAssistantProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPropertyProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getIconProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getParserProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getAbstractParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeatureParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeaturesParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContributionItemProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypesClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeatureParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeaturesParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="contributionItemProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Shortcuts" interface="true">
+ <eOperations name="getShortcutsDecoratorProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreateShortcutActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateCreateShortcutAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="generateShortcutIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createShortcutActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="containsShortcutsTo" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model file extensions. Elements of the corresponding models could be shortcutted on this diagram."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsProvidedFor" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model names. Elements of this diagram domain model could be added as a shortcuts to the diagrams of the specified domains."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackageNames" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editCommandsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelpersPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartsPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPoliciesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="providersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoriesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkConstraints" interface="true">
+ <eOperations name="hasLinkCreationConstraints" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this diagram contains link creation constraints or not"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsQualifiedClassName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditPartCandies" interface="true">
+ <eOperations name="getReorientConnectionViewCommandQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseExternalNodeLabelEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getReferenceConnectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextSelectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextNonResizableEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="reorientConnectionViewCommandClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseEditHelperClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseExternalNodeLabelEditPartClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseItemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseGraphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceConnectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textSelectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textNonResizableEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MeasurementUnit" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="units" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Pixel"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenPlugin">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Computed additional dependencies of generated plug-in"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getActivatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false" eOpposite="#//GenEditorGenerator/plugin"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="provider" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Sample Plugin Provider, Inc"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="1.0.0.qualifier"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="printingEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activatorClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCommonBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="One that combines attributes that are essential for diagram elements"/>
+ </eAnnotations>
+ <eOperations name="getEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagram"/>
+ <eOperations name="getClassNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getClassNameSuffux" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getUniqueIdentifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This unique string identifier could be used to construct unique identifiers in generated java code"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLayoutType" eType="#//ViewmapLayoutType"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramRunTimeClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="way to decide which editpart to use for specific diagram element. Maps to attribute in DRT."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="visualID >= 0"/>
+ <details key="description" value="Visual ID must be a non-negative integer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//ElementType"
+ containment="true" eOpposite="#//ElementType/diagramElement"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="itemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewmap" lowerBound="1"
+ eType="#//Viewmap" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenContainerBase" interface="true" eSuperTypes="#//GenCommonBase.1">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containedNodes" upperBound="-1"
+ volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildContainer" abstract="true" eSuperTypes="#//GenContainerBase.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for all ChildNode containers"/>
+ </eAnnotations>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode" eOpposite="#//GenChildNode/containers"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenTopLevelNode">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not modelFacet.containmentMetaFeature.oclIsUndefined() implies modelFacet.containmentMetaFeature.genClass.ecoreClass.isSuperTypeOf(diagram.domainDiagramElement.ecoreClass)"/>
+ <details key="description" value="Top level node 'Containment Feature' must be available in the diagram 'Domain Element' or its super-class"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildNode">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containers" upperBound="-1"
+ eType="#//GenChildContainer.1" changeable="false" eOpposite="#//GenChildContainer.1/childNodes">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let cmps:OrderedSet(GenChildContainer)=containers->select(oclIsKindOf(GenCompartment)) in cmps->exists(oclAsType(GenCompartment).listLayout) implies not cmps->exists(not oclAsType(GenCompartment).listLayout)"/>
+ <details key="description" value="Node is referenced from multiple containers with different 'List Layout' value"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildLabelNode" eSuperTypes="#//GenChildNode.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child node represented by label; typically hosted by list compartment"/>
+ </eAnnotations>
+ <eOperations name="getLabelMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelReadOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelElementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labelModelFacet" eType="#//LabelModelFacet"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCompartment" eSuperTypes="#//GenChildContainer.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child container within node. Compartment, iow."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canCollapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="hideIfEmpty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="needsTitle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="listLayout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLink" eSuperTypes="#//GenCommonBase.1">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Edge')"/>
+ <details key="description" value="Link 'Diagram Runtime Class' must be a notation::Edge or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getSources" upperBound="-1" eType="#//GenCommonBase.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link sources in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargets" upperBound="-1" eType="#//GenCommonBase.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link targets in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenLinkLabel" containment="true" eOpposite="#//GenLinkLabel/link"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="outgoingCreationAllowed"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Support link creation from source to target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="incomingCreationAllowed"
+ 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="Support link creation from target to source"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewDirectionAlignedWithModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="View (Edge) will always be directed from model source to model target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="creationConstraints" eType="#//GenLinkConstraints"
+ containment="true" eOpposite="#//GenLinkConstraints/link">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies additional restrictions on link creation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLabel" abstract="true" eSuperTypes="#//GenCommonBase.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label on diagram"/>
+ </eAnnotations>
+ <eOperations name="getMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="readOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//LabelModelFacet"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNodeLabel" eSuperTypes="#//GenLabel.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label within node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(node.getDomainMetaClass().ecoreClass))"/>
+ <details key="description" value="Node label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExternalNodeLabel" eSuperTypes="#//GenNodeLabel.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to node"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkLabel" eSuperTypes="#//GenLabel.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to link"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="(modelFacet.oclIsTypeOf(FeatureLabelModelFacet) or modelFacet.oclIsTypeOf(CompositeFeatureLabelModelFacet))=true implies link.modelFacet.oclIsTypeOf(TypeLinkModelFacet)"/>
+ <details key="description" value="Feature based link labels can only be used on link with class (TypeLinkModelFacet)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let tl: TypeLinkModelFacet = link.modelFacet.oclAsType(TypeLinkModelFacet) in not tl.oclIsUndefined() implies self.getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(tl.metaClass.ecoreClass))"/>
+ <details key="description" value="Link label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink.1"
+ eOpposite="#//GenLink.1/labels"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="#//LinkLabelAlignment"
+ defaultValueLiteral="MIDDLE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LinkLabelAlignment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constants from {@link org.eclipse.draw2d.ConnectionLocator}"/>
+ </eAnnotations>
+ <eLiterals name="MIDDLE" value="4"/>
+ <eLiterals name="TARGET" value="3"/>
+ <eLiterals name="SOURCE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementType" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base element type"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramElement" lowerBound="1"
+ eType="#//GenCommonBase.1" eOpposite="#//GenCommonBase.1/elementType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueIdentifier" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When there's palette, defaults to title of first tool that uses element with this type"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="definedExternally" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MetamodelType" eSuperTypes="#//ElementType.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Element type based on ecore type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetaClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SpecializationType" eSuperTypes="#//ElementType.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specialization of metamodel type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperAdviceQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metamodelType" eType="#//MetamodelType.1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperAdviceClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NotationType" eSuperTypes="#//ElementType.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pure design element"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelFacet" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for the particular model facets"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelModelFacet" interface="true" eSuperTypes="#//ModelFacet.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of labels"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeModelFacet" eSuperTypes="#//ModelFacet.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass"/>
+ </eAnnotations>
+ <eOperations name="isPhantomElement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containmentMetaFeature"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let r: ecore::EReference=containmentMetaFeature.ecoreFeature.oclAsType(ecore::EReference) in not containmentMetaFeature.oclIsUndefined() implies r.containment or r.eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Containment Meta Feature' must reference 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Usually the same as containmentMetaFeature, unless you need to distinguish where to put and where to get from"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not childMetaFeature.oclIsUndefined() implies childMetaFeature.ecoreFeature.oclAsType(ecore::EReference).eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Child Meta Feature' must reference 'Meta Class' or its sub-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementSelector" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Selection criterion for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementInitializer"
+ eType="#//GenElementInitializer" containment="true" eOpposite="#//GenElementInitializer/typeModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="State initializer for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureModelFacet" eSuperTypes="#//ModelFacet.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureModelFacet" eSuperTypes="#//ModelFacet.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeatures" lowerBound="2"
+ upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeLinkModelFacet" eSuperTypes="#//TypeModelFacet.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass that associates two EClasses"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not containmentMetaFeature.oclIsUndefined()"/>
+ <details key="description" value="Link 'Containment Meta Feature' must be specified"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If source feature is not specified then link container is a link source"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceMetaFeature.oclIsUndefined() implies sourceMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Source Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetMetaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not targetMetaFeature.oclIsUndefined() implies targetMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Target Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLabelModelFacet" eSuperTypes="#//FeatureModelFacet.1 #//LabelModelFacet.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of label based on an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureLabelModelFacet" eSuperTypes="#//CompositeFeatureModelFacet.1 #//LabelModelFacet.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label based on a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DesignLabelModelFacet" eSuperTypes="#//LabelModelFacet.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label with DescriptionStyle"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Attributes" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Captures aspects of variuos draw2d classes"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ColorAttributes" eSuperTypes="#//Attributes.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Deprecated, use StyleAttributes instead"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="foregroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="backgroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ResizeConstraints" eSuperTypes="#//Attributes.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Bit-wise OR of any {@link org.eclipse.draw2d.PositionConstants#NORTH}, {@link org.eclipse.draw2d.PositionConstants#SOUTH}, {@link org.eclipse.draw2d.PositionConstants#EAST} or {@link org.eclipse.draw2d.PositionConstants#WEST}"/>
+ </eAnnotations>
+ <eOperations name="getResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Convenient method to get {@link org.eclipse.draw2d.PositionConstants} names from resizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getNonResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as {@link #getResizeHandleNames()}, for nonResizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Any direction mentioned here (and combination thereof, like e.g. NORTH_WEST) is added as resizable handle"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonResizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Directions mentioned with this attribute are explicitly denoted as non-resizable (i.e. with 'move' cursor). If you'd like to omit handle {@link org.eclipse.gef.editpolicies.ResizableEditPolicy#createSelectionHandles} completely, just don't list it here"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DefaultSizeAttributes" eSuperTypes="#//Attributes.1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="40"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="30"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelOffsetAttributes" eSuperTypes="#//Attributes.1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Viewmap" abstract="true">
+ <eOperations name="find" eType="#//Attributes.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns first attributes instance of specified class, if any"/>
+ </eAnnotations>
+ <eParameters name="attributesClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//Attributes.1" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="layoutType" eType="#//ViewmapLayoutType"
+ defaultValueLiteral="UNKNOWN"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ViewmapLayoutType">
+ <eLiterals name="UNKNOWN"/>
+ <eLiterals name="XY_LAYOUT" value="1"/>
+ <eLiterals name="FLOW_LAYOUT" value="2"/>
+ <eLiterals name="TOOLBAR_LAYOUT" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureViewmap" eSuperTypes="#//Viewmap.1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Name of GEF Figure class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SnippetViewmap" eSuperTypes="#//Viewmap.1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InnerClassViewmap" eSuperTypes="#//Viewmap.1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classBody" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ParentAssignedViewmap" eSuperTypes="#//Viewmap.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Figure (with specified class name, if any) will be assigned by (or should be taken from) parent"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="getterName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Access figure from parent's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="setterName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child could provide typed alternative to setFigure() method"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When specified, type of child's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression as a is textual statement which results in a value when evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text of the expression"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="body"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage" defaultValueLiteral="ocl">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the language in which the expression is stated"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="langName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="lang"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenConstraint" eSuperTypes="#//ValueExpression.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Boolean type value expression which is to be evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="Constraint"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Palette">
+ <eOperations name="getFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="flyout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroup" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="GEF allows only containers as palette immediate children"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="factoryClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntryBase" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="largeIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="smallIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createMethodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolEntry" eSuperTypes="#//EntryBase.1 #//ToolGroupItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genNodes" upperBound="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genLinks" upperBound="-1"
+ eType="#//GenLink.1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+ eType="#//GenCommonBase.1" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Enforces 'tool for either node or link' - if there are values in genNodes list, returns it (no respect to values in genLinks); returns value of genLinks otherwise"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedToolName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroupItem" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Separator" eSuperTypes="#//ToolGroupItem.1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroup" eSuperTypes="#//EntryBase.1 #//ToolGroupItem.1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stack" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="collapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroupItem.1" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="toolsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenElementInitializer" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for initializers of domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeModelFacet" lowerBound="1"
+ eType="#//TypeModelFacet.1" changeable="false" eOpposite="#//TypeModelFacet.1/modelElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type model facet whose domain model element is to be intialized by this initializer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureSeqInitializer" eSuperTypes="#//GenElementInitializer.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Feature sequence initializer"/>
+ </eAnnotations>
+ <eOperations name="getElementClassAccessorName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the accessor name of this initializer's element class meta object within its package interface"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains this initializer's element class meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initializers" lowerBound="1"
+ upperBound="-1" eType="#//GenFeatureValueSpec" containment="true" eOpposite="#//GenFeatureValueSpec/featureSeqInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specifications as initializers for individual features which should be initialized in the order given by this list"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="typeModelFacet.metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureValueSpec" eSuperTypes="#//ValueExpression.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specification associated with a specific feature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="feature.ecoreFeature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies feature.ecoreFeature.eContainingClass.isSuperTypeOf(featureSeqInitializer.typeModelFacet.metaClass.ecoreClass)"/>
+ <details key="description" value="The feature of 'GenFeatureValueSpec' must be available in 'Meta Class' of the initialized element"/>
+ </eAnnotations>
+ <eOperations name="getFeatureQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains the given feature meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The feature for which this value expression is specified"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies not featureSeqInitializer.initializers->exists(i| i &lt;> self and feature = self.feature)"/>
+ <details key="description" value="The feature is already initialized by another 'GenFeatureValueSpec' in the sequence"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="featureSeqInitializer"
+ lowerBound="1" eType="#//GenFeatureSeqInitializer.1" eOpposite="#//GenFeatureSeqInitializer.1/initializers"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Groups constraints on the link source and target end"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceEnd.oclIsUndefined() or not targetEnd.oclIsUndefined()"/>
+ <details key="description" value="Either 'sourceEnd' or 'targetEnd' constraint must be specified"/>
+ </eAnnotations>
+ <eOperations name="getLinkClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The domain meta element class of the link restricted by this constraints"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSourceEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the source end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the target end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getConstraintsInstanceFieldName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns the name of the field holding Link Constraints instance"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink.1"
+ eOpposite="#//GenLink.1/creationConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the owning link of this constraints"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd" eType="#//GenConstraint.1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the source end, may reference variables 'oppositeEnd' pointing to targetEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetEnd" eType="#//GenConstraint.1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the target end, may reference variables 'oppositeEnd' pointing to sourceEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleContainerBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base container for rules like audit, metrics..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorGenerator" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The editor generator containing this rule container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionInterpreter">
+ <eOperations name="getQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getExpressionAccessor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression.1"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenLanguage">
+ <eLiterals name="ocl"/>
+ <eLiterals name="java" value="1"/>
+ <eLiterals name="regexp" value="2"/>
+ <eLiterals name="nregexp" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorGenerator">
+ <eOperations name="getAllDomainGenPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns all genpackages from domain genmodel"/>
+ </eAnnotations>
+ <eParameters name="withUsed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="plugin" lowerBound="1"
+ eType="#//GenPlugin.1" containment="true" eOpposite="#//GenPlugin.1/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorView.1" containment="true" eOpposite="#//GenEditorView.1/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainGenModel" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenModel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This is primary EMF genmodel for user's domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Derived from genModel.genPackage[0].getBasePackage() by default"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sameFileForDiagramAndModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specified whether editor should create separate file for domain elements if diagram file references no domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Distinct even when sameFileForDiagramAndModel is true. On init diagram, we just copy domain model element to new file with that extension. I won't try to set this equal to domainFileExtension"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="domainFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="By default, genModel.genPackage[0].getPrefix().toLowerCase(), as in emf/templates/editor/pluign.xmljet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dynamicTemplates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="templateDirectory" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="copyrightText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressionProviders" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorView">
+ <eOperations name="getActionBarContributorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator.1"
+ changeable="false" eOpposite="#//GenEditorGenerator.1/editor"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionBarContributorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconPath" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BatchValidation" interface="true">
+ <eOperations name="getValidationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDiagnosticMarkerType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets diagnostic marker type ID local to the editor plugin. The editor pluginID should be used to fully-qualify this ID."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getMarkerNavigationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricViewID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDecoratorProviderQualifedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If enabled, ValidationAction is contributed by the editor plugin"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecorators" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderPriority"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProviderClassNames" interface="true">
+ <eOperations name="getElementTypesQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPaletteProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getModelingAssistantProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPropertyProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getIconProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getParserProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getAbstractParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeatureParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeaturesParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContributionItemProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypesClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeatureParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeaturesParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="contributionItemProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Shortcuts" interface="true">
+ <eOperations name="getShortcutsDecoratorProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreateShortcutActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateCreateShortcutAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="generateShortcutIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createShortcutActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="containsShortcutsTo" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model file extensions. Elements of the corresponding models could be shortcutted on this diagram."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsProvidedFor" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model names. Elements of this diagram domain model could be added as a shortcuts to the diagrams of the specified domains."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackageNames" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editCommandsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelpersPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartsPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPoliciesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="providersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoriesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkConstraints" interface="true">
+ <eOperations name="hasLinkCreationConstraints" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this diagram contains link creation constraints or not"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsQualifiedClassName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditPartCandies" interface="true">
+ <eOperations name="getReorientConnectionViewCommandQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseExternalNodeLabelEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getReferenceConnectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextSelectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextNonResizableEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="reorientConnectionViewCommandClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseEditHelperClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseExternalNodeLabelEditPartClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseItemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseGraphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceConnectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textSelectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textNonResizableEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MeasurementUnit" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="units" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Pixel"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenPlugin">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Computed additional dependencies of generated plug-in"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getActivatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator.1"
+ changeable="false" eOpposite="#//GenEditorGenerator.1/plugin"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="provider" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Sample Plugin Provider, Inc"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="1.0.0.qualifier"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="printingEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activatorClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCommonBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="One that combines attributes that are essential for diagram elements"/>
+ </eAnnotations>
+ <eOperations name="getEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagram"/>
+ <eOperations name="getClassNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getClassNameSuffux" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getUniqueIdentifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This unique string identifier could be used to construct unique identifiers in generated java code"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLayoutType" eType="#//ViewmapLayoutType.1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramRunTimeClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="way to decide which editpart to use for specific diagram element. Maps to attribute in DRT."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="visualID >= 0"/>
+ <details key="description" value="Visual ID must be a non-negative integer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//ElementType.1"
+ containment="true" eOpposite="#//ElementType.1/diagramElement"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="itemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewmap" lowerBound="1"
+ eType="#//Viewmap.1" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenContainerBase" interface="true" eSuperTypes="#//GenCommonBase.2">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containedNodes" upperBound="-1"
+ volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildContainer" abstract="true" eSuperTypes="#//GenContainerBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for all ChildNode containers"/>
+ </eAnnotations>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode.1" eOpposite="#//GenChildNode.1/containers"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenTopLevelNode">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not modelFacet.containmentMetaFeature.oclIsUndefined() implies modelFacet.containmentMetaFeature.genClass.ecoreClass.isSuperTypeOf(diagram.domainDiagramElement.ecoreClass)"/>
+ <details key="description" value="Top level node 'Containment Feature' must be available in the diagram 'Domain Element' or its super-class"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildNode">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containers" upperBound="-1"
+ eType="#//GenChildContainer.2" changeable="false" eOpposite="#//GenChildContainer.2/childNodes">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let cmps:OrderedSet(GenChildContainer)=containers->select(oclIsKindOf(GenCompartment)) in cmps->exists(oclAsType(GenCompartment).listLayout) implies not cmps->exists(not oclAsType(GenCompartment).listLayout)"/>
+ <details key="description" value="Node is referenced from multiple containers with different 'List Layout' value"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildLabelNode" eSuperTypes="#//GenChildNode.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child node represented by label; typically hosted by list compartment"/>
+ </eAnnotations>
+ <eOperations name="getLabelMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelReadOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelElementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labelModelFacet" eType="#//LabelModelFacet.1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCompartment" eSuperTypes="#//GenChildContainer.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child container within node. Compartment, iow."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canCollapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="hideIfEmpty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="needsTitle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="listLayout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLink" eSuperTypes="#//GenCommonBase.2">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Edge')"/>
+ <details key="description" value="Link 'Diagram Runtime Class' must be a notation::Edge or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getSources" upperBound="-1" eType="#//GenCommonBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link sources in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargets" upperBound="-1" eType="#//GenCommonBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link targets in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenLinkLabel.1" containment="true" eOpposite="#//GenLinkLabel.1/link"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="outgoingCreationAllowed"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Support link creation from source to target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="incomingCreationAllowed"
+ 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="Support link creation from target to source"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewDirectionAlignedWithModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="View (Edge) will always be directed from model source to model target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="creationConstraints" eType="#//GenLinkConstraints.1"
+ containment="true" eOpposite="#//GenLinkConstraints.1/link">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies additional restrictions on link creation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLabel" abstract="true" eSuperTypes="#//GenCommonBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label on diagram"/>
+ </eAnnotations>
+ <eOperations name="getMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="readOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//LabelModelFacet.1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNodeLabel" eSuperTypes="#//GenLabel.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label within node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(node.getDomainMetaClass().ecoreClass))"/>
+ <details key="description" value="Node label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExternalNodeLabel" eSuperTypes="#//GenNodeLabel.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to node"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkLabel" eSuperTypes="#//GenLabel.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to link"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="(modelFacet.oclIsTypeOf(FeatureLabelModelFacet) or modelFacet.oclIsTypeOf(CompositeFeatureLabelModelFacet))=true implies link.modelFacet.oclIsTypeOf(TypeLinkModelFacet)"/>
+ <details key="description" value="Feature based link labels can only be used on link with class (TypeLinkModelFacet)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let tl: TypeLinkModelFacet = link.modelFacet.oclAsType(TypeLinkModelFacet) in not tl.oclIsUndefined() implies self.getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(tl.metaClass.ecoreClass))"/>
+ <details key="description" value="Link label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink.2"
+ eOpposite="#//GenLink.2/labels"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="#//LinkLabelAlignment.1"
+ defaultValueLiteral="MIDDLE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LinkLabelAlignment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constants from {@link org.eclipse.draw2d.ConnectionLocator}"/>
+ </eAnnotations>
+ <eLiterals name="MIDDLE" value="4"/>
+ <eLiterals name="TARGET" value="3"/>
+ <eLiterals name="SOURCE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementType" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base element type"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramElement" lowerBound="1"
+ eType="#//GenCommonBase.2" eOpposite="#//GenCommonBase.2/elementType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueIdentifier" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When there's palette, defaults to title of first tool that uses element with this type"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="definedExternally" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MetamodelType" eSuperTypes="#//ElementType.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Element type based on ecore type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetaClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SpecializationType" eSuperTypes="#//ElementType.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specialization of metamodel type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperAdviceQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metamodelType" eType="#//MetamodelType.2"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperAdviceClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NotationType" eSuperTypes="#//ElementType.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pure design element"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelFacet" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for the particular model facets"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelModelFacet" interface="true" eSuperTypes="#//ModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of labels"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeModelFacet" eSuperTypes="#//ModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass"/>
+ </eAnnotations>
+ <eOperations name="isPhantomElement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containmentMetaFeature"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let r: ecore::EReference=containmentMetaFeature.ecoreFeature.oclAsType(ecore::EReference) in not containmentMetaFeature.oclIsUndefined() implies r.containment or r.eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Containment Meta Feature' must reference 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Usually the same as containmentMetaFeature, unless you need to distinguish where to put and where to get from"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not childMetaFeature.oclIsUndefined() implies childMetaFeature.ecoreFeature.oclAsType(ecore::EReference).eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Child Meta Feature' must reference 'Meta Class' or its sub-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementSelector" eType="#//GenConstraint.1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Selection criterion for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementInitializer"
+ eType="#//GenElementInitializer.1" containment="true" eOpposite="#//GenElementInitializer.1/typeModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="State initializer for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureModelFacet" eSuperTypes="#//ModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureModelFacet" eSuperTypes="#//ModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeatures" lowerBound="2"
+ upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeLinkModelFacet" eSuperTypes="#//TypeModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass that associates two EClasses"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not containmentMetaFeature.oclIsUndefined()"/>
+ <details key="description" value="Link 'Containment Meta Feature' must be specified"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If source feature is not specified then link container is a link source"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceMetaFeature.oclIsUndefined() implies sourceMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Source Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetMetaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not targetMetaFeature.oclIsUndefined() implies targetMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Target Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLabelModelFacet" eSuperTypes="#//FeatureModelFacet.2 #//LabelModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of label based on an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureLabelModelFacet" eSuperTypes="#//CompositeFeatureModelFacet.2 #//LabelModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label based on a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DesignLabelModelFacet" eSuperTypes="#//LabelModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label with DescriptionStyle"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Attributes" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Captures aspects of variuos draw2d classes"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ColorAttributes" eSuperTypes="#//Attributes.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Deprecated, use StyleAttributes instead"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="foregroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="backgroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ResizeConstraints" eSuperTypes="#//Attributes.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Bit-wise OR of any {@link org.eclipse.draw2d.PositionConstants#NORTH}, {@link org.eclipse.draw2d.PositionConstants#SOUTH}, {@link org.eclipse.draw2d.PositionConstants#EAST} or {@link org.eclipse.draw2d.PositionConstants#WEST}"/>
+ </eAnnotations>
+ <eOperations name="getResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Convenient method to get {@link org.eclipse.draw2d.PositionConstants} names from resizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getNonResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as {@link #getResizeHandleNames()}, for nonResizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Any direction mentioned here (and combination thereof, like e.g. NORTH_WEST) is added as resizable handle"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonResizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Directions mentioned with this attribute are explicitly denoted as non-resizable (i.e. with 'move' cursor). If you'd like to omit handle {@link org.eclipse.gef.editpolicies.ResizableEditPolicy#createSelectionHandles} completely, just don't list it here"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DefaultSizeAttributes" eSuperTypes="#//Attributes.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="40"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="30"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelOffsetAttributes" eSuperTypes="#//Attributes.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Viewmap" abstract="true">
+ <eOperations name="find" eType="#//Attributes.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns first attributes instance of specified class, if any"/>
+ </eAnnotations>
+ <eParameters name="attributesClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//Attributes.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="layoutType" eType="#//ViewmapLayoutType.1"
+ defaultValueLiteral="UNKNOWN"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ViewmapLayoutType">
+ <eLiterals name="UNKNOWN"/>
+ <eLiterals name="XY_LAYOUT" value="1"/>
+ <eLiterals name="FLOW_LAYOUT" value="2"/>
+ <eLiterals name="TOOLBAR_LAYOUT" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureViewmap" eSuperTypes="#//Viewmap.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Name of GEF Figure class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SnippetViewmap" eSuperTypes="#//Viewmap.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InnerClassViewmap" eSuperTypes="#//Viewmap.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classBody" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ParentAssignedViewmap" eSuperTypes="#//Viewmap.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Figure (with specified class name, if any) will be assigned by (or should be taken from) parent"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="getterName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Access figure from parent's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="setterName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child could provide typed alternative to setFigure() method"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When specified, type of child's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression as a is textual statement which results in a value when evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text of the expression"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="body"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage.1" defaultValueLiteral="ocl">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the language in which the expression is stated"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="langName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="lang"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenConstraint" eSuperTypes="#//ValueExpression.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Boolean type value expression which is to be evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="Constraint"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Palette">
+ <eOperations name="getFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="flyout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroup.1" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="GEF allows only containers as palette immediate children"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="factoryClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntryBase" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="largeIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="smallIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createMethodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolEntry" eSuperTypes="#//EntryBase.2 #//ToolGroupItem.1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genNodes" upperBound="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genLinks" upperBound="-1"
+ eType="#//GenLink.2"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+ eType="#//GenCommonBase.2" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Enforces 'tool for either node or link' - if there are values in genNodes list, returns it (no respect to values in genLinks); returns value of genLinks otherwise"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedToolName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroupItem" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Separator" eSuperTypes="#//ToolGroupItem.2"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroup" eSuperTypes="#//EntryBase.2 #//ToolGroupItem.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stack" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="collapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroupItem.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="toolsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenElementInitializer" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for initializers of domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeModelFacet" lowerBound="1"
+ eType="#//TypeModelFacet.2" changeable="false" eOpposite="#//TypeModelFacet.2/modelElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type model facet whose domain model element is to be intialized by this initializer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureSeqInitializer" eSuperTypes="#//GenElementInitializer.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Feature sequence initializer"/>
+ </eAnnotations>
+ <eOperations name="getElementClassAccessorName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the accessor name of this initializer's element class meta object within its package interface"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains this initializer's element class meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initializers" lowerBound="1"
+ upperBound="-1" eType="#//GenFeatureValueSpec.1" containment="true" eOpposite="#//GenFeatureValueSpec.1/featureSeqInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specifications as initializers for individual features which should be initialized in the order given by this list"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="typeModelFacet.metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureValueSpec" eSuperTypes="#//ValueExpression.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specification associated with a specific feature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="feature.ecoreFeature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies feature.ecoreFeature.eContainingClass.isSuperTypeOf(featureSeqInitializer.typeModelFacet.metaClass.ecoreClass)"/>
+ <details key="description" value="The feature of 'GenFeatureValueSpec' must be available in 'Meta Class' of the initialized element"/>
+ </eAnnotations>
+ <eOperations name="getFeatureQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains the given feature meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The feature for which this value expression is specified"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies not featureSeqInitializer.initializers->exists(i| i &lt;> self and feature = self.feature)"/>
+ <details key="description" value="The feature is already initialized by another 'GenFeatureValueSpec' in the sequence"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="featureSeqInitializer"
+ lowerBound="1" eType="#//GenFeatureSeqInitializer.2" eOpposite="#//GenFeatureSeqInitializer.2/initializers"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Groups constraints on the link source and target end"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceEnd.oclIsUndefined() or not targetEnd.oclIsUndefined()"/>
+ <details key="description" value="Either 'sourceEnd' or 'targetEnd' constraint must be specified"/>
+ </eAnnotations>
+ <eOperations name="getLinkClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The domain meta element class of the link restricted by this constraints"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSourceEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the source end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the target end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getConstraintsInstanceFieldName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns the name of the field holding Link Constraints instance"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink.2"
+ eOpposite="#//GenLink.2/creationConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the owning link of this constraints"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd" eType="#//GenConstraint.2"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the source end, may reference variables 'oppositeEnd' pointing to targetEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetEnd" eType="#//GenConstraint.2"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the target end, may reference variables 'oppositeEnd' pointing to sourceEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleContainerBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base container for rules like audit, metrics..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorGenerator.1" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The editor generator containing this rule container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionInterpreter">
+ <eOperations name="getQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getExpressionAccessor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression.2"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage.1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenLanguage">
+ <eLiterals name="ocl"/>
+ <eLiterals name="java" value="1"/>
+ <eLiterals name="regexp" value="2"/>
+ <eLiterals name="nregexp" value="3"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage">
+ <eClassifiers xsi:type="ecore:EClass" name="GenNotationElementTarget" eSuperTypes="#//aNewPackage/GenMeasurable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted diagram notation model element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element.ecoreClass.eAllSuperTypes->including(element.ecoreClass)->one(ePackage.name = 'notation' and name = 'View')"/>
+ <details key="description" value="'notation::View' or its sub-class must be set to NotationElement target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMeasurable" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for anything that can be subject to metrics"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderContainer">
+ <eOperations name="getProvider" eType="#//aNewPackage/GenExpressionProviderBase">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ <eOperations name="getAbstractExpressionQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expressionsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractExpressionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="providers" upperBound="-1"
+ eType="#//aNewPackage/GenExpressionProviderBase" containment="true" eOpposite="#//aNewPackage/GenExpressionProviderBase/container"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" lowerBound="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderBase" abstract="true">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLanguage" lowerBound="1" eType="#//GenLanguage"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" upperBound="-1"
+ eType="#//ValueExpression"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage/GenExpressionProviderContainer" eOpposite="#//aNewPackage/GenExpressionProviderContainer/providers"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="aNewPackage1">
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagram" eSuperTypes="#//GenContainerBase #//PackageNames #//ProviderClassNames #//LinkConstraints #//EditPartCandies #//aNewPackage1/EditorCandies #//Shortcuts #//BatchValidation #//MeasurementUnit">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Diagram')"/>
+ <details key="description" value="'Diagram Runtime Class' must be a notation::Diagram or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getAllNodes" upperBound="-1" eType="#//aNewPackage1/GenNode"/>
+ <eOperations name="getAllChildContainers" upperBound="-1" eType="#//GenChildContainer"/>
+ <eOperations name="getAllContainers" upperBound="-1" eType="#//GenContainerBase"/>
+ <eOperations name="getElementInitializersClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the class to hold the initializer methods for domain elements"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementInitializersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the package to hold the element initializers class"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainDiagramElement"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="topLevelNodes" upperBound="-1"
+ eType="#//GenTopLevelNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="links" upperBound="-1"
+ eType="#//GenLink" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="palette" eType="#//Palette"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ProviderPriority">
+ <eLiterals name="Lowest"/>
+ <eLiterals name="Low" value="1"/>
+ <eLiterals name="Medium" value="2"/>
+ <eLiterals name="High" value="3"/>
+ <eLiterals name="Highest" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditorCandies" interface="true">
+ <eOperations name="getCreationWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreationWizardPageQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramEditorUtilQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramFileCreatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDocumentProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getInitDiagramFileActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNewDiagramFileWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMatchingStrategyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPreferenceInitializerQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getVisualIDRegistryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getElementChooserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLoadResourceActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateInitDiagramAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardPageClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardIconPath"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardCategoryID"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramEditorUtilClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileCreatorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="documentProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initDiagramFileActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="newDiagramFileWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="matchingStrategyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="preferenceInitializerClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualIDRegistryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementChooserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadResourceActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editingDomainID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNode" abstract="true" eSuperTypes="#//GenChildContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="EClass mapped to Node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Node')"/>
+ <details key="description" value="Node 'Diagram Runtime Class' must be a notation::Node or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getDomainMetaClass" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Delegates to modelFacet"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="valid only when there are compartments"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//TypeModelFacet"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenNodeLabel" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="graphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkModelFacet" interface="true" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of links"/>
+ </eAnnotations>
+ <eOperations name="getSourceTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eOperations name="getTargetTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLinkModelFacet" eSuperTypes="#//FeatureModelFacet #//aNewPackage1/LinkModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a feature-based link"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StyleAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedFont" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedForeground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedBackground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage2">
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditContainer" eSuperTypes="#//GenRuleContainerBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Container for audit rules representing a hierarchical organization of audits in the constraint category hierarchy of emft.validation framework"/>
+ </eAnnotations>
+ <eOperations name="getAllAuditRules" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit rules from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllAuditContainers" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit containers from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getPath" lowerBound="1" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets hierarchical path of this audit container as ordered list of containers beginning with the root and ended with this container"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllRulesToTargetContextMap" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Maps all rules in the container hierarchy to client context IDs of their target contexts. key: (context ID of rule target) value: (EList&lt;GenAuditRule>)"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllTargetedModelPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all model packages to which rules in this container hierarchy are targeted. Checks rules recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="hasDiagramElementRule" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this container hierarchy contains at least 1 rule targeted on notation elements. Checks recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Identifier which is unique within the scope of its parent container."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name for the category of audits organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this audit container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parentContainer" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/childContainers"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditRule" containment="true" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditRule/container">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The audit rules organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childContainers" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" containment="true"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/parentContainer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for rule like audit, metric rules..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name of this rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this rule semantics"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditRule" eSuperTypes="#//aNewPackage1/aNewPackage2/GenRuleBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Auditing rule in the form of a constraint evaluated against its target"/>
+ </eAnnotations>
+ <eOperations name="getContextSelectorClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorLocalClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique identifier of this audit rule"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not id.oclIsUndefined() implies container.audits->one(i | i.id = self.id)"/>
+ <details key="description" value="Audit rule with the same ID already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//GenConstraint" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A boolean type condition which if not satisfied indicates this audit rule violation. It is evaluated in the context of the target"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this audit is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="message" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text message to be reported in case of this audit violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="severity" eType="#//aNewPackage1/aNewPackage2/GenSeverity"
+ defaultValueLiteral="ERROR">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Describes the severity of this audit rule violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="useInLiveMode" 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="Indicates if this audit should be evaluated also in Live mode. If 'false', only Batch mode is applicable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/audits">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing audit container of this audit rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenSeverity">
+ <eLiterals name="INFO"/>
+ <eLiterals name="WARNING" value="1"/>
+ <eLiterals name="ERROR" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleTarget" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target against which a rule can be evaluated"/>
+ </eAnnotations>
+ <eOperations name="getContext" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the classifier to be used as this rule target evaluation context"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainElementTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted domain model element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagramElementTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model selectively, for specific visualized element"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted visualized element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element &lt;> null and element->size() > 1 implies element->forAll(oclIsKindOf(GenNode))"/>
+ <details key="description" value="Multiple diagram elements must be GenNode type conformant"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainAttributeTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents value based target, useful for audit rules expression not capable of ecore meta-model access"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="attribute.ecoreFeature.oclIsKindOf(ecore::EAttribute)"/>
+ <details key="description" value="EAttribute element required for auditable domain attribute"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullAsError" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether null value of the attribute is reported as audit failure or success"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenJavaExpressionProvider">
+ <eOperations name="getOperationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage3">
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricContainer" eSuperTypes="#//GenRuleContainerBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" lowerBound="1"
+ upperBound="-1" eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule"
+ containment="true" eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule/container"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not lowLimit.oclIsUndefined() and not highLimit.oclIsUndefined() implies lowLimit &lt; highLimit"/>
+ <details key="description" value="Metric value 'lowLimit' must be smaller then 'highLimit'"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique key identifying this metric an abbreviation for this metric"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not key.oclIsUndefined() implies container.metrics->one(i | i.key = self.key)"/>
+ <details key="description" value="Metric rule with the same 'key' already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//ValueExpression" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression that calculates the value of this metric which is of EDataType that encapsulates java.lang.Number subclasses or their primitives"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="'ecore::EDoubleObject'"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ eType="#//aNewPackage/GenMeasurable" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this metric is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="highLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer/metrics">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing metric container of this metric rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditedMetricTarget" eSuperTypes="#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target metric which can be evaluated by audit rule. The target context here is the metric rule resulting type classifier"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metric" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Metric wich can be involved in audit"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metricValueContext"
+ lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenDataType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditable" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target suitable for auditing"/>
+ </eAnnotations>
+ <eOperations name="getClientContextID" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets identifier of the validation client context for this target. It's guaranteed as a valid java identifier."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the validation target class in terms of EMFT validation framework."/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ </eSubpackages>
+ <eSubpackages name="aNewPackage">
+ <eClassifiers xsi:type="ecore:EClass" name="GenNotationElementTarget" eSuperTypes="#//aNewPackage/GenMeasurable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted diagram notation model element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element.ecoreClass.eAllSuperTypes->including(element.ecoreClass)->one(ePackage.name = 'notation' and name = 'View')"/>
+ <details key="description" value="'notation::View' or its sub-class must be set to NotationElement target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMeasurable" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for anything that can be subject to metrics"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderContainer">
+ <eOperations name="getProvider" eType="#//aNewPackage/GenExpressionProviderBase">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression.1"/>
+ </eOperations>
+ <eOperations name="getAbstractExpressionQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expressionsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractExpressionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="providers" upperBound="-1"
+ eType="#//aNewPackage/GenExpressionProviderBase" containment="true" eOpposite="#//aNewPackage/GenExpressionProviderBase/container"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" lowerBound="1"
+ eType="#//GenEditorGenerator"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderBase" abstract="true">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLanguage" lowerBound="1" eType="#//GenLanguage.1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" upperBound="-1"
+ eType="#//ValueExpression.1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage/GenExpressionProviderContainer" eOpposite="#//aNewPackage/GenExpressionProviderContainer/providers"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="aNewPackage1">
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagram" eSuperTypes="#//GenContainerBase.1 #//PackageNames.1 #//ProviderClassNames.1 #//LinkConstraints.1 #//EditPartCandies.1 #//aNewPackage1/EditorCandies #//Shortcuts.1 #//BatchValidation.1 #//MeasurementUnit.1">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Diagram')"/>
+ <details key="description" value="'Diagram Runtime Class' must be a notation::Diagram or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getAllNodes" upperBound="-1" eType="#//aNewPackage1/GenNode"/>
+ <eOperations name="getAllChildContainers" upperBound="-1" eType="#//GenChildContainer.1"/>
+ <eOperations name="getAllContainers" upperBound="-1" eType="#//GenContainerBase.1"/>
+ <eOperations name="getElementInitializersClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the class to hold the initializer methods for domain elements"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementInitializersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the package to hold the element initializers class"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainDiagramElement"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode.1" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="topLevelNodes" upperBound="-1"
+ eType="#//GenTopLevelNode.1" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="links" upperBound="-1"
+ eType="#//GenLink.1" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment.1" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="palette" eType="#//Palette.1"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ProviderPriority">
+ <eLiterals name="Lowest"/>
+ <eLiterals name="Low" value="1"/>
+ <eLiterals name="Medium" value="2"/>
+ <eLiterals name="High" value="3"/>
+ <eLiterals name="Highest" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditorCandies" interface="true">
+ <eOperations name="getCreationWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreationWizardPageQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramEditorUtilQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramFileCreatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDocumentProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getInitDiagramFileActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNewDiagramFileWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMatchingStrategyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPreferenceInitializerQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getVisualIDRegistryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getElementChooserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLoadResourceActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateInitDiagramAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardPageClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardIconPath"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardCategoryID"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramEditorUtilClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileCreatorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="documentProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initDiagramFileActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="newDiagramFileWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="matchingStrategyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="preferenceInitializerClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualIDRegistryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementChooserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadResourceActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editingDomainID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNode" abstract="true" eSuperTypes="#//GenChildContainer.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="EClass mapped to Node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Node')"/>
+ <details key="description" value="Node 'Diagram Runtime Class' must be a notation::Node or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getDomainMetaClass" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Delegates to modelFacet"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="valid only when there are compartments"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//TypeModelFacet.1"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenNodeLabel.1" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment.1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="graphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkModelFacet" interface="true" eSuperTypes="#//ModelFacet.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of links"/>
+ </eAnnotations>
+ <eOperations name="getSourceTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eOperations name="getTargetTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLinkModelFacet" eSuperTypes="#//FeatureModelFacet.1 #//aNewPackage1/LinkModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a feature-based link"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StyleAttributes" eSuperTypes="#//Attributes.1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedFont" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedForeground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedBackground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage2">
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditContainer" eSuperTypes="#//GenRuleContainerBase.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Container for audit rules representing a hierarchical organization of audits in the constraint category hierarchy of emft.validation framework"/>
+ </eAnnotations>
+ <eOperations name="getAllAuditRules" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit rules from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllAuditContainers" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit containers from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getPath" lowerBound="1" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets hierarchical path of this audit container as ordered list of containers beginning with the root and ended with this container"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllRulesToTargetContextMap" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Maps all rules in the container hierarchy to client context IDs of their target contexts. key: (context ID of rule target) value: (EList&lt;GenAuditRule>)"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllTargetedModelPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all model packages to which rules in this container hierarchy are targeted. Checks rules recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="hasDiagramElementRule" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this container hierarchy contains at least 1 rule targeted on notation elements. Checks recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Identifier which is unique within the scope of its parent container."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name for the category of audits organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this audit container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parentContainer" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/childContainers"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditRule" containment="true" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditRule/container">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The audit rules organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childContainers" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" containment="true"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/parentContainer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for rule like audit, metric rules..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name of this rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this rule semantics"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditRule" eSuperTypes="#//aNewPackage1/aNewPackage2/GenRuleBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Auditing rule in the form of a constraint evaluated against its target"/>
+ </eAnnotations>
+ <eOperations name="getContextSelectorClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorLocalClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique identifier of this audit rule"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not id.oclIsUndefined() implies container.audits->one(i | i.id = self.id)"/>
+ <details key="description" value="Audit rule with the same ID already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//GenConstraint.1" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A boolean type condition which if not satisfied indicates this audit rule violation. It is evaluated in the context of the target"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this audit is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="message" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text message to be reported in case of this audit violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="severity" eType="#//aNewPackage1/aNewPackage2/GenSeverity"
+ defaultValueLiteral="ERROR">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Describes the severity of this audit rule violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="useInLiveMode" 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="Indicates if this audit should be evaluated also in Live mode. If 'false', only Batch mode is applicable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/audits">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing audit container of this audit rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenSeverity">
+ <eLiterals name="INFO"/>
+ <eLiterals name="WARNING" value="1"/>
+ <eLiterals name="ERROR" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleTarget" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target against which a rule can be evaluated"/>
+ </eAnnotations>
+ <eOperations name="getContext" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the classifier to be used as this rule target evaluation context"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainElementTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted domain model element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagramElementTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model selectively, for specific visualized element"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ upperBound="-1" eType="#//GenCommonBase.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted visualized element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element &lt;> null and element->size() > 1 implies element->forAll(oclIsKindOf(GenNode))"/>
+ <details key="description" value="Multiple diagram elements must be GenNode type conformant"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainAttributeTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents value based target, useful for audit rules expression not capable of ecore meta-model access"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="attribute.ecoreFeature.oclIsKindOf(ecore::EAttribute)"/>
+ <details key="description" value="EAttribute element required for auditable domain attribute"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullAsError" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether null value of the attribute is reported as audit failure or success"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenJavaExpressionProvider">
+ <eOperations name="getOperationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression.1"/>
+ </eOperations>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage3">
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricContainer" eSuperTypes="#//GenRuleContainerBase.1">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" lowerBound="1"
+ upperBound="-1" eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule"
+ containment="true" eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule/container"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not lowLimit.oclIsUndefined() and not highLimit.oclIsUndefined() implies lowLimit &lt; highLimit"/>
+ <details key="description" value="Metric value 'lowLimit' must be smaller then 'highLimit'"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique key identifying this metric an abbreviation for this metric"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not key.oclIsUndefined() implies container.metrics->one(i | i.key = self.key)"/>
+ <details key="description" value="Metric rule with the same 'key' already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//ValueExpression.1" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression that calculates the value of this metric which is of EDataType that encapsulates java.lang.Number subclasses or their primitives"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="'ecore::EDoubleObject'"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ eType="#//aNewPackage/GenMeasurable" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this metric is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="highLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer/metrics">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing metric container of this metric rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditedMetricTarget" eSuperTypes="#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target metric which can be evaluated by audit rule. The target context here is the metric rule resulting type classifier"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metric" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Metric wich can be involved in audit"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metricValueContext"
+ lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenDataType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditable" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target suitable for auditing"/>
+ </eAnnotations>
+ <eOperations name="getClientContextID" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets identifier of the validation client context for this target. It's guaranteed as a valid java identifier."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the validation target class in terms of EMFT validation framework."/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ </eSubpackages>
+ <eSubpackages name="aNewPackage">
+ <eClassifiers xsi:type="ecore:EClass" name="GenNotationElementTarget" eSuperTypes="#//aNewPackage/GenMeasurable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted diagram notation model element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element.ecoreClass.eAllSuperTypes->including(element.ecoreClass)->one(ePackage.name = 'notation' and name = 'View')"/>
+ <details key="description" value="'notation::View' or its sub-class must be set to NotationElement target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMeasurable" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for anything that can be subject to metrics"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderContainer">
+ <eOperations name="getProvider" eType="#//aNewPackage/GenExpressionProviderBase">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression.2"/>
+ </eOperations>
+ <eOperations name="getAbstractExpressionQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expressionsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractExpressionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="providers" upperBound="-1"
+ eType="#//aNewPackage/GenExpressionProviderBase" containment="true" eOpposite="#//aNewPackage/GenExpressionProviderBase/container"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" lowerBound="1"
+ eType="#//GenEditorGenerator.1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderBase" abstract="true">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLanguage" lowerBound="1" eType="#//GenLanguage.2"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" upperBound="-1"
+ eType="#//ValueExpression.2"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage/GenExpressionProviderContainer" eOpposite="#//aNewPackage/GenExpressionProviderContainer/providers"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="aNewPackage1">
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagram" eSuperTypes="#//GenContainerBase.2 #//PackageNames.2 #//ProviderClassNames.2 #//LinkConstraints.2 #//EditPartCandies.2 #//aNewPackage1/EditorCandies #//Shortcuts.2 #//BatchValidation.2 #//MeasurementUnit.2">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Diagram')"/>
+ <details key="description" value="'Diagram Runtime Class' must be a notation::Diagram or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getAllNodes" upperBound="-1" eType="#//aNewPackage1/GenNode"/>
+ <eOperations name="getAllChildContainers" upperBound="-1" eType="#//GenChildContainer.2"/>
+ <eOperations name="getAllContainers" upperBound="-1" eType="#//GenContainerBase.2"/>
+ <eOperations name="getElementInitializersClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the class to hold the initializer methods for domain elements"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementInitializersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the package to hold the element initializers class"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator.1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainDiagramElement"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="topLevelNodes" upperBound="-1"
+ eType="#//GenTopLevelNode.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="links" upperBound="-1"
+ eType="#//GenLink.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="palette" eType="#//Palette.2"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ProviderPriority">
+ <eLiterals name="Lowest"/>
+ <eLiterals name="Low" value="1"/>
+ <eLiterals name="Medium" value="2"/>
+ <eLiterals name="High" value="3"/>
+ <eLiterals name="Highest" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditorCandies" interface="true">
+ <eOperations name="getCreationWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreationWizardPageQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramEditorUtilQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramFileCreatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDocumentProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getInitDiagramFileActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNewDiagramFileWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMatchingStrategyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPreferenceInitializerQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getVisualIDRegistryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getElementChooserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLoadResourceActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateInitDiagramAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardPageClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardIconPath"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardCategoryID"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramEditorUtilClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileCreatorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="documentProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initDiagramFileActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="newDiagramFileWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="matchingStrategyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="preferenceInitializerClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualIDRegistryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementChooserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadResourceActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editingDomainID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNode" abstract="true" eSuperTypes="#//GenChildContainer.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="EClass mapped to Node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Node')"/>
+ <details key="description" value="Node 'Diagram Runtime Class' must be a notation::Node or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getDomainMetaClass" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Delegates to modelFacet"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="valid only when there are compartments"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//TypeModelFacet.2"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenNodeLabel.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment.2"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="graphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkModelFacet" interface="true" eSuperTypes="#//ModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of links"/>
+ </eAnnotations>
+ <eOperations name="getSourceTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eOperations name="getTargetTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLinkModelFacet" eSuperTypes="#//FeatureModelFacet.2 #//aNewPackage1/LinkModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a feature-based link"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StyleAttributes" eSuperTypes="#//Attributes.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedFont" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedForeground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedBackground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorGenerator">
+ <eOperations name="getAllDomainGenPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns all genpackages from domain genmodel"/>
+ </eAnnotations>
+ <eParameters name="withUsed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="plugin" lowerBound="1"
+ eType="#//GenPlugin.2" containment="true" eOpposite="#//GenPlugin.2/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorView.2" containment="true" eOpposite="#//GenEditorView.2/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainGenModel" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenModel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This is primary EMF genmodel for user's domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Derived from genModel.genPackage[0].getBasePackage() by default"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ iD="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sameFileForDiagramAndModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specified whether editor should create separate file for domain elements if diagram file references no domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileExtension"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Distinct even when sameFileForDiagramAndModel is true. On init diagram, we just copy domain model element to new file with that extension. I won't try to set this equal to domainFileExtension"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="domainFileExtension"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="By default, genModel.genPackage[0].getPrefix().toLowerCase(), as in emf/templates/editor/pluign.xmljet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dynamicTemplates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="templateDirectory" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="copyrightText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressionProviders"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorView">
+ <eOperations name="getActionBarContributorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator.1"
+ changeable="false" eOpposite="#//GenEditorGenerator.1/editor"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionBarContributorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconPath" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BatchValidation" interface="true">
+ <eOperations name="getValidationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDiagnosticMarkerType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets diagnostic marker type ID local to the editor plugin. The editor pluginID should be used to fully-qualify this ID."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getMarkerNavigationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricViewID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDecoratorProviderQualifedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If enabled, ValidationAction is contributed by the editor plugin"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecorators"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderPriority"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProviderClassNames" interface="true">
+ <eOperations name="getElementTypesQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPaletteProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getModelingAssistantProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPropertyProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getIconProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getParserProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getAbstractParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeatureParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeaturesParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContributionItemProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypesClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeatureParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeaturesParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="contributionItemProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Shortcuts" interface="true">
+ <eOperations name="getShortcutsDecoratorProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreateShortcutActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateCreateShortcutAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="generateShortcutIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createShortcutActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="containsShortcutsTo"
+ upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model file extensions. Elements of the corresponding models could be shortcutted on this diagram."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsProvidedFor"
+ upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model names. Elements of this diagram domain model could be added as a shortcuts to the diagrams of the specified domains."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackageNames" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editCommandsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelpersPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPoliciesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="providersPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoriesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkConstraints" interface="true">
+ <eOperations name="hasLinkCreationConstraints" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this diagram contains link creation constraints or not"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsQualifiedClassName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditPartCandies" interface="true">
+ <eOperations name="getReorientConnectionViewCommandQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseExternalNodeLabelEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getReferenceConnectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextSelectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextNonResizableEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="reorientConnectionViewCommandClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseEditHelperClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseExternalNodeLabelEditPartClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseItemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseGraphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceConnectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textSelectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textNonResizableEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MeasurementUnit" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="units" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Pixel"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenPlugin">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Computed additional dependencies of generated plug-in"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getActivatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator.1"
+ changeable="false" eOpposite="#//GenEditorGenerator.1/plugin"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="provider" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Sample Plugin Provider, Inc"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="1.0.0.qualifier"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="printingEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activatorClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCommonBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="One that combines attributes that are essential for diagram elements"/>
+ </eAnnotations>
+ <eOperations name="getEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagram"/>
+ <eOperations name="getClassNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getClassNameSuffux" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getUniqueIdentifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This unique string identifier could be used to construct unique identifiers in generated java code"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLayoutType" eType="#//ViewmapLayoutType.2"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramRunTimeClass"
+ lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="way to decide which editpart to use for specific diagram element. Maps to attribute in DRT."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="visualID >= 0"/>
+ <details key="description" value="Visual ID must be a non-negative integer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//ElementType.2"
+ containment="true" eOpposite="#//ElementType.2/diagramElement"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="itemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewmap" lowerBound="1"
+ eType="#//Viewmap.2" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenContainerBase" interface="true"
+ eSuperTypes="#//GenCommonBase.2">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containedNodes" upperBound="-1"
+ volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildContainer" abstract="true"
+ eSuperTypes="#//GenContainerBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for all ChildNode containers"/>
+ </eAnnotations>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode.2" eOpposite="#//GenChildNode.2/containers"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenTopLevelNode">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not modelFacet.containmentMetaFeature.oclIsUndefined() implies modelFacet.containmentMetaFeature.genClass.ecoreClass.isSuperTypeOf(diagram.domainDiagramElement.ecoreClass)"/>
+ <details key="description" value="Top level node 'Containment Feature' must be available in the diagram 'Domain Element' or its super-class"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildNode">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containers" upperBound="-1"
+ eType="#//GenChildContainer.2" changeable="false" eOpposite="#//GenChildContainer.2/childNodes">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let cmps:OrderedSet(GenChildContainer)=containers->select(oclIsKindOf(GenCompartment)) in cmps->exists(oclAsType(GenCompartment).listLayout) implies not cmps->exists(not oclAsType(GenCompartment).listLayout)"/>
+ <details key="description" value="Node is referenced from multiple containers with different 'List Layout' value"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildLabelNode" eSuperTypes="#//GenChildNode.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child node represented by label; typically hosted by list compartment"/>
+ </eAnnotations>
+ <eOperations name="getLabelMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelReadOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelElementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labelModelFacet" eType="#//LabelModelFacet.2"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCompartment" eSuperTypes="#//GenChildContainer.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child container within node. Compartment, iow."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canCollapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="hideIfEmpty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="needsTitle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="listLayout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLink" eSuperTypes="#//GenCommonBase.2">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Edge')"/>
+ <details key="description" value="Link 'Diagram Runtime Class' must be a notation::Edge or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getSources" upperBound="-1" eType="#//GenCommonBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link sources in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargets" upperBound="-1" eType="#//GenCommonBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link targets in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenLinkLabel.2" containment="true" eOpposite="#//GenLinkLabel.2/link"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="outgoingCreationAllowed"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Support link creation from source to target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="incomingCreationAllowed"
+ 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="Support link creation from target to source"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewDirectionAlignedWithModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="View (Edge) will always be directed from model source to model target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="creationConstraints"
+ eType="#//GenLinkConstraints.2" containment="true" eOpposite="#//GenLinkConstraints.2/link">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies additional restrictions on link creation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLabel" abstract="true" eSuperTypes="#//GenCommonBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label on diagram"/>
+ </eAnnotations>
+ <eOperations name="getMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="readOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//LabelModelFacet.2"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNodeLabel" eSuperTypes="#//GenLabel.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label within node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(node.getDomainMetaClass().ecoreClass))"/>
+ <details key="description" value="Node label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExternalNodeLabel" eSuperTypes="#//GenNodeLabel.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to node"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkLabel" eSuperTypes="#//GenLabel.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to link"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="(modelFacet.oclIsTypeOf(FeatureLabelModelFacet) or modelFacet.oclIsTypeOf(CompositeFeatureLabelModelFacet))=true implies link.modelFacet.oclIsTypeOf(TypeLinkModelFacet)"/>
+ <details key="description" value="Feature based link labels can only be used on link with class (TypeLinkModelFacet)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let tl: TypeLinkModelFacet = link.modelFacet.oclAsType(TypeLinkModelFacet) in not tl.oclIsUndefined() implies self.getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(tl.metaClass.ecoreClass))"/>
+ <details key="description" value="Link label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1"
+ eType="#//GenLink.2" eOpposite="#//GenLink.2/labels"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="#//LinkLabelAlignment.2"
+ defaultValueLiteral="MIDDLE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LinkLabelAlignment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constants from {@link org.eclipse.draw2d.ConnectionLocator}"/>
+ </eAnnotations>
+ <eLiterals name="MIDDLE" value="4"/>
+ <eLiterals name="TARGET" value="3"/>
+ <eLiterals name="SOURCE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementType" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base element type"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramElement" lowerBound="1"
+ eType="#//GenCommonBase.2" eOpposite="#//GenCommonBase.2/elementType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueIdentifier" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When there's palette, defaults to title of first tool that uses element with this type"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="definedExternally" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MetamodelType" eSuperTypes="#//ElementType.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Element type based on ecore type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetaClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SpecializationType" eSuperTypes="#//ElementType.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specialization of metamodel type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperAdviceQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metamodelType" eType="#//MetamodelType.2"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperAdviceClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NotationType" eSuperTypes="#//ElementType.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pure design element"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelFacet" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for the particular model facets"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelModelFacet" interface="true"
+ eSuperTypes="#//ModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of labels"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeModelFacet" eSuperTypes="#//ModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass"/>
+ </eAnnotations>
+ <eOperations name="isPhantomElement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containmentMetaFeature"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let r: ecore::EReference=containmentMetaFeature.ecoreFeature.oclAsType(ecore::EReference) in not containmentMetaFeature.oclIsUndefined() implies r.containment or r.eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Containment Meta Feature' must reference 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Usually the same as containmentMetaFeature, unless you need to distinguish where to put and where to get from"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not childMetaFeature.oclIsUndefined() implies childMetaFeature.ecoreFeature.oclAsType(ecore::EReference).eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Child Meta Feature' must reference 'Meta Class' or its sub-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementSelector"
+ eType="#//GenConstraint.2" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Selection criterion for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementInitializer"
+ eType="#//GenElementInitializer.2" containment="true" eOpposite="#//GenElementInitializer.2/typeModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="State initializer for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureModelFacet" eSuperTypes="#//ModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureModelFacet" eSuperTypes="#//ModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeatures" lowerBound="2"
+ upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeLinkModelFacet" eSuperTypes="#//TypeModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass that associates two EClasses"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not containmentMetaFeature.oclIsUndefined()"/>
+ <details key="description" value="Link 'Containment Meta Feature' must be specified"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If source feature is not specified then link container is a link source"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceMetaFeature.oclIsUndefined() implies sourceMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Source Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetMetaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not targetMetaFeature.oclIsUndefined() implies targetMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Target Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLabelModelFacet" eSuperTypes="#//FeatureModelFacet.2 #//LabelModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of label based on an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureLabelModelFacet" eSuperTypes="#//CompositeFeatureModelFacet.2 #//LabelModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label based on a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DesignLabelModelFacet" eSuperTypes="#//LabelModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label with DescriptionStyle"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Attributes" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Captures aspects of variuos draw2d classes"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ColorAttributes" eSuperTypes="#//Attributes.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Deprecated, use StyleAttributes instead"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="foregroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="backgroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ResizeConstraints" eSuperTypes="#//Attributes.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Bit-wise OR of any {@link org.eclipse.draw2d.PositionConstants#NORTH}, {@link org.eclipse.draw2d.PositionConstants#SOUTH}, {@link org.eclipse.draw2d.PositionConstants#EAST} or {@link org.eclipse.draw2d.PositionConstants#WEST}"/>
+ </eAnnotations>
+ <eOperations name="getResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Convenient method to get {@link org.eclipse.draw2d.PositionConstants} names from resizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getNonResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as {@link #getResizeHandleNames()}, for nonResizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Any direction mentioned here (and combination thereof, like e.g. NORTH_WEST) is added as resizable handle"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonResizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Directions mentioned with this attribute are explicitly denoted as non-resizable (i.e. with 'move' cursor). If you'd like to omit handle {@link org.eclipse.gef.editpolicies.ResizableEditPolicy#createSelectionHandles} completely, just don't list it here"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DefaultSizeAttributes" eSuperTypes="#//Attributes.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="40"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="30"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelOffsetAttributes" eSuperTypes="#//Attributes.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Viewmap" abstract="true">
+ <eOperations name="find" eType="#//Attributes.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns first attributes instance of specified class, if any"/>
+ </eAnnotations>
+ <eParameters name="attributesClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//Attributes.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="layoutType" eType="#//ViewmapLayoutType.2"
+ defaultValueLiteral="UNKNOWN"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ViewmapLayoutType">
+ <eLiterals name="UNKNOWN"/>
+ <eLiterals name="XY_LAYOUT" value="1"/>
+ <eLiterals name="FLOW_LAYOUT" value="2"/>
+ <eLiterals name="TOOLBAR_LAYOUT" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureViewmap" eSuperTypes="#//Viewmap.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Name of GEF Figure class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SnippetViewmap" eSuperTypes="#//Viewmap.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InnerClassViewmap" eSuperTypes="#//Viewmap.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classBody" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ParentAssignedViewmap" eSuperTypes="#//Viewmap.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Figure (with specified class name, if any) will be assigned by (or should be taken from) parent"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="getterName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Access figure from parent's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="setterName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child could provide typed alternative to setFigure() method"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When specified, type of child's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression as a is textual statement which results in a value when evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text of the expression"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="body"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage.2" defaultValueLiteral="ocl">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the language in which the expression is stated"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="langName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="lang"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenConstraint" eSuperTypes="#//ValueExpression.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Boolean type value expression which is to be evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="Constraint"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Palette">
+ <eOperations name="getFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="flyout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroup.2" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="GEF allows only containers as palette immediate children"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="factoryClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntryBase" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="largeIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="smallIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createMethodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolEntry" eSuperTypes="#//EntryBase.2 #//ToolGroupItem.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genNodes" upperBound="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genLinks" upperBound="-1"
+ eType="#//GenLink.2"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+ eType="#//GenCommonBase.2" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Enforces 'tool for either node or link' - if there are values in genNodes list, returns it (no respect to values in genLinks); returns value of genLinks otherwise"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedToolName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroupItem" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Separator" eSuperTypes="#//ToolGroupItem.2"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroup" eSuperTypes="#//EntryBase.2 #//ToolGroupItem.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stack" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="collapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroupItem.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="toolsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenElementInitializer" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for initializers of domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeModelFacet" lowerBound="1"
+ eType="#//TypeModelFacet.2" changeable="false" eOpposite="#//TypeModelFacet.2/modelElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type model facet whose domain model element is to be intialized by this initializer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureSeqInitializer" eSuperTypes="#//GenElementInitializer.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Feature sequence initializer"/>
+ </eAnnotations>
+ <eOperations name="getElementClassAccessorName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the accessor name of this initializer's element class meta object within its package interface"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains this initializer's element class meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initializers" lowerBound="1"
+ upperBound="-1" eType="#//GenFeatureValueSpec.2" containment="true" eOpposite="#//GenFeatureValueSpec.2/featureSeqInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specifications as initializers for individual features which should be initialized in the order given by this list"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="typeModelFacet.metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureValueSpec" eSuperTypes="#//ValueExpression.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specification associated with a specific feature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="feature.ecoreFeature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies feature.ecoreFeature.eContainingClass.isSuperTypeOf(featureSeqInitializer.typeModelFacet.metaClass.ecoreClass)"/>
+ <details key="description" value="The feature of 'GenFeatureValueSpec' must be available in 'Meta Class' of the initialized element"/>
+ </eAnnotations>
+ <eOperations name="getFeatureQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains the given feature meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The feature for which this value expression is specified"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies not featureSeqInitializer.initializers->exists(i| i &lt;> self and feature = self.feature)"/>
+ <details key="description" value="The feature is already initialized by another 'GenFeatureValueSpec' in the sequence"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="featureSeqInitializer"
+ lowerBound="1" eType="#//GenFeatureSeqInitializer.2" eOpposite="#//GenFeatureSeqInitializer.2/initializers"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Groups constraints on the link source and target end"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceEnd.oclIsUndefined() or not targetEnd.oclIsUndefined()"/>
+ <details key="description" value="Either 'sourceEnd' or 'targetEnd' constraint must be specified"/>
+ </eAnnotations>
+ <eOperations name="getLinkClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The domain meta element class of the link restricted by this constraints"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSourceEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the source end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the target end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getConstraintsInstanceFieldName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns the name of the field holding Link Constraints instance"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1"
+ eType="#//GenLink.2" eOpposite="#//GenLink.2/creationConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the owning link of this constraints"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd" eType="#//GenConstraint.2"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the source end, may reference variables 'oppositeEnd' pointing to targetEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetEnd" eType="#//GenConstraint.2"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the target end, may reference variables 'oppositeEnd' pointing to sourceEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleContainerBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base container for rules like audit, metrics..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorGenerator.1" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The editor generator containing this rule container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionInterpreter">
+ <eOperations name="getQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getExpressionAccessor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression.2"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage.2"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenLanguage">
+ <eLiterals name="ocl"/>
+ <eLiterals name="java" value="1"/>
+ <eLiterals name="regexp" value="2"/>
+ <eLiterals name="nregexp" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorGenerator">
+ <eOperations name="getAllDomainGenPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns all genpackages from domain genmodel"/>
+ </eAnnotations>
+ <eParameters name="withUsed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="plugin" lowerBound="1"
+ eType="#//GenPlugin.2" containment="true" eOpposite="#//GenPlugin.2/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorView.2" containment="true" eOpposite="#//GenEditorView.2/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainGenModel" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenModel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This is primary EMF genmodel for user's domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Derived from genModel.genPackage[0].getBasePackage() by default"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ iD="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sameFileForDiagramAndModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specified whether editor should create separate file for domain elements if diagram file references no domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileExtension"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Distinct even when sameFileForDiagramAndModel is true. On init diagram, we just copy domain model element to new file with that extension. I won't try to set this equal to domainFileExtension"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="domainFileExtension"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="By default, genModel.genPackage[0].getPrefix().toLowerCase(), as in emf/templates/editor/pluign.xmljet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dynamicTemplates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="templateDirectory" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="copyrightText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressionProviders"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorView">
+ <eOperations name="getActionBarContributorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator.1"
+ changeable="false" eOpposite="#//GenEditorGenerator.1/editor"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionBarContributorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconPath" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BatchValidation" interface="true">
+ <eOperations name="getValidationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDiagnosticMarkerType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets diagnostic marker type ID local to the editor plugin. The editor pluginID should be used to fully-qualify this ID."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getMarkerNavigationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricViewID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDecoratorProviderQualifedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If enabled, ValidationAction is contributed by the editor plugin"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecorators"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderPriority"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProviderClassNames" interface="true">
+ <eOperations name="getElementTypesQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPaletteProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getModelingAssistantProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPropertyProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getIconProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getParserProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getAbstractParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeatureParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeaturesParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContributionItemProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypesClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeatureParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeaturesParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="contributionItemProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Shortcuts" interface="true">
+ <eOperations name="getShortcutsDecoratorProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreateShortcutActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateCreateShortcutAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="generateShortcutIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createShortcutActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="containsShortcutsTo"
+ upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model file extensions. Elements of the corresponding models could be shortcutted on this diagram."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsProvidedFor"
+ upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model names. Elements of this diagram domain model could be added as a shortcuts to the diagrams of the specified domains."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackageNames" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editCommandsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelpersPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPoliciesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="providersPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoriesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkConstraints" interface="true">
+ <eOperations name="hasLinkCreationConstraints" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this diagram contains link creation constraints or not"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsQualifiedClassName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditPartCandies" interface="true">
+ <eOperations name="getReorientConnectionViewCommandQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseExternalNodeLabelEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getReferenceConnectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextSelectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextNonResizableEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="reorientConnectionViewCommandClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseEditHelperClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseExternalNodeLabelEditPartClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseItemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseGraphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceConnectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textSelectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textNonResizableEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MeasurementUnit" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="units" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Pixel"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenPlugin">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Computed additional dependencies of generated plug-in"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getActivatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator.1"
+ changeable="false" eOpposite="#//GenEditorGenerator.1/plugin"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="provider" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Sample Plugin Provider, Inc"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="1.0.0.qualifier"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="printingEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activatorClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCommonBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="One that combines attributes that are essential for diagram elements"/>
+ </eAnnotations>
+ <eOperations name="getEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagram"/>
+ <eOperations name="getClassNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getClassNameSuffux" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getUniqueIdentifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This unique string identifier could be used to construct unique identifiers in generated java code"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLayoutType" eType="#//ViewmapLayoutType.2"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramRunTimeClass"
+ lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="way to decide which editpart to use for specific diagram element. Maps to attribute in DRT."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="visualID >= 0"/>
+ <details key="description" value="Visual ID must be a non-negative integer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//ElementType.2"
+ containment="true" eOpposite="#//ElementType.2/diagramElement"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="itemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewmap" lowerBound="1"
+ eType="#//Viewmap.2" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenContainerBase" interface="true"
+ eSuperTypes="#//GenCommonBase.2">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containedNodes" upperBound="-1"
+ volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildContainer" abstract="true"
+ eSuperTypes="#//GenContainerBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for all ChildNode containers"/>
+ </eAnnotations>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode.2" eOpposite="#//GenChildNode.2/containers"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenTopLevelNode">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not modelFacet.containmentMetaFeature.oclIsUndefined() implies modelFacet.containmentMetaFeature.genClass.ecoreClass.isSuperTypeOf(diagram.domainDiagramElement.ecoreClass)"/>
+ <details key="description" value="Top level node 'Containment Feature' must be available in the diagram 'Domain Element' or its super-class"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildNode">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containers" upperBound="-1"
+ eType="#//GenChildContainer.2" changeable="false" eOpposite="#//GenChildContainer.2/childNodes">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let cmps:OrderedSet(GenChildContainer)=containers->select(oclIsKindOf(GenCompartment)) in cmps->exists(oclAsType(GenCompartment).listLayout) implies not cmps->exists(not oclAsType(GenCompartment).listLayout)"/>
+ <details key="description" value="Node is referenced from multiple containers with different 'List Layout' value"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildLabelNode" eSuperTypes="#//GenChildNode.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child node represented by label; typically hosted by list compartment"/>
+ </eAnnotations>
+ <eOperations name="getLabelMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelReadOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelElementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labelModelFacet" eType="#//LabelModelFacet.2"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCompartment" eSuperTypes="#//GenChildContainer.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child container within node. Compartment, iow."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canCollapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="hideIfEmpty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="needsTitle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="listLayout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLink" eSuperTypes="#//GenCommonBase.2">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Edge')"/>
+ <details key="description" value="Link 'Diagram Runtime Class' must be a notation::Edge or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getSources" upperBound="-1" eType="#//GenCommonBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link sources in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargets" upperBound="-1" eType="#//GenCommonBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link targets in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenLinkLabel.2" containment="true" eOpposite="#//GenLinkLabel.2/link"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="outgoingCreationAllowed"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Support link creation from source to target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="incomingCreationAllowed"
+ 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="Support link creation from target to source"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewDirectionAlignedWithModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="View (Edge) will always be directed from model source to model target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="creationConstraints"
+ eType="#//GenLinkConstraints.2" containment="true" eOpposite="#//GenLinkConstraints.2/link">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies additional restrictions on link creation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLabel" abstract="true" eSuperTypes="#//GenCommonBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label on diagram"/>
+ </eAnnotations>
+ <eOperations name="getMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="readOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//LabelModelFacet.2"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNodeLabel" eSuperTypes="#//GenLabel.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label within node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(node.getDomainMetaClass().ecoreClass))"/>
+ <details key="description" value="Node label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExternalNodeLabel" eSuperTypes="#//GenNodeLabel.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to node"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkLabel" eSuperTypes="#//GenLabel.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to link"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="(modelFacet.oclIsTypeOf(FeatureLabelModelFacet) or modelFacet.oclIsTypeOf(CompositeFeatureLabelModelFacet))=true implies link.modelFacet.oclIsTypeOf(TypeLinkModelFacet)"/>
+ <details key="description" value="Feature based link labels can only be used on link with class (TypeLinkModelFacet)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let tl: TypeLinkModelFacet = link.modelFacet.oclAsType(TypeLinkModelFacet) in not tl.oclIsUndefined() implies self.getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(tl.metaClass.ecoreClass))"/>
+ <details key="description" value="Link label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1"
+ eType="#//GenLink.2" eOpposite="#//GenLink.2/labels"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="#//LinkLabelAlignment.2"
+ defaultValueLiteral="MIDDLE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LinkLabelAlignment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constants from {@link org.eclipse.draw2d.ConnectionLocator}"/>
+ </eAnnotations>
+ <eLiterals name="MIDDLE" value="4"/>
+ <eLiterals name="TARGET" value="3"/>
+ <eLiterals name="SOURCE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementType" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base element type"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramElement" lowerBound="1"
+ eType="#//GenCommonBase.2" eOpposite="#//GenCommonBase.2/elementType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueIdentifier" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When there's palette, defaults to title of first tool that uses element with this type"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="definedExternally" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MetamodelType" eSuperTypes="#//ElementType.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Element type based on ecore type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetaClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SpecializationType" eSuperTypes="#//ElementType.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specialization of metamodel type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperAdviceQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metamodelType" eType="#//MetamodelType.2"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperAdviceClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NotationType" eSuperTypes="#//ElementType.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pure design element"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelFacet" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for the particular model facets"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelModelFacet" interface="true"
+ eSuperTypes="#//ModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of labels"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeModelFacet" eSuperTypes="#//ModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass"/>
+ </eAnnotations>
+ <eOperations name="isPhantomElement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containmentMetaFeature"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let r: ecore::EReference=containmentMetaFeature.ecoreFeature.oclAsType(ecore::EReference) in not containmentMetaFeature.oclIsUndefined() implies r.containment or r.eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Containment Meta Feature' must reference 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Usually the same as containmentMetaFeature, unless you need to distinguish where to put and where to get from"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not childMetaFeature.oclIsUndefined() implies childMetaFeature.ecoreFeature.oclAsType(ecore::EReference).eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Child Meta Feature' must reference 'Meta Class' or its sub-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementSelector"
+ eType="#//GenConstraint.2" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Selection criterion for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementInitializer"
+ eType="#//GenElementInitializer.2" containment="true" eOpposite="#//GenElementInitializer.2/typeModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="State initializer for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureModelFacet" eSuperTypes="#//ModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureModelFacet" eSuperTypes="#//ModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeatures" lowerBound="2"
+ upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeLinkModelFacet" eSuperTypes="#//TypeModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass that associates two EClasses"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not containmentMetaFeature.oclIsUndefined()"/>
+ <details key="description" value="Link 'Containment Meta Feature' must be specified"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If source feature is not specified then link container is a link source"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceMetaFeature.oclIsUndefined() implies sourceMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Source Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetMetaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not targetMetaFeature.oclIsUndefined() implies targetMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Target Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLabelModelFacet" eSuperTypes="#//FeatureModelFacet.2 #//LabelModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of label based on an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureLabelModelFacet" eSuperTypes="#//CompositeFeatureModelFacet.2 #//LabelModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label based on a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DesignLabelModelFacet" eSuperTypes="#//LabelModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label with DescriptionStyle"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Attributes" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Captures aspects of variuos draw2d classes"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ColorAttributes" eSuperTypes="#//Attributes.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Deprecated, use StyleAttributes instead"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="foregroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="backgroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ResizeConstraints" eSuperTypes="#//Attributes.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Bit-wise OR of any {@link org.eclipse.draw2d.PositionConstants#NORTH}, {@link org.eclipse.draw2d.PositionConstants#SOUTH}, {@link org.eclipse.draw2d.PositionConstants#EAST} or {@link org.eclipse.draw2d.PositionConstants#WEST}"/>
+ </eAnnotations>
+ <eOperations name="getResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Convenient method to get {@link org.eclipse.draw2d.PositionConstants} names from resizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getNonResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as {@link #getResizeHandleNames()}, for nonResizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Any direction mentioned here (and combination thereof, like e.g. NORTH_WEST) is added as resizable handle"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonResizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Directions mentioned with this attribute are explicitly denoted as non-resizable (i.e. with 'move' cursor). If you'd like to omit handle {@link org.eclipse.gef.editpolicies.ResizableEditPolicy#createSelectionHandles} completely, just don't list it here"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DefaultSizeAttributes" eSuperTypes="#//Attributes.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="40"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="30"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelOffsetAttributes" eSuperTypes="#//Attributes.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Viewmap" abstract="true">
+ <eOperations name="find" eType="#//Attributes.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns first attributes instance of specified class, if any"/>
+ </eAnnotations>
+ <eParameters name="attributesClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//Attributes.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="layoutType" eType="#//ViewmapLayoutType.2"
+ defaultValueLiteral="UNKNOWN"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ViewmapLayoutType">
+ <eLiterals name="UNKNOWN"/>
+ <eLiterals name="XY_LAYOUT" value="1"/>
+ <eLiterals name="FLOW_LAYOUT" value="2"/>
+ <eLiterals name="TOOLBAR_LAYOUT" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureViewmap" eSuperTypes="#//Viewmap.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Name of GEF Figure class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SnippetViewmap" eSuperTypes="#//Viewmap.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InnerClassViewmap" eSuperTypes="#//Viewmap.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classBody" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ParentAssignedViewmap" eSuperTypes="#//Viewmap.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Figure (with specified class name, if any) will be assigned by (or should be taken from) parent"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="getterName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Access figure from parent's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="setterName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child could provide typed alternative to setFigure() method"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When specified, type of child's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression as a is textual statement which results in a value when evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text of the expression"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="body"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage.2" defaultValueLiteral="ocl">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the language in which the expression is stated"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="langName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="lang"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenConstraint" eSuperTypes="#//ValueExpression.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Boolean type value expression which is to be evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="Constraint"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Palette">
+ <eOperations name="getFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="flyout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroup.2" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="GEF allows only containers as palette immediate children"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="factoryClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntryBase" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="largeIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="smallIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createMethodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolEntry" eSuperTypes="#//EntryBase.2 #//ToolGroupItem.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genNodes" upperBound="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genLinks" upperBound="-1"
+ eType="#//GenLink.2"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+ eType="#//GenCommonBase.2" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Enforces 'tool for either node or link' - if there are values in genNodes list, returns it (no respect to values in genLinks); returns value of genLinks otherwise"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedToolName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroupItem" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Separator" eSuperTypes="#//ToolGroupItem.2"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroup" eSuperTypes="#//EntryBase.2 #//ToolGroupItem.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stack" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="collapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroupItem.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="toolsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenElementInitializer" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for initializers of domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeModelFacet" lowerBound="1"
+ eType="#//TypeModelFacet.2" changeable="false" eOpposite="#//TypeModelFacet.2/modelElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type model facet whose domain model element is to be intialized by this initializer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureSeqInitializer" eSuperTypes="#//GenElementInitializer.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Feature sequence initializer"/>
+ </eAnnotations>
+ <eOperations name="getElementClassAccessorName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the accessor name of this initializer's element class meta object within its package interface"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains this initializer's element class meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initializers" lowerBound="1"
+ upperBound="-1" eType="#//GenFeatureValueSpec.2" containment="true" eOpposite="#//GenFeatureValueSpec.2/featureSeqInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specifications as initializers for individual features which should be initialized in the order given by this list"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="typeModelFacet.metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureValueSpec" eSuperTypes="#//ValueExpression.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specification associated with a specific feature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="feature.ecoreFeature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies feature.ecoreFeature.eContainingClass.isSuperTypeOf(featureSeqInitializer.typeModelFacet.metaClass.ecoreClass)"/>
+ <details key="description" value="The feature of 'GenFeatureValueSpec' must be available in 'Meta Class' of the initialized element"/>
+ </eAnnotations>
+ <eOperations name="getFeatureQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains the given feature meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The feature for which this value expression is specified"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies not featureSeqInitializer.initializers->exists(i| i &lt;> self and feature = self.feature)"/>
+ <details key="description" value="The feature is already initialized by another 'GenFeatureValueSpec' in the sequence"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="featureSeqInitializer"
+ lowerBound="1" eType="#//GenFeatureSeqInitializer.2" eOpposite="#//GenFeatureSeqInitializer.2/initializers"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Groups constraints on the link source and target end"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceEnd.oclIsUndefined() or not targetEnd.oclIsUndefined()"/>
+ <details key="description" value="Either 'sourceEnd' or 'targetEnd' constraint must be specified"/>
+ </eAnnotations>
+ <eOperations name="getLinkClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The domain meta element class of the link restricted by this constraints"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSourceEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the source end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the target end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getConstraintsInstanceFieldName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns the name of the field holding Link Constraints instance"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1"
+ eType="#//GenLink.2" eOpposite="#//GenLink.2/creationConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the owning link of this constraints"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd" eType="#//GenConstraint.2"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the source end, may reference variables 'oppositeEnd' pointing to targetEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetEnd" eType="#//GenConstraint.2"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the target end, may reference variables 'oppositeEnd' pointing to sourceEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleContainerBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base container for rules like audit, metrics..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorGenerator.1" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The editor generator containing this rule container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionInterpreter">
+ <eOperations name="getQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getExpressionAccessor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression.2"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage.2"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenLanguage">
+ <eLiterals name="ocl"/>
+ <eLiterals name="java" value="1"/>
+ <eLiterals name="regexp" value="2"/>
+ <eLiterals name="nregexp" value="3"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage2">
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditContainer" eSuperTypes="#//GenRuleContainerBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Container for audit rules representing a hierarchical organization of audits in the constraint category hierarchy of emft.validation framework"/>
+ </eAnnotations>
+ <eOperations name="getAllAuditRules" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit rules from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllAuditContainers" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit containers from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getPath" lowerBound="1" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets hierarchical path of this audit container as ordered list of containers beginning with the root and ended with this container"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllRulesToTargetContextMap" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Maps all rules in the container hierarchy to client context IDs of their target contexts. key: (context ID of rule target) value: (EList&lt;GenAuditRule>)"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllTargetedModelPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all model packages to which rules in this container hierarchy are targeted. Checks rules recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="hasDiagramElementRule" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this container hierarchy contains at least 1 rule targeted on notation elements. Checks recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Identifier which is unique within the scope of its parent container."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name for the category of audits organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this audit container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parentContainer" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/childContainers"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditRule" containment="true" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditRule/container">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The audit rules organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childContainers" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" containment="true"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/parentContainer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for rule like audit, metric rules..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name of this rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this rule semantics"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditRule" eSuperTypes="#//aNewPackage1/aNewPackage2/GenRuleBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Auditing rule in the form of a constraint evaluated against its target"/>
+ </eAnnotations>
+ <eOperations name="getContextSelectorClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorLocalClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique identifier of this audit rule"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not id.oclIsUndefined() implies container.audits->one(i | i.id = self.id)"/>
+ <details key="description" value="Audit rule with the same ID already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//GenConstraint.2" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A boolean type condition which if not satisfied indicates this audit rule violation. It is evaluated in the context of the target"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this audit is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="message" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text message to be reported in case of this audit violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="severity" eType="#//aNewPackage1/aNewPackage2/GenSeverity"
+ defaultValueLiteral="ERROR">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Describes the severity of this audit rule violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="useInLiveMode" 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="Indicates if this audit should be evaluated also in Live mode. If 'false', only Batch mode is applicable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/audits">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing audit container of this audit rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenSeverity">
+ <eLiterals name="INFO"/>
+ <eLiterals name="WARNING" value="1"/>
+ <eLiterals name="ERROR" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleTarget" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target against which a rule can be evaluated"/>
+ </eAnnotations>
+ <eOperations name="getContext" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the classifier to be used as this rule target evaluation context"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainElementTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted domain model element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagramElementTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model selectively, for specific visualized element"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ upperBound="-1" eType="#//GenCommonBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted visualized element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element &lt;> null and element->size() > 1 implies element->forAll(oclIsKindOf(GenNode))"/>
+ <details key="description" value="Multiple diagram elements must be GenNode type conformant"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainAttributeTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents value based target, useful for audit rules expression not capable of ecore meta-model access"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="attribute.ecoreFeature.oclIsKindOf(ecore::EAttribute)"/>
+ <details key="description" value="EAttribute element required for auditable domain attribute"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullAsError" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether null value of the attribute is reported as audit failure or success"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenJavaExpressionProvider">
+ <eOperations name="getOperationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression.2"/>
+ </eOperations>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage3">
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricContainer" eSuperTypes="#//GenRuleContainerBase.2">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" lowerBound="1"
+ upperBound="-1" eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule"
+ containment="true" eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule/container"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not lowLimit.oclIsUndefined() and not highLimit.oclIsUndefined() implies lowLimit &lt; highLimit"/>
+ <details key="description" value="Metric value 'lowLimit' must be smaller then 'highLimit'"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique key identifying this metric an abbreviation for this metric"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not key.oclIsUndefined() implies container.metrics->one(i | i.key = self.key)"/>
+ <details key="description" value="Metric rule with the same 'key' already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//ValueExpression.2" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression that calculates the value of this metric which is of EDataType that encapsulates java.lang.Number subclasses or their primitives"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="'ecore::EDoubleObject'"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ eType="#//aNewPackage/GenMeasurable" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this metric is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="highLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer/metrics">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing metric container of this metric rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditedMetricTarget" eSuperTypes="#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target metric which can be evaluated by audit rule. The target context here is the metric rule resulting type classifier"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metric" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Metric wich can be involved in audit"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metricValueContext"
+ lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenDataType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditable" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target suitable for auditing"/>
+ </eAnnotations>
+ <eOperations name="getClientContextID" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets identifier of the validation client context for this target. It's guaranteed as a valid java identifier."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the validation target class in terms of EMFT validation framework."/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ <eSubpackages name="aNewPackage">
+ <eClassifiers xsi:type="ecore:EClass" name="GenNotationElementTarget" eSuperTypes="#//aNewPackage/GenMeasurable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted diagram notation model element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element.ecoreClass.eAllSuperTypes->including(element.ecoreClass)->one(ePackage.name = 'notation' and name = 'View')"/>
+ <details key="description" value="'notation::View' or its sub-class must be set to NotationElement target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMeasurable" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for anything that can be subject to metrics"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderContainer">
+ <eOperations name="getProvider" eType="#//aNewPackage/GenExpressionProviderBase">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression.2"/>
+ </eOperations>
+ <eOperations name="getAbstractExpressionQualifiedClassName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expressionsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractExpressionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="providers" upperBound="-1"
+ eType="#//aNewPackage/GenExpressionProviderBase" containment="true" eOpposite="#//aNewPackage/GenExpressionProviderBase/container"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" lowerBound="1"
+ eType="#//GenEditorGenerator.1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderBase" abstract="true">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLanguage" lowerBound="1" eType="#//GenLanguage.2"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" upperBound="-1"
+ eType="#//ValueExpression.2"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage/GenExpressionProviderContainer" eOpposite="#//aNewPackage/GenExpressionProviderContainer/providers"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="aNewPackage1">
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagram" eSuperTypes="#//GenContainerBase.2 #//PackageNames.2 #//ProviderClassNames.2 #//LinkConstraints.2 #//EditPartCandies.2 #//aNewPackage1/EditorCandies #//Shortcuts.2 #//BatchValidation.2 #//MeasurementUnit.2">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Diagram')"/>
+ <details key="description" value="'Diagram Runtime Class' must be a notation::Diagram or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getAllNodes" upperBound="-1" eType="#//aNewPackage1/GenNode"/>
+ <eOperations name="getAllChildContainers" upperBound="-1" eType="#//GenChildContainer.2"/>
+ <eOperations name="getAllContainers" upperBound="-1" eType="#//GenContainerBase.2"/>
+ <eOperations name="getElementInitializersClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the class to hold the initializer methods for domain elements"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementInitializersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the package to hold the element initializers class"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator.1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainDiagramElement"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="topLevelNodes" upperBound="-1"
+ eType="#//GenTopLevelNode.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="links" upperBound="-1"
+ eType="#//GenLink.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="palette" eType="#//Palette.2"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ProviderPriority">
+ <eLiterals name="Lowest"/>
+ <eLiterals name="Low" value="1"/>
+ <eLiterals name="Medium" value="2"/>
+ <eLiterals name="High" value="3"/>
+ <eLiterals name="Highest" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditorCandies" interface="true">
+ <eOperations name="getCreationWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreationWizardPageQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramEditorUtilQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramFileCreatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDocumentProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getInitDiagramFileActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNewDiagramFileWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMatchingStrategyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPreferenceInitializerQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getVisualIDRegistryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getElementChooserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLoadResourceActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateInitDiagramAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardPageClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardIconPath"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardCategoryID"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramEditorUtilClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileCreatorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="documentProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initDiagramFileActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="newDiagramFileWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="matchingStrategyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="preferenceInitializerClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualIDRegistryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementChooserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadResourceActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editingDomainID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNode" abstract="true" eSuperTypes="#//GenChildContainer.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="EClass mapped to Node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Node')"/>
+ <details key="description" value="Node 'Diagram Runtime Class' must be a notation::Node or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getDomainMetaClass" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Delegates to modelFacet"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="valid only when there are compartments"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//TypeModelFacet.2"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenNodeLabel.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment.2"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="graphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkModelFacet" interface="true"
+ eSuperTypes="#//ModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of links"/>
+ </eAnnotations>
+ <eOperations name="getSourceTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eOperations name="getTargetTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLinkModelFacet" eSuperTypes="#//FeatureModelFacet.2 #//aNewPackage1/LinkModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a feature-based link"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StyleAttributes" eSuperTypes="#//Attributes.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedFont" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedForeground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedBackground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage2">
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditContainer" eSuperTypes="#//GenRuleContainerBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Container for audit rules representing a hierarchical organization of audits in the constraint category hierarchy of emft.validation framework"/>
+ </eAnnotations>
+ <eOperations name="getAllAuditRules" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit rules from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllAuditContainers" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit containers from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getPath" lowerBound="1" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets hierarchical path of this audit container as ordered list of containers beginning with the root and ended with this container"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllRulesToTargetContextMap" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Maps all rules in the container hierarchy to client context IDs of their target contexts. key: (context ID of rule target) value: (EList&lt;GenAuditRule>)"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllTargetedModelPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all model packages to which rules in this container hierarchy are targeted. Checks rules recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="hasDiagramElementRule" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this container hierarchy contains at least 1 rule targeted on notation elements. Checks recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Identifier which is unique within the scope of its parent container."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name for the category of audits organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this audit container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parentContainer"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/childContainers"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditRule" containment="true"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditRule/container">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The audit rules organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childContainers"
+ upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer"
+ containment="true" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/parentContainer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for rule like audit, metric rules..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name of this rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this rule semantics"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditRule" eSuperTypes="#//aNewPackage1/aNewPackage2/GenRuleBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Auditing rule in the form of a constraint evaluated against its target"/>
+ </eAnnotations>
+ <eOperations name="getContextSelectorClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorQualifiedClassName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorLocalClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique identifier of this audit rule"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not id.oclIsUndefined() implies container.audits->one(i | i.id = self.id)"/>
+ <details key="description" value="Audit rule with the same ID already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//GenConstraint.2" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A boolean type condition which if not satisfied indicates this audit rule violation. It is evaluated in the context of the target"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this audit is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="message" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text message to be reported in case of this audit violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="severity" eType="#//aNewPackage1/aNewPackage2/GenSeverity"
+ defaultValueLiteral="ERROR">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Describes the severity of this audit rule violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="useInLiveMode" 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="Indicates if this audit should be evaluated also in Live mode. If 'false', only Batch mode is applicable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/audits">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing audit container of this audit rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenSeverity">
+ <eLiterals name="INFO"/>
+ <eLiterals name="WARNING" value="1"/>
+ <eLiterals name="ERROR" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleTarget" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target against which a rule can be evaluated"/>
+ </eAnnotations>
+ <eOperations name="getContext" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the classifier to be used as this rule target evaluation context"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainElementTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted domain model element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagramElementTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model selectively, for specific visualized element"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ upperBound="-1" eType="#//GenCommonBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted visualized element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element &lt;> null and element->size() > 1 implies element->forAll(oclIsKindOf(GenNode))"/>
+ <details key="description" value="Multiple diagram elements must be GenNode type conformant"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainAttributeTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents value based target, useful for audit rules expression not capable of ecore meta-model access"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="attribute.ecoreFeature.oclIsKindOf(ecore::EAttribute)"/>
+ <details key="description" value="EAttribute element required for auditable domain attribute"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullAsError" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether null value of the attribute is reported as audit failure or success"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenJavaExpressionProvider">
+ <eOperations name="getOperationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression.2"/>
+ </eOperations>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage3">
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricContainer" eSuperTypes="#//GenRuleContainerBase.2">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" lowerBound="1"
+ upperBound="-1" eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule"
+ containment="true" eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule/container"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not lowLimit.oclIsUndefined() and not highLimit.oclIsUndefined() implies lowLimit &lt; highLimit"/>
+ <details key="description" value="Metric value 'lowLimit' must be smaller then 'highLimit'"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique key identifying this metric an abbreviation for this metric"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not key.oclIsUndefined() implies container.metrics->one(i | i.key = self.key)"/>
+ <details key="description" value="Metric rule with the same 'key' already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//ValueExpression.2" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression that calculates the value of this metric which is of EDataType that encapsulates java.lang.Number subclasses or their primitives"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="'ecore::EDoubleObject'"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ eType="#//aNewPackage/GenMeasurable" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this metric is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="highLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer/metrics">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing metric container of this metric rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditedMetricTarget" eSuperTypes="#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target metric which can be evaluated by audit rule. The target context here is the metric rule resulting type classifier"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metric" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Metric wich can be involved in audit"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metricValueContext"
+ lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenDataType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditable" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target suitable for auditing"/>
+ </eAnnotations>
+ <eOperations name="getClientContextID" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets identifier of the validation client context for this target. It's guaranteed as a valid java identifier."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the validation target class in terms of EMFT validation framework."/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ </eSubpackages>
+ <eSubpackages name="aNewPackage">
+ <eClassifiers xsi:type="ecore:EClass" name="GenNotationElementTarget" eSuperTypes="#//aNewPackage/GenMeasurable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted diagram notation model element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element.ecoreClass.eAllSuperTypes->including(element.ecoreClass)->one(ePackage.name = 'notation' and name = 'View')"/>
+ <details key="description" value="'notation::View' or its sub-class must be set to NotationElement target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMeasurable" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for anything that can be subject to metrics"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderContainer">
+ <eOperations name="getProvider" eType="#//aNewPackage/GenExpressionProviderBase">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression.2"/>
+ </eOperations>
+ <eOperations name="getAbstractExpressionQualifiedClassName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expressionsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractExpressionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="providers" upperBound="-1"
+ eType="#//aNewPackage/GenExpressionProviderBase" containment="true" eOpposite="#//aNewPackage/GenExpressionProviderBase/container"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" lowerBound="1"
+ eType="#//GenEditorGenerator.1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderBase" abstract="true">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLanguage" lowerBound="1" eType="#//GenLanguage.2"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" upperBound="-1"
+ eType="#//ValueExpression.2"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage/GenExpressionProviderContainer" eOpposite="#//aNewPackage/GenExpressionProviderContainer/providers"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="aNewPackage1">
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagram" eSuperTypes="#//GenContainerBase.2 #//PackageNames.2 #//ProviderClassNames.2 #//LinkConstraints.2 #//EditPartCandies.2 #//aNewPackage1/EditorCandies #//Shortcuts.2 #//BatchValidation.2 #//MeasurementUnit.2">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Diagram')"/>
+ <details key="description" value="'Diagram Runtime Class' must be a notation::Diagram or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getAllNodes" upperBound="-1" eType="#//aNewPackage1/GenNode"/>
+ <eOperations name="getAllChildContainers" upperBound="-1" eType="#//GenChildContainer.2"/>
+ <eOperations name="getAllContainers" upperBound="-1" eType="#//GenContainerBase.2"/>
+ <eOperations name="getElementInitializersClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the class to hold the initializer methods for domain elements"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementInitializersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the package to hold the element initializers class"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator.1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainDiagramElement"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="topLevelNodes" upperBound="-1"
+ eType="#//GenTopLevelNode.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="links" upperBound="-1"
+ eType="#//GenLink.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="palette" eType="#//Palette.2"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ProviderPriority">
+ <eLiterals name="Lowest"/>
+ <eLiterals name="Low" value="1"/>
+ <eLiterals name="Medium" value="2"/>
+ <eLiterals name="High" value="3"/>
+ <eLiterals name="Highest" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditorCandies" interface="true">
+ <eOperations name="getCreationWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreationWizardPageQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramEditorUtilQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramFileCreatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDocumentProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getInitDiagramFileActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNewDiagramFileWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMatchingStrategyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPreferenceInitializerQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getVisualIDRegistryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getElementChooserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLoadResourceActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateInitDiagramAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardPageClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardIconPath"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardCategoryID"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramEditorUtilClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileCreatorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="documentProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initDiagramFileActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="newDiagramFileWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="matchingStrategyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="preferenceInitializerClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualIDRegistryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementChooserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadResourceActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editingDomainID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNode" abstract="true" eSuperTypes="#//GenChildContainer.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="EClass mapped to Node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Node')"/>
+ <details key="description" value="Node 'Diagram Runtime Class' must be a notation::Node or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getDomainMetaClass" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Delegates to modelFacet"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="valid only when there are compartments"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//TypeModelFacet.2"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenNodeLabel.2" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment.2"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="graphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkModelFacet" interface="true"
+ eSuperTypes="#//ModelFacet.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of links"/>
+ </eAnnotations>
+ <eOperations name="getSourceTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eOperations name="getTargetTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLinkModelFacet" eSuperTypes="#//FeatureModelFacet.2 #//aNewPackage1/LinkModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a feature-based link"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StyleAttributes" eSuperTypes="#//Attributes.2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedFont" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedForeground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedBackground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage2">
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditContainer" eSuperTypes="#//GenRuleContainerBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Container for audit rules representing a hierarchical organization of audits in the constraint category hierarchy of emft.validation framework"/>
+ </eAnnotations>
+ <eOperations name="getAllAuditRules" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit rules from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllAuditContainers" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit containers from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getPath" lowerBound="1" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets hierarchical path of this audit container as ordered list of containers beginning with the root and ended with this container"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllRulesToTargetContextMap" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Maps all rules in the container hierarchy to client context IDs of their target contexts. key: (context ID of rule target) value: (EList&lt;GenAuditRule>)"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllTargetedModelPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all model packages to which rules in this container hierarchy are targeted. Checks rules recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="hasDiagramElementRule" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this container hierarchy contains at least 1 rule targeted on notation elements. Checks recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Identifier which is unique within the scope of its parent container."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name for the category of audits organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this audit container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parentContainer"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/childContainers"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditRule" containment="true"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditRule/container">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The audit rules organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childContainers"
+ upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer"
+ containment="true" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/parentContainer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for rule like audit, metric rules..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name of this rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this rule semantics"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditRule" eSuperTypes="#//aNewPackage1/aNewPackage2/GenRuleBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Auditing rule in the form of a constraint evaluated against its target"/>
+ </eAnnotations>
+ <eOperations name="getContextSelectorClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorQualifiedClassName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorLocalClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique identifier of this audit rule"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not id.oclIsUndefined() implies container.audits->one(i | i.id = self.id)"/>
+ <details key="description" value="Audit rule with the same ID already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//GenConstraint.2" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A boolean type condition which if not satisfied indicates this audit rule violation. It is evaluated in the context of the target"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this audit is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="message" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text message to be reported in case of this audit violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="severity" eType="#//aNewPackage1/aNewPackage2/GenSeverity"
+ defaultValueLiteral="ERROR">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Describes the severity of this audit rule violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="useInLiveMode" 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="Indicates if this audit should be evaluated also in Live mode. If 'false', only Batch mode is applicable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/audits">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing audit container of this audit rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenSeverity">
+ <eLiterals name="INFO"/>
+ <eLiterals name="WARNING" value="1"/>
+ <eLiterals name="ERROR" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleTarget" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target against which a rule can be evaluated"/>
+ </eAnnotations>
+ <eOperations name="getContext" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the classifier to be used as this rule target evaluation context"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainElementTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted domain model element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagramElementTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model selectively, for specific visualized element"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ upperBound="-1" eType="#//GenCommonBase.2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted visualized element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element &lt;> null and element->size() > 1 implies element->forAll(oclIsKindOf(GenNode))"/>
+ <details key="description" value="Multiple diagram elements must be GenNode type conformant"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainAttributeTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents value based target, useful for audit rules expression not capable of ecore meta-model access"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="attribute.ecoreFeature.oclIsKindOf(ecore::EAttribute)"/>
+ <details key="description" value="EAttribute element required for auditable domain attribute"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullAsError" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether null value of the attribute is reported as audit failure or success"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenJavaExpressionProvider">
+ <eOperations name="getOperationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression.2"/>
+ </eOperations>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage3">
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricContainer" eSuperTypes="#//GenRuleContainerBase.2">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" lowerBound="1"
+ upperBound="-1" eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule"
+ containment="true" eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule/container"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not lowLimit.oclIsUndefined() and not highLimit.oclIsUndefined() implies lowLimit &lt; highLimit"/>
+ <details key="description" value="Metric value 'lowLimit' must be smaller then 'highLimit'"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique key identifying this metric an abbreviation for this metric"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not key.oclIsUndefined() implies container.metrics->one(i | i.key = self.key)"/>
+ <details key="description" value="Metric rule with the same 'key' already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//ValueExpression.2" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression that calculates the value of this metric which is of EDataType that encapsulates java.lang.Number subclasses or their primitives"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="'ecore::EDoubleObject'"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ eType="#//aNewPackage/GenMeasurable" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this metric is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="highLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer/metrics">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing metric container of this metric rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditedMetricTarget" eSuperTypes="#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target metric which can be evaluated by audit rule. The target context here is the metric rule resulting type classifier"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metric" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Metric wich can be involved in audit"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metricValueContext"
+ lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenDataType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditable" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target suitable for auditing"/>
+ </eAnnotations>
+ <eOperations name="getClientContextID" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets identifier of the validation client context for this target. It's guaranteed as a valid java identifier."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the validation target class in terms of EMFT validation framework."/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ </eSubpackages>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore
new file mode 100644
index 000000000..79c36f0d2
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgen.ecore
@@ -0,0 +1,1447 @@
+<?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="gmfgen"
+ nsURI="http://www.eclipse.org/gmf/2005/GenModel" nsPrefix="gmfgen">
+ <eAnnotations source="http://www.eclipse.org/emf/2004/EmfaticAnnotationMap">
+ <details key="constraints" value="http://www.eclipse.org/gmf/2005/constraints"/>
+ <details key="meta" value="http://www.eclipse.org/gmf/2005/constraints/meta"/>
+ <details key="deprecated" value="http://www.eclipse.org/gmf/2006/deprecated"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="import" value="http://www.eclipse.org/gmf/runtime/1.0.0/notation"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorGenerator">
+ <eOperations name="getAllDomainGenPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns all genpackages from domain genmodel"/>
+ </eAnnotations>
+ <eParameters name="withUsed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="plugin" lowerBound="1"
+ eType="#//GenPlugin" containment="true" eOpposite="#//GenPlugin/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorView" containment="true" eOpposite="#//GenEditorView/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainGenModel" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenModel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This is primary EMF genmodel for user's domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Derived from genModel.genPackage[0].getBasePackage() by default"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sameFileForDiagramAndModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specified whether editor should create separate file for domain elements if diagram file references no domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Distinct even when sameFileForDiagramAndModel is true. On init diagram, we just copy domain model element to new file with that extension. I won't try to set this equal to domainFileExtension"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="domainFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="By default, genModel.genPackage[0].getPrefix().toLowerCase(), as in emf/templates/editor/pluign.xmljet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dynamicTemplates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="templateDirectory" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="copyrightText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressionProviders" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorView">
+ <eOperations name="getActionBarContributorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false" eOpposite="#//GenEditorGenerator/editor"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionBarContributorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconPath" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BatchValidation" interface="true">
+ <eOperations name="getValidationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDiagnosticMarkerType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets diagnostic marker type ID local to the editor plugin. The editor pluginID should be used to fully-qualify this ID."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getMarkerNavigationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricViewID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDecoratorProviderQualifedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If enabled, ValidationAction is contributed by the editor plugin"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecorators" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderPriority"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProviderClassNames" interface="true">
+ <eOperations name="getElementTypesQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPaletteProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getModelingAssistantProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPropertyProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getIconProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getParserProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getAbstractParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeatureParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeaturesParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContributionItemProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypesClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeatureParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeaturesParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="contributionItemProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Shortcuts" interface="true">
+ <eOperations name="getShortcutsDecoratorProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreateShortcutActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateCreateShortcutAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="generateShortcutIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createShortcutActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="containsShortcutsTo" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model file extensions. Elements of the corresponding models could be shortcutted on this diagram."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsProvidedFor" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model names. Elements of this diagram domain model could be added as a shortcuts to the diagrams of the specified domains."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackageNames" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editCommandsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelpersPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartsPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPoliciesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="providersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoriesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkConstraints" interface="true">
+ <eOperations name="hasLinkCreationConstraints" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this diagram contains link creation constraints or not"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsQualifiedClassName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditPartCandies" interface="true">
+ <eOperations name="getReorientConnectionViewCommandQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseExternalNodeLabelEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getReferenceConnectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextSelectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextNonResizableEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="reorientConnectionViewCommandClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseEditHelperClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseExternalNodeLabelEditPartClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseItemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseGraphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceConnectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textSelectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textNonResizableEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MeasurementUnit" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="units" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Pixel"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenPlugin">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Computed additional dependencies of generated plug-in"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getActivatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false" eOpposite="#//GenEditorGenerator/plugin"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="provider" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Sample Plugin Provider, Inc"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="1.0.0.qualifier"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="printingEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activatorClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCommonBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="One that combines attributes that are essential for diagram elements"/>
+ </eAnnotations>
+ <eOperations name="getEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagram"/>
+ <eOperations name="getClassNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getClassNameSuffux" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getUniqueIdentifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This unique string identifier could be used to construct unique identifiers in generated java code"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLayoutType" eType="#//ViewmapLayoutType"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramRunTimeClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="way to decide which editpart to use for specific diagram element. Maps to attribute in DRT."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="visualID >= 0"/>
+ <details key="description" value="Visual ID must be a non-negative integer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//ElementType"
+ containment="true" eOpposite="#//ElementType/diagramElement"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="itemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewmap" lowerBound="1"
+ eType="#//Viewmap" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenContainerBase" interface="true" eSuperTypes="#//GenCommonBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containedNodes" upperBound="-1"
+ volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildContainer" abstract="true" eSuperTypes="#//GenContainerBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for all ChildNode containers"/>
+ </eAnnotations>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode" eOpposite="#//GenChildNode/containers"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenTopLevelNode" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not modelFacet.containmentMetaFeature.oclIsUndefined() implies modelFacet.containmentMetaFeature.genClass.ecoreClass.isSuperTypeOf(diagram.domainDiagramElement.ecoreClass)"/>
+ <details key="description" value="Top level node 'Containment Feature' must be available in the diagram 'Domain Element' or its super-class"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildNode" eSuperTypes="">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containers" upperBound="-1"
+ eType="#//GenChildContainer" changeable="false" eOpposite="#//GenChildContainer/childNodes">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let cmps:OrderedSet(GenChildContainer)=containers->select(oclIsKindOf(GenCompartment)) in cmps->exists(oclAsType(GenCompartment).listLayout) implies not cmps->exists(not oclAsType(GenCompartment).listLayout)"/>
+ <details key="description" value="Node is referenced from multiple containers with different 'List Layout' value"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildLabelNode" eSuperTypes="#//GenChildNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child node represented by label; typically hosted by list compartment"/>
+ </eAnnotations>
+ <eOperations name="getLabelMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelReadOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelElementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labelModelFacet" eType="#//LabelModelFacet"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCompartment" eSuperTypes="#//GenChildContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child container within node. Compartment, iow."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canCollapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="hideIfEmpty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="needsTitle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="listLayout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLink" eSuperTypes="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Edge')"/>
+ <details key="description" value="Link 'Diagram Runtime Class' must be a notation::Edge or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getSources" upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link sources in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargets" upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link targets in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenLinkLabel" containment="true" eOpposite="#//GenLinkLabel/link"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="outgoingCreationAllowed"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Support link creation from source to target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="incomingCreationAllowed"
+ 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="Support link creation from target to source"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewDirectionAlignedWithModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="View (Edge) will always be directed from model source to model target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="creationConstraints" eType="#//GenLinkConstraints"
+ containment="true" eOpposite="#//GenLinkConstraints/link">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies additional restrictions on link creation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLabel" abstract="true" eSuperTypes="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label on diagram"/>
+ </eAnnotations>
+ <eOperations name="getMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="readOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//LabelModelFacet"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNodeLabel" eSuperTypes="#//GenLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label within node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(node.getDomainMetaClass().ecoreClass))"/>
+ <details key="description" value="Node label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExternalNodeLabel" eSuperTypes="#//GenNodeLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to node"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkLabel" eSuperTypes="#//GenLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to link"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="(modelFacet.oclIsTypeOf(FeatureLabelModelFacet) or modelFacet.oclIsTypeOf(CompositeFeatureLabelModelFacet))=true implies link.modelFacet.oclIsTypeOf(TypeLinkModelFacet)"/>
+ <details key="description" value="Feature based link labels can only be used on link with class (TypeLinkModelFacet)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let tl: TypeLinkModelFacet = link.modelFacet.oclAsType(TypeLinkModelFacet) in not tl.oclIsUndefined() implies self.getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(tl.metaClass.ecoreClass))"/>
+ <details key="description" value="Link label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink"
+ eOpposite="#//GenLink/labels"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="#//LinkLabelAlignment"
+ defaultValueLiteral="MIDDLE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LinkLabelAlignment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constants from {@link org.eclipse.draw2d.ConnectionLocator}"/>
+ </eAnnotations>
+ <eLiterals name="MIDDLE" value="4"/>
+ <eLiterals name="TARGET" value="3"/>
+ <eLiterals name="SOURCE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementType" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base element type"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramElement" lowerBound="1"
+ eType="#//GenCommonBase" eOpposite="#//GenCommonBase/elementType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueIdentifier" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When there's palette, defaults to title of first tool that uses element with this type"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="definedExternally" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MetamodelType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Element type based on ecore type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetaClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SpecializationType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specialization of metamodel type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperAdviceQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metamodelType" eType="#//MetamodelType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperAdviceClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NotationType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pure design element"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelFacet" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for the particular model facets"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelModelFacet" interface="true" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of labels"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass"/>
+ </eAnnotations>
+ <eOperations name="isPhantomElement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containmentMetaFeature"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let r: ecore::EReference=containmentMetaFeature.ecoreFeature.oclAsType(ecore::EReference) in not containmentMetaFeature.oclIsUndefined() implies r.containment or r.eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Containment Meta Feature' must reference 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Usually the same as containmentMetaFeature, unless you need to distinguish where to put and where to get from"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not childMetaFeature.oclIsUndefined() implies childMetaFeature.ecoreFeature.oclAsType(ecore::EReference).eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Child Meta Feature' must reference 'Meta Class' or its sub-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementSelector" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Selection criterion for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementInitializer"
+ eType="#//GenElementInitializer" containment="true" eOpposite="#//GenElementInitializer/typeModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="State initializer for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeatures" lowerBound="2"
+ upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeLinkModelFacet" eSuperTypes="#//TypeModelFacet ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass that associates two EClasses"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not containmentMetaFeature.oclIsUndefined()"/>
+ <details key="description" value="Link 'Containment Meta Feature' must be specified"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If source feature is not specified then link container is a link source"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceMetaFeature.oclIsUndefined() implies sourceMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Source Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetMetaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not targetMetaFeature.oclIsUndefined() implies targetMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Target Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLabelModelFacet" eSuperTypes="#//FeatureModelFacet #//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of label based on an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureLabelModelFacet" eSuperTypes="#//CompositeFeatureModelFacet #//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label based on a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DesignLabelModelFacet" eSuperTypes="#//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label with DescriptionStyle"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Attributes" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Captures aspects of variuos draw2d classes"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ColorAttributes" eSuperTypes="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Deprecated, use StyleAttributes instead"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="foregroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="backgroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ResizeConstraints" eSuperTypes="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Bit-wise OR of any {@link org.eclipse.draw2d.PositionConstants#NORTH}, {@link org.eclipse.draw2d.PositionConstants#SOUTH}, {@link org.eclipse.draw2d.PositionConstants#EAST} or {@link org.eclipse.draw2d.PositionConstants#WEST}"/>
+ </eAnnotations>
+ <eOperations name="getResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Convenient method to get {@link org.eclipse.draw2d.PositionConstants} names from resizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getNonResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as {@link #getResizeHandleNames()}, for nonResizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Any direction mentioned here (and combination thereof, like e.g. NORTH_WEST) is added as resizable handle"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonResizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Directions mentioned with this attribute are explicitly denoted as non-resizable (i.e. with 'move' cursor). If you'd like to omit handle {@link org.eclipse.gef.editpolicies.ResizableEditPolicy#createSelectionHandles} completely, just don't list it here"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DefaultSizeAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="40"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="30"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelOffsetAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Viewmap" abstract="true">
+ <eOperations name="find" eType="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns first attributes instance of specified class, if any"/>
+ </eAnnotations>
+ <eParameters name="attributesClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//Attributes" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="layoutType" eType="#//ViewmapLayoutType"
+ defaultValueLiteral="UNKNOWN"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ViewmapLayoutType">
+ <eLiterals name="UNKNOWN"/>
+ <eLiterals name="XY_LAYOUT" value="1"/>
+ <eLiterals name="FLOW_LAYOUT" value="2"/>
+ <eLiterals name="TOOLBAR_LAYOUT" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Name of GEF Figure class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SnippetViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InnerClassViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classBody" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ParentAssignedViewmap" eSuperTypes="#//Viewmap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Figure (with specified class name, if any) will be assigned by (or should be taken from) parent"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="getterName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Access figure from parent's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="setterName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child could provide typed alternative to setFigure() method"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When specified, type of child's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression as a is textual statement which results in a value when evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text of the expression"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="body"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage" defaultValueLiteral="ocl">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the language in which the expression is stated"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="langName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="lang"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenConstraint" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Boolean type value expression which is to be evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="Constraint"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Palette">
+ <eOperations name="getFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="flyout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroup" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="GEF allows only containers as palette immediate children"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="factoryClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntryBase" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="largeIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="smallIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createMethodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolEntry" eSuperTypes="#//EntryBase #//ToolGroupItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genNodes" upperBound="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genLinks" upperBound="-1"
+ eType="#//GenLink"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+ eType="#//GenCommonBase" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Enforces 'tool for either node or link' - if there are values in genNodes list, returns it (no respect to values in genLinks); returns value of genLinks otherwise"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedToolName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroupItem" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Separator" eSuperTypes="#//ToolGroupItem"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroup" eSuperTypes="#//EntryBase #//ToolGroupItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stack" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="collapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
+ upperBound="-1" eType="#//ToolGroupItem" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="toolsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenElementInitializer" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for initializers of domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeModelFacet" lowerBound="1"
+ eType="#//TypeModelFacet" changeable="false" eOpposite="#//TypeModelFacet/modelElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type model facet whose domain model element is to be intialized by this initializer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureSeqInitializer" eSuperTypes="#//GenElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Feature sequence initializer"/>
+ </eAnnotations>
+ <eOperations name="getElementClassAccessorName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the accessor name of this initializer's element class meta object within its package interface"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains this initializer's element class meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initializers" lowerBound="1"
+ upperBound="-1" eType="#//GenFeatureValueSpec" containment="true" eOpposite="#//GenFeatureValueSpec/featureSeqInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specifications as initializers for individual features which should be initialized in the order given by this list"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="typeModelFacet.metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureValueSpec" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specification associated with a specific feature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="feature.ecoreFeature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies feature.ecoreFeature.eContainingClass.isSuperTypeOf(featureSeqInitializer.typeModelFacet.metaClass.ecoreClass)"/>
+ <details key="description" value="The feature of 'GenFeatureValueSpec' must be available in 'Meta Class' of the initialized element"/>
+ </eAnnotations>
+ <eOperations name="getFeatureQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains the given feature meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The feature for which this value expression is specified"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies not featureSeqInitializer.initializers->exists(i| i &lt;> self and feature = self.feature)"/>
+ <details key="description" value="The feature is already initialized by another 'GenFeatureValueSpec' in the sequence"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="featureSeqInitializer"
+ lowerBound="1" eType="#//GenFeatureSeqInitializer" eOpposite="#//GenFeatureSeqInitializer/initializers"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Groups constraints on the link source and target end"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceEnd.oclIsUndefined() or not targetEnd.oclIsUndefined()"/>
+ <details key="description" value="Either 'sourceEnd' or 'targetEnd' constraint must be specified"/>
+ </eAnnotations>
+ <eOperations name="getLinkClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The domain meta element class of the link restricted by this constraints"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSourceEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the source end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the target end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getConstraintsInstanceFieldName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns the name of the field holding Link Constraints instance"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink"
+ eOpposite="#//GenLink/creationConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the owning link of this constraints"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the source end, may reference variables 'oppositeEnd' pointing to targetEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetEnd" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the target end, may reference variables 'oppositeEnd' pointing to sourceEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleContainerBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base container for rules like audit, metrics..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorGenerator" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The editor generator containing this rule container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionInterpreter" eSuperTypes="">
+ <eOperations name="getQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getExpressionAccessor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenLanguage">
+ <eLiterals name="ocl"/>
+ <eLiterals name="java" value="1"/>
+ <eLiterals name="regexp" value="2"/>
+ <eLiterals name="nregexp" value="3"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage">
+ <eClassifiers xsi:type="ecore:EClass" name="GenNotationElementTarget" eSuperTypes=" #//aNewPackage/GenMeasurable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted diagram notation model element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element.ecoreClass.eAllSuperTypes->including(element.ecoreClass)->one(ePackage.name = 'notation' and name = 'View')"/>
+ <details key="description" value="'notation::View' or its sub-class must be set to NotationElement target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMeasurable" interface="true" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for anything that can be subject to metrics"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderContainer">
+ <eOperations name="getProvider" eType="#//aNewPackage/GenExpressionProviderBase">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ <eOperations name="getAbstractExpressionQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expressionsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractExpressionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="providers" upperBound="-1"
+ eType="#//aNewPackage/GenExpressionProviderBase" containment="true" eOpposite="#//aNewPackage/GenExpressionProviderBase/container"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" lowerBound="1"
+ eType="#//GenEditorGenerator"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderBase" abstract="true">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLanguage" lowerBound="1" eType="#//GenLanguage"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" upperBound="-1"
+ eType="#//ValueExpression"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage/GenExpressionProviderContainer" eOpposite="#//aNewPackage/GenExpressionProviderContainer/providers"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="aNewPackage1">
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagram" eSuperTypes="#//GenContainerBase #//PackageNames #//ProviderClassNames #//LinkConstraints #//EditPartCandies #//aNewPackage1/EditorCandies #//Shortcuts #//BatchValidation #//MeasurementUnit">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Diagram')"/>
+ <details key="description" value="'Diagram Runtime Class' must be a notation::Diagram or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getAllNodes" upperBound="-1" eType="#//aNewPackage1/GenNode"/>
+ <eOperations name="getAllChildContainers" upperBound="-1" eType="#//GenChildContainer"/>
+ <eOperations name="getAllContainers" upperBound="-1" eType="#//GenContainerBase"/>
+ <eOperations name="getElementInitializersClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the class to hold the initializer methods for domain elements"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementInitializersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the package to hold the element initializers class"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainDiagramElement"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="topLevelNodes" upperBound="-1"
+ eType="#//GenTopLevelNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="links" upperBound="-1"
+ eType="#//GenLink" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="palette" eType="#//Palette"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ProviderPriority">
+ <eLiterals name="Lowest"/>
+ <eLiterals name="Low" value="1"/>
+ <eLiterals name="Medium" value="2"/>
+ <eLiterals name="High" value="3"/>
+ <eLiterals name="Highest" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditorCandies" interface="true">
+ <eOperations name="getCreationWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreationWizardPageQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramEditorUtilQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramFileCreatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDocumentProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getInitDiagramFileActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNewDiagramFileWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMatchingStrategyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPreferenceInitializerQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getVisualIDRegistryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getElementChooserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLoadResourceActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateInitDiagramAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardPageClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardIconPath"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardCategoryID"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramEditorUtilClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileCreatorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="documentProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initDiagramFileActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="newDiagramFileWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="matchingStrategyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="preferenceInitializerClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualIDRegistryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementChooserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadResourceActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editingDomainID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNode" abstract="true" eSuperTypes="#//GenChildContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="EClass mapped to Node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Node')"/>
+ <details key="description" value="Node 'Diagram Runtime Class' must be a notation::Node or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getDomainMetaClass" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Delegates to modelFacet"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="valid only when there are compartments"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//TypeModelFacet"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenNodeLabel" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="graphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkModelFacet" interface="true" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of links"/>
+ </eAnnotations>
+ <eOperations name="getSourceTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eOperations name="getTargetTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLinkModelFacet" eSuperTypes="#//FeatureModelFacet #//aNewPackage1/LinkModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a feature-based link"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StyleAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedFont" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedForeground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedBackground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage2">
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditContainer" eSuperTypes="#//GenRuleContainerBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Container for audit rules representing a hierarchical organization of audits in the constraint category hierarchy of emft.validation framework"/>
+ </eAnnotations>
+ <eOperations name="getAllAuditRules" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit rules from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllAuditContainers" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit containers from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getPath" lowerBound="1" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets hierarchical path of this audit container as ordered list of containers beginning with the root and ended with this container"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllRulesToTargetContextMap" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Maps all rules in the container hierarchy to client context IDs of their target contexts. key: (context ID of rule target) value: (EList&lt;GenAuditRule>)"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllTargetedModelPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all model packages to which rules in this container hierarchy are targeted. Checks rules recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="hasDiagramElementRule" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this container hierarchy contains at least 1 rule targeted on notation elements. Checks recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Identifier which is unique within the scope of its parent container."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name for the category of audits organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this audit container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parentContainer" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/childContainers"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditRule" containment="true" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditRule/container">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The audit rules organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childContainers" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" containment="true"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/parentContainer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for rule like audit, metric rules..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name of this rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this rule semantics"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditRule" eSuperTypes="#//aNewPackage1/aNewPackage2/GenRuleBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Auditing rule in the form of a constraint evaluated against its target"/>
+ </eAnnotations>
+ <eOperations name="getContextSelectorClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorLocalClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique identifier of this audit rule"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not id.oclIsUndefined() implies container.audits->one(i | i.id = self.id)"/>
+ <details key="description" value="Audit rule with the same ID already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//GenConstraint" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A boolean type condition which if not satisfied indicates this audit rule violation. It is evaluated in the context of the target"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this audit is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="message" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text message to be reported in case of this audit violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="severity" eType="#//aNewPackage1/aNewPackage2/GenSeverity"
+ defaultValueLiteral="ERROR">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Describes the severity of this audit rule violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="useInLiveMode" 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="Indicates if this audit should be evaluated also in Live mode. If 'false', only Batch mode is applicable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/audits">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing audit container of this audit rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenSeverity">
+ <eLiterals name="INFO"/>
+ <eLiterals name="WARNING" value="1"/>
+ <eLiterals name="ERROR" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleTarget" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target against which a rule can be evaluated"/>
+ </eAnnotations>
+ <eOperations name="getContext" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the classifier to be used as this rule target evaluation context"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainElementTarget" eSuperTypes=" ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted domain model element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagramElementTarget" eSuperTypes=" ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model selectively, for specific visualized element"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted visualized element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element &lt;> null and element->size() > 1 implies element->forAll(oclIsKindOf(GenNode))"/>
+ <details key="description" value="Multiple diagram elements must be GenNode type conformant"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainAttributeTarget" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents value based target, useful for audit rules expression not capable of ecore meta-model access"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="attribute.ecoreFeature.oclIsKindOf(ecore::EAttribute)"/>
+ <details key="description" value="EAttribute element required for auditable domain attribute"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullAsError" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether null value of the attribute is reported as audit failure or success"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenJavaExpressionProvider" eSuperTypes="">
+ <eOperations name="getOperationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage3">
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricContainer" eSuperTypes="#//GenRuleContainerBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" lowerBound="1"
+ upperBound="-1" eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule"
+ containment="true" eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule/container"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricRule" eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not lowLimit.oclIsUndefined() and not highLimit.oclIsUndefined() implies lowLimit &lt; highLimit"/>
+ <details key="description" value="Metric value 'lowLimit' must be smaller then 'highLimit'"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique key identifying this metric an abbreviation for this metric"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not key.oclIsUndefined() implies container.metrics->one(i | i.key = self.key)"/>
+ <details key="description" value="Metric rule with the same 'key' already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//ValueExpression" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression that calculates the value of this metric which is of EDataType that encapsulates java.lang.Number subclasses or their primitives"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="'ecore::EDoubleObject'"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ eType="#//aNewPackage/GenMeasurable" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this metric is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="highLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer/metrics">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing metric container of this metric rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditedMetricTarget" eSuperTypes="#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target metric which can be evaluated by audit rule. The target context here is the metric rule resulting type classifier"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metric" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Metric wich can be involved in audit"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metricValueContext"
+ lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenDataType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditable" abstract="true"
+ eSuperTypes="">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target suitable for auditing"/>
+ </eAnnotations>
+ <eOperations name="getClientContextID" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets identifier of the validation client context for this target. It's guaranteed as a valid java identifier."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the validation target class in terms of EMFT validation framework."/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore
new file mode 100644
index 000000000..860a246de
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/composite/manyMoves/gmfgenMoves.ecore
@@ -0,0 +1,1445 @@
+<?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="gmfgen"
+ nsURI="http://www.eclipse.org/gmf/2005/GenModel" nsPrefix="gmfgen">
+ <eAnnotations source="http://www.eclipse.org/emf/2004/EmfaticAnnotationMap">
+ <details key="constraints" value="http://www.eclipse.org/gmf/2005/constraints"/>
+ <details key="meta" value="http://www.eclipse.org/gmf/2005/constraints/meta"/>
+ <details key="deprecated" value="http://www.eclipse.org/gmf/2006/deprecated"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="import" value="http://www.eclipse.org/gmf/runtime/1.0.0/notation"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorGenerator">
+ <eOperations name="getAllDomainGenPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns all genpackages from domain genmodel"/>
+ </eAnnotations>
+ <eParameters name="withUsed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="plugin" lowerBound="1"
+ eType="#//GenPlugin" containment="true" eOpposite="#//GenPlugin/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorView" containment="true" eOpposite="#//GenEditorView/editorGen"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainGenModel" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenModel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This is primary EMF genmodel for user's domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Derived from genModel.genPackage[0].getBasePackage() by default"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sameFileForDiagramAndModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specified whether editor should create separate file for domain elements if diagram file references no domain model"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Distinct even when sameFileForDiagramAndModel is true. On init diagram, we just copy domain model element to new file with that extension. I won't try to set this equal to domainFileExtension"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="domainFileExtension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="By default, genModel.genPackage[0].getPrefix().toLowerCase(), as in emf/templates/editor/pluign.xmljet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dynamicTemplates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="templateDirectory" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="copyrightText" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressionProviders" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenEditorView">
+ <eOperations name="getActionBarContributorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false" eOpposite="#//GenEditorGenerator/editor"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="actionBarContributorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconPath" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BatchValidation" interface="true">
+ <eOperations name="getValidationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDiagnosticMarkerType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets diagnostic marker type ID local to the editor plugin. The editor pluginID should be used to fully-qualify this ID."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getMarkerNavigationProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetricViewID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getValidationDecoratorProviderQualifedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="markerNavigationProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If enabled, ValidationAction is contributed by the editor plugin"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="metricProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecorators" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="validationDecoratorProviderPriority"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProviderClassNames" interface="true">
+ <eOperations name="getElementTypesQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPaletteProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getModelingAssistantProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPropertyProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getIconProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getParserProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getAbstractParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeatureParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getStructuralFeaturesParserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContributionItemProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementTypesClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="paletteProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="modelingAssistantProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="propertyProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="parserProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeatureParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="structuralFeaturesParserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="contributionItemProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Shortcuts" interface="true">
+ <eOperations name="getShortcutsDecoratorProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreateShortcutActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateCreateShortcutAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eOperations name="generateShortcutIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsDecoratorProviderPriority"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createShortcutActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="containsShortcutsTo" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model file extensions. Elements of the corresponding models could be shortcutted on this diagram."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortcutsProvidedFor" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of domain meta-model names. Elements of this diagram domain model could be added as a shortcuts to the diagrams of the specified domains."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackageNames" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editCommandsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelpersPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartsPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPoliciesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="providersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoriesPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkConstraints" interface="true">
+ <eOperations name="hasLinkCreationConstraints" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this diagram contains link creation constraints or not"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLinkCreationConstraintsQualifiedClassName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the constraints holder class"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditPartCandies" interface="true">
+ <eOperations name="getReorientConnectionViewCommandQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getEditPartFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseExternalNodeLabelEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getBaseGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getReferenceConnectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextSelectionEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getTextNonResizableEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="reorientConnectionViewCommandClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseEditHelperClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseExternalNodeLabelEditPartClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseItemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="baseGraphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="referenceConnectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textSelectionEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="textNonResizableEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MeasurementUnit" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="units" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Pixel"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenPlugin">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Computed additional dependencies of generated plug-in"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getActivatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false" eOpposite="#//GenEditorGenerator/plugin"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="provider" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="Sample Plugin Provider, Inc"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="1.0.0.qualifier"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="printingEnabled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activatorClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCommonBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="One that combines attributes that are essential for diagram elements"/>
+ </eAnnotations>
+ <eOperations name="getEditPartQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getItemSemanticEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNotationViewFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagram"/>
+ <eOperations name="getClassNamePrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getClassNameSuffux" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getUniqueIdentifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This unique string identifier could be used to construct unique identifiers in generated java code"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getLayoutType" eType="#//ViewmapLayoutType"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramRunTimeClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualID" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="way to decide which editpart to use for specific diagram element. Maps to attribute in DRT."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="visualID >= 0"/>
+ <details key="description" value="Visual ID must be a non-negative integer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//ElementType"
+ containment="true" eOpposite="#//ElementType/diagramElement"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPartClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="itemSemanticEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="notationViewFactoryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="viewmap" lowerBound="1"
+ eType="#//Viewmap" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenContainerBase" interface="true" eSuperTypes="#//GenCommonBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containedNodes" upperBound="-1"
+ volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildContainer" abstract="true" eSuperTypes="#//GenContainerBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for all ChildNode containers"/>
+ </eAnnotations>
+ <eOperations name="getCanonicalEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode" eOpposite="#//GenChildNode/containers"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canonicalEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenTopLevelNode">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not modelFacet.containmentMetaFeature.oclIsUndefined() implies modelFacet.containmentMetaFeature.genClass.ecoreClass.isSuperTypeOf(diagram.domainDiagramElement.ecoreClass)"/>
+ <details key="description" value="Top level node 'Containment Feature' must be available in the diagram 'Domain Element' or its super-class"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildNode">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containers" upperBound="-1"
+ eType="#//GenChildContainer" changeable="false" eOpposite="#//GenChildContainer/childNodes">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let cmps:OrderedSet(GenChildContainer)=containers->select(oclIsKindOf(GenCompartment)) in cmps->exists(oclAsType(GenCompartment).listLayout) implies not cmps->exists(not oclAsType(GenCompartment).listLayout)"/>
+ <details key="description" value="Node is referenced from multiple containers with different 'List Layout' value"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenChildLabelNode" eSuperTypes="#//GenChildNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child node represented by label; typically hosted by list compartment"/>
+ </eAnnotations>
+ <eOperations name="getLabelMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelReadOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="labelElementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labelModelFacet" eType="#//LabelModelFacet"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenCompartment" eSuperTypes="#//GenChildContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child container within node. Compartment, iow."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="canCollapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="hideIfEmpty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="needsTitle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="listLayout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLink" eSuperTypes="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Edge')"/>
+ <details key="description" value="Link 'Diagram Runtime Class' must be a notation::Edge or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getSources" upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link sources in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargets" upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns link targets in this genmodel"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenLinkLabel" containment="true" eOpposite="#//GenLinkLabel/link"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="outgoingCreationAllowed"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Support link creation from source to target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="incomingCreationAllowed"
+ 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="Support link creation from target to source"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewDirectionAlignedWithModel"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="View (Edge) will always be directed from model source to model target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="creationConstraints" eType="#//GenLinkConstraints"
+ containment="true" eOpposite="#//GenLinkConstraints/link">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies additional restrictions on link creation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLabel" abstract="true" eSuperTypes="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label on diagram"/>
+ </eAnnotations>
+ <eOperations name="getMetaFeatures" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns structural features that provide label content"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="readOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//LabelModelFacet"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If model facet is not specified then custom parser should be provided for the label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNodeLabel" eSuperTypes="#//GenLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label within node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(node.getDomainMetaClass().ecoreClass))"/>
+ <details key="description" value="Node label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExternalNodeLabel" eSuperTypes="#//GenNodeLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to node"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkLabel" eSuperTypes="#//GenLabel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Label attached to link"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="(modelFacet.oclIsTypeOf(FeatureLabelModelFacet) or modelFacet.oclIsTypeOf(CompositeFeatureLabelModelFacet))=true implies link.modelFacet.oclIsTypeOf(TypeLinkModelFacet)"/>
+ <details key="description" value="Feature based link labels can only be used on link with class (TypeLinkModelFacet)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let tl: TypeLinkModelFacet = link.modelFacet.oclAsType(TypeLinkModelFacet) in not tl.oclIsUndefined() implies self.getMetaFeatures()->forAll(f|f.ecoreFeature.eContainingClass.isSuperTypeOf(tl.metaClass.ecoreClass))"/>
+ <details key="description" value="Link label meta features must be owned by the node 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink"
+ eOpposite="#//GenLink/labels"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="#//LinkLabelAlignment"
+ defaultValueLiteral="MIDDLE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LinkLabelAlignment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constants from {@link org.eclipse.draw2d.ConnectionLocator}"/>
+ </eAnnotations>
+ <eLiterals name="MIDDLE" value="4"/>
+ <eLiterals name="TARGET" value="3"/>
+ <eLiterals name="SOURCE" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementType" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base element type"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagramElement" lowerBound="1"
+ eType="#//GenCommonBase" eOpposite="#//GenCommonBase/elementType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueIdentifier" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When there's palette, defaults to title of first tool that uses element with this type"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="definedExternally" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MetamodelType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Element type based on ecore type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMetaClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SpecializationType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specialization of metamodel type"/>
+ </eAnnotations>
+ <eOperations name="getEditHelperAdviceQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metamodelType" eType="#//MetamodelType"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editHelperAdviceClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NotationType" eSuperTypes="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pure design element"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelFacet" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for the particular model facets"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelModelFacet" interface="true" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of labels"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass"/>
+ </eAnnotations>
+ <eOperations name="isPhantomElement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaClass" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containmentMetaFeature"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="let r: ecore::EReference=containmentMetaFeature.ecoreFeature.oclAsType(ecore::EReference) in not containmentMetaFeature.oclIsUndefined() implies r.containment or r.eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Containment Meta Feature' must reference 'Meta Class' or its super-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Usually the same as containmentMetaFeature, unless you need to distinguish where to put and where to get from"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not childMetaFeature.oclIsUndefined() implies childMetaFeature.ecoreFeature.oclAsType(ecore::EReference).eReferenceType.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="'Child Meta Feature' must reference 'Meta Class' or its sub-classes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementSelector" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Selection criterion for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelElementInitializer"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="State initializer for domain model elements associated with this type model facet"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureModelFacet" eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaFeatures" lowerBound="2"
+ upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypeLinkModelFacet" eSuperTypes="#//TypeModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of an EClass that associates two EClasses"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not containmentMetaFeature.oclIsUndefined()"/>
+ <details key="description" value="Link 'Containment Meta Feature' must be specified"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceMetaFeature" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If source feature is not specified then link container is a link source"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceMetaFeature.oclIsUndefined() implies sourceMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Source Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetMetaFeature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not targetMetaFeature.oclIsUndefined() implies targetMetaFeature.genClass.ecoreClass.isSuperTypeOf(metaClass.ecoreClass)"/>
+ <details key="description" value="Link 'Target Meta Feature' must be owned by link 'Meta Class' or its super-class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLabelModelFacet" eSuperTypes="#//FeatureModelFacet #//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of label based on an EStructuralFeature"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompositeFeatureLabelModelFacet" eSuperTypes="#//CompositeFeatureModelFacet #//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label based on a number of EStructuralFeatures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewPattern" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce label on diagram"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pattern for java.text.MessageFormat to produce text for inplace editor; if not specified then viewPattern should be used"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DesignLabelModelFacet" eSuperTypes="#//LabelModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a label with DescriptionStyle"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Attributes" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Captures aspects of variuos draw2d classes"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ColorAttributes" eSuperTypes="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Deprecated, use StyleAttributes instead"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="foregroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="backgroundColor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ResizeConstraints" eSuperTypes="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Bit-wise OR of any {@link org.eclipse.draw2d.PositionConstants#NORTH}, {@link org.eclipse.draw2d.PositionConstants#SOUTH}, {@link org.eclipse.draw2d.PositionConstants#EAST} or {@link org.eclipse.draw2d.PositionConstants#WEST}"/>
+ </eAnnotations>
+ <eOperations name="getResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Convenient method to get {@link org.eclipse.draw2d.PositionConstants} names from resizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getNonResizeHandleNames" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as {@link #getResizeHandleNames()}, for nonResizeHandle attribute"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Any direction mentioned here (and combination thereof, like e.g. NORTH_WEST) is added as resizable handle"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonResizeHandles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="0">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Directions mentioned with this attribute are explicitly denoted as non-resizable (i.e. with 'move' cursor). If you'd like to omit handle {@link org.eclipse.gef.editpolicies.ResizableEditPolicy#createSelectionHandles} completely, just don't list it here"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DefaultSizeAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="40"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="30"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelOffsetAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Viewmap" abstract="true">
+ <eOperations name="find" eType="#//Attributes">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns first attributes instance of specified class, if any"/>
+ </eAnnotations>
+ <eParameters name="attributesClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//Attributes" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="layoutType" eType="#//ViewmapLayoutType"
+ defaultValueLiteral="UNKNOWN"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ViewmapLayoutType">
+ <eLiterals name="UNKNOWN"/>
+ <eLiterals name="XY_LAYOUT" value="1"/>
+ <eLiterals name="FLOW_LAYOUT" value="2"/>
+ <eLiterals name="TOOLBAR_LAYOUT" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Name of GEF Figure class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SnippetViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InnerClassViewmap" eSuperTypes="#//Viewmap">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classBody" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ParentAssignedViewmap" eSuperTypes="#//Viewmap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Figure (with specified class name, if any) will be assigned by (or should be taken from) parent"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="getterName" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Access figure from parent's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="setterName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Child could provide typed alternative to setFigure() method"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="figureQualifiedClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When specified, type of child's figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression as a is textual statement which results in a value when evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text of the expression"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="body"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage" defaultValueLiteral="ocl">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the language in which the expression is stated"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="langName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="lang"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenConstraint" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Boolean type value expression which is to be evaluated in a context"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="Constraint"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Palette">
+ <eOperations name="getFactoryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="diagram" lowerBound="1"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="flyout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="groups" lowerBound="1"
+ upperBound="-1" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="GEF allows only containers as palette immediate children"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="factoryClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EntryBase" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="largeIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="smallIconPath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createMethodName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolEntry" eSuperTypes="#//EntryBase ">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genNodes" upperBound="-1"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="genLinks" upperBound="-1"
+ eType="#//GenLink"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+ eType="#//GenCommonBase" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Enforces 'tool for either node or link' - if there are values in genNodes list, returns it (no respect to values in genLinks); returns value of genLinks otherwise"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedToolName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Optional"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenLinkConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Groups constraints on the link source and target end"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not sourceEnd.oclIsUndefined() or not targetEnd.oclIsUndefined()"/>
+ <details key="description" value="Either 'sourceEnd' or 'targetEnd' constraint must be specified"/>
+ </eAnnotations>
+ <eOperations name="getLinkClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The domain meta element class of the link restricted by this constraints"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getSourceEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the source end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetEndContextClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context class for the target end constraint evaluation"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getConstraintsInstanceFieldName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Returns the name of the field holding Link Constraints instance"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="link" lowerBound="1" eType="#//GenLink"
+ eOpposite="#//GenLink/creationConstraints">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the owning link of this constraints"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceEnd" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the source end, may reference variables 'oppositeEnd' pointing to targetEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetEnd" eType="#//GenConstraint"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Restriction enforced by the the target end, may reference variables 'oppositeEnd' pointing to sourceEnd and 'link' denoting the link domainmetaElement instance if available."/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="getTargetEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="variable"/>
+ <details key="name" value="oppositeEnd"/>
+ <details key="type.ocl" value="getSourceEndContextClass().ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleContainerBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base container for rules like audit, metrics..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editor" lowerBound="1"
+ eType="#//GenEditorGenerator" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The editor generator containing this rule container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionInterpreter">
+ <eOperations name="getQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getExpressionAccessor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
+ eType="#//GenLanguage"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requiredPluginIDs" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenLanguage">
+ <eLiterals name="ocl"/>
+ <eLiterals name="java" value="1"/>
+ <eLiterals name="regexp" value="2"/>
+ <eLiterals name="nregexp" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNotationElementTarget" eSuperTypes="#//GenMeasurable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted diagram notation model element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element.ecoreClass.eAllSuperTypes->including(element.ecoreClass)->one(ePackage.name = 'notation' and name = 'View')"/>
+ <details key="description" value="'notation::View' or its sub-class must be set to NotationElement target"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMeasurable" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface for anything that can be subject to metrics"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderContainer">
+ <eOperations name="getProvider" eType="#//GenExpressionProviderBase">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ <eOperations name="getAbstractExpressionQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="expressionsPackageName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstractExpressionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="providers" upperBound="-1"
+ eType="#//GenExpressionProviderBase" containment="true" eOpposite="#//GenExpressionProviderBase/container"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" lowerBound="1"
+ eType="#//GenEditorGenerator"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenExpressionProviderBase" abstract="true">
+ <eOperations name="getRequiredPluginIDs" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLanguage" lowerBound="1" eType="#//GenLanguage"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" upperBound="-1"
+ eType="#//ValueExpression"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//GenExpressionProviderContainer" eOpposite="#//GenExpressionProviderContainer/providers"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage">
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroupItem" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Separator" eSuperTypes="#//aNewPackage/ToolGroupItem"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ToolGroup" eSuperTypes="#//EntryBase #//aNewPackage/ToolGroupItem">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stack" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="collapse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entries" lowerBound="1"
+ upperBound="-1" eType="#//aNewPackage/ToolGroupItem" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="toolsOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenElementInitializer" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for initializers of domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typeModelFacet" lowerBound="1"
+ eType="#//TypeModelFacet" changeable="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type model facet whose domain model element is to be intialized by this initializer"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureSeqInitializer" eSuperTypes="#//aNewPackage/GenElementInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Feature sequence initializer"/>
+ </eAnnotations>
+ <eOperations name="getElementClassAccessorName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the accessor name of this initializer's element class meta object within its package interface"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains this initializer's element class meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="initializers" lowerBound="1"
+ upperBound="-1" eType="#//aNewPackage/GenFeatureValueSpec" containment="true"
+ eOpposite="#//aNewPackage/GenFeatureValueSpec/featureSeqInitializer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specifications as initializers for individual features which should be initialized in the order given by this list"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="typeModelFacet.metaClass.ecoreClass"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenFeatureValueSpec" eSuperTypes="#//ValueExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specification associated with a specific feature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="ValueSpec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="feature.ecoreFeature"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies feature.ecoreFeature.eContainingClass.isSuperTypeOf(featureSeqInitializer.typeModelFacet.metaClass.ecoreClass)"/>
+ <details key="description" value="The feature of 'GenFeatureValueSpec' must be available in 'Meta Class' of the initialized element"/>
+ </eAnnotations>
+ <eOperations name="getFeatureQualifiedPackageInterfaceName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the qualified name of the package interface which contains the given feature meta object"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The feature for which this value expression is specified"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="feature &lt;> null implies not featureSeqInitializer.initializers->exists(i| i &lt;> self and feature = self.feature)"/>
+ <details key="description" value="The feature is already initialized by another 'GenFeatureValueSpec' in the sequence"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="featureSeqInitializer"
+ lowerBound="1" eType="#//aNewPackage/GenFeatureSeqInitializer" eOpposite="#//aNewPackage/GenFeatureSeqInitializer/initializers"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="aNewPackage1">
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagram" eSuperTypes="#//GenContainerBase #//PackageNames #//ProviderClassNames #//LinkConstraints #//EditPartCandies #//Shortcuts #//BatchValidation #//MeasurementUnit">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Diagram')"/>
+ <details key="description" value="'Diagram Runtime Class' must be a notation::Diagram or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getAllNodes" upperBound="-1"/>
+ <eOperations name="getAllChildContainers" upperBound="-1" eType="#//GenChildContainer"/>
+ <eOperations name="getAllContainers" upperBound="-1" eType="#//GenContainerBase"/>
+ <eOperations name="getElementInitializersClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the class to hold the initializer methods for domain elements"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getElementInitializersPackageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the name of the package to hold the element initializers class"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="editorGen" eType="#//GenEditorGenerator"
+ changeable="false"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="domainDiagramElement"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childNodes" upperBound="-1"
+ eType="#//GenChildNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="topLevelNodes" upperBound="-1"
+ eType="#//GenTopLevelNode" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="links" upperBound="-1"
+ eType="#//GenLink" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="palette" eType="#//Palette"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ProviderPriority">
+ <eLiterals name="Lowest"/>
+ <eLiterals name="Low" value="1"/>
+ <eLiterals name="Medium" value="2"/>
+ <eLiterals name="High" value="3"/>
+ <eLiterals name="Highest" value="4"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FeatureLinkModelFacet" eSuperTypes="#//FeatureModelFacet ">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of a feature-based link"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StyleAttributes" eSuperTypes="#//Attributes">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedFont" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedForeground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fixedBackground" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage2">
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditContainer" eSuperTypes="#//GenRuleContainerBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Container for audit rules representing a hierarchical organization of audits in the constraint category hierarchy of emft.validation framework"/>
+ </eAnnotations>
+ <eOperations name="getAllAuditRules" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit rules from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllAuditContainers" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all audit containers from this audit container hierarchy recursively"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getPath" lowerBound="1" upperBound="-1" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets hierarchical path of this audit container as ordered list of containers beginning with the root and ended with this container"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllRulesToTargetContextMap" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Maps all rules in the container hierarchy to client context IDs of their target contexts. key: (context ID of rule target) value: (EList&lt;GenAuditRule>)"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getAllTargetedModelPackages" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets all model packages to which rules in this container hierarchy are targeted. Checks rules recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="hasDiagramElementRule" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether this container hierarchy contains at least 1 rule targeted on notation elements. Checks recursively."/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Identifier which is unique within the scope of its parent container."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name for the category of audits organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this audit container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parentContainer" eType="#//aNewPackage1/aNewPackage2/GenAuditContainer"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/childContainers"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="audits" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditRule" containment="true" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditRule/container">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The audit rules organized in this container"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="childContainers" upperBound="-1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" containment="true"
+ eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/parentContainer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleBase" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Base class for rule like audit, metric rules..."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A human readable name of this rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The detailed description of this rule semantics"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditRule" eSuperTypes="#//aNewPackage1/aNewPackage2/GenRuleBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Auditing rule in the form of a constraint evaluated against its target"/>
+ </eAnnotations>
+ <eOperations name="getContextSelectorClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorQualifiedClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getContextSelectorLocalClassName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique identifier of this audit rule"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not id.oclIsUndefined() implies container.audits->one(i | i.id = self.id)"/>
+ <details key="description" value="Audit rule with the same ID already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//GenConstraint" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A boolean type condition which if not satisfied indicates this audit rule violation. It is evaluated in the context of the target"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this audit is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="message" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text message to be reported in case of this audit violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="severity" eType="#//aNewPackage1/aNewPackage2/GenSeverity"
+ defaultValueLiteral="ERROR">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Describes the severity of this audit rule violation"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="useInLiveMode" 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="Indicates if this audit should be evaluated also in Live mode. If 'false', only Batch mode is applicable"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/GenAuditContainer" eOpposite="#//aNewPackage1/aNewPackage2/GenAuditContainer/audits">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing audit container of this audit rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="GenSeverity">
+ <eLiterals name="INFO"/>
+ <eLiterals name="WARNING" value="1"/>
+ <eLiterals name="ERROR" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenRuleTarget" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target against which a rule can be evaluated"/>
+ </eAnnotations>
+ <eOperations name="getContext" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the classifier to be used as this rule target evaluation context"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainElementTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on domain model elements"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted domain model element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDiagramElementTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target for rules applied on diagram notation model selectively, for specific visualized element"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" lowerBound="1"
+ upperBound="-1" eType="#//GenCommonBase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Targeted visualized element"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="element &lt;> null and element->size() > 1 implies element->forAll(oclIsKindOf(GenNode))"/>
+ <details key="description" value="Multiple diagram elements must be GenNode type conformant"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenDomainAttributeTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents value based target, useful for audit rules expression not capable of ecore meta-model access"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
+ eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenFeature">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="attribute.ecoreFeature.oclIsKindOf(ecore::EAttribute)"/>
+ <details key="description" value="EAttribute element required for auditable domain attribute"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nullAsError" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether null value of the attribute is reported as audit failure or success"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenJavaExpressionProvider">
+ <eOperations name="getOperationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eParameters name="expression" lowerBound="1" eType="#//ValueExpression"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EditorCandies" interface="true">
+ <eOperations name="getCreationWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getCreationWizardPageQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramEditorUtilQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDiagramFileCreatorQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getDocumentProviderQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getInitDiagramFileActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getNewDiagramFileWizardQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getMatchingStrategyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getPreferenceInitializerQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getVisualIDRegistryQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getElementChooserQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="getLoadResourceActionQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eOperations name="generateInitDiagramAction" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardPageClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardIconPath"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="creationWizardCategoryID"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramEditorUtilClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="diagramFileCreatorClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="documentProviderClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="initDiagramFileActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="newDiagramFileWizardClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="matchingStrategyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="preferenceInitializerClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visualIDRegistryClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementChooserClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadResourceActionClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="editingDomainID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenNode" abstract="true" eSuperTypes="#//GenChildContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="EClass mapped to Node"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="diagramRunTimeClass.ecoreClass.eAllSuperTypes->including(diagramRunTimeClass.ecoreClass)->one(ePackage.name = 'notation' and name = 'Node')"/>
+ <details key="description" value="Node 'Diagram Runtime Class' must be a notation::Node or sub-class"/>
+ </eAnnotations>
+ <eOperations name="getDomainMetaClass" lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Delegates to modelFacet"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getGraphicalNodeEditPolicyQualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="valid only when there are compartments"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modelFacet" eType="#//TypeModelFacet"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//GenNodeLabel" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//GenCompartment"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="graphicalNodeEditPolicyClassName"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkModelFacet" interface="true"
+ eSuperTypes="#//ModelFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Model facet of links"/>
+ </eAnnotations>
+ <eOperations name="getSourceTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ <eOperations name="getTargetTypes" upperBound="-1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricRule">
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not lowLimit.oclIsUndefined() and not highLimit.oclIsUndefined() implies lowLimit &lt; highLimit"/>
+ <details key="description" value="Metric value 'lowLimit' must be smaller then 'highLimit'"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Unique key identifying this metric an abbreviation for this metric"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints">
+ <details key="ocl" value="not key.oclIsUndefined() implies container.metrics->one(i | i.key = self.key)"/>
+ <details key="description" value="Metric rule with the same 'key' already exists"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rule" lowerBound="1"
+ eType="#//ValueExpression" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Expression that calculates the value of this metric which is of EDataType that encapsulates java.lang.Number subclasses or their primitives"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="context"/>
+ <details key="ocl" value="target.getContext()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/gmf/2005/constraints/meta">
+ <details key="def" value="type"/>
+ <details key="ocl" value="'ecore::EDoubleObject'"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
+ containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target representing the context this metric is evaluated in"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="highLimit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDoubleObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" lowerBound="1"
+ eType="#//aNewPackage1/aNewPackage2/aNewPackage3/GenMetricContainer">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The containing metric container of this metric rule"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eSubpackages name="aNewPackage3">
+ <eClassifiers xsi:type="ecore:EClass" name="GenMetricContainer" eSuperTypes="#//GenRuleContainerBase">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metrics" lowerBound="1"
+ upperBound="-1" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditedMetricTarget" eSuperTypes="#//aNewPackage1/aNewPackage2/aNewPackage3/GenAuditable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target metric which can be evaluated by audit rule. The target context here is the metric rule resulting type classifier"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metric" lowerBound="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Metric wich can be involved in audit"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metricValueContext"
+ lowerBound="1" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenDataType"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GenAuditable" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Target suitable for auditing"/>
+ </eAnnotations>
+ <eOperations name="getClientContextID" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets identifier of the validation client context for this target. It's guaranteed as a valid java identifier."/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getTargetClass" eType="ecore:EClass ../../../plugin/org.eclipse.emf.codegen.ecore/model/GenModel.ecore#//GenClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gets the validation target class in terms of EMFT validation framework."/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ </eSubpackages>
+ </eSubpackages>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore
new file mode 100644
index 000000000..26373d08f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph.ecore
@@ -0,0 +1,465 @@
+<?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="gmfgraph"
+ nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition" nsPrefix="gmfgraph">
+ <eClassifiers xsi:type="ecore:EClass" name="Canvas" eSuperTypes="#//Identity">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="figures" upperBound="-1"
+ eType="#//FigureGallery" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="containment here doesn't restrict nodes/connection from using figure galeries defined elsewhere. No assumption should be made whether or not node/connection figure is defined in the galery beloning to this canvas"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1"
+ eType="#//Node" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="connections" upperBound="-1"
+ eType="#//Connection" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//Compartment" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//DiagramLabel" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureGallery" eSuperTypes="#//Identity">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Kind of explicit figure library notion. Bundle of figures. Allows to specify plugin id (allows importing it later from gmfgen code) in addition to figures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="figures" upperBound="-1"
+ eType="#//Figure" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="implementationBundle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Identity" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Easy and readable way to reference element of the model from another one"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ iD="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DiagramElement" abstract="true" eSuperTypes="#//Identity">
+ <eOperations name="find" eType="#//VisualFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="utility operation to get first visual facet assignable (in Java terms, {@link Class#isAssignableFrom(Class)}) to variables of designated class. Argument can't be null"/>
+ </eAnnotations>
+ <eParameters name="facetClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="figure" lowerBound="1"
+ eType="#//FigureHandle" eOpposite="#//FigureHandle/referencingElements"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="facets" upperBound="-1"
+ eType="#//VisualFacet" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="anything to further specify constraint or any other aspect of the element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//DiagramElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="nodeFigure" lowerBound="1"
+ eType="#//Figure" changeable="false" volatile="true" transient="true" derived="true"
+ resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specializes DiagramElement.figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resizeConstraint" eType="#//Direction"
+ defaultValueLiteral="NSEW"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="affixedParentSide" eType="#//Direction"
+ defaultValueLiteral="NONE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Connection" eSuperTypes="#//DiagramElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="connectionFigure" lowerBound="1"
+ eType="#//Figure" changeable="false" volatile="true" transient="true" derived="true"
+ resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specializes DiagramElement.figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Compartment" eSuperTypes="#//DiagramElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="collapsible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="needsTitle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DiagramLabel" eSuperTypes="#//Node">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="VisualFacet" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="GeneralFacet" eSuperTypes="#//VisualFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="provide means to attach arbitrary data to your diagram element definition. It's up to you (template author) to process it somehow."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="identifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ iD="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="data" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AlignmentFacet" eSuperTypes="#//VisualFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Makes sense for DiagramLabels of Links only (now). Constants from {@link org.eclipse.draw2d.ConnectionLocator} are: MIDDLE = Alignment.CENTER, TARGET = Alignment.END, SOURCE = Alignment.BEGINNING"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="#//Alignment"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GradientFacet" eSuperTypes="#//VisualFacet">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" eType="#//Direction"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelOffsetFacet" eSuperTypes="#//VisualFacet">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DefaultSizeFacet" eSuperTypes="#//VisualFacet">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="defaultSize" eType="#//Dimension"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureMarker" interface="true" eSuperTypes="#//Layoutable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Anything you could combine visual representation from. Ordinary GEF figures, custom-defined or references to defined elsewhere."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Figure"
+ changeable="false" resolveProxies="false" eOpposite="#//Figure/children"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureHandle" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Entry in the figure's hierarchy to reference from diagram element"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="referencingElements" upperBound="-1"
+ eType="#//DiagramElement" eOpposite="#//DiagramElement/figure"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Figure" interface="true" eSuperTypes="#//FigureMarker #//FigureHandle #//Identity">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.Figure"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1"
+ eType="#//FigureMarker" containment="true" eOpposite="#//FigureMarker/parent"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="foregroundColor" eType="#//Color"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="backgroundColor" eType="#//Color"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="maximumSize" eType="#//Dimension"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="minimumSize" eType="#//Dimension"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preferredSize" eType="#//Dimension"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="font" eType="#//Font" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="insets" eType="#//Insets"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="border" eType="#//Border"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="location" eType="#//Point"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="size" eType="#//Point"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureRef" eSuperTypes="#//FigureMarker">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Need this to facilitate reuse of figures while keeping (so nice looking) containment relationship in the Figure class"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="figure" lowerBound="1"
+ eType="#//Figure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="not FigureMarker because don't want to reference figure references."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConnectionFigure" interface="true" eSuperTypes="#//Figure"/>
+ <eClassifiers xsi:type="ecore:EClass" name="DecorationFigure" interface="true" eSuperTypes="#//Figure"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Shape" abstract="true" eSuperTypes="#//Figure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.Shape"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="outline" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fill" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lineWidth" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lineKind" eType="#//LineKind"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="xorFill" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="xorOutline" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="resolvedChildren" upperBound="-1"
+ eType="#//Figure" changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as children, but resolves child FigureRefs, if any, to Figures"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Label" eSuperTypes="#//Figure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.Label"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="text" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabeledContainer" eSuperTypes="#//Figure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.LabeledContainer"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Rectangle" eSuperTypes="#//Shape">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.RectangleFigure"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RoundedRectangle" eSuperTypes="#//Shape">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.RoundedRectangle"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="cornerWidth" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="8"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="cornerHeight" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="8"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Ellipse" eSuperTypes="#//Shape">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.Ellipse"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Polyline" eSuperTypes="#//Shape">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.Polyline"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="template" upperBound="-1"
+ eType="#//Point" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Polygon" eSuperTypes="#//Polyline">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.Polygon"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ScalablePolygon" eSuperTypes="#//Polygon">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface to denote polygons with ability to autoscale to fit all available bounds. Separate class is needed instead of property in the Polygon class because of generalization PolygonDecoration extends Polygon"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PolylineConnection" eSuperTypes="#//Polyline #//ConnectionFigure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.PolylineConnection"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceDecoration" eType="#//DecorationFigure"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetDecoration" eType="#//DecorationFigure"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PolylineDecoration" eSuperTypes="#//Polyline #//DecorationFigure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.PolylineDecoration"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PolygonDecoration" eSuperTypes="#//Polygon #//DecorationFigure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.PolygonDecoration"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomClass" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bundleName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//CustomAttribute" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomAttribute">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="null"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="directAccess" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiStatementValue" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureAccessor" eSuperTypes="#//FigureHandle">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="accessor" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typedFigure" eType="#//CustomFigure"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomFigure" eSuperTypes="#//Figure #//CustomClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Any figure class provided by some bundle"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="customChildren" upperBound="-1"
+ eType="#//FigureAccessor" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomDecoration" eSuperTypes="#//CustomFigure #//DecorationFigure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as CustomFigure, but for Decorations"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomConnection" eSuperTypes="#//CustomFigure #//ConnectionFigure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as CustomFigure, but for Connections"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Color" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="RGBColor" eSuperTypes="#//Color">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="red" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="green" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="blue" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConstantColor" eSuperTypes="#//Color">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="#//ColorConstants"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ColorConstants">
+ <eLiterals name="white"/>
+ <eLiterals name="black" value="1"/>
+ <eLiterals name="lightGray" value="2"/>
+ <eLiterals name="gray" value="3"/>
+ <eLiterals name="darkGray" value="4"/>
+ <eLiterals name="red" value="5"/>
+ <eLiterals name="orange" value="6"/>
+ <eLiterals name="yellow" value="7"/>
+ <eLiterals name="green" value="8"/>
+ <eLiterals name="lightGreen" value="9"/>
+ <eLiterals name="darkGreen" value="10"/>
+ <eLiterals name="cyan" value="11"/>
+ <eLiterals name="lightBlue" value="12"/>
+ <eLiterals name="blue" value="13"/>
+ <eLiterals name="darkBlue" value="14"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Font" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="BasicFont" eSuperTypes="#//Font">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="faceName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="9"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="style" eType="#//FontStyle"
+ defaultValueLiteral="NORMAL"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="FontStyle">
+ <eLiterals name="NORMAL"/>
+ <eLiterals name="BOLD" value="1"/>
+ <eLiterals name="ITALIC" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Point">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Dimension">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dx" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dy" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Insets">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="top" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="left" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bottom" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="right" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Border" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="LineBorder" eSuperTypes="#//Border">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="color" eType="#//Color"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MarginBorder" eSuperTypes="#//Border">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="insets" eType="#//Insets"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompoundBorder" eSuperTypes="#//Border">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outer" eType="#//Border"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inner" eType="#//Border"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomBorder" eSuperTypes="#//Border #//CustomClass"/>
+ <eClassifiers xsi:type="ecore:EEnum" name="Direction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Geographical bit constants from org.eclipse.draw2d.PositionConstants"/>
+ </eAnnotations>
+ <eLiterals name="NONE"/>
+ <eLiterals name="NORTH" value="1"/>
+ <eLiterals name="SOUTH" value="4"/>
+ <eLiterals name="WEST" value="8"/>
+ <eLiterals name="EAST" value="16"/>
+ <eLiterals name="NORTH_EAST" value="17"/>
+ <eLiterals name="NORTH_WEST" value="9"/>
+ <eLiterals name="SOUTH_EAST" value="20"/>
+ <eLiterals name="SOUTH_WEST" value="12"/>
+ <eLiterals name="NORTH_SOUTH" value="5"/>
+ <eLiterals name="EAST_WEST" value="24"/>
+ <eLiterals name="NSEW" value="29"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LineKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.Graphics.LINE_* (== org.eclipse.swt.SWT.LINE_*. Values are same as SWT constants"/>
+ </eAnnotations>
+ <eLiterals name="LINE_SOLID" value="1"/>
+ <eLiterals name="LINE_DASH" value="2"/>
+ <eLiterals name="LINE_DOT" value="3"/>
+ <eLiterals name="LINE_DASHDOT" value="4"/>
+ <eLiterals name="LINE_DASHDOTDOT" value="5"/>
+ <eLiterals name="LINE_CUSTOM" value="6"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LayoutData" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owner" lowerBound="1" eType="#//Layoutable"
+ eOpposite="#//Layoutable/layoutData"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomLayoutData" eSuperTypes="#//LayoutData #//CustomClass"/>
+ <eClassifiers xsi:type="ecore:EClass" name="GridLayoutData" eSuperTypes="#//LayoutData">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="grabExcessHorizontalSpace"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="grabExcessVerticalSpace"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="verticalAlignment" lowerBound="1"
+ eType="#//Alignment" defaultValueLiteral="CENTER"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="horizontalAlignment" lowerBound="1"
+ eType="#//Alignment" defaultValueLiteral="CENTER"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="verticalSpan" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="horizontalSpan" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="horizontalIndent" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sizeHint" eType="#//Dimension"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BorderLayoutData" eSuperTypes="#//LayoutData">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" lowerBound="1"
+ eType="#//Alignment" defaultValueLiteral="CENTER"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="vertical" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Alignment">
+ <eLiterals name="BEGINNING"/>
+ <eLiterals name="CENTER" value="1"/>
+ <eLiterals name="END" value="2"/>
+ <eLiterals name="FILL" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Layoutable" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="layoutData" eType="#//LayoutData"
+ containment="true" eOpposite="#//LayoutData/owner"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="layout" eType="#//Layout"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Layout" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomLayout" eSuperTypes="#//Layout #//CustomClass"/>
+ <eClassifiers xsi:type="ecore:EClass" name="GridLayout" eSuperTypes="#//Layout">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="numColumns" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="equalWidth" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="margins" eType="#//Dimension"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="spacing" eType="#//Dimension"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BorderLayout" eSuperTypes="#//Layout">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="spacing" eType="#//Dimension"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FlowLayout" eSuperTypes="#//Layout">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="vertical" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="matchMinorSize" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="forceSingleLine" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="majorAlignment" eType="#//Alignment"
+ defaultValueLiteral="BEGINNING"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="minorAlignment" eType="#//Alignment"
+ defaultValueLiteral="BEGINNING"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="majorSpacing" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="5"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="minorSpacing" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="5"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="XYLayout" eSuperTypes="#//Layout"/>
+ <eClassifiers xsi:type="ecore:EClass" name="XYLayoutData" eSuperTypes="#//LayoutData">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="topLeft" lowerBound="1"
+ eType="#//Point" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="size" lowerBound="1" eType="#//Dimension"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StackLayout" eSuperTypes="#//Layout"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore
new file mode 100644
index 000000000..f8e06ae5f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/composite/order/gmfgraph_unordered.ecore
@@ -0,0 +1,465 @@
+<?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="gmfgraph"
+ nsURI="http://www.eclipse.org/gmf/2005/GraphicalDefinition" nsPrefix="gmfgraph">
+ <eClassifiers xsi:type="ecore:EClass" name="FigureGallery" eSuperTypes="#//Identity">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Kind of explicit figure library notion. Bundle of figures. Allows to specify plugin id (allows importing it later from gmfgen code) in addition to figures"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="figures" upperBound="-1"
+ eType="#//Figure" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="implementationBundle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//DiagramElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="nodeFigure" lowerBound="1"
+ eType="#//Figure" changeable="false" volatile="true" transient="true" derived="true"
+ resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specializes DiagramElement.figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="resizeConstraint" eType="#//Direction"
+ defaultValueLiteral="NSEW"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="affixedParentSide" eType="#//Direction"
+ defaultValueLiteral="NONE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DiagramElement" abstract="true" eSuperTypes="#//Identity">
+ <eOperations name="find" eType="#//VisualFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="utility operation to get first visual facet assignable (in Java terms, {@link Class#isAssignableFrom(Class)}) to variables of designated class. Argument can't be null"/>
+ </eAnnotations>
+ <eParameters name="facetClass" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="figure" lowerBound="1"
+ eType="#//FigureHandle" eOpposite="#//FigureHandle/referencingElements"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="facets" upperBound="-1"
+ eType="#//VisualFacet" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="anything to further specify constraint or any other aspect of the element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Canvas" eSuperTypes="#//Identity">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="figures" upperBound="-1"
+ eType="#//FigureGallery" containment="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="containment here doesn't restrict nodes/connection from using figure galeries defined elsewhere. No assumption should be made whether or not node/connection figure is defined in the galery beloning to this canvas"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1"
+ eType="#//Node" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="connections" upperBound="-1"
+ eType="#//Connection" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="compartments" upperBound="-1"
+ eType="#//Compartment" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
+ eType="#//DiagramLabel" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Identity" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Easy and readable way to reference element of the model from another one"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ iD="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="VisualFacet" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="DiagramLabel" eSuperTypes="#//Node">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIcon" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GeneralFacet" eSuperTypes="#//VisualFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="provide means to attach arbitrary data to your diagram element definition. It's up to you (template author) to process it somehow."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="identifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ iD="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="data" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Compartment" eSuperTypes="#//DiagramElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="collapsible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="needsTitle" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Connection" eSuperTypes="#//DiagramElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="connectionFigure" lowerBound="1"
+ eType="#//Figure" changeable="false" volatile="true" transient="true" derived="true"
+ resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specializes DiagramElement.figure"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GradientFacet" eSuperTypes="#//VisualFacet">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" eType="#//Direction"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AlignmentFacet" eSuperTypes="#//VisualFacet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Makes sense for DiagramLabels of Links only (now). Constants from {@link org.eclipse.draw2d.ConnectionLocator} are: MIDDLE = Alignment.CENTER, TARGET = Alignment.END, SOURCE = Alignment.BEGINNING"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" eType="#//Alignment"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabelOffsetFacet" eSuperTypes="#//VisualFacet">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Figure" interface="true" eSuperTypes="#//FigureMarker #//FigureHandle #//Identity">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.Figure"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1"
+ eType="#//FigureMarker" containment="true" eOpposite="#//FigureMarker/parent"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="foregroundColor" eType="#//Color"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="backgroundColor" eType="#//Color"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="maximumSize" eType="#//Dimension"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="minimumSize" eType="#//Dimension"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preferredSize" eType="#//Dimension"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="font" eType="#//Font" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="insets" eType="#//Insets"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="border" eType="#//Border"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="location" eType="#//Point"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="size" eType="#//Point"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureMarker" interface="true" eSuperTypes="#//Layoutable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Anything you could combine visual representation from. Ordinary GEF figures, custom-defined or references to defined elsewhere."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Figure"
+ changeable="false" resolveProxies="false" eOpposite="#//Figure/children"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureHandle" interface="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Entry in the figure's hierarchy to reference from diagram element"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="referencingElements" upperBound="-1"
+ eType="#//DiagramElement" eOpposite="#//DiagramElement/figure"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureRef" eSuperTypes="#//FigureMarker">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Need this to facilitate reuse of figures while keeping (so nice looking) containment relationship in the Figure class"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="figure" lowerBound="1"
+ eType="#//Figure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="not FigureMarker because don't want to reference figure references."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DefaultSizeFacet" eSuperTypes="#//VisualFacet">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="defaultSize" eType="#//Dimension"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DecorationFigure" interface="true" eSuperTypes="#//Figure"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Shape" abstract="true" eSuperTypes="#//Figure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.Shape"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="outline" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fill" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lineWidth" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lineKind" eType="#//LineKind"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="xorFill" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="xorOutline" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="resolvedChildren" upperBound="-1"
+ eType="#//Figure" changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as children, but resolves child FigureRefs, if any, to Figures"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RoundedRectangle" eSuperTypes="#//Shape">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.RoundedRectangle"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="cornerWidth" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="8"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="cornerHeight" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="8"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConnectionFigure" interface="true" eSuperTypes="#//Figure"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Label" eSuperTypes="#//Figure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.Label"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="text" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LabeledContainer" eSuperTypes="#//Figure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.LabeledContainer"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Rectangle" eSuperTypes="#//Shape">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.RectangleFigure"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Ellipse" eSuperTypes="#//Shape">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.Ellipse"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Polyline" eSuperTypes="#//Shape">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.Polyline"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="template" upperBound="-1"
+ eType="#//Point" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Polygon" eSuperTypes="#//Polyline">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.Polygon"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ScalablePolygon" eSuperTypes="#//Polygon">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Marker interface to denote polygons with ability to autoscale to fit all available bounds. Separate class is needed instead of property in the Polygon class because of generalization PolygonDecoration extends Polygon"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PolylineConnection" eSuperTypes="#//Polyline #//ConnectionFigure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.PolylineConnection"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sourceDecoration" eType="#//DecorationFigure"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="targetDecoration" eType="#//DecorationFigure"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PolygonDecoration" eSuperTypes="#//Polygon #//DecorationFigure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.PolygonDecoration"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomClass" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bundleName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" upperBound="-1"
+ eType="#//CustomAttribute" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FigureAccessor" eSuperTypes="#//FigureHandle">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="accessor" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="typedFigure" eType="#//CustomFigure"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PolylineDecoration" eSuperTypes="#//Polyline #//DecorationFigure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.PolylineDecoration"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomConnection" eSuperTypes="#//CustomFigure #//ConnectionFigure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as CustomFigure, but for Connections"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomFigure" eSuperTypes="#//Figure #//CustomClass">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Any figure class provided by some bundle"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="customChildren" upperBound="-1"
+ eType="#//FigureAccessor" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Color" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomAttribute">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="null"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="directAccess" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiStatementValue" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomDecoration" eSuperTypes="#//CustomFigure #//DecorationFigure">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Same as CustomFigure, but for Decorations"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConstantColor" eSuperTypes="#//Color">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1" eType="#//ColorConstants"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ColorConstants">
+ <eLiterals name="white"/>
+ <eLiterals name="black" value="1"/>
+ <eLiterals name="lightGray" value="2"/>
+ <eLiterals name="gray" value="3"/>
+ <eLiterals name="darkGray" value="4"/>
+ <eLiterals name="red" value="5"/>
+ <eLiterals name="orange" value="6"/>
+ <eLiterals name="yellow" value="7"/>
+ <eLiterals name="green" value="8"/>
+ <eLiterals name="lightGreen" value="9"/>
+ <eLiterals name="darkGreen" value="10"/>
+ <eLiterals name="cyan" value="11"/>
+ <eLiterals name="lightBlue" value="12"/>
+ <eLiterals name="blue" value="13"/>
+ <eLiterals name="darkBlue" value="14"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="FontStyle">
+ <eLiterals name="NORMAL"/>
+ <eLiterals name="BOLD" value="1"/>
+ <eLiterals name="ITALIC" value="2"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RGBColor" eSuperTypes="#//Color">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="red" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="green" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="blue" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BasicFont" eSuperTypes="#//Font">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="faceName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="height" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="9"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="style" eType="#//FontStyle"
+ defaultValueLiteral="NORMAL"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Dimension">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dx" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dy" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Insets">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="top" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="left" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bottom" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="right" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Border" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Point">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="x" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="y" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompoundBorder" eSuperTypes="#//Border">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outer" eType="#//Border"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inner" eType="#//Border"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LineBorder" eSuperTypes="#//Border">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="color" eType="#//Color"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="width" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="1"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Font" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MarginBorder" eSuperTypes="#//Border">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="insets" eType="#//Insets"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LayoutData" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owner" lowerBound="1" eType="#//Layoutable"
+ eOpposite="#//Layoutable/layoutData"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Alignment">
+ <eLiterals name="BEGINNING"/>
+ <eLiterals name="CENTER" value="1"/>
+ <eLiterals name="END" value="2"/>
+ <eLiterals name="FILL" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="LineKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="org.eclipse.draw2d.Graphics.LINE_* (== org.eclipse.swt.SWT.LINE_*. Values are same as SWT constants"/>
+ </eAnnotations>
+ <eLiterals name="LINE_SOLID" value="1"/>
+ <eLiterals name="LINE_DASH" value="2"/>
+ <eLiterals name="LINE_DOT" value="3"/>
+ <eLiterals name="LINE_DASHDOT" value="4"/>
+ <eLiterals name="LINE_DASHDOTDOT" value="5"/>
+ <eLiterals name="LINE_CUSTOM" value="6"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="Direction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Geographical bit constants from org.eclipse.draw2d.PositionConstants"/>
+ </eAnnotations>
+ <eLiterals name="NONE"/>
+ <eLiterals name="NORTH" value="1"/>
+ <eLiterals name="SOUTH" value="4"/>
+ <eLiterals name="WEST" value="8"/>
+ <eLiterals name="EAST" value="16"/>
+ <eLiterals name="NORTH_EAST" value="17"/>
+ <eLiterals name="NORTH_WEST" value="9"/>
+ <eLiterals name="SOUTH_EAST" value="20"/>
+ <eLiterals name="SOUTH_WEST" value="12"/>
+ <eLiterals name="NORTH_SOUTH" value="5"/>
+ <eLiterals name="EAST_WEST" value="24"/>
+ <eLiterals name="NSEW" value="29"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GridLayoutData" eSuperTypes="#//LayoutData">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="grabExcessHorizontalSpace"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="grabExcessVerticalSpace"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="verticalAlignment" lowerBound="1"
+ eType="#//Alignment" defaultValueLiteral="CENTER"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="horizontalAlignment" lowerBound="1"
+ eType="#//Alignment" defaultValueLiteral="CENTER"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="verticalSpan" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="horizontalSpan" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="horizontalIndent" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sizeHint" eType="#//Dimension"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BorderLayoutData" eSuperTypes="#//LayoutData">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alignment" lowerBound="1"
+ eType="#//Alignment" defaultValueLiteral="CENTER"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="vertical" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Layoutable" interface="true">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="layoutData" eType="#//LayoutData"
+ containment="true" eOpposite="#//LayoutData/owner"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="layout" eType="#//Layout"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomBorder" eSuperTypes="#//Border #//CustomClass"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomLayoutData" eSuperTypes="#//LayoutData #//CustomClass"/>
+ <eClassifiers xsi:type="ecore:EClass" name="XYLayoutData" eSuperTypes="#//LayoutData">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="topLeft" lowerBound="1"
+ eType="#//Point" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="size" lowerBound="1" eType="#//Dimension"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomLayout" eSuperTypes="#//Layout #//CustomClass"/>
+ <eClassifiers xsi:type="ecore:EClass" name="GridLayout" eSuperTypes="#//Layout">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="numColumns" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="equalWidth" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="margins" eType="#//Dimension"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="spacing" eType="#//Dimension"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="XYLayout" eSuperTypes="#//Layout"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Layout" interface="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="FlowLayout" eSuperTypes="#//Layout">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="vertical" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="matchMinorSize" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="forceSingleLine" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="majorAlignment" eType="#//Alignment"
+ defaultValueLiteral="BEGINNING"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="minorAlignment" eType="#//Alignment"
+ defaultValueLiteral="BEGINNING"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="majorSpacing" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="5"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="minorSpacing" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ defaultValueLiteral="5"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BorderLayout" eSuperTypes="#//Layout">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="spacing" eType="#//Dimension"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StackLayout" eSuperTypes="#//Layout"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.ecore
new file mode 100644
index 000000000..6964b51e8
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v1.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="src">
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeEJB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="ejbPostCreate"/>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="ejbActivate"/>
+ <eOperations name="ejbPassivate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PROCMGR_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poLocalHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManagerLocal"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="titi"/>
+ <eClassifiers xsi:type="ecore:EClass"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore
new file mode 100644
index 000000000..0efa5ad3b
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/elemAdd/v2.ecore
@@ -0,0 +1,18 @@
+<?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="src">
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeEJB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="ejbPostCreate"/>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="ejbActivate"/>
+ <eOperations name="ejbPassivate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PROCMGR_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poLocalHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManagerLocal"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NewClass" abstract="true"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore
new file mode 100644
index 000000000..b34199ebe
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1-2.ecore
@@ -0,0 +1,30 @@
+<?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="match"
+ nsURI="http://www.eclipse.org/emf/compare/match/1.0" nsPrefix="match">
+ <eClassifiers xsi:type="ecore:EClass" name="MatchModel">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="leftModel" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="rightModel" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="originModel" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="matchedElements" upperBound="-1"
+ eType="#//MatchElement" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="unMatchedElements" upperBound="-1"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MatchElement" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="similarity" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subMatchElements" upperBound="-1"
+ eType="#//MatchElement" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Match2Elements" eSuperTypes="#//MatchElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="leftElement" ordered="false"
+ lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rightElement" ordered="false"
+ lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore
new file mode 100644
index 000000000..b89d0c4b4
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple/basic1.ecore
@@ -0,0 +1,38 @@
+<?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="match"
+ nsURI="http://www.eclipse.org/emf/compare/match/1.0" nsPrefix="match">
+ <eClassifiers xsi:type="ecore:EClass" name="MatchModel">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="leftModel" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="rightModel" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="originModel" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="matchedElements" upperBound="-1"
+ eType="#//MatchElement" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="unMatchedElements" upperBound="-1"
+ eType="#//UnMatchElement" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MatchElement" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="similarity" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subMatchElements" upperBound="-1"
+ eType="#//MatchElement" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Match2Elements" eSuperTypes="#//MatchElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="leftElement" ordered="false"
+ lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rightElement" ordered="false"
+ lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Match3Element" eSuperTypes="#//MatchElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="originElement" ordered="false"
+ lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="UnMatchElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" ordered="false"
+ lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore
new file mode 100644
index 000000000..48ca5bf7a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1-3.ecore
@@ -0,0 +1,50 @@
+<?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="match"
+ nsURI="http://www.eclipse.org/emf/compare/match/1.0" nsPrefix="match">
+ <eClassifiers xsi:type="ecore:EClass" name="MatchModel">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="leftModel" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="rightModel" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="originModel" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="matchedElements" upperBound="-1"
+ eType="#//MatchElement" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="unMatchedElements" upperBound="-1"
+ eType="#//UnMatchElement" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MatchElement" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="similarity" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subMatchElements" upperBound="-1"
+ eType="#//MatchElement" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Match2Elements" eSuperTypes="#//MatchElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="leftElement" ordered="false"
+ lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rightElement" ordered="false"
+ lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Match3Element" eSuperTypes="#//MatchElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="originElement" ordered="false"
+ lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="UnMatchElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" ordered="false"
+ lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MatchModelBis">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="leftModel" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="rightModel" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="originModel" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="matchedElements" upperBound="-1"
+ eType="#//MatchElement" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="unMatchedElements" upperBound="-1"
+ eType="#//UnMatchElement" containment="true"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore
new file mode 100644
index 000000000..b89d0c4b4
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/element/addedElement/simple2/basic1.ecore
@@ -0,0 +1,38 @@
+<?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="match"
+ nsURI="http://www.eclipse.org/emf/compare/match/1.0" nsPrefix="match">
+ <eClassifiers xsi:type="ecore:EClass" name="MatchModel">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="leftModel" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="rightModel" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="originModel" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="matchedElements" upperBound="-1"
+ eType="#//MatchElement" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="unMatchedElements" upperBound="-1"
+ eType="#//UnMatchElement" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MatchElement" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="similarity" ordered="false"
+ unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subMatchElements" upperBound="-1"
+ eType="#//MatchElement" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Match2Elements" eSuperTypes="#//MatchElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="leftElement" ordered="false"
+ lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rightElement" ordered="false"
+ lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Match3Element" eSuperTypes="#//MatchElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="originElement" ordered="false"
+ lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="UnMatchElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="element" ordered="false"
+ lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/element/movedElement/v1.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/element/movedElement/v1.ecore
new file mode 100644
index 000000000..1c618b504
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/element/movedElement/v1.ecore
@@ -0,0 +1,18 @@
+<?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="src">
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeEJB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="ejbPostCreate"/>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="ejbActivate"/>
+ <eOperations name="ejbPassivate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PROCMGR_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poLocalHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManagerLocal"/>
+ </eClassifiers>
+ <eSubpackages name="bis"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/element/movedElement/v2.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/element/movedElement/v2.ecore
new file mode 100644
index 000000000..7fadca72c
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/element/movedElement/v2.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="src">
+ <eSubpackages name="bis">
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeEJB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="ejbPostCreate"/>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="ejbActivate"/>
+ <eOperations name="ejbPassivate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PROCMGR_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poLocalHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManagerLocal"/>
+ </eClassifiers>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore
new file mode 100644
index 000000000..0057390dc
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v1.ecore
@@ -0,0 +1,17 @@
+<?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="src">
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeEJB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="ejbPostCreate"/>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="ejbActivate"/>
+ <eOperations name="ejbPassivate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PROCMGR_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poLocalHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManagerLocal"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v2.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v2.ecore
new file mode 100644
index 000000000..3fe6224af
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/element/removedElement/elemRemove/v2.ecore
@@ -0,0 +1,17 @@
+<?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="src">
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeEJB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="ejbPostCreate"/>
+ <eOperations name="ejbActivate"/>
+ <eOperations name="ejbPassivate"/>
+ <eOperations name="ejbRemove"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PROCMGR_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poLocalHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManagerLocal"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/fragment/v1/child.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/fragment/v1/child.ecore
new file mode 100644
index 000000000..275b0cbcd
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/fragment/v1/child.ecore
@@ -0,0 +1,6 @@
+<?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="child">
+ <eClassifiers xsi:type="ecore:EClass" name="ClassInChild"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/fragment/v1/parent.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/fragment/v1/parent.ecore
new file mode 100644
index 000000000..0ca0a0d3f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/fragment/v1/parent.ecore
@@ -0,0 +1,7 @@
+<?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="parent">
+ <eClassifiers xsi:type="ecore:EClass" name="ClassInParent"/>
+ <eSubpackages href="child.ecore#/"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/fragment/v2/child.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/fragment/v2/child.ecore
new file mode 100644
index 000000000..9ef62e2a9
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/fragment/v2/child.ecore
@@ -0,0 +1,6 @@
+<?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="child">
+ <eClassifiers xsi:type="ecore:EClass" name="ClassInChild" eSuperTypes="parent.ecore#//ClassInParentRenamed"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/fragment/v2/parent.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/fragment/v2/parent.ecore
new file mode 100644
index 000000000..e8b774080
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/fragment/v2/parent.ecore
@@ -0,0 +1,7 @@
+<?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="parent">
+ <eClassifiers xsi:type="ecore:EClass" name="ClassInParentRenamed"/>
+ <eSubpackages href="child.ecore#/"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel b/plugins/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel
new file mode 100644
index 000000000..84b2a5b95
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v1.genmodel
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.compare.tests/src"
+ modelPluginID="org.eclipse.emf.compare.tests" modelName="V1" importerID="org.eclipse.emf.importer.ecore">
+ <foreignModel>../../attribute/attributeChange/v1.ecore</foreignModel>
+ <genPackages prefix="Src" disposableProviderFactory="true" ecorePackage="../../attribute/attributeChange/v1.ecore#/">
+ <genClasses ecoreClass="../../attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ../../attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ../../attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ../../attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/sc"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ../../attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/poLocalHome"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ../../attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/processManagerLocal"/>
+ <genOperations ecoreOperation="../../attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/ejbCreate"/>
+ <genOperations ecoreOperation="../../attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/ejbPostCreate"/>
+ <genOperations ecoreOperation="../../attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/ejbRemove"/>
+ <genOperations ecoreOperation="../../attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/ejbActivate"/>
+ <genOperations ecoreOperation="../../attribute/attributeChange/v1.ecore#//OPCAdminFacadeEJB/ejbPassivate"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel b/plugins/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel
new file mode 100644
index 000000000..7674e4718
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/genmodel/attributeChange/v2.genmodel
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.compare.tests/src"
+ modelPluginID="org.eclipse.emf.compare.tests" modelName="V2" importerID="org.eclipse.emf.importer.ecore">
+ <foreignModel>../../attribute/attributeChange/v2.ecore</foreignModel>
+ <genPackages prefix="Src" disposableProviderFactory="true" ecorePackage="../../attribute/attributeChange/v2.ecore#/">
+ <genClasses ecoreClass="../../attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ../../attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/PURCHASE_ORDER_EJB"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ../../attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/PROCMGR_ORDER_EJB"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ../../attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/sc"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ../../attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/poLocalHome"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ../../attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/processManagerLocal"/>
+ <genOperations ecoreOperation="../../attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/ejbCreate"/>
+ <genOperations ecoreOperation="../../attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/ejbPostCreate"/>
+ <genOperations ecoreOperation="../../attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/ejbRemove"/>
+ <genOperations ecoreOperation="../../attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/ejbActivate"/>
+ <genOperations ecoreOperation="../../attribute/attributeChange/v2.ecore#//OPCAdminFacadeEJB/ejbPassivate"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/attribute/uml/mm.uml13 b/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/attribute/uml/mm.uml13
new file mode 100644
index 000000000..6888e76f3
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/attribute/uml/mm.uml13
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.0.0/UML" xmi:id="_0cuSMQKLEdq6wrOLNneL2Q" name="Modèle vierge">
+ <packageImport xmi:id="_0cuSOwKLEdq6wrOLNneL2Q">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSPAKLEdq6wrOLNneL2Q" name="métier">
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSPQKLEdq6wrOLNneL2Q" name="blog">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSPgKLEdq6wrOLNneL2Q" name="Utilisateur22">
+ <eAnnotations xmi:id="_0cuSPwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSQAKLEdq6wrOLNneL2Q" key="Entity"/>
+ </eAnnotations>
+ <ownedAttribute xmi:id="_0cuSQQKLEdq6wrOLNneL2Q" name="email" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSQgKLEdq6wrOLNneL2Q" name="prenom" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSQwKLEdq6wrOLNneL2Q" name="nom" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSRAKLEdq6wrOLNneL2Q" name="login" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSRQKLEdq6wrOLNneL2Q" name="motDePasse" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_0cuSRgKLEdq6wrOLNneL2Q" name="chercheParLoginEtMotDePasse">
+ <eAnnotations xmi:id="_0cuSRwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSSAKLEdq6wrOLNneL2Q" key="find"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_0cuSSQKLEdq6wrOLNneL2Q" annotatedElement="_0cuSRgKLEdq6wrOLNneL2Q">
+ <body>Get a User according to its login and password</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_0cuSSgKLEdq6wrOLNneL2Q" name="User" type="_0cuSPgKLEdq6wrOLNneL2Q" direction="return"/>
+ <ownedParameter xmi:id="_0cuSSwKLEdq6wrOLNneL2Q" name="login">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_0cuSTAKLEdq6wrOLNneL2Q" name="motDePasse" effect="read">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSTQKLEdq6wrOLNneL2Q" name="ArticleDeBlog">
+ <eAnnotations xmi:id="_0cuSTgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSTwKLEdq6wrOLNneL2Q" key="Entity"/>
+ </eAnnotations>
+ <ownedAttribute xmi:id="_0cuSUAKLEdq6wrOLNneL2Q" name="titre" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSUQKLEdq6wrOLNneL2Q" name="dateCreation" visibility="private" type="_0cuSWwKLEdq6wrOLNneL2Q"/>
+ <ownedAttribute xmi:id="_0cuSUgKLEdq6wrOLNneL2Q" name="contenu" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSUwKLEdq6wrOLNneL2Q" name="auteur" visibility="private" type="_0cuSPgKLEdq6wrOLNneL2Q" association="_0cuSVgKLEdq6wrOLNneL2Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0cuSVAKLEdq6wrOLNneL2Q" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0cuSVQKLEdq6wrOLNneL2Q" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0cuSVgKLEdq6wrOLNneL2Q" memberEnd="_0cuSUwKLEdq6wrOLNneL2Q _0cuSVwKLEdq6wrOLNneL2Q">
+ <ownedEnd xmi:id="_0cuSVwKLEdq6wrOLNneL2Q" visibility="private" type="_0cuSTQKLEdq6wrOLNneL2Q" association="_0cuSVgKLEdq6wrOLNneL2Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0cuSWAKLEdq6wrOLNneL2Q" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0cuSWQKLEdq6wrOLNneL2Q"/>
+ </ownedEnd>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSWgKLEdq6wrOLNneL2Q" name="PrimitiveTypes">
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_0cuSWwKLEdq6wrOLNneL2Q" name="Date"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSXAKLEdq6wrOLNneL2Q" name="cinematic">
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSXQKLEdq6wrOLNneL2Q" name="utilisateur">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSXgKLEdq6wrOLNneL2Q" name="CreationCompte">
+ <eAnnotations xmi:id="_0cuSXwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSYAKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_pX9e4GNcEdqA9eCD16eJRQ">
+ <body>Création d'un nouveau compte</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0cuSYQKLEdq6wrOLNneL2Q" name="email" visibility="private">
+ <eAnnotations xmi:id="_0cuSYgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSYwKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSZAKLEdq6wrOLNneL2Q" name="prenom" visibility="private">
+ <eAnnotations xmi:id="_0cuSZQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSZgKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSZwKLEdq6wrOLNneL2Q" name="nom" visibility="private">
+ <eAnnotations xmi:id="_0cuSaAKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSaQKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSagKLEdq6wrOLNneL2Q" name="login" visibility="private">
+ <eAnnotations xmi:id="_0cuSawKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSbAKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSbQKLEdq6wrOLNneL2Q" name="motDePasse" visibility="private">
+ <eAnnotations xmi:id="_0cuSbgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSbwKLEdq6wrOLNneL2Q" key="Password"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuScAKLEdq6wrOLNneL2Q" name="connection" visibility="private" type="_0cuSjAKLEdq6wrOLNneL2Q" association="_0cuSnAKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0cuSdAKLEdq6wrOLNneL2Q" name="creer"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSdQKLEdq6wrOLNneL2Q" name="EditionCompte">
+ <eAnnotations xmi:id="_0cuSdgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSdwKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_xWDW0GNcEdqA9eCD16eJRQ">
+ <body>Edition d'un compte</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0cuSeAKLEdq6wrOLNneL2Q" name="email" visibility="private">
+ <eAnnotations xmi:id="_0cuSeQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSegKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSewKLEdq6wrOLNneL2Q" name="prenom" visibility="private">
+ <eAnnotations xmi:id="_0cuSfAKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSfQKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSfgKLEdq6wrOLNneL2Q" name="nom" visibility="private">
+ <eAnnotations xmi:id="_0cuSfwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSgAKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSgQKLEdq6wrOLNneL2Q" name="login" visibility="private">
+ <eAnnotations xmi:id="_0cuSggKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSgwKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuShAKLEdq6wrOLNneL2Q" name="motDePasse" visibility="private">
+ <eAnnotations xmi:id="_0cuShQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuShgKLEdq6wrOLNneL2Q" key="Password"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuShwKLEdq6wrOLNneL2Q" name="visualisationBlogs" visibility="private" type="_0cuSrAKLEdq6wrOLNneL2Q" association="_0c6feAKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0cuSiwKLEdq6wrOLNneL2Q" name="modifier"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSjAKLEdq6wrOLNneL2Q" name="Connection">
+ <eAnnotations xmi:id="_0cuSjQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSjgKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_7M3D4GNcEdqA9eCD16eJRQ">
+ <body>Connection</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0cuSjwKLEdq6wrOLNneL2Q" name="login" visibility="private">
+ <eAnnotations xmi:id="_0cuSkAKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSkQKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSkgKLEdq6wrOLNneL2Q" name="motDePasse" visibility="private">
+ <eAnnotations xmi:id="_0cuSkwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSlAKLEdq6wrOLNneL2Q" key="Password"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSlQKLEdq6wrOLNneL2Q" name="creationCompte" visibility="private" type="_0cuSXgKLEdq6wrOLNneL2Q" association="_0cuSnAKLEdq6wrOLNneL2Q"/>
+ <ownedAttribute xmi:id="_0cuSlgKLEdq6wrOLNneL2Q" name="viewlogs" visibility="private" type="_0cuSrAKLEdq6wrOLNneL2Q" association="_0c6feQKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0cuSmgKLEdq6wrOLNneL2Q" name="connecter"/>
+ <ownedOperation xmi:id="_0cuSmwKLEdq6wrOLNneL2Q" name="creerCompte"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0cuSnAKLEdq6wrOLNneL2Q" memberEnd="_0cuSlQKLEdq6wrOLNneL2Q _0cuScAKLEdq6wrOLNneL2Q"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSnQKLEdq6wrOLNneL2Q" name="principal">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSngKLEdq6wrOLNneL2Q" name="CreationBlog">
+ <eAnnotations xmi:id="_0cuSnwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSoAKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="__pFXkGNcEdqA9eCD16eJRQ">
+ <body>Création d'un nouveau blog</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0cuSoQKLEdq6wrOLNneL2Q" name="contenu" visibility="private">
+ <eAnnotations xmi:id="_0cuSogKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSowKLEdq6wrOLNneL2Q" key="Textarea"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSpAKLEdq6wrOLNneL2Q" name="titre" visibility="private">
+ <eAnnotations xmi:id="_0cuSpQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSpgKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSpwKLEdq6wrOLNneL2Q" name="visualisationBlogs" visibility="private" type="_0cuSrAKLEdq6wrOLNneL2Q" association="_0c6fdwKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0cuSqwKLEdq6wrOLNneL2Q" name="creer"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSrAKLEdq6wrOLNneL2Q" name="VisualisationBlogs">
+ <eAnnotations xmi:id="_0cuSrQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0c6fYAKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_djk1YGNdEdqA9eCD16eJRQ">
+ <body>Les Weblogs</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0c6fYQKLEdq6wrOLNneL2Q" name="blogs" visibility="private" type="_0cuSTQKLEdq6wrOLNneL2Q">
+ <eAnnotations xmi:id="_0c6fYgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0c6fYwKLEdq6wrOLNneL2Q" key="List"/>
+ </eAnnotations>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0c6fZAKLEdq6wrOLNneL2Q" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0c6fZQKLEdq6wrOLNneL2Q"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0c6fZgKLEdq6wrOLNneL2Q" name="message" visibility="private">
+ <eAnnotations xmi:id="_0c6fZwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0c6faAKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0c6faQKLEdq6wrOLNneL2Q" name="utilisateur" visibility="private">
+ <eAnnotations xmi:id="_0c6fagKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0c6fawKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0c6fbAKLEdq6wrOLNneL2Q" name="creerBlog" visibility="private" type="_0cuSngKLEdq6wrOLNneL2Q" association="_0c6fdwKLEdq6wrOLNneL2Q"/>
+ <ownedAttribute xmi:id="_0c6fbQKLEdq6wrOLNneL2Q" name="logout" visibility="private" type="_0cuSjAKLEdq6wrOLNneL2Q" association="_0c6feQKLEdq6wrOLNneL2Q"/>
+ <ownedAttribute xmi:id="_0c6fbgKLEdq6wrOLNneL2Q" name="editionCompte" visibility="private" type="_0cuSdQKLEdq6wrOLNneL2Q" association="_0c6feAKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0c6fcgKLEdq6wrOLNneL2Q" name="creerBlog"/>
+ <ownedOperation xmi:id="_0c6fcwKLEdq6wrOLNneL2Q" name="deconnecter"/>
+ <ownedOperation xmi:id="_0c6fdAKLEdq6wrOLNneL2Q" name="editerCompte"/>
+ <ownedOperation xmi:id="_0c6fdgKLEdq6wrOLNneL2Q" name="recharger"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0c6fdwKLEdq6wrOLNneL2Q" memberEnd="_0cuSpwKLEdq6wrOLNneL2Q _0c6fbAKLEdq6wrOLNneL2Q"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0c6feAKLEdq6wrOLNneL2Q" memberEnd="_0c6fbgKLEdq6wrOLNneL2Q _0cuShwKLEdq6wrOLNneL2Q"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0c6feQKLEdq6wrOLNneL2Q" memberEnd="_0cuSlgKLEdq6wrOLNneL2Q _0c6fbQKLEdq6wrOLNneL2Q"/>
+ </packagedElement>
+ <profileApplication xmi:id="_0cuSMgKLEdq6wrOLNneL2Q">
+ <eAnnotations xmi:id="_0cuSMwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#__LeIQK86Edih9-GG5afQ0g"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_0cuSNQKLEdq6wrOLNneL2Q">
+ <eAnnotations xmi:id="_0cuSNgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#_JtpGgK87Edih9-GG5afQ0g"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_0cuSOAKLEdq6wrOLNneL2Q">
+ <eAnnotations xmi:id="_0cuSOQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#_QHin0K87Edih9-GG5afQ0g"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/attribute/uml/mm2.uml b/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/attribute/uml/mm2.uml
new file mode 100644
index 000000000..4f8770978
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/attribute/uml/mm2.uml
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.0.0/UML" xmi:id="_0cuSMQKLEdq6wrOLNneL2Q" name="Modèle vierge">
+ <packageImport xmi:id="_0cuSOwKLEdq6wrOLNneL2Q">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSPAKLEdq6wrOLNneL2Q" name="métier">
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSPQKLEdq6wrOLNneL2Q" name="blog">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSPgKLEdq6wrOLNneL2Q" name="Utilisateur">
+ <eAnnotations xmi:id="_0cuSPwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSQAKLEdq6wrOLNneL2Q" key="Entity"/>
+ </eAnnotations>
+ <ownedAttribute xmi:id="_0cuSQQKLEdq6wrOLNneL2Q" name="email" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSQgKLEdq6wrOLNneL2Q" name="prenom" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSQwKLEdq6wrOLNneL2Q" name="nom" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSRAKLEdq6wrOLNneL2Q" name="login" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSRQKLEdq6wrOLNneL2Q" name="motDePasse" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_0cuSRgKLEdq6wrOLNneL2Q" name="chercheParLoginEtMotDePasse">
+ <eAnnotations xmi:id="_0cuSRwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSSAKLEdq6wrOLNneL2Q" key="find"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_0cuSSQKLEdq6wrOLNneL2Q" annotatedElement="_0cuSRgKLEdq6wrOLNneL2Q">
+ <body>Get a User according to its login and password</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_0cuSSgKLEdq6wrOLNneL2Q" name="User" type="_0cuSPgKLEdq6wrOLNneL2Q" direction="return"/>
+ <ownedParameter xmi:id="_0cuSSwKLEdq6wrOLNneL2Q" name="login">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_0cuSTAKLEdq6wrOLNneL2Q" name="motDePasse" effect="read">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSTQKLEdq6wrOLNneL2Q" name="ArticleDeBlog">
+ <eAnnotations xmi:id="_0cuSTgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSTwKLEdq6wrOLNneL2Q" key="Entity"/>
+ </eAnnotations>
+ <ownedAttribute xmi:id="_0cuSUAKLEdq6wrOLNneL2Q" name="titre" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSUQKLEdq6wrOLNneL2Q" name="dateCreation" visibility="private" type="_0cuSWwKLEdq6wrOLNneL2Q"/>
+ <ownedAttribute xmi:id="_0cuSUgKLEdq6wrOLNneL2Q" name="contenu" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSUwKLEdq6wrOLNneL2Q" name="auteur" visibility="private" type="_0cuSPgKLEdq6wrOLNneL2Q" association="_0cuSVgKLEdq6wrOLNneL2Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0cuSVAKLEdq6wrOLNneL2Q" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0cuSVQKLEdq6wrOLNneL2Q" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0cuSVgKLEdq6wrOLNneL2Q" memberEnd="_0cuSUwKLEdq6wrOLNneL2Q _0cuSVwKLEdq6wrOLNneL2Q">
+ <ownedEnd xmi:id="_0cuSVwKLEdq6wrOLNneL2Q" visibility="private" type="_0cuSTQKLEdq6wrOLNneL2Q" association="_0cuSVgKLEdq6wrOLNneL2Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0cuSWAKLEdq6wrOLNneL2Q" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0cuSWQKLEdq6wrOLNneL2Q"/>
+ </ownedEnd>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSWgKLEdq6wrOLNneL2Q" name="PrimitiveTypes">
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_0cuSWwKLEdq6wrOLNneL2Q" name="Date"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSXAKLEdq6wrOLNneL2Q" name="cinematic">
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSXQKLEdq6wrOLNneL2Q" name="utilisateur">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSXgKLEdq6wrOLNneL2Q" name="CreationCompte">
+ <eAnnotations xmi:id="_0cuSXwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSYAKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_pX9e4GNcEdqA9eCD16eJRQ">
+ <body>Création d'un nouveau compte</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0cuSYQKLEdq6wrOLNneL2Q" name="email" visibility="private">
+ <eAnnotations xmi:id="_0cuSYgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSYwKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSZAKLEdq6wrOLNneL2Q" name="prenom" visibility="private">
+ <eAnnotations xmi:id="_0cuSZQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSZgKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSZwKLEdq6wrOLNneL2Q" name="nom" visibility="private">
+ <eAnnotations xmi:id="_0cuSaAKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSaQKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSagKLEdq6wrOLNneL2Q" name="login" visibility="private">
+ <eAnnotations xmi:id="_0cuSawKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSbAKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSbQKLEdq6wrOLNneL2Q" name="motDePasse" visibility="private">
+ <eAnnotations xmi:id="_0cuSbgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSbwKLEdq6wrOLNneL2Q" key="Password"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuScAKLEdq6wrOLNneL2Q" name="connection" visibility="private" type="_0cuSjAKLEdq6wrOLNneL2Q" association="_0cuSnAKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0cuSdAKLEdq6wrOLNneL2Q" name="creer"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSdQKLEdq6wrOLNneL2Q" name="EditionCompte">
+ <eAnnotations xmi:id="_0cuSdgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSdwKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_xWDW0GNcEdqA9eCD16eJRQ">
+ <body>Edition d'un compte</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0cuSeAKLEdq6wrOLNneL2Q" name="email" visibility="private">
+ <eAnnotations xmi:id="_0cuSeQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSegKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSewKLEdq6wrOLNneL2Q" name="prenom" visibility="private">
+ <eAnnotations xmi:id="_0cuSfAKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSfQKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSfgKLEdq6wrOLNneL2Q" name="nom" visibility="private">
+ <eAnnotations xmi:id="_0cuSfwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSgAKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSgQKLEdq6wrOLNneL2Q" name="login" visibility="private">
+ <eAnnotations xmi:id="_0cuSggKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSgwKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuShAKLEdq6wrOLNneL2Q" name="motDePasse" visibility="private">
+ <eAnnotations xmi:id="_0cuShQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuShgKLEdq6wrOLNneL2Q" key="Password"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuShwKLEdq6wrOLNneL2Q" name="visualisationBlogs" visibility="private" type="_0cuSrAKLEdq6wrOLNneL2Q" association="_0c6feAKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0cuSiwKLEdq6wrOLNneL2Q" name="modifier"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSjAKLEdq6wrOLNneL2Q" name="Connection">
+ <eAnnotations xmi:id="_0cuSjQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSjgKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_7M3D4GNcEdqA9eCD16eJRQ">
+ <body>Connection</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0cuSjwKLEdq6wrOLNneL2Q" name="login" visibility="private">
+ <eAnnotations xmi:id="_0cuSkAKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSkQKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSkgKLEdq6wrOLNneL2Q" name="motDePasse" visibility="private">
+ <eAnnotations xmi:id="_0cuSkwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSlAKLEdq6wrOLNneL2Q" key="Password"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSlQKLEdq6wrOLNneL2Q" name="creationCompte" visibility="private" type="_0cuSXgKLEdq6wrOLNneL2Q" association="_0cuSnAKLEdq6wrOLNneL2Q"/>
+ <ownedAttribute xmi:id="_0cuSlgKLEdq6wrOLNneL2Q" name="viewlogs" visibility="private" type="_0cuSrAKLEdq6wrOLNneL2Q" association="_0c6feQKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0cuSmgKLEdq6wrOLNneL2Q" name="connecter"/>
+ <ownedOperation xmi:id="_0cuSmwKLEdq6wrOLNneL2Q" name="creerCompte"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0cuSnAKLEdq6wrOLNneL2Q" memberEnd="_0cuSlQKLEdq6wrOLNneL2Q _0cuScAKLEdq6wrOLNneL2Q"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSnQKLEdq6wrOLNneL2Q" name="principal">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSngKLEdq6wrOLNneL2Q" name="CreationBlog">
+ <eAnnotations xmi:id="_0cuSnwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSoAKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="__pFXkGNcEdqA9eCD16eJRQ">
+ <body>Création d'un nouveau blog</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0cuSoQKLEdq6wrOLNneL2Q" name="contenu" visibility="private">
+ <eAnnotations xmi:id="_0cuSogKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSowKLEdq6wrOLNneL2Q" key="Textarea"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSpAKLEdq6wrOLNneL2Q" name="titre" visibility="private">
+ <eAnnotations xmi:id="_0cuSpQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSpgKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSpwKLEdq6wrOLNneL2Q" name="visualisationBlogs" visibility="private" type="_0cuSrAKLEdq6wrOLNneL2Q" association="_0c6fdwKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0cuSqwKLEdq6wrOLNneL2Q" name="creer"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSrAKLEdq6wrOLNneL2Q" name="VisualisationBlogs">
+ <eAnnotations xmi:id="_0cuSrQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0c6fYAKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_djk1YGNdEdqA9eCD16eJRQ">
+ <body>Les Weblogs</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0c6fYQKLEdq6wrOLNneL2Q" name="blogs" visibility="private" type="_0cuSTQKLEdq6wrOLNneL2Q">
+ <eAnnotations xmi:id="_0c6fYgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0c6fYwKLEdq6wrOLNneL2Q" key="List"/>
+ </eAnnotations>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0c6fZAKLEdq6wrOLNneL2Q" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0c6fZQKLEdq6wrOLNneL2Q"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0c6fZgKLEdq6wrOLNneL2Q" name="message" visibility="private">
+ <eAnnotations xmi:id="_0c6fZwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0c6faAKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0c6faQKLEdq6wrOLNneL2Q" name="utilisateur" visibility="private">
+ <eAnnotations xmi:id="_0c6fagKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0c6fawKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0c6fbAKLEdq6wrOLNneL2Q" name="creerBlog" visibility="private" type="_0cuSngKLEdq6wrOLNneL2Q" association="_0c6fdwKLEdq6wrOLNneL2Q"/>
+ <ownedAttribute xmi:id="_0c6fbQKLEdq6wrOLNneL2Q" name="logout" visibility="private" type="_0cuSjAKLEdq6wrOLNneL2Q" association="_0c6feQKLEdq6wrOLNneL2Q"/>
+ <ownedAttribute xmi:id="_0c6fbgKLEdq6wrOLNneL2Q" name="editionCompte" visibility="private" type="_0cuSdQKLEdq6wrOLNneL2Q" association="_0c6feAKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0c6fcgKLEdq6wrOLNneL2Q" name="creerBlog"/>
+ <ownedOperation xmi:id="_0c6fcwKLEdq6wrOLNneL2Q" name="deconnecter"/>
+ <ownedOperation xmi:id="_0c6fdAKLEdq6wrOLNneL2Q" name="editerCompte"/>
+ <ownedOperation xmi:id="_0c6fdgKLEdq6wrOLNneL2Q" name="recharger"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0c6fdwKLEdq6wrOLNneL2Q" memberEnd="_0cuSpwKLEdq6wrOLNneL2Q _0c6fbAKLEdq6wrOLNneL2Q"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0c6feAKLEdq6wrOLNneL2Q" memberEnd="_0c6fbgKLEdq6wrOLNneL2Q _0cuShwKLEdq6wrOLNneL2Q"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0c6feQKLEdq6wrOLNneL2Q" memberEnd="_0cuSlgKLEdq6wrOLNneL2Q _0c6fbQKLEdq6wrOLNneL2Q"/>
+ </packagedElement>
+ <profileApplication xmi:id="_0cuSMgKLEdq6wrOLNneL2Q">
+ <eAnnotations xmi:id="_0cuSMwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#__LeIQK86Edih9-GG5afQ0g"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_0cuSNQKLEdq6wrOLNneL2Q">
+ <eAnnotations xmi:id="_0cuSNgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#_JtpGgK87Edih9-GG5afQ0g"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_0cuSOAKLEdq6wrOLNneL2Q">
+ <eAnnotations xmi:id="_0cuSOQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#_QHin0K87Edih9-GG5afQ0g"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/composite/uml/mm.uml b/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/composite/uml/mm.uml
new file mode 100644
index 000000000..6888e76f3
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/composite/uml/mm.uml
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.0.0/UML" xmi:id="_0cuSMQKLEdq6wrOLNneL2Q" name="Modèle vierge">
+ <packageImport xmi:id="_0cuSOwKLEdq6wrOLNneL2Q">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSPAKLEdq6wrOLNneL2Q" name="métier">
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSPQKLEdq6wrOLNneL2Q" name="blog">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSPgKLEdq6wrOLNneL2Q" name="Utilisateur22">
+ <eAnnotations xmi:id="_0cuSPwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSQAKLEdq6wrOLNneL2Q" key="Entity"/>
+ </eAnnotations>
+ <ownedAttribute xmi:id="_0cuSQQKLEdq6wrOLNneL2Q" name="email" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSQgKLEdq6wrOLNneL2Q" name="prenom" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSQwKLEdq6wrOLNneL2Q" name="nom" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSRAKLEdq6wrOLNneL2Q" name="login" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSRQKLEdq6wrOLNneL2Q" name="motDePasse" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_0cuSRgKLEdq6wrOLNneL2Q" name="chercheParLoginEtMotDePasse">
+ <eAnnotations xmi:id="_0cuSRwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSSAKLEdq6wrOLNneL2Q" key="find"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_0cuSSQKLEdq6wrOLNneL2Q" annotatedElement="_0cuSRgKLEdq6wrOLNneL2Q">
+ <body>Get a User according to its login and password</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_0cuSSgKLEdq6wrOLNneL2Q" name="User" type="_0cuSPgKLEdq6wrOLNneL2Q" direction="return"/>
+ <ownedParameter xmi:id="_0cuSSwKLEdq6wrOLNneL2Q" name="login">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_0cuSTAKLEdq6wrOLNneL2Q" name="motDePasse" effect="read">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSTQKLEdq6wrOLNneL2Q" name="ArticleDeBlog">
+ <eAnnotations xmi:id="_0cuSTgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSTwKLEdq6wrOLNneL2Q" key="Entity"/>
+ </eAnnotations>
+ <ownedAttribute xmi:id="_0cuSUAKLEdq6wrOLNneL2Q" name="titre" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSUQKLEdq6wrOLNneL2Q" name="dateCreation" visibility="private" type="_0cuSWwKLEdq6wrOLNneL2Q"/>
+ <ownedAttribute xmi:id="_0cuSUgKLEdq6wrOLNneL2Q" name="contenu" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSUwKLEdq6wrOLNneL2Q" name="auteur" visibility="private" type="_0cuSPgKLEdq6wrOLNneL2Q" association="_0cuSVgKLEdq6wrOLNneL2Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0cuSVAKLEdq6wrOLNneL2Q" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0cuSVQKLEdq6wrOLNneL2Q" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0cuSVgKLEdq6wrOLNneL2Q" memberEnd="_0cuSUwKLEdq6wrOLNneL2Q _0cuSVwKLEdq6wrOLNneL2Q">
+ <ownedEnd xmi:id="_0cuSVwKLEdq6wrOLNneL2Q" visibility="private" type="_0cuSTQKLEdq6wrOLNneL2Q" association="_0cuSVgKLEdq6wrOLNneL2Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0cuSWAKLEdq6wrOLNneL2Q" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0cuSWQKLEdq6wrOLNneL2Q"/>
+ </ownedEnd>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSWgKLEdq6wrOLNneL2Q" name="PrimitiveTypes">
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_0cuSWwKLEdq6wrOLNneL2Q" name="Date"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSXAKLEdq6wrOLNneL2Q" name="cinematic">
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSXQKLEdq6wrOLNneL2Q" name="utilisateur">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSXgKLEdq6wrOLNneL2Q" name="CreationCompte">
+ <eAnnotations xmi:id="_0cuSXwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSYAKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_pX9e4GNcEdqA9eCD16eJRQ">
+ <body>Création d'un nouveau compte</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0cuSYQKLEdq6wrOLNneL2Q" name="email" visibility="private">
+ <eAnnotations xmi:id="_0cuSYgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSYwKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSZAKLEdq6wrOLNneL2Q" name="prenom" visibility="private">
+ <eAnnotations xmi:id="_0cuSZQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSZgKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSZwKLEdq6wrOLNneL2Q" name="nom" visibility="private">
+ <eAnnotations xmi:id="_0cuSaAKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSaQKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSagKLEdq6wrOLNneL2Q" name="login" visibility="private">
+ <eAnnotations xmi:id="_0cuSawKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSbAKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSbQKLEdq6wrOLNneL2Q" name="motDePasse" visibility="private">
+ <eAnnotations xmi:id="_0cuSbgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSbwKLEdq6wrOLNneL2Q" key="Password"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuScAKLEdq6wrOLNneL2Q" name="connection" visibility="private" type="_0cuSjAKLEdq6wrOLNneL2Q" association="_0cuSnAKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0cuSdAKLEdq6wrOLNneL2Q" name="creer"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSdQKLEdq6wrOLNneL2Q" name="EditionCompte">
+ <eAnnotations xmi:id="_0cuSdgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSdwKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_xWDW0GNcEdqA9eCD16eJRQ">
+ <body>Edition d'un compte</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0cuSeAKLEdq6wrOLNneL2Q" name="email" visibility="private">
+ <eAnnotations xmi:id="_0cuSeQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSegKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSewKLEdq6wrOLNneL2Q" name="prenom" visibility="private">
+ <eAnnotations xmi:id="_0cuSfAKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSfQKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSfgKLEdq6wrOLNneL2Q" name="nom" visibility="private">
+ <eAnnotations xmi:id="_0cuSfwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSgAKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSgQKLEdq6wrOLNneL2Q" name="login" visibility="private">
+ <eAnnotations xmi:id="_0cuSggKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSgwKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuShAKLEdq6wrOLNneL2Q" name="motDePasse" visibility="private">
+ <eAnnotations xmi:id="_0cuShQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuShgKLEdq6wrOLNneL2Q" key="Password"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuShwKLEdq6wrOLNneL2Q" name="visualisationBlogs" visibility="private" type="_0cuSrAKLEdq6wrOLNneL2Q" association="_0c6feAKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0cuSiwKLEdq6wrOLNneL2Q" name="modifier"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSjAKLEdq6wrOLNneL2Q" name="Connection">
+ <eAnnotations xmi:id="_0cuSjQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSjgKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_7M3D4GNcEdqA9eCD16eJRQ">
+ <body>Connection</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0cuSjwKLEdq6wrOLNneL2Q" name="login" visibility="private">
+ <eAnnotations xmi:id="_0cuSkAKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSkQKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSkgKLEdq6wrOLNneL2Q" name="motDePasse" visibility="private">
+ <eAnnotations xmi:id="_0cuSkwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSlAKLEdq6wrOLNneL2Q" key="Password"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSlQKLEdq6wrOLNneL2Q" name="creationCompte" visibility="private" type="_0cuSXgKLEdq6wrOLNneL2Q" association="_0cuSnAKLEdq6wrOLNneL2Q"/>
+ <ownedAttribute xmi:id="_0cuSlgKLEdq6wrOLNneL2Q" name="viewlogs" visibility="private" type="_0cuSrAKLEdq6wrOLNneL2Q" association="_0c6feQKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0cuSmgKLEdq6wrOLNneL2Q" name="connecter"/>
+ <ownedOperation xmi:id="_0cuSmwKLEdq6wrOLNneL2Q" name="creerCompte"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0cuSnAKLEdq6wrOLNneL2Q" memberEnd="_0cuSlQKLEdq6wrOLNneL2Q _0cuScAKLEdq6wrOLNneL2Q"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSnQKLEdq6wrOLNneL2Q" name="principal">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSngKLEdq6wrOLNneL2Q" name="CreationBlog">
+ <eAnnotations xmi:id="_0cuSnwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSoAKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="__pFXkGNcEdqA9eCD16eJRQ">
+ <body>Création d'un nouveau blog</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0cuSoQKLEdq6wrOLNneL2Q" name="contenu" visibility="private">
+ <eAnnotations xmi:id="_0cuSogKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSowKLEdq6wrOLNneL2Q" key="Textarea"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSpAKLEdq6wrOLNneL2Q" name="titre" visibility="private">
+ <eAnnotations xmi:id="_0cuSpQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSpgKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSpwKLEdq6wrOLNneL2Q" name="visualisationBlogs" visibility="private" type="_0cuSrAKLEdq6wrOLNneL2Q" association="_0c6fdwKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0cuSqwKLEdq6wrOLNneL2Q" name="creer"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSrAKLEdq6wrOLNneL2Q" name="VisualisationBlogs">
+ <eAnnotations xmi:id="_0cuSrQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0c6fYAKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_djk1YGNdEdqA9eCD16eJRQ">
+ <body>Les Weblogs</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0c6fYQKLEdq6wrOLNneL2Q" name="blogs" visibility="private" type="_0cuSTQKLEdq6wrOLNneL2Q">
+ <eAnnotations xmi:id="_0c6fYgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0c6fYwKLEdq6wrOLNneL2Q" key="List"/>
+ </eAnnotations>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0c6fZAKLEdq6wrOLNneL2Q" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0c6fZQKLEdq6wrOLNneL2Q"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0c6fZgKLEdq6wrOLNneL2Q" name="message" visibility="private">
+ <eAnnotations xmi:id="_0c6fZwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0c6faAKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0c6faQKLEdq6wrOLNneL2Q" name="utilisateur" visibility="private">
+ <eAnnotations xmi:id="_0c6fagKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0c6fawKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0c6fbAKLEdq6wrOLNneL2Q" name="creerBlog" visibility="private" type="_0cuSngKLEdq6wrOLNneL2Q" association="_0c6fdwKLEdq6wrOLNneL2Q"/>
+ <ownedAttribute xmi:id="_0c6fbQKLEdq6wrOLNneL2Q" name="logout" visibility="private" type="_0cuSjAKLEdq6wrOLNneL2Q" association="_0c6feQKLEdq6wrOLNneL2Q"/>
+ <ownedAttribute xmi:id="_0c6fbgKLEdq6wrOLNneL2Q" name="editionCompte" visibility="private" type="_0cuSdQKLEdq6wrOLNneL2Q" association="_0c6feAKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0c6fcgKLEdq6wrOLNneL2Q" name="creerBlog"/>
+ <ownedOperation xmi:id="_0c6fcwKLEdq6wrOLNneL2Q" name="deconnecter"/>
+ <ownedOperation xmi:id="_0c6fdAKLEdq6wrOLNneL2Q" name="editerCompte"/>
+ <ownedOperation xmi:id="_0c6fdgKLEdq6wrOLNneL2Q" name="recharger"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0c6fdwKLEdq6wrOLNneL2Q" memberEnd="_0cuSpwKLEdq6wrOLNneL2Q _0c6fbAKLEdq6wrOLNneL2Q"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0c6feAKLEdq6wrOLNneL2Q" memberEnd="_0c6fbgKLEdq6wrOLNneL2Q _0cuShwKLEdq6wrOLNneL2Q"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0c6feQKLEdq6wrOLNneL2Q" memberEnd="_0cuSlgKLEdq6wrOLNneL2Q _0c6fbQKLEdq6wrOLNneL2Q"/>
+ </packagedElement>
+ <profileApplication xmi:id="_0cuSMgKLEdq6wrOLNneL2Q">
+ <eAnnotations xmi:id="_0cuSMwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#__LeIQK86Edih9-GG5afQ0g"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_0cuSNQKLEdq6wrOLNneL2Q">
+ <eAnnotations xmi:id="_0cuSNgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#_JtpGgK87Edih9-GG5afQ0g"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_0cuSOAKLEdq6wrOLNneL2Q">
+ <eAnnotations xmi:id="_0cuSOQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#_QHin0K87Edih9-GG5afQ0g"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/composite/uml/mm2.uml b/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/composite/uml/mm2.uml
new file mode 100644
index 000000000..e1853a138
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/composite/uml/mm2.uml
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/2.0.0/UML" xmi:id="_0cuSMQKLEdq6wrOLNneL2Q" name="Modèle vierge">
+ <packageImport xmi:id="_0cuSOwKLEdq6wrOLNneL2Q">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSPAKLEdq6wrOLNneL2Q" name="métier">
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSPQKLEdq6wrOLNneL2Q" name="blog">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSPgKLEdq6wrOLNneL2Q" name="Utilisateur">
+ <eAnnotations xmi:id="_0cuSPwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSQAKLEdq6wrOLNneL2Q" key="Entity"/>
+ </eAnnotations>
+ <ownedAttribute xmi:id="_0cuSQQKLEdq6wrOLNneL2Q" name="email" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSQgKLEdq6wrOLNneL2Q" name="prenom" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSQwKLEdq6wrOLNneL2Q" name="nom" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSRAKLEdq6wrOLNneL2Q" name="login" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSRQKLEdq6wrOLNneL2Q" name="motDePasse" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_0cuSRgKLEdq6wrOLNneL2Q" name="chercheParLoginEtMotDePasse">
+ <eAnnotations xmi:id="_0cuSRwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSSAKLEdq6wrOLNneL2Q" key="find"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_0cuSSQKLEdq6wrOLNneL2Q" annotatedElement="_0cuSRgKLEdq6wrOLNneL2Q">
+ <body>Get a User according to its login and password</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_0cuSSgKLEdq6wrOLNneL2Q" name="User" type="_0cuSPgKLEdq6wrOLNneL2Q" direction="return"/>
+ <ownedParameter xmi:id="_0cuSSwKLEdq6wrOLNneL2Q" name="login">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_0cuSTAKLEdq6wrOLNneL2Q" name="motDePasse" effect="read">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSTQKLEdq6wrOLNneL2Q" name="ArticleDeBlog">
+ <eAnnotations xmi:id="_0cuSTgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSTwKLEdq6wrOLNneL2Q" key="Entity"/>
+ </eAnnotations>
+ <ownedAttribute xmi:id="_0cuSUAKLEdq6wrOLNneL2Q" name="titre" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSUQKLEdq6wrOLNneL2Q" name="dateCreation" visibility="private" type="_0cuSWwKLEdq6wrOLNneL2Q"/>
+ <ownedAttribute xmi:id="_0cuSUgKLEdq6wrOLNneL2Q" name="contenu" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSUwKLEdq6wrOLNneL2Q" name="auteur" visibility="private" type="_0cuSPgKLEdq6wrOLNneL2Q" association="_0cuSVgKLEdq6wrOLNneL2Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0cuSVAKLEdq6wrOLNneL2Q" value="1"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0cuSVQKLEdq6wrOLNneL2Q" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0cuSVgKLEdq6wrOLNneL2Q" memberEnd="_0cuSUwKLEdq6wrOLNneL2Q _0cuSVwKLEdq6wrOLNneL2Q">
+ <ownedEnd xmi:id="_0cuSVwKLEdq6wrOLNneL2Q" visibility="private" type="_0cuSTQKLEdq6wrOLNneL2Q" association="_0cuSVgKLEdq6wrOLNneL2Q">
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0cuSWAKLEdq6wrOLNneL2Q" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0cuSWQKLEdq6wrOLNneL2Q"/>
+ </ownedEnd>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSWgKLEdq6wrOLNneL2Q" name="PrimitiveTypes">
+ <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_0cuSWwKLEdq6wrOLNneL2Q" name="Date"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSXAKLEdq6wrOLNneL2Q" name="newCinematic">
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSXQKLEdq6wrOLNneL2Q" name="utilisateur">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSdQKLEdq6wrOLNneL2Q" name="EditionCompte">
+ <eAnnotations xmi:id="_0cuSdgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSdwKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_xWDW0GNcEdqA9eCD16eJRQ">
+ <body>Edition d'un compte</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0cuSeAKLEdq6wrOLNneL2Q" name="email" visibility="private">
+ <eAnnotations xmi:id="_0cuSeQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSegKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSewKLEdq6wrOLNneL2Q" name="prenom" visibility="private">
+ <eAnnotations xmi:id="_0cuSfAKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSfQKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSfgKLEdq6wrOLNneL2Q" name="nom" visibility="private">
+ <eAnnotations xmi:id="_0cuSfwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSgAKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSgQKLEdq6wrOLNneL2Q" name="login" visibility="private">
+ <eAnnotations xmi:id="_0cuSggKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSgwKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuShAKLEdq6wrOLNneL2Q" name="motDePasse" visibility="private">
+ <eAnnotations xmi:id="_0cuShQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuShgKLEdq6wrOLNneL2Q" key="Password"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuShwKLEdq6wrOLNneL2Q" name="visualisationBlogs" visibility="private" type="_0cuSrAKLEdq6wrOLNneL2Q" association="_0c6feAKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0cuSiwKLEdq6wrOLNneL2Q" name="modifier"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0cuSnAKLEdq6wrOLNneL2Q" memberEnd="_0cuSlQKLEdq6wrOLNneL2Q _0cuScAKLEdq6wrOLNneL2Q"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_0cuSnQKLEdq6wrOLNneL2Q" name="principal">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSngKLEdq6wrOLNneL2Q" name="CreationBlog">
+ <eAnnotations xmi:id="_0cuSnwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSoAKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="__pFXkGNcEdqA9eCD16eJRQ">
+ <body>Création d'un nouveau blog</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0cuSoQKLEdq6wrOLNneL2Q" name="contenu" visibility="private">
+ <eAnnotations xmi:id="_0cuSogKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSowKLEdq6wrOLNneL2Q" key="Textarea"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSpAKLEdq6wrOLNneL2Q" name="titre" visibility="private">
+ <eAnnotations xmi:id="_0cuSpQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSpgKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSpwKLEdq6wrOLNneL2Q" name="visualisationBlogs" visibility="private" type="_0cuSrAKLEdq6wrOLNneL2Q" association="_0c6fdwKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0cuSqwKLEdq6wrOLNneL2Q" name="creer"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSrAKLEdq6wrOLNneL2Q" name="VisualisationBlogs">
+ <eAnnotations xmi:id="_0cuSrQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0c6fYAKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_djk1YGNdEdqA9eCD16eJRQ">
+ <body>Les Weblogs</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0c6fYQKLEdq6wrOLNneL2Q" name="blogs" visibility="private" type="_0cuSTQKLEdq6wrOLNneL2Q">
+ <eAnnotations xmi:id="_0c6fYgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0c6fYwKLEdq6wrOLNneL2Q" key="List"/>
+ </eAnnotations>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0c6fZAKLEdq6wrOLNneL2Q" value="*"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0c6fZQKLEdq6wrOLNneL2Q"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0c6fZgKLEdq6wrOLNneL2Q" name="message" visibility="private">
+ <eAnnotations xmi:id="_0c6fZwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0c6faAKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0c6faQKLEdq6wrOLNneL2Q" name="utilisateur" visibility="private">
+ <eAnnotations xmi:id="_0c6fagKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0c6fawKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0c6fbAKLEdq6wrOLNneL2Q" name="creerBlog" visibility="private" type="_0cuSngKLEdq6wrOLNneL2Q" association="_0c6fdwKLEdq6wrOLNneL2Q"/>
+ <ownedAttribute xmi:id="_0c6fbQKLEdq6wrOLNneL2Q" name="logout" visibility="private" type="_0cuSjAKLEdq6wrOLNneL2Q" association="_0c6feQKLEdq6wrOLNneL2Q"/>
+ <ownedAttribute xmi:id="_0c6fbgKLEdq6wrOLNneL2Q" name="editionCompte" visibility="private" type="_0cuSdQKLEdq6wrOLNneL2Q" association="_0c6feAKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0c6fcgKLEdq6wrOLNneL2Q" name="creerBlog"/>
+ <ownedOperation xmi:id="_0c6fcwKLEdq6wrOLNneL2Q" name="deconnecter"/>
+ <ownedOperation xmi:id="_0c6fdAKLEdq6wrOLNneL2Q" name="editerCompte"/>
+ <ownedOperation xmi:id="_0c6fdgKLEdq6wrOLNneL2Q" name="recharger"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0c6fdwKLEdq6wrOLNneL2Q" memberEnd="_0cuSpwKLEdq6wrOLNneL2Q _0c6fbAKLEdq6wrOLNneL2Q"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSXgKLEdq6wrOLNneL2Q" name="CreationCompte">
+ <eAnnotations xmi:id="_0cuSXwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSYAKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_pX9e4GNcEdqA9eCD16eJRQ">
+ <body>Création d'un nouveau compte</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0cuSYQKLEdq6wrOLNneL2Q" name="email" visibility="private">
+ <eAnnotations xmi:id="_0cuSYgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSYwKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSZAKLEdq6wrOLNneL2Q" name="prenom" visibility="private">
+ <eAnnotations xmi:id="_0cuSZQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSZgKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSZwKLEdq6wrOLNneL2Q" name="nom" visibility="private">
+ <eAnnotations xmi:id="_0cuSaAKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSaQKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSagKLEdq6wrOLNneL2Q" name="login" visibility="private">
+ <eAnnotations xmi:id="_0cuSawKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSbAKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSbQKLEdq6wrOLNneL2Q" name="motDePasse" visibility="private">
+ <eAnnotations xmi:id="_0cuSbgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSbwKLEdq6wrOLNneL2Q" key="Password"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuScAKLEdq6wrOLNneL2Q" name="connection" visibility="private" type="_0cuSjAKLEdq6wrOLNneL2Q" association="_0cuSnAKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0cuSdAKLEdq6wrOLNneL2Q" name="creer"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0cuSjAKLEdq6wrOLNneL2Q" name="Connection">
+ <eAnnotations xmi:id="_0cuSjQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSjgKLEdq6wrOLNneL2Q" key="Screen"/>
+ </eAnnotations>
+ <ownedComment xmi:id="_7M3D4GNcEdqA9eCD16eJRQ">
+ <body>Connection</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_0cuSjwKLEdq6wrOLNneL2Q" name="login" visibility="private">
+ <eAnnotations xmi:id="_0cuSkAKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSkQKLEdq6wrOLNneL2Q" key="Text"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSkgKLEdq6wrOLNneL2Q" name="motDePasse" visibility="private">
+ <eAnnotations xmi:id="_0cuSkwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details xmi:id="_0cuSlAKLEdq6wrOLNneL2Q" key="Password"/>
+ </eAnnotations>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_0cuSlQKLEdq6wrOLNneL2Q" name="creationCompte" visibility="private" type="_0cuSXgKLEdq6wrOLNneL2Q" association="_0cuSnAKLEdq6wrOLNneL2Q"/>
+ <ownedAttribute xmi:id="_0cuSlgKLEdq6wrOLNneL2Q" name="viewlogs" visibility="private" type="_0cuSrAKLEdq6wrOLNneL2Q" association="_0c6feQKLEdq6wrOLNneL2Q"/>
+ <ownedOperation xmi:id="_0cuSmgKLEdq6wrOLNneL2Q" name="connecter"/>
+ <ownedOperation xmi:id="_0cuSmwKLEdq6wrOLNneL2Q" name="creerCompte"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0c6feAKLEdq6wrOLNneL2Q" memberEnd="_0c6fbgKLEdq6wrOLNneL2Q _0cuShwKLEdq6wrOLNneL2Q"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_0c6feQKLEdq6wrOLNneL2Q" memberEnd="_0cuSlgKLEdq6wrOLNneL2Q _0c6fbQKLEdq6wrOLNneL2Q"/>
+ </packagedElement>
+ <profileApplication xmi:id="_0cuSMgKLEdq6wrOLNneL2Q">
+ <eAnnotations xmi:id="_0cuSMwKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#__LeIQK86Edih9-GG5afQ0g"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_0cuSNQKLEdq6wrOLNneL2Q">
+ <eAnnotations xmi:id="_0cuSNgKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#_JtpGgK87Edih9-GG5afQ0g"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_0cuSOAKLEdq6wrOLNneL2Q">
+ <eAnnotations xmi:id="_0cuSOQKLEdq6wrOLNneL2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#_QHin0K87Edih9-GG5afQ0g"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/gmfgen/entity.bkp.gmfgen b/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/gmfgen/entity.bkp.gmfgen
new file mode 100644
index 000000000..28bc014a4
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/gmfgen/entity.bkp.gmfgen
@@ -0,0 +1,500 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gmfgen:GenEditorGenerator xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:gmfgen="http://www.eclipse.org/gmf/2006/GenModel">
+ <diagram
+ visualID="79"
+ editPartClassName="RootEditPart"
+ itemSemanticEditPolicyClassName="RootItemSemanticEditPolicy"
+ notationViewFactoryClassName="RootViewFactory"
+ canonicalEditPolicyClassName="RootCanonicalEditPolicy"
+ iconProviderPriority="Low">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Diagram"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="RootEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:FigureViewmap"
+ figureQualifiedClassName="org.eclipse.draw2d.FreeformLayer"/>
+ <containsShortcutsTo>entity</containsShortcutsTo>
+ <shortcutsProvidedFor>entity</shortcutsProvidedFor>
+ <domainDiagramElement
+ href="entity.genmodel#//entity/Root"/>
+ <childNodes
+ visualID="2001"
+ editPartClassName="EntityEditPart"
+ itemSemanticEditPolicyClassName="EntityItemSemanticEditPolicy"
+ notationViewFactoryClassName="EntityViewFactory"
+ canonicalEditPolicyClassName="EntityCanonicalEditPolicy"
+ compartments="//@diagram/@compartments.1"
+ graphicalNodeEditPolicyClassName="Entity2GraphicalNodeEditPolicy"
+ containers="//@diagram/@compartments.0 //@diagram/@compartments.2">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="EntityEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="EntityFigure"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class EntityFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public EntityFigure() {&#x9;&#xA;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;this.setBackgroundColor(ENTITYFIGURE_BACK&#xA;&#xA;);&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#x9;&#x9;org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel();&#xA;fig_0.setText(&quot;&lt;...>&quot;);&#xA;&#xA;&#xA;&#xA;&#x9;&#x9;setFigureClassifierName2Figure(fig_0);&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;Object layData0 = null;&#xA;&#xA;&#x9;&#x9;this.add(fig_0, layData0);&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fClassifierName2Figure; &#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureClassifierName2Figure() {&#xA;&#x9;&#x9;return fClassifierName2Figure;&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void setFigureClassifierName2Figure(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig){&#xA;&#x9;&#x9;fClassifierName2Figure = fig;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;}&#xA;&#x9;&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public static final org.eclipse.swt.graphics.Color ENTITYFIGURE_BACK = new org.eclipse.swt.graphics.Color(null, 206, 223, 226);&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedBackground="true"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="entity.genmodel#//entity/Entity"/>
+ <containmentMetaFeature
+ href="entity.genmodel#//entity/Block/entities"/>
+ <childMetaFeature
+ href="entity.genmodel#//entity/Block/entities"/>
+ </modelFacet>
+ <labels
+ visualID="4001"
+ editPartClassName="EntityNameEditPart"
+ itemSemanticEditPolicyClassName="EntityNameItemSemanticEditPolicy"
+ notationViewFactoryClassName="EntityNameViewFactory"
+ elementIcon="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureClassifierName2Figure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet">
+ <metaFeatures
+ href="../../../plugin/fr.obeo.dsl.environment/model/environment.genmodel#//environment/Type/name"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildLabelNode"
+ visualID="2002"
+ editPartClassName="AttributeEditPart"
+ itemSemanticEditPolicyClassName="AttributeItemSemanticEditPolicy"
+ notationViewFactoryClassName="AttributeViewFactory"
+ canonicalEditPolicyClassName="AttributeCanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="AttributeGraphicalNodeEditPolicy"
+ containers="//@diagram/@compartments.1"
+ labelElementIcon="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="AttributeEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="AttributeNameFigure"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class AttributeNameFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public AttributeNameFigure() {&#x9;&#xA;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;this.setText(&quot;&lt;...>&quot;);&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;}&#xA;&#x9;&#xA;">
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="entity.genmodel#//entity/Attribute"/>
+ <containmentMetaFeature
+ href="entity.genmodel#//entity/Entity/ownedAttributes"/>
+ <childMetaFeature
+ href="entity.genmodel#//entity/Entity/ownedAttributes"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ body="1">
+ <feature
+ href="entity.genmodel#//entity/Property/upperBound"/>
+ </initializers>
+ </modelElementInitializer>
+ </modelFacet>
+ <labelModelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ viewPattern="{0}"
+ editPattern="{0}">
+ <metaFeatures
+ href="entity.genmodel#//entity/Property/name"/>
+ </labelModelFacet>
+ </childNodes>
+ <childNodes
+ visualID="2003"
+ editPartClassName="Block2EditPart"
+ itemSemanticEditPolicyClassName="Block2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="Block2ViewFactory"
+ canonicalEditPolicyClassName="Block2CanonicalEditPolicy"
+ compartments="//@diagram/@compartments.2"
+ graphicalNodeEditPolicyClassName="Block2GraphicalNodeEditPolicy"
+ containers="//@diagram/@compartments.2 //@diagram/@compartments.0">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@topLevelNodes.0/@elementType"
+ editHelperAdviceClassName="BlockEditHelperAdvice"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="BlockFigure"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class BlockFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public BlockFigure() {&#x9;&#xA;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;this.setBackgroundColor(BLOCKFIGURE_BACK&#xA;&#xA;);&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#x9;&#x9;org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel();&#xA;fig_0.setText(&quot;&lt;...>&quot;);&#xA;&#xA;&#xA;&#xA;&#x9;&#x9;setFigureBlockNameFigure(fig_0);&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;Object layData0 = null;&#xA;&#xA;&#x9;&#x9;this.add(fig_0, layData0);&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fBlockNameFigure; &#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureBlockNameFigure() {&#xA;&#x9;&#x9;return fBlockNameFigure;&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void setFigureBlockNameFigure(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig){&#xA;&#x9;&#x9;fBlockNameFigure = fig;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;}&#xA;&#x9;&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public static final org.eclipse.swt.graphics.Color BLOCKFIGURE_BACK = new org.eclipse.swt.graphics.Color(null, 230, 238, 240);&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedBackground="true"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="entity.genmodel#//entity/Block"/>
+ <containmentMetaFeature
+ href="entity.genmodel#//entity/Block/subblocks"/>
+ <childMetaFeature
+ href="entity.genmodel#//entity/Block/subblocks"/>
+ </modelFacet>
+ <labels
+ visualID="4002"
+ editPartClassName="BlockNameEditPart"
+ itemSemanticEditPolicyClassName="BlockNameItemSemanticEditPolicy"
+ notationViewFactoryClassName="BlockNameViewFactory"
+ elementIcon="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureBlockNameFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet">
+ <metaFeatures
+ href="entity.genmodel#//entity/Block/name"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <topLevelNodes
+ visualID="1001"
+ editPartClassName="BlockEditPart"
+ itemSemanticEditPolicyClassName="BlockItemSemanticEditPolicy"
+ notationViewFactoryClassName="BlockViewFactory"
+ canonicalEditPolicyClassName="BlockCanonicalEditPolicy"
+ compartments="//@diagram/@compartments.0"
+ graphicalNodeEditPolicyClassName="BlockGraphicalNodeEditPolicy">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="BlockEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="BlockFigure"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class BlockFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public BlockFigure() {&#x9;&#xA;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;this.setBackgroundColor(BLOCKFIGURE_BACK&#xA;&#xA;);&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#x9;&#x9;org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel();&#xA;fig_0.setText(&quot;&lt;...>&quot;);&#xA;&#xA;&#xA;&#xA;&#x9;&#x9;setFigureBlockNameFigure(fig_0);&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;Object layData0 = null;&#xA;&#xA;&#x9;&#x9;this.add(fig_0, layData0);&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fBlockNameFigure; &#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureBlockNameFigure() {&#xA;&#x9;&#x9;return fBlockNameFigure;&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void setFigureBlockNameFigure(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig){&#xA;&#x9;&#x9;fBlockNameFigure = fig;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;}&#xA;&#x9;&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public static final org.eclipse.swt.graphics.Color BLOCKFIGURE_BACK = new org.eclipse.swt.graphics.Color(null, 230, 238, 240);&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedBackground="true"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="entity.genmodel#//entity/Block"/>
+ <containmentMetaFeature
+ href="entity.genmodel#//entity/Root/blocks"/>
+ <childMetaFeature
+ href="entity.genmodel#//entity/Root/blocks"/>
+ </modelFacet>
+ <labels
+ visualID="4003"
+ editPartClassName="BlockName2EditPart"
+ itemSemanticEditPolicyClassName="BlockName2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="BlockName2ViewFactory"
+ elementIcon="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureBlockNameFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet">
+ <metaFeatures
+ href="entity.genmodel#//entity/Block/name"/>
+ </modelFacet>
+ </labels>
+ </topLevelNodes>
+ <links
+ visualID="3001"
+ editPartClassName="EntitySupertypeEditPart"
+ itemSemanticEditPolicyClassName="EntitySupertypeItemSemanticEditPolicy"
+ notationViewFactoryClassName="EntitySupertypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ editHelperAdviceClassName="EntitySupertypeEditHelperAdvice"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SolidLineWDstClosedArrow"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class SolidLineWDstClosedArrow extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public SolidLineWDstClosedArrow() {&#xA;&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.PolygonDecoration createTargetDecoration() {&#xA;org.eclipse.draw2d.PolygonDecoration df = new org.eclipse.draw2d.PolygonDecoration();&#xA;// dispatchNext?&#xA;&#x9;&#x9;df.setFill(true);&#xA;&#x9;&#x9;df.setBackgroundColor(org.eclipse.draw2d.ColorConstants.white&#xA;&#xA;);&#xA;&#x9;&#x9;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xA;&#x9;&#x9;pl.addPoint(0, 0);&#xA;&#x9;&#x9;pl.addPoint(-2, 2);&#xA;&#x9;&#x9;pl.addPoint(-2, -2);&#xA;&#x9;&#x9;pl.addPoint(0, 0);&#xA;&#x9;&#x9;df.setTemplate(pl);&#xA;&#x9;&#x9;df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3));&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;}&#xA;&#x9;&#xA;">
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLinkModelFacet">
+ <metaFeature
+ href="entity.genmodel#//entity/Entity/supertype"/>
+ </modelFacet>
+ </links>
+ <links
+ visualID="3002"
+ editPartClassName="ReferenceEditPart"
+ itemSemanticEditPolicyClassName="ReferenceItemSemanticEditPolicy"
+ notationViewFactoryClassName="ReferenceViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="ReferenceEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SolidLineWDstArrow"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class SolidLineWDstArrow extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public SolidLineWDstArrow() {&#xA;&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.PolylineDecoration createTargetDecoration() {&#xA;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xA;// dispatchNext?&#xA;&#xA;&#x9;&#x9;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xA;&#x9;&#x9;pl.addPoint(-1, 1);&#xA;&#x9;&#x9;pl.addPoint(0, 0);&#xA;&#x9;&#x9;pl.addPoint(-1, -1);&#xA;&#x9;&#x9;df.setTemplate(pl);&#xA;&#x9;&#x9;df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3));&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;}&#xA;&#x9;&#xA;">
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:TypeLinkModelFacet">
+ <metaClass
+ href="entity.genmodel#//entity/Reference"/>
+ <containmentMetaFeature
+ href="entity.genmodel#//entity/Entity/ownedReferences"/>
+ <childMetaFeature
+ href="entity.genmodel#//entity/Entity/ownedReferences"/>
+ <modelElementSelector
+ body="not isComposite"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ body="false">
+ <feature
+ href="entity.genmodel#//entity/Reference/isComposite"/>
+ </initializers>
+ </modelElementInitializer>
+ <sourceMetaFeature
+ href="entity.genmodel#//entity/Reference/entity"/>
+ <targetMetaFeature
+ href="entity.genmodel#//entity/Reference/type"/>
+ </modelFacet>
+ <labels
+ visualID="4004"
+ editPartClassName="ReferenceNameEditPart"
+ itemSemanticEditPolicyClassName="ReferenceNameItemSemanticEditPolicy"
+ notationViewFactoryClassName="ReferenceNameViewFactory"
+ elementIcon="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ReferenceNameFigure"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class ReferenceNameFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public ReferenceNameFigure() {&#x9;&#xA;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;this.setText(&quot;&lt;...>&quot;);&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;}&#xA;&#x9;&#xA;">
+ <attributes
+ xsi:type="gmfgen:LabelOffsetAttributes"
+ y="40"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ viewPattern=""
+ editPattern="">
+ <metaFeatures
+ href="entity.genmodel#//entity/Property/name"/>
+ </modelFacet>
+ </labels>
+ </links>
+ <links
+ visualID="3003"
+ editPartClassName="Reference2EditPart"
+ itemSemanticEditPolicyClassName="Reference2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="Reference2ViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@links.1/@elementType"
+ editHelperAdviceClassName="ReferenceEditHelperAdvice"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SolidLineWSrcDiamond"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class SolidLineWSrcDiamond extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public SolidLineWSrcDiamond() {&#xA;&#xA;&#x9;&#x9;setSourceDecoration(createSourceDecoration());&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.PolygonDecoration createSourceDecoration() {&#xA;org.eclipse.draw2d.PolygonDecoration df = new org.eclipse.draw2d.PolygonDecoration();&#xA;// dispatchNext?&#xA;&#x9;&#x9;df.setFill(true);&#xA;&#x9;&#x9;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xA;&#x9;&#x9;pl.addPoint(-1, 1);&#xA;&#x9;&#x9;pl.addPoint(0, 0);&#xA;&#x9;&#x9;pl.addPoint(-1, -1);&#xA;&#x9;&#x9;pl.addPoint(-2, 0);&#xA;&#x9;&#x9;pl.addPoint(-1, 1);&#xA;&#x9;&#x9;df.setTemplate(pl);&#xA;&#x9;&#x9;df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3));&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#x9;&#xA;">
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:TypeLinkModelFacet">
+ <metaClass
+ href="entity.genmodel#//entity/Reference"/>
+ <containmentMetaFeature
+ href="entity.genmodel#//entity/Entity/ownedReferences"/>
+ <childMetaFeature
+ href="entity.genmodel#//entity/Entity/ownedReferences"/>
+ <modelElementSelector
+ body="isComposite"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ body="true">
+ <feature
+ href="entity.genmodel#//entity/Reference/isComposite"/>
+ </initializers>
+ </modelElementInitializer>
+ <sourceMetaFeature
+ href="entity.genmodel#//entity/Reference/entity"/>
+ <targetMetaFeature
+ href="entity.genmodel#//entity/Reference/type"/>
+ </modelFacet>
+ <labels
+ visualID="4005"
+ editPartClassName="ReferenceName2EditPart"
+ itemSemanticEditPolicyClassName="ReferenceName2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ReferenceName2ViewFactory"
+ elementIcon="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ReferenceNameFigure"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class ReferenceNameFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public ReferenceNameFigure() {&#x9;&#xA;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;this.setText(&quot;&lt;...>&quot;);&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;}&#xA;&#x9;&#xA;">
+ <attributes
+ xsi:type="gmfgen:LabelOffsetAttributes"
+ y="40"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet">
+ <metaFeatures
+ href="entity.genmodel#//entity/Property/name"/>
+ </modelFacet>
+ </labels>
+ </links>
+ <compartments
+ visualID="5001"
+ editPartClassName="BlockClassifiersCompartmentEditPart"
+ itemSemanticEditPolicyClassName="BlockClassifiersCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="BlockClassifiersCompartmentViewFactory"
+ canonicalEditPolicyClassName="BlockClassifiersCompartmentCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.0 //@diagram/@childNodes.2"
+ title="ClassifiersCompartment"
+ canCollapse="false"
+ needsTitle="false"
+ node="//@diagram/@topLevelNodes.0"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:FigureViewmap"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure">
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ </compartments>
+ <compartments
+ visualID="5002"
+ editPartClassName="EntityAttributesCompartmentEditPart"
+ itemSemanticEditPolicyClassName="EntityAttributesCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="EntityAttributesCompartmentViewFactory"
+ canonicalEditPolicyClassName="EntityAttributesCompartmentCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.1"
+ title="AttributesCompartment"
+ canCollapse="false"
+ needsTitle="false"
+ node="//@diagram/@childNodes.0">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:FigureViewmap"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure">
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ </compartments>
+ <compartments
+ visualID="5003"
+ editPartClassName="BlockClassifiersCompartment2EditPart"
+ itemSemanticEditPolicyClassName="BlockClassifiersCompartment2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="BlockClassifiersCompartment2ViewFactory"
+ canonicalEditPolicyClassName="BlockClassifiersCompartment2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.0 //@diagram/@childNodes.2"
+ title="ClassifiersCompartment"
+ canCollapse="false"
+ needsTitle="false"
+ node="//@diagram/@childNodes.2"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:FigureViewmap"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure">
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ </compartments>
+ <palette>
+ <groups
+ title="entity">
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Block"
+ description="Create new Block"
+ genNodes="//@diagram/@topLevelNodes.0 //@diagram/@childNodes.2"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Entity"
+ description="Create new Entity"
+ genNodes="//@diagram/@childNodes.0"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Attributes"
+ description="Create new Attribute"
+ genNodes="//@diagram/@childNodes.1"/>
+ </groups>
+ <groups
+ title="Link"
+ description="Entities relation">
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Inheritance"
+ description="Create new inheritance"
+ smallIconPath="/fr.obeo.dsl.entity.edit/icons/full/obj16/Inheritance.gif"
+ genLinks="//@diagram/@links.0"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Reference"
+ description="Create new Reference"
+ genLinks="//@diagram/@links.1"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Composition"
+ description="create new composition"
+ smallIconPath="/fr.obeo.dsl.entity.edit/icons/full/obj16/Composition.gif"
+ genLinks="//@diagram/@links.2"/>
+ </groups>
+ </palette>
+ </diagram>
+ <plugin
+ provider="Obeo.fr">
+ <requiredPlugins>org.eclipse.emf.ocl</requiredPlugins>
+ <requiredPlugins>org.eclipse.emf.query.ocl</requiredPlugins>
+ </plugin>
+ <editor/>
+ <domainGenModel
+ href="entity.genmodel#/"/>
+ <expressionProviders>
+ <providers
+ xsi:type="gmfgen:GenExpressionInterpreter"
+ expressions="//@diagram/@childNodes.1/@modelFacet/@modelElementInitializer/@initializers.0 //@diagram/@links.1/@modelFacet/@modelElementSelector //@diagram/@links.1/@modelFacet/@modelElementInitializer/@initializers.0 //@diagram/@links.2/@modelFacet/@modelElementSelector //@diagram/@links.2/@modelFacet/@modelElementInitializer/@initializers.0"/>
+ </expressionProviders>
+</gmfgen:GenEditorGenerator>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/gmfgen/entity.gmfgen b/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/gmfgen/entity.gmfgen
new file mode 100644
index 000000000..28bc014a4
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/nonstd/gmfgen/entity.gmfgen
@@ -0,0 +1,500 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gmfgen:GenEditorGenerator xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:gmfgen="http://www.eclipse.org/gmf/2006/GenModel">
+ <diagram
+ visualID="79"
+ editPartClassName="RootEditPart"
+ itemSemanticEditPolicyClassName="RootItemSemanticEditPolicy"
+ notationViewFactoryClassName="RootViewFactory"
+ canonicalEditPolicyClassName="RootCanonicalEditPolicy"
+ iconProviderPriority="Low">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Diagram"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="RootEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:FigureViewmap"
+ figureQualifiedClassName="org.eclipse.draw2d.FreeformLayer"/>
+ <containsShortcutsTo>entity</containsShortcutsTo>
+ <shortcutsProvidedFor>entity</shortcutsProvidedFor>
+ <domainDiagramElement
+ href="entity.genmodel#//entity/Root"/>
+ <childNodes
+ visualID="2001"
+ editPartClassName="EntityEditPart"
+ itemSemanticEditPolicyClassName="EntityItemSemanticEditPolicy"
+ notationViewFactoryClassName="EntityViewFactory"
+ canonicalEditPolicyClassName="EntityCanonicalEditPolicy"
+ compartments="//@diagram/@compartments.1"
+ graphicalNodeEditPolicyClassName="Entity2GraphicalNodeEditPolicy"
+ containers="//@diagram/@compartments.0 //@diagram/@compartments.2">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="EntityEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="EntityFigure"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class EntityFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public EntityFigure() {&#x9;&#xA;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;this.setBackgroundColor(ENTITYFIGURE_BACK&#xA;&#xA;);&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#x9;&#x9;org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel();&#xA;fig_0.setText(&quot;&lt;...>&quot;);&#xA;&#xA;&#xA;&#xA;&#x9;&#x9;setFigureClassifierName2Figure(fig_0);&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;Object layData0 = null;&#xA;&#xA;&#x9;&#x9;this.add(fig_0, layData0);&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fClassifierName2Figure; &#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureClassifierName2Figure() {&#xA;&#x9;&#x9;return fClassifierName2Figure;&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void setFigureClassifierName2Figure(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig){&#xA;&#x9;&#x9;fClassifierName2Figure = fig;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;}&#xA;&#x9;&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public static final org.eclipse.swt.graphics.Color ENTITYFIGURE_BACK = new org.eclipse.swt.graphics.Color(null, 206, 223, 226);&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedBackground="true"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="entity.genmodel#//entity/Entity"/>
+ <containmentMetaFeature
+ href="entity.genmodel#//entity/Block/entities"/>
+ <childMetaFeature
+ href="entity.genmodel#//entity/Block/entities"/>
+ </modelFacet>
+ <labels
+ visualID="4001"
+ editPartClassName="EntityNameEditPart"
+ itemSemanticEditPolicyClassName="EntityNameItemSemanticEditPolicy"
+ notationViewFactoryClassName="EntityNameViewFactory"
+ elementIcon="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureClassifierName2Figure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet">
+ <metaFeatures
+ href="../../../plugin/fr.obeo.dsl.environment/model/environment.genmodel#//environment/Type/name"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <childNodes
+ xsi:type="gmfgen:GenChildLabelNode"
+ visualID="2002"
+ editPartClassName="AttributeEditPart"
+ itemSemanticEditPolicyClassName="AttributeItemSemanticEditPolicy"
+ notationViewFactoryClassName="AttributeViewFactory"
+ canonicalEditPolicyClassName="AttributeCanonicalEditPolicy"
+ graphicalNodeEditPolicyClassName="AttributeGraphicalNodeEditPolicy"
+ containers="//@diagram/@compartments.1"
+ labelElementIcon="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="AttributeEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="AttributeNameFigure"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class AttributeNameFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public AttributeNameFigure() {&#x9;&#xA;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;this.setText(&quot;&lt;...>&quot;);&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;}&#xA;&#x9;&#xA;">
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="entity.genmodel#//entity/Attribute"/>
+ <containmentMetaFeature
+ href="entity.genmodel#//entity/Entity/ownedAttributes"/>
+ <childMetaFeature
+ href="entity.genmodel#//entity/Entity/ownedAttributes"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ body="1">
+ <feature
+ href="entity.genmodel#//entity/Property/upperBound"/>
+ </initializers>
+ </modelElementInitializer>
+ </modelFacet>
+ <labelModelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ viewPattern="{0}"
+ editPattern="{0}">
+ <metaFeatures
+ href="entity.genmodel#//entity/Property/name"/>
+ </labelModelFacet>
+ </childNodes>
+ <childNodes
+ visualID="2003"
+ editPartClassName="Block2EditPart"
+ itemSemanticEditPolicyClassName="Block2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="Block2ViewFactory"
+ canonicalEditPolicyClassName="Block2CanonicalEditPolicy"
+ compartments="//@diagram/@compartments.2"
+ graphicalNodeEditPolicyClassName="Block2GraphicalNodeEditPolicy"
+ containers="//@diagram/@compartments.2 //@diagram/@compartments.0">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@topLevelNodes.0/@elementType"
+ editHelperAdviceClassName="BlockEditHelperAdvice"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="BlockFigure"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class BlockFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public BlockFigure() {&#x9;&#xA;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;this.setBackgroundColor(BLOCKFIGURE_BACK&#xA;&#xA;);&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#x9;&#x9;org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel();&#xA;fig_0.setText(&quot;&lt;...>&quot;);&#xA;&#xA;&#xA;&#xA;&#x9;&#x9;setFigureBlockNameFigure(fig_0);&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;Object layData0 = null;&#xA;&#xA;&#x9;&#x9;this.add(fig_0, layData0);&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fBlockNameFigure; &#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureBlockNameFigure() {&#xA;&#x9;&#x9;return fBlockNameFigure;&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void setFigureBlockNameFigure(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig){&#xA;&#x9;&#x9;fBlockNameFigure = fig;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;}&#xA;&#x9;&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public static final org.eclipse.swt.graphics.Color BLOCKFIGURE_BACK = new org.eclipse.swt.graphics.Color(null, 230, 238, 240);&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedBackground="true"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="entity.genmodel#//entity/Block"/>
+ <containmentMetaFeature
+ href="entity.genmodel#//entity/Block/subblocks"/>
+ <childMetaFeature
+ href="entity.genmodel#//entity/Block/subblocks"/>
+ </modelFacet>
+ <labels
+ visualID="4002"
+ editPartClassName="BlockNameEditPart"
+ itemSemanticEditPolicyClassName="BlockNameItemSemanticEditPolicy"
+ notationViewFactoryClassName="BlockNameViewFactory"
+ elementIcon="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureBlockNameFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet">
+ <metaFeatures
+ href="entity.genmodel#//entity/Block/name"/>
+ </modelFacet>
+ </labels>
+ </childNodes>
+ <topLevelNodes
+ visualID="1001"
+ editPartClassName="BlockEditPart"
+ itemSemanticEditPolicyClassName="BlockItemSemanticEditPolicy"
+ notationViewFactoryClassName="BlockViewFactory"
+ canonicalEditPolicyClassName="BlockCanonicalEditPolicy"
+ compartments="//@diagram/@compartments.0"
+ graphicalNodeEditPolicyClassName="BlockGraphicalNodeEditPolicy">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="BlockEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="BlockFigure"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class BlockFigure extends org.eclipse.draw2d.RectangleFigure {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public BlockFigure() {&#x9;&#xA;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;this.setBackgroundColor(BLOCKFIGURE_BACK&#xA;&#xA;);&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#x9;&#x9;org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig_0 = new org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel();&#xA;fig_0.setText(&quot;&lt;...>&quot;);&#xA;&#xA;&#xA;&#xA;&#x9;&#x9;setFigureBlockNameFigure(fig_0);&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;Object layData0 = null;&#xA;&#xA;&#x9;&#x9;this.add(fig_0, layData0);&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fBlockNameFigure; &#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel getFigureBlockNameFigure() {&#xA;&#x9;&#x9;return fBlockNameFigure;&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void setFigureBlockNameFigure(org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel fig){&#xA;&#x9;&#x9;fBlockNameFigure = fig;&#xA;&#x9;}&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;}&#xA;&#x9;&#xA;&#x9;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public static final org.eclipse.swt.graphics.Color BLOCKFIGURE_BACK = new org.eclipse.swt.graphics.Color(null, 230, 238, 240);&#xA;">
+ <attributes
+ xsi:type="gmfgen:StyleAttributes"
+ fixedBackground="true"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet>
+ <metaClass
+ href="entity.genmodel#//entity/Block"/>
+ <containmentMetaFeature
+ href="entity.genmodel#//entity/Root/blocks"/>
+ <childMetaFeature
+ href="entity.genmodel#//entity/Root/blocks"/>
+ </modelFacet>
+ <labels
+ visualID="4003"
+ editPartClassName="BlockName2EditPart"
+ itemSemanticEditPolicyClassName="BlockName2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="BlockName2ViewFactory"
+ elementIcon="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:ParentAssignedViewmap"
+ getterName="getFigureBlockNameFigure"
+ figureQualifiedClassName="org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel"/>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet">
+ <metaFeatures
+ href="entity.genmodel#//entity/Block/name"/>
+ </modelFacet>
+ </labels>
+ </topLevelNodes>
+ <links
+ visualID="3001"
+ editPartClassName="EntitySupertypeEditPart"
+ itemSemanticEditPolicyClassName="EntitySupertypeItemSemanticEditPolicy"
+ notationViewFactoryClassName="EntitySupertypeViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ editHelperAdviceClassName="EntitySupertypeEditHelperAdvice"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SolidLineWDstClosedArrow"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class SolidLineWDstClosedArrow extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public SolidLineWDstClosedArrow() {&#xA;&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.PolygonDecoration createTargetDecoration() {&#xA;org.eclipse.draw2d.PolygonDecoration df = new org.eclipse.draw2d.PolygonDecoration();&#xA;// dispatchNext?&#xA;&#x9;&#x9;df.setFill(true);&#xA;&#x9;&#x9;df.setBackgroundColor(org.eclipse.draw2d.ColorConstants.white&#xA;&#xA;);&#xA;&#x9;&#x9;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xA;&#x9;&#x9;pl.addPoint(0, 0);&#xA;&#x9;&#x9;pl.addPoint(-2, 2);&#xA;&#x9;&#x9;pl.addPoint(-2, -2);&#xA;&#x9;&#x9;pl.addPoint(0, 0);&#xA;&#x9;&#x9;df.setTemplate(pl);&#xA;&#x9;&#x9;df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3));&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;}&#xA;&#x9;&#xA;">
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLinkModelFacet">
+ <metaFeature
+ href="entity.genmodel#//entity/Entity/supertype"/>
+ </modelFacet>
+ </links>
+ <links
+ visualID="3002"
+ editPartClassName="ReferenceEditPart"
+ itemSemanticEditPolicyClassName="ReferenceItemSemanticEditPolicy"
+ notationViewFactoryClassName="ReferenceViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:MetamodelType"
+ editHelperClassName="ReferenceEditHelper"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SolidLineWDstArrow"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class SolidLineWDstArrow extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public SolidLineWDstArrow() {&#xA;&#xA;&#x9;&#x9;setTargetDecoration(createTargetDecoration());&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.PolylineDecoration createTargetDecoration() {&#xA;org.eclipse.draw2d.PolylineDecoration df = new org.eclipse.draw2d.PolylineDecoration();&#xA;// dispatchNext?&#xA;&#xA;&#x9;&#x9;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xA;&#x9;&#x9;pl.addPoint(-1, 1);&#xA;&#x9;&#x9;pl.addPoint(0, 0);&#xA;&#x9;&#x9;pl.addPoint(-1, -1);&#xA;&#x9;&#x9;df.setTemplate(pl);&#xA;&#x9;&#x9;df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3));&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;}&#xA;&#x9;&#xA;">
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:TypeLinkModelFacet">
+ <metaClass
+ href="entity.genmodel#//entity/Reference"/>
+ <containmentMetaFeature
+ href="entity.genmodel#//entity/Entity/ownedReferences"/>
+ <childMetaFeature
+ href="entity.genmodel#//entity/Entity/ownedReferences"/>
+ <modelElementSelector
+ body="not isComposite"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ body="false">
+ <feature
+ href="entity.genmodel#//entity/Reference/isComposite"/>
+ </initializers>
+ </modelElementInitializer>
+ <sourceMetaFeature
+ href="entity.genmodel#//entity/Reference/entity"/>
+ <targetMetaFeature
+ href="entity.genmodel#//entity/Reference/type"/>
+ </modelFacet>
+ <labels
+ visualID="4004"
+ editPartClassName="ReferenceNameEditPart"
+ itemSemanticEditPolicyClassName="ReferenceNameItemSemanticEditPolicy"
+ notationViewFactoryClassName="ReferenceNameViewFactory"
+ elementIcon="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ReferenceNameFigure"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class ReferenceNameFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public ReferenceNameFigure() {&#x9;&#xA;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;this.setText(&quot;&lt;...>&quot;);&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;}&#xA;&#x9;&#xA;">
+ <attributes
+ xsi:type="gmfgen:LabelOffsetAttributes"
+ y="40"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet"
+ viewPattern=""
+ editPattern="">
+ <metaFeatures
+ href="entity.genmodel#//entity/Property/name"/>
+ </modelFacet>
+ </labels>
+ </links>
+ <links
+ visualID="3003"
+ editPartClassName="Reference2EditPart"
+ itemSemanticEditPolicyClassName="Reference2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="Reference2ViewFactory">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Edge"/>
+ <elementType
+ xsi:type="gmfgen:SpecializationType"
+ metamodelType="//@diagram/@links.1/@elementType"
+ editHelperAdviceClassName="ReferenceEditHelperAdvice"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="SolidLineWSrcDiamond"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class SolidLineWSrcDiamond extends org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public SolidLineWSrcDiamond() {&#xA;&#xA;&#x9;&#x9;setSourceDecoration(createSourceDecoration());&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private org.eclipse.draw2d.PolygonDecoration createSourceDecoration() {&#xA;org.eclipse.draw2d.PolygonDecoration df = new org.eclipse.draw2d.PolygonDecoration();&#xA;// dispatchNext?&#xA;&#x9;&#x9;df.setFill(true);&#xA;&#x9;&#x9;org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();&#xA;&#x9;&#x9;pl.addPoint(-1, 1);&#xA;&#x9;&#x9;pl.addPoint(0, 0);&#xA;&#x9;&#x9;pl.addPoint(-1, -1);&#xA;&#x9;&#x9;pl.addPoint(-2, 0);&#xA;&#x9;&#x9;pl.addPoint(-1, 1);&#xA;&#x9;&#x9;df.setTemplate(pl);&#xA;&#x9;&#x9;df.setScale(getMapMode().DPtoLP(7), getMapMode().DPtoLP(3));&#xA;&#xA;&#xA;&#xA;&#xA;&#x9;&#x9;return df;&#xA;&#x9;}&#xA;&#xA;&#xA;}&#xA;&#x9;&#xA;">
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:TypeLinkModelFacet">
+ <metaClass
+ href="entity.genmodel#//entity/Reference"/>
+ <containmentMetaFeature
+ href="entity.genmodel#//entity/Entity/ownedReferences"/>
+ <childMetaFeature
+ href="entity.genmodel#//entity/Entity/ownedReferences"/>
+ <modelElementSelector
+ body="isComposite"/>
+ <modelElementInitializer
+ xsi:type="gmfgen:GenFeatureSeqInitializer">
+ <initializers
+ xsi:type="gmfgen:GenFeatureValueSpec"
+ body="true">
+ <feature
+ href="entity.genmodel#//entity/Reference/isComposite"/>
+ </initializers>
+ </modelElementInitializer>
+ <sourceMetaFeature
+ href="entity.genmodel#//entity/Reference/entity"/>
+ <targetMetaFeature
+ href="entity.genmodel#//entity/Reference/type"/>
+ </modelFacet>
+ <labels
+ visualID="4005"
+ editPartClassName="ReferenceName2EditPart"
+ itemSemanticEditPolicyClassName="ReferenceName2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="ReferenceName2ViewFactory"
+ elementIcon="true">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:InnerClassViewmap"
+ className="ReferenceNameFigure"
+ classBody="&#xA;&#xA;/**&#xA; * @generated&#xA; */&#xA;public class ReferenceNameFigure extends org.eclipse.gmf.runtime.draw2d.ui.figures.WrapLabel {&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;public ReferenceNameFigure() {&#x9;&#xA;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;this.setText(&quot;&lt;...>&quot;);&#xA;&#x9;&#x9;createContents();&#xA;&#x9;}&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private void createContents(){&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;private boolean myUseLocalCoordinates = false;&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected boolean useLocalCoordinates() {&#xA;&#x9;&#x9;return myUseLocalCoordinates;&#xA;&#x9;}&#xA;&#xA;&#x9;/**&#xA;&#x9; * @generated&#xA;&#x9; */&#xA;&#x9;protected void setUseLocalCoordinates(boolean useLocalCoordinates) {&#xA;&#x9;&#x9;myUseLocalCoordinates = useLocalCoordinates;&#xA;&#x9;}&#xA;&#x9;&#xA;&#xA;}&#xA;&#x9;&#xA;">
+ <attributes
+ xsi:type="gmfgen:LabelOffsetAttributes"
+ y="40"/>
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ <modelFacet
+ xsi:type="gmfgen:FeatureLabelModelFacet">
+ <metaFeatures
+ href="entity.genmodel#//entity/Property/name"/>
+ </modelFacet>
+ </labels>
+ </links>
+ <compartments
+ visualID="5001"
+ editPartClassName="BlockClassifiersCompartmentEditPart"
+ itemSemanticEditPolicyClassName="BlockClassifiersCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="BlockClassifiersCompartmentViewFactory"
+ canonicalEditPolicyClassName="BlockClassifiersCompartmentCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.0 //@diagram/@childNodes.2"
+ title="ClassifiersCompartment"
+ canCollapse="false"
+ needsTitle="false"
+ node="//@diagram/@topLevelNodes.0"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:FigureViewmap"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure">
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ </compartments>
+ <compartments
+ visualID="5002"
+ editPartClassName="EntityAttributesCompartmentEditPart"
+ itemSemanticEditPolicyClassName="EntityAttributesCompartmentItemSemanticEditPolicy"
+ notationViewFactoryClassName="EntityAttributesCompartmentViewFactory"
+ canonicalEditPolicyClassName="EntityAttributesCompartmentCanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.1"
+ title="AttributesCompartment"
+ canCollapse="false"
+ needsTitle="false"
+ node="//@diagram/@childNodes.0">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:FigureViewmap"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure">
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ </compartments>
+ <compartments
+ visualID="5003"
+ editPartClassName="BlockClassifiersCompartment2EditPart"
+ itemSemanticEditPolicyClassName="BlockClassifiersCompartment2ItemSemanticEditPolicy"
+ notationViewFactoryClassName="BlockClassifiersCompartment2ViewFactory"
+ canonicalEditPolicyClassName="BlockClassifiersCompartment2CanonicalEditPolicy"
+ childNodes="//@diagram/@childNodes.0 //@diagram/@childNodes.2"
+ title="ClassifiersCompartment"
+ canCollapse="false"
+ needsTitle="false"
+ node="//@diagram/@childNodes.2"
+ listLayout="false">
+ <diagramRunTimeClass
+ href="../../../plugin/org.eclipse.gmf.runtime.notation/model/notation.genmodel#//notation/Node"/>
+ <viewmap
+ xsi:type="gmfgen:FigureViewmap"
+ figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure">
+ <requiredPluginIDs>org.eclipse.draw2d</requiredPluginIDs>
+ <requiredPluginIDs>org.eclipse.gmf.runtime.draw2d.ui</requiredPluginIDs>
+ </viewmap>
+ </compartments>
+ <palette>
+ <groups
+ title="entity">
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Block"
+ description="Create new Block"
+ genNodes="//@diagram/@topLevelNodes.0 //@diagram/@childNodes.2"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Entity"
+ description="Create new Entity"
+ genNodes="//@diagram/@childNodes.0"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Attributes"
+ description="Create new Attribute"
+ genNodes="//@diagram/@childNodes.1"/>
+ </groups>
+ <groups
+ title="Link"
+ description="Entities relation">
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Inheritance"
+ description="Create new inheritance"
+ smallIconPath="/fr.obeo.dsl.entity.edit/icons/full/obj16/Inheritance.gif"
+ genLinks="//@diagram/@links.0"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Reference"
+ description="Create new Reference"
+ genLinks="//@diagram/@links.1"/>
+ <entries
+ xsi:type="gmfgen:ToolEntry"
+ title="Composition"
+ description="create new composition"
+ smallIconPath="/fr.obeo.dsl.entity.edit/icons/full/obj16/Composition.gif"
+ genLinks="//@diagram/@links.2"/>
+ </groups>
+ </palette>
+ </diagram>
+ <plugin
+ provider="Obeo.fr">
+ <requiredPlugins>org.eclipse.emf.ocl</requiredPlugins>
+ <requiredPlugins>org.eclipse.emf.query.ocl</requiredPlugins>
+ </plugin>
+ <editor/>
+ <domainGenModel
+ href="entity.genmodel#/"/>
+ <expressionProviders>
+ <providers
+ xsi:type="gmfgen:GenExpressionInterpreter"
+ expressions="//@diagram/@childNodes.1/@modelFacet/@modelElementInitializer/@initializers.0 //@diagram/@links.1/@modelFacet/@modelElementSelector //@diagram/@links.1/@modelFacet/@modelElementInitializer/@initializers.0 //@diagram/@links.2/@modelFacet/@modelElementSelector //@diagram/@links.2/@modelFacet/@modelElementInitializer/@initializers.0"/>
+ </expressionProviders>
+</gmfgen:GenEditorGenerator>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore
new file mode 100644
index 000000000..f6de66319
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1.ecore
@@ -0,0 +1,314 @@
+<?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="src">
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacade" interface="true">
+ <eOperations name="getOrdersByStatus" eType="#//OrdersTO">
+ <eParameters name="status"/>
+ </eOperations>
+ <eOperations name="getChartInfo">
+ <eParameters name="request"/>
+ <eParameters name="start"/>
+ <eParameters name="end"/>
+ <eParameters name="requestedCategory"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeEJB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="ejbPostCreate"/>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="ejbActivate"/>
+ <eOperations name="ejbPassivate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PROCMGR_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poLocalHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManagerLocal"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeException"/>
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeHome" interface="true">
+ <eOperations name="create" eType="#//OPCAdminFacade"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OrderDetails">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="orderId"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="userId"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="orderDate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="orderValue"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="orderStatus"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OrdersTO" interface="true">
+ <eOperations name="iterator"/>
+ <eOperations name="size"/>
+ <eOperations name="contains">
+ <eParameters name="o"/>
+ </eOperations>
+ <eOperations name="containsAll">
+ <eParameters name="c"/>
+ </eOperations>
+ <eOperations name="equals">
+ <eParameters name="o"/>
+ </eOperations>
+ <eOperations name="hashCode"/>
+ <eOperations name="isEmpty"/>
+ <eOperations name="toArray"/>
+ <eOperations name="toArray">
+ <eParameters name="a"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JNDINames">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="SEND_CONFIRMATION_MAIL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="SEND_APPROVAL_MAIL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="SEND_COMPLETED_ORDER_MAIL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_VALIDATION_INVOICE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_VALIDATION_ORDER_APPROVAL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_XSD_VALIDATION"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_ENTITY_CATALOG_URL"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LocaleUtil"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MailCompletedOrderMDB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="onMessage">
+ <eParameters name="recvMsg"/>
+ </eOperations>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="doWork">
+ <eParameters name="orderId"/>
+ </eOperations>
+ <eOperations name="doTransition">
+ <eParameters name="orderMail"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="MAIL_SUBJECT"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="COMPLETED_ORDER_STYLE_SHEET"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mdc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sendConfirmationMail"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mailContentXDE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitionDelegate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poHome"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MailContentXDE">
+ <eOperations name="format">
+ <eParameters name="source"/>
+ <eParameters name="locale"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transformerFactory"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transformers"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="styleSheetPath"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="source"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="locale"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MailInvoiceMDB" >
+ <eOperations name="ejbCreate"/>
+ <eOperations name="onMessage">
+ <eParameters name="recvMsg"/>
+ </eOperations>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="doWork">
+ <eParameters name="xmlMessage"/>
+ </eOperations>
+ <eOperations name="doTransition">
+ <eParameters name="xmlMail"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="MAIL_SUBJECT"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="INVOICE_STYLE_SHEET"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mdc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sendConfirmationMail"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mailContentXDE" eType="#//MailContentXDE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitionDelegate" eType="#//MailInvoiceTransitionDelegate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="invoiceXDE" eType="#//TPAInvoiceXDE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poHome"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MailOrderApprovalMDB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="onMessage">
+ <eParameters name="recvMsg"/>
+ </eOperations>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="doWork">
+ <eParameters name="xmlMessage"/>
+ </eOperations>
+ <eOperations name="doTransition">
+ <eParameters name="mailingList"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="MAIL_SUBJECT"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ORDER_APPROVAL_STYLE_SHEET"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mdc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sendConfirmationMail"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mailContentXDE" eType="#//MailContentXDE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitionDelegate" eType="#//MailOrderApprovalTransitionDelegate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entityCatalogURL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="validateXmlOrderApproval"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InvoiceMDB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="onMessage">
+ <eParameters name="recvMsg"/>
+ </eOperations>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="doWork">
+ <eParameters name="xmlInvoice"/>
+ </eOperations>
+ <eOperations name="doTransition">
+ <eParameters name="completedOrder"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mdc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManager"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="invoiceXDE" eType="#//TPAInvoiceXDE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitionDelegate"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JNDINames">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PROCESS_MANAGER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_VALIDATION_PURCHASE_ORDER"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_VALIDATION_INVOICE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_VALIDATION_ORDER_APPROVAL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_XSD_VALIDATION"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_ENTITY_CATALOG_URL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="TRANSITION_DELEGATE_ORDER_APPROVAL"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OrderApprovalMDB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="onMessage">
+ <eParameters name="recvMsg"/>
+ </eOperations>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="doWork">
+ <eParameters name="xmlMessage"/>
+ </eOperations>
+ <eOperations name="doTransition">
+ <eParameters name="supplierPoList"/>
+ <eParameters name="xmlMailOrderApprovals"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mdc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitionDelegate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManager"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="supplierOrderXDE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entityCatalogURL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="validateXmlOrderApproval"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PurchaseOrderMDB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="onMessage">
+ <eParameters name="recvMsg"/>
+ </eOperations>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="doWork">
+ <eParameters name="xmlMessage"/>
+ </eOperations>
+ <eOperations name="doTransition">
+ <eParameters name="xmlOrderApproval"/>
+ </eOperations>
+ <eOperations name="canIApprove">
+ <eParameters name="purchaseOrder"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mdc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitionDelegate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManager"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entityCatalogURL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="validateXmlPurchaseOrder"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TPAInvoiceXDE">
+ <eOperations name="extractData"/>
+ <eOperations name="main">
+ <eParameters name="args"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="DTD_PUBLIC_ID"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XSD_PUBLIC_ID"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="INVOICE_NS"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="LINEITEM_NS"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="DTD_SYSTEM_ID"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XSD_SYSTEM_ID"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_INVOICE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_ORDERID"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_LINEITEMS"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_LINEITEM"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_ITEMID"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_QUANTITY"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transformer"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="orderId"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="lineItemIds"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="invoiceDocument"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InvoiceTD">
+ <eOperations name="doTransition">
+ <eParameters name="info"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="q"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qFactory"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="queueHelper" eType="#//QueueHelper"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JNDINames">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="QUEUE_CONNECTION_FACTORY"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ORDER_APPROVAL_MDB_QUEUE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="CR_MAIL_ORDER_APPROVAL_MDB_QUEUE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="CR_MAIL_COMPLETED_ORDER_MDB_QUEUE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="SUPPLIER_PURCHASE_ORDER_QUEUE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="MAIL_SENDER_QUEUE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MailCompletedOrderTD">
+ <eOperations name="doTransition">
+ <eParameters name="info"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mailHelper" eType="#//QueueHelper"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="q"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qFactory"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MailInvoiceTransitionDelegate">
+ <eOperations name="doTransition">
+ <eParameters name="info"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mailHelper" eType="#//QueueHelper"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="q"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qFactory"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MailOrderApprovalTransitionDelegate">
+ <eOperations name="doTransition">
+ <eParameters name="info"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="q"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qFactory"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mailHelper" eType="#//QueueHelper"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OrderApprovalTD">
+ <eOperations name="doTransition">
+ <eParameters name="info"/>
+ </eOperations>
+ <eOperations name="sendMail">
+ <eParameters name="xmlOrderApproval"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qFactory"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mailQueue"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="supplierPoQueue"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="supplierQueueHelper" eType="#//QueueHelper"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mailQueueHelper" eType="#//QueueHelper"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PurchaseOrderTD">
+ <eOperations name="doTransition">
+ <eParameters name="info"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="q"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qFactory"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="queueHelper" eType="#//QueueHelper"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="QueueHelper">
+ <eOperations name="sendMessage">
+ <eParameters name="xmlMessage"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="q"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qFactory"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NewClass">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore
new file mode 100644
index 000000000..6a00d327d
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/reference/refAdd/v1AddedReference.ecore
@@ -0,0 +1,314 @@
+<?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="src">
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacade" interface="true">
+ <eOperations name="getOrdersByStatus" eType="#//OrdersTO">
+ <eParameters name="status"/>
+ </eOperations>
+ <eOperations name="getChartInfo">
+ <eParameters name="request"/>
+ <eParameters name="start"/>
+ <eParameters name="end"/>
+ <eParameters name="requestedCategory"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeEJB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="ejbPostCreate"/>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="ejbActivate"/>
+ <eOperations name="ejbPassivate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PROCMGR_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poLocalHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManagerLocal"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeException"/>
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeHome" interface="true">
+ <eOperations name="create" eType="#//OPCAdminFacade"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OrderDetails">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="orderId"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="userId"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="orderDate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="orderValue"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="orderStatus"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OrdersTO" interface="true">
+ <eOperations name="iterator"/>
+ <eOperations name="size"/>
+ <eOperations name="contains">
+ <eParameters name="o"/>
+ </eOperations>
+ <eOperations name="containsAll">
+ <eParameters name="c"/>
+ </eOperations>
+ <eOperations name="equals">
+ <eParameters name="o"/>
+ </eOperations>
+ <eOperations name="hashCode"/>
+ <eOperations name="isEmpty"/>
+ <eOperations name="toArray"/>
+ <eOperations name="toArray">
+ <eParameters name="a"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JNDINames">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="SEND_CONFIRMATION_MAIL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="SEND_APPROVAL_MAIL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="SEND_COMPLETED_ORDER_MAIL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_VALIDATION_INVOICE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_VALIDATION_ORDER_APPROVAL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_XSD_VALIDATION"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_ENTITY_CATALOG_URL"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LocaleUtil"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MailCompletedOrderMDB" eSuperTypes="#//MailContentXDE">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="onMessage">
+ <eParameters name="recvMsg"/>
+ </eOperations>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="doWork">
+ <eParameters name="orderId"/>
+ </eOperations>
+ <eOperations name="doTransition">
+ <eParameters name="orderMail"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="MAIL_SUBJECT"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="COMPLETED_ORDER_STYLE_SHEET"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mdc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sendConfirmationMail"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mailContentXDE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitionDelegate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poHome"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MailContentXDE">
+ <eOperations name="format">
+ <eParameters name="source"/>
+ <eParameters name="locale"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transformerFactory"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transformers"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="styleSheetPath"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="source"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="locale"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MailInvoiceMDB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="onMessage">
+ <eParameters name="recvMsg"/>
+ </eOperations>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="doWork">
+ <eParameters name="xmlMessage"/>
+ </eOperations>
+ <eOperations name="doTransition">
+ <eParameters name="xmlMail"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="MAIL_SUBJECT"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="INVOICE_STYLE_SHEET"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mdc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sendConfirmationMail"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mailContentXDE" eType="#//MailContentXDE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitionDelegate" eType="#//MailInvoiceTransitionDelegate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="invoiceXDE" eType="#//TPAInvoiceXDE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poHome"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MailOrderApprovalMDB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="onMessage">
+ <eParameters name="recvMsg"/>
+ </eOperations>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="doWork">
+ <eParameters name="xmlMessage"/>
+ </eOperations>
+ <eOperations name="doTransition">
+ <eParameters name="mailingList"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="MAIL_SUBJECT"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ORDER_APPROVAL_STYLE_SHEET"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mdc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sendConfirmationMail"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mailContentXDE" eType="#//MailContentXDE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitionDelegate" eType="#//MailOrderApprovalTransitionDelegate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entityCatalogURL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="validateXmlOrderApproval"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InvoiceMDB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="onMessage">
+ <eParameters name="recvMsg"/>
+ </eOperations>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="doWork">
+ <eParameters name="xmlInvoice"/>
+ </eOperations>
+ <eOperations name="doTransition">
+ <eParameters name="completedOrder"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mdc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManager"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="invoiceXDE" eType="#//TPAInvoiceXDE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitionDelegate"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JNDINames">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PROCESS_MANAGER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_VALIDATION_PURCHASE_ORDER"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_VALIDATION_INVOICE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_VALIDATION_ORDER_APPROVAL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_XSD_VALIDATION"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_ENTITY_CATALOG_URL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="TRANSITION_DELEGATE_ORDER_APPROVAL"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OrderApprovalMDB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="onMessage">
+ <eParameters name="recvMsg"/>
+ </eOperations>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="doWork">
+ <eParameters name="xmlMessage"/>
+ </eOperations>
+ <eOperations name="doTransition">
+ <eParameters name="supplierPoList"/>
+ <eParameters name="xmlMailOrderApprovals"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mdc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitionDelegate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManager"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="supplierOrderXDE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entityCatalogURL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="validateXmlOrderApproval"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PurchaseOrderMDB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="onMessage">
+ <eParameters name="recvMsg"/>
+ </eOperations>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="doWork">
+ <eParameters name="xmlMessage"/>
+ </eOperations>
+ <eOperations name="doTransition">
+ <eParameters name="xmlOrderApproval"/>
+ </eOperations>
+ <eOperations name="canIApprove">
+ <eParameters name="purchaseOrder"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mdc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transitionDelegate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManager"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entityCatalogURL"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="validateXmlPurchaseOrder"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TPAInvoiceXDE">
+ <eOperations name="extractData"/>
+ <eOperations name="main">
+ <eParameters name="args"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="DTD_PUBLIC_ID"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XSD_PUBLIC_ID"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="INVOICE_NS"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="LINEITEM_NS"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="DTD_SYSTEM_ID"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XSD_SYSTEM_ID"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_INVOICE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_ORDERID"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_LINEITEMS"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_LINEITEM"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_ITEMID"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="XML_QUANTITY"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transformer"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="orderId"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="lineItemIds"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="invoiceDocument"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InvoiceTD">
+ <eOperations name="doTransition">
+ <eParameters name="info"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="q"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qFactory"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="queueHelper" eType="#//QueueHelper"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JNDINames">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="QUEUE_CONNECTION_FACTORY"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ORDER_APPROVAL_MDB_QUEUE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="CR_MAIL_ORDER_APPROVAL_MDB_QUEUE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="CR_MAIL_COMPLETED_ORDER_MDB_QUEUE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="SUPPLIER_PURCHASE_ORDER_QUEUE"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="MAIL_SENDER_QUEUE"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MailCompletedOrderTD">
+ <eOperations name="doTransition">
+ <eParameters name="info"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mailHelper" eType="#//QueueHelper"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="q"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qFactory"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MailInvoiceTransitionDelegate">
+ <eOperations name="doTransition">
+ <eParameters name="info"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mailHelper" eType="#//QueueHelper"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="q"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qFactory"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MailOrderApprovalTransitionDelegate">
+ <eOperations name="doTransition">
+ <eParameters name="info"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="q"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qFactory"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mailHelper" eType="#//QueueHelper"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OrderApprovalTD">
+ <eOperations name="doTransition">
+ <eParameters name="info"/>
+ </eOperations>
+ <eOperations name="sendMail">
+ <eParameters name="xmlOrderApproval"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qFactory"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mailQueue"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="supplierPoQueue"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="supplierQueueHelper" eType="#//QueueHelper"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mailQueueHelper" eType="#//QueueHelper"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PurchaseOrderTD">
+ <eOperations name="doTransition">
+ <eParameters name="info"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="q"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qFactory"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="queueHelper" eType="#//QueueHelper"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="QueueHelper">
+ <eOperations name="sendMessage">
+ <eParameters name="xmlMessage"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="q"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qFactory"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NewClass">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore
new file mode 100644
index 000000000..8a388c3ba
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1.ecore
@@ -0,0 +1,28 @@
+<?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="src">
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacade" interface="true" eSuperTypes="#//OPCAdminFacadeEJB">
+ <eOperations name="getOrdersByStatus">
+ <eParameters name="status"/>
+ </eOperations>
+ <eOperations name="getChartInfo">
+ <eParameters name="request"/>
+ <eParameters name="start"/>
+ <eParameters name="end"/>
+ <eParameters name="requestedCategory"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeEJB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="ejbPostCreate"/>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="ejbActivate"/>
+ <eOperations name="ejbPassivate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PROCMGR_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poLocalHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManagerLocal"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore b/plugins/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore
new file mode 100644
index 000000000..3af0005e1
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/inputs/reference/refRemove/v1Removed.ecore
@@ -0,0 +1,28 @@
+<?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="src">
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacade" interface="true">
+ <eOperations name="getOrdersByStatus">
+ <eParameters name="status"/>
+ </eOperations>
+ <eOperations name="getChartInfo">
+ <eParameters name="request"/>
+ <eParameters name="start"/>
+ <eParameters name="end"/>
+ <eParameters name="requestedCategory"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OPCAdminFacadeEJB">
+ <eOperations name="ejbCreate"/>
+ <eOperations name="ejbPostCreate"/>
+ <eOperations name="ejbRemove"/>
+ <eOperations name="ejbActivate"/>
+ <eOperations name="ejbPassivate"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PURCHASE_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="PROCMGR_ORDER_EJB"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sc"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="poLocalHome"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="processManagerLocal"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.compare.tests/modeling32.png b/plugins/org.eclipse.emf.compare.tests/modeling32.png
new file mode 100644
index 000000000..6b08de2ad
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/modeling32.png
Binary files differ
diff --git a/plugins/org.eclipse.emf.compare.tests/plugin.properties b/plugins/org.eclipse.emf.compare.tests/plugin.properties
new file mode 100644
index 000000000..1186351cc
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/plugin.properties
@@ -0,0 +1,12 @@
+################################################################################
+# Copyright (c) 2006, 2009 Obeo.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Obeo - initial API and implementation
+################################################################################
+pluginName = EMF Compare unit tests
+providerName = Eclipse Modeling Project
diff --git a/plugins/org.eclipse.emf.compare.tests/plugin.xml b/plugins/org.eclipse.emf.compare.tests/plugin.xml
new file mode 100644
index 000000000..ae63ae556
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/plugin.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<!--
+Copyright (c) 2006, 2009 Obeo.
+All rights reserved. This program and the accompanying materials
+are made available under the terms of the Eclipse Public License v1.0
+which accompanies this distribution, and is available at
+http://www.eclipse.org/legal/epl-v10.html
+
+Contributors:
+ Obeo - initial API and implementation
+-->
+<plugin>
+
+ <extension
+ point="org.eclipse.emf.compare.match.engine">
+ <matchengine
+ engineClass="org.eclipse.emf.compare.tests.unit.match.engine.mock.AEngine"
+ fileExtension="a"
+ priority="low"
+ label="AEngine"/>
+ <matchengine
+ engineClass="org.eclipse.emf.compare.tests.unit.match.engine.mock.BEngine"
+ fileExtension="b"
+ priority="low"
+ label="BEngine"/>
+ <matchengine
+ engineClass="org.eclipse.emf.compare.tests.unit.match.engine.mock.CHighEngine"
+ fileExtension="c"
+ priority="high"
+ label="CHighEngine"/>
+ <matchengine
+ engineClass="org.eclipse.emf.compare.tests.unit.match.engine.mock.CLowEngine"
+ fileExtension="c"
+ priority="low"
+ label="CLowEngine"/>
+ <matchengine
+ engineClass="org.eclipse.emf.compare.tests.unit.match.engine.mock.DEngine"
+ label="DEngine"
+ namespace="http://www.eclipse.org/emf/2002/GenModel"
+ priority="lowest">
+ </matchengine>
+ <matchengine
+ engineClass="org.eclipse.emf.compare.tests.unit.match.engine.mock.EEngine"
+ label="EEngine"
+ namespacePattern=".*2002/GenModel"
+ priority="lowest">
+ </matchengine>
+ <!--
+ <matchengine
+ engineClass="org.eclipse.emf.compare.match.statistic.test.match.engines.GenericHighestEngine"
+ fileExtension="*"
+ priority="highest"/>
+ -->
+ </extension>
+</plugin>
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/EMFCompareTestPlugin.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/EMFCompareTestPlugin.java
new file mode 100644
index 000000000..93c637b50
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/EMFCompareTestPlugin.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle.
+ *
+ * @author <a href="mailto:cedric.brun@obeo.fr">Cedric Brun</a>
+ */
+public class EMFCompareTestPlugin extends AbstractUIPlugin {
+ /** The plug-in ID. */
+ public static final String PLUGIN_ID = "org.eclipse.emf.compare.tests"; //$NON-NLS-1$
+
+ /** This plug-in's shared instance. */
+ private static EMFCompareTestPlugin plugin;
+
+ /**
+ * Default constructor for the plugin.
+ */
+ public EMFCompareTestPlugin() {
+ plugin = this;
+ }
+
+ /**
+ * Returns the shared instance.
+ *
+ * @return the shared instance
+ */
+ public static EMFCompareTestPlugin getDefault() {
+ return plugin;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(final BundleContext context) throws Exception {
+ super.start(context);
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(final BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AllMergeTests.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AllMergeTests.java
new file mode 100644
index 000000000..d871a0f62
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AllMergeTests.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Gerhardt Informatics.
+ * 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:
+ * Gerhardt Informatics - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.merge;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllMergeTests {
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite("Test for org.eclipse.emf.compare.tests.merge");
+ // $JUnit-BEGIN$
+ suite.addTestSuite(TestContainmentRemoveMany.class);
+ suite.addTestSuite(TestContainmentOrderAddMany.class);
+ suite.addTestSuite(NonUniqueAttributeOrderTest.class);
+ suite.addTestSuite(NonContainmentOrderTest.class);
+ suite.addTestSuite(ContainmentOrderTest.class);
+ suite.addTestSuite(AttributeOrderTest.class);
+ suite.addTestSuite(TestContainmentRemove.class);
+ // $JUnit-END$
+ return suite;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AttributeOrderTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AttributeOrderTest.java
new file mode 100644
index 000000000..30087fe00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/AttributeOrderTest.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Gerhardt Informatics.
+ * 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:
+ * Gerhardt Informatics - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.merge;
+
+import java.util.List;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+public class AttributeOrderTest extends MergeTestBase {
+
+ @Override
+ public void setUp() throws Exception {
+
+ super.setUp();
+
+ // We create a dynamic instance with attribute "att1" whose type is
+ // EString and multiplicity = -1. By default it is unique, I think
+ EcoreFactory factory = EcoreFactory.eINSTANCE;
+ EPackage p = factory.createEPackage();
+ p.setName("TestPackage1");
+
+ EClass class0 = factory.createEClass();
+ class0.setName("Class0");
+ p.getEClassifiers().add(class0);
+
+ EAttribute att = factory.createEAttribute();
+ att.setName("att1");
+ att.setEType(EcorePackage.eINSTANCE.getEString());
+ att.setLowerBound(0);
+ att.setUpperBound(-1);
+ class0.getEStructuralFeatures().add(att);
+
+ EObject instance = p.getEFactoryInstance().create(class0);
+ List<String> attVal = (List<String>)instance.eGet(att);
+ attVal.add("item1");
+ attVal.add("item2");
+ attVal.add("item3");
+
+ leftModel = EcoreUtil.copy(instance);
+ URI leftURI = URI.createURI("leftmodel.xmi");
+ ModelUtils.attachResource(leftURI, leftModel);
+
+ expectedModel = EcoreUtil.copy(leftModel);
+ URI expectedURI = URI.createURI("expectedmodel.xmi");
+ ModelUtils.attachResource(expectedURI, expectedModel);
+
+ attVal.remove("item2");
+ rightModel = EcoreUtil.copy(instance);
+ URI rightURI = URI.createURI("rightmodel.xmi");
+ ModelUtils.attachResource(rightURI, rightModel);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/ContainmentOrderTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/ContainmentOrderTest.java
new file mode 100644
index 000000000..9be76f011
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/ContainmentOrderTest.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Gerhardt Informatics.
+ * 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:
+ * Gerhardt Informatics - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.merge;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+public class ContainmentOrderTest extends MergeTestBase {
+
+ @Override
+ public void setUp() throws Exception {
+
+ super.setUp();
+
+ EcoreFactory factory = EcoreFactory.eINSTANCE;
+ EPackage p = factory.createEPackage();
+ p.setName("TestPackage1");
+ EClass class0 = factory.createEClass();
+ class0.setName("Class0");
+ EClass class1 = factory.createEClass();
+ class1.setName("Class1");
+ EClass class2 = factory.createEClass();
+ class2.setName("Class2");
+
+ p.getEClassifiers().add(class0);
+ p.getEClassifiers().add(class1);
+ p.getEClassifiers().add(class2);
+
+ leftModel = EcoreUtil.copy(p);
+ URI leftURI = URI.createURI("leftmodel.ecore");
+ ModelUtils.attachResource(leftURI, leftModel);
+
+ expectedModel = EcoreUtil.copy(leftModel);
+ URI expectedURI = URI.createURI("expectedmodel.ecore");
+ ModelUtils.attachResource(expectedURI, expectedModel);
+
+ p.getEClassifiers().remove(class1);
+ rightModel = EcoreUtil.copy(p);
+ URI rightURI = URI.createURI("rightmodel.ecore");
+ ModelUtils.attachResource(rightURI, rightModel);
+
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/MergeTestBase.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/MergeTestBase.java
new file mode 100644
index 000000000..d457be941
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/MergeTestBase.java
@@ -0,0 +1,123 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Gerhardt Informatics.
+ * 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:
+ * Gerhardt Informatics - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.merge;
+
+import java.util.Collections;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.compare.diff.merge.service.MergeService;
+import org.eclipse.emf.compare.diff.metamodel.DiffElement;
+import org.eclipse.emf.compare.diff.metamodel.DiffModel;
+import org.eclipse.emf.compare.diff.service.DiffService;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+
+/**
+ * Base class for implementing MergeService test cases. The tests consist of comparing/diffing two models and
+ * merging all changes from the left model into the right model. Subclasses are expected to created these
+ * models in their setUp() method. They are also expected to provide a model that has to match the result of
+ * the merging. Merging is always done so that the leftModel remains unchanged and the right model is compared
+ * to the expected model. (When doing rightToLeft merging, the left and right models are swapped). Subclasses
+ * do not need to implement test methods, they will inherit two such methods from this class.
+ *
+ * @author Csaba Koncz
+ */
+public abstract class MergeTestBase extends TestCase {
+
+ /**
+ * The leftModel of merging in leftToRight merge mode. This model is never changed during the merge.
+ */
+ protected EObject leftModel;
+
+ /**
+ * This model is the target of the merge model.
+ */
+ protected EObject rightModel;
+
+ /**
+ * This is the expected outcome of the merge. Used for asserting test failure/success.
+ */
+ protected EObject expectedModel;
+
+ @Override
+ public void setUp() throws Exception {
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(
+ Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
+ }
+
+ /**
+ * Perform the merging of the models prepared by in setUp().
+ *
+ * @param isLeftToRight
+ * indicates the direction of the merging.
+ * @throws Exception
+ */
+ protected void doPerformTest(boolean isLeftToRight) throws Exception {
+
+ EObject testLeftModel = isLeftToRight ? leftModel : rightModel;
+ EObject testRightModel = isLeftToRight ? rightModel : leftModel;
+
+ Map<String, Object> options = Collections.emptyMap();
+
+ MatchModel match = MatchService.doMatch(testLeftModel, testRightModel, options);
+ DiffModel diff = DiffService.doDiff(match);
+
+ EList<DiffElement> differences = diff.getDifferences();
+
+ preMergeHook(isLeftToRight);
+ MergeService.merge(differences, isLeftToRight);
+ postMergeHook(isLeftToRight);
+
+ boolean mergeOK = EcoreUtil.equals(expectedModel, rightModel);
+
+ if (false == mergeOK) {
+
+ System.err.println("Expected :\n" + ModelUtils.serialize(expectedModel));
+ System.err.println("Actual :\n" + ModelUtils.serialize(rightModel));
+
+ fail(" Merge (leftToRight=" + isLeftToRight + ")failed ");
+ }
+ }
+
+ /**
+ * Subclasses can use this method to perform tasks after the merging is done.
+ *
+ * @param isLeftToRight
+ */
+ protected void postMergeHook(boolean isLeftToRight) {
+ // nothing to do by default
+ }
+
+ /**
+ * Subclasses can use this method to perform tasks before the merging is done.
+ *
+ * @param isLeftToRight
+ */
+ protected void preMergeHook(boolean isLeftToRight) {
+ // nothing to do by default
+ }
+
+ public void testLeftToRight() throws Exception {
+ doPerformTest(true);
+ }
+
+ public void testRightToLeft() throws Exception {
+ doPerformTest(false);
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/NonContainmentOrderTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/NonContainmentOrderTest.java
new file mode 100644
index 000000000..a03a9c3c1
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/NonContainmentOrderTest.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Gerhardt Informatics.
+ * 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:
+ * Gerhardt Informatics - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.merge;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+public class NonContainmentOrderTest extends MergeTestBase {
+
+ @Override
+ public void setUp() throws Exception {
+
+ super.setUp();
+
+ // We create an EPackage with 4 classes. The fourth one references the first three in its ESuperTypes
+ // attribute
+ EcoreFactory factory = EcoreFactory.eINSTANCE;
+ EPackage p = factory.createEPackage();
+ p.setName("TestPackage1");
+ EClass class0 = factory.createEClass();
+ class0.setName("Class0");
+ EClass class1 = factory.createEClass();
+ class1.setName("Class1");
+ EClass class2 = factory.createEClass();
+ class2.setName("Class2");
+ EClass class3 = factory.createEClass();
+ class3.setName("Class3");
+
+ p.getEClassifiers().add(class0);
+ p.getEClassifiers().add(class1);
+ p.getEClassifiers().add(class2);
+ p.getEClassifiers().add(class3);
+
+ EList<EClass> class3SuperTypes = class3.getESuperTypes();
+ class3SuperTypes.add(class0);
+ class3SuperTypes.add(class1);
+ class3SuperTypes.add(class2);
+
+ leftModel = EcoreUtil.copy(p);
+ URI leftURI = URI.createURI("leftmodel.ecore");
+ ModelUtils.attachResource(leftURI, leftModel);
+
+ expectedModel = EcoreUtil.copy(leftModel);
+ URI expectedURI = URI.createURI("expectedmodel.ecore");
+ ModelUtils.attachResource(expectedURI, expectedModel);
+
+ class3SuperTypes.remove(class1);
+ rightModel = EcoreUtil.copy(p);
+ URI rightURI = URI.createURI("rightmodel.ecore");
+ ModelUtils.attachResource(rightURI, rightModel);
+
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/NonUniqueAttributeOrderTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/NonUniqueAttributeOrderTest.java
new file mode 100644
index 000000000..c40c0fe4d
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/NonUniqueAttributeOrderTest.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Gerhardt Informatics.
+ * 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:
+ * Gerhardt Informatics - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.merge;
+
+import java.util.List;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+public class NonUniqueAttributeOrderTest extends MergeTestBase {
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+
+ // We create a dynamic instance with attribute "att1" whose type is
+ // EString and multiplicity = -1. By default it is unique, I think
+ EcoreFactory factory = EcoreFactory.eINSTANCE;
+ EPackage p = factory.createEPackage();
+ p.setName("TestPackage1");
+
+ EClass class0 = factory.createEClass();
+ class0.setName("Class0");
+ p.getEClassifiers().add(class0);
+
+ EAttribute att = factory.createEAttribute();
+ att.setName("att1");
+ att.setEType(EcorePackage.eINSTANCE.getEString());
+ att.setLowerBound(0);
+ att.setUpperBound(-1);
+ // set it to accept the same values twice:
+ att.setUnique(false);
+ class0.getEStructuralFeatures().add(att);
+
+ EObject instance = p.getEFactoryInstance().create(class0);
+ List<String> attVal = (List<String>)instance.eGet(att);
+ attVal.add("item1");
+ attVal.add("item2");
+ attVal.add("item3");
+ attVal.add("item2");
+ attVal.add("item4");
+
+ leftModel = EcoreUtil.copy(instance);
+ URI leftURI = URI.createURI("leftmodel.xmi");
+ ModelUtils.attachResource(leftURI, leftModel);
+
+ expectedModel = EcoreUtil.copy(leftModel);
+ URI expectedURI = URI.createURI("expectedmodel.xmi");
+ ModelUtils.attachResource(expectedURI, expectedModel);
+
+ attVal.remove("item2");
+ rightModel = EcoreUtil.copy(instance);
+ URI rightURI = URI.createURI("rightmodel.xmi");
+ ModelUtils.attachResource(rightURI, rightModel);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/TestContainmentOrderAddMany.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/TestContainmentOrderAddMany.java
new file mode 100644
index 000000000..b23fc87b9
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/TestContainmentOrderAddMany.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Gerhardt Informatics.
+ * 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:
+ * Gerhardt Informatics - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.merge;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+public class TestContainmentOrderAddMany extends MergeTestBase {
+
+ @Override
+ public void setUp() throws Exception {
+
+ super.setUp();
+
+ EcoreFactory factory = EcoreFactory.eINSTANCE;
+ EPackage p = factory.createEPackage();
+ p.setName("TestPackage1");
+ EClass class0 = factory.createEClass();
+ class0.setName("Class0");
+ EClass class1 = factory.createEClass();
+ class1.setName("Class1");
+ EClass class2 = factory.createEClass();
+ class2.setName("Class2");
+
+ p.getEClassifiers().add(class0);
+ p.getEClassifiers().add(class1);
+ p.getEClassifiers().add(class2);
+
+ int extraClassNum = 10;
+ List<EClass> extraClasses = new ArrayList<EClass>();
+ for (int i = 0; i < extraClassNum; i++) {
+ EClass ec = factory.createEClass();
+ ec.setName("ExtraClass_" + i);
+ extraClasses.add(ec);
+ }
+
+ p.getEClassifiers().addAll(1, extraClasses);
+
+ leftModel = EcoreUtil.copy(p);
+ URI leftURI = URI.createURI("leftmodel.ecore");
+ ModelUtils.attachResource(leftURI, leftModel);
+
+ expectedModel = EcoreUtil.copy(leftModel);
+ URI expectedURI = URI.createURI("expectedmodel.ecore");
+ ModelUtils.attachResource(expectedURI, expectedModel);
+
+ p.getEClassifiers().remove(class1);
+ p.getEClassifiers().removeAll(extraClasses);
+ rightModel = EcoreUtil.copy(p);
+ URI rightURI = URI.createURI("rightmodel.ecore");
+ ModelUtils.attachResource(rightURI, rightModel);
+
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/TestContainmentRemove.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/TestContainmentRemove.java
new file mode 100644
index 000000000..5df192f0f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/TestContainmentRemove.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Gerhardt Informatics.
+ * 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:
+ * Gerhardt Informatics - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.merge;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+public class TestContainmentRemove extends MergeTestBase {
+
+ @Override
+ public void setUp() throws Exception {
+
+ super.setUp();
+
+ EcoreFactory factory = EcoreFactory.eINSTANCE;
+ EPackage p = factory.createEPackage();
+ p.setName("TestPackage1");
+ EClass class0 = factory.createEClass();
+ class0.setName("Class0");
+
+ leftModel = EcoreUtil.copy(p);
+ URI leftURI = URI.createURI("leftmodel.ecore");
+ ModelUtils.attachResource(leftURI, leftModel);
+
+ expectedModel = EcoreUtil.copy(leftModel);
+ URI expectedURI = URI.createURI("expectedmodel.ecore");
+ ModelUtils.attachResource(expectedURI, expectedModel);
+
+ p.getEClassifiers().add(class0);
+ rightModel = EcoreUtil.copy(p);
+ URI rightURI = URI.createURI("rightmodel.ecore");
+ ModelUtils.attachResource(rightURI, rightModel);
+
+ }
+
+ @Override
+ protected void preMergeHook(boolean isLeftToRight) {
+ super.preMergeHook(isLeftToRight);
+ doCheckFactory();
+ }
+
+ @Override
+ protected void postMergeHook(boolean isLeftToRight) {
+ super.postMergeHook(isLeftToRight);
+ doCheckFactory();
+ }
+
+ private void doCheckFactory() {
+
+ EPackage leftPackage = (EPackage)leftModel;
+ EPackage rightPackage = (EPackage)rightModel;
+
+ assertNotNull("Left eFactoryInstance is not null ", leftPackage.getEFactoryInstance());
+ assertNotNull("Right eFactoryInstance is not null ", rightPackage.getEFactoryInstance());
+
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/TestContainmentRemoveMany.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/TestContainmentRemoveMany.java
new file mode 100644
index 000000000..1a4298c1a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/merge/TestContainmentRemoveMany.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Gerhardt Informatics.
+ * 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:
+ * Gerhardt Informatics - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.merge;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EFactory;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+public class TestContainmentRemoveMany extends MergeTestBase {
+
+ @Override
+ public void setUp() throws Exception {
+
+ super.setUp();
+
+ EcoreFactory factory = EcoreFactory.eINSTANCE;
+ EPackage p = factory.createEPackage();
+ p.setName("TestPackage1");
+ EClass class0 = factory.createEClass();
+ class0.setName("Class0");
+ EClass class1 = factory.createEClass();
+ class1.setName("Class1");
+ EClass class2 = factory.createEClass();
+ class2.setName("Class2");
+
+ p.getEClassifiers().add(class0);
+ p.getEClassifiers().add(class1);
+ p.getEClassifiers().add(class2);
+
+ int extraClassNum = 10;
+ List<EClass> extraClasses = new ArrayList<EClass>();
+ for (int i = 0; i < extraClassNum; i++) {
+ EClass ec = factory.createEClass();
+ ec.setName("ExtraClass_" + i);
+ extraClasses.add(ec);
+ }
+
+ // p.getEClassifiers().addAll(1, extraClasses);
+
+ leftModel = EcoreUtil.copy(p);
+ URI leftURI = URI.createURI("leftmodel.ecore");
+ ModelUtils.attachResource(leftURI, leftModel);
+
+ expectedModel = EcoreUtil.copy(leftModel);
+ URI expectedURI = URI.createURI("expectedmodel.ecore");
+ ModelUtils.attachResource(expectedURI, expectedModel);
+
+ p.getEClassifiers().addAll(1, extraClasses);
+ rightModel = EcoreUtil.copy(p);
+ URI rightURI = URI.createURI("rightmodel.ecore");
+ ModelUtils.attachResource(rightURI, rightModel);
+
+ }
+
+ @Override
+ protected void postMergeHook(boolean isLeftToRight) {
+ super.postMergeHook(isLeftToRight);
+ fixRightModelFactory();
+ }
+
+ private void fixRightModelFactory() {
+
+ EPackage leftPackage = (EPackage)leftModel;
+ EPackage rightPackage = (EPackage)rightModel;
+
+ EFactory rFactory = rightPackage.getEFactoryInstance();
+ if (rFactory == null) {
+ System.err.println("Right package factory instance disappeared");
+ // workaround: for some reason the eFactoryInstance disappears from the right model:
+ rightPackage.setEFactoryInstance(leftPackage.getEFactoryInstance());
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/suite/AllTests.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/suite/AllTests.java
new file mode 100755
index 000000000..5aabce05e
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/suite/AllTests.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.suite;
+
+import java.util.Arrays;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+import org.eclipse.emf.compare.tests.unit.core.CoreTestSuite;
+import org.eclipse.emf.compare.tests.unit.diff.DiffTestSuite;
+import org.eclipse.emf.compare.tests.unit.match.MatchTestSuite;
+import org.eclipse.equinox.app.IApplication;
+import org.eclipse.equinox.app.IApplicationContext;
+
+/**
+ * Launches all the JUnit tests for EMF compare.
+ *
+ * @author <a href="mailto:cedric.brun@obeo.fr">Cedric Brun</a>
+ */
+@SuppressWarnings("nls")
+public class AllTests extends TestCase implements IApplication {
+ /**
+ * Launches the test with the given arguments.
+ *
+ * @param args
+ * Arguments of the testCase.
+ */
+ public static void main(String[] args) {
+ TestRunner.run(suite());
+ }
+
+ /**
+ * Creates the {@link junit.framework.TestSuite TestSuite} for all the test.
+ *
+ * @return The testsuite containing all the tests
+ */
+ public static Test suite() {
+ final TestSuite suite = new TestSuite("EMF Compare test suite");
+ suite.addTest(CoreTestSuite.suite());
+ suite.addTest(MatchTestSuite.suite());
+ // This will be null if memory setting is too low
+ final Test diffSuite = DiffTestSuite.suite();
+ if (diffSuite != null)
+ suite.addTest(diffSuite);
+ // Non regression
+ // suite.addTestSuite(TestNonRegressionModels.class);
+ return suite;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
+ */
+ public Object start(IApplicationContext context) throws Exception {
+ TestRunner.run(suite());
+ return Arrays.asList(new String[] {"Please see raw test suite output for details."}); //$NON-NLS-1$
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.equinox.app.IApplication#stop()
+ */
+ public void stop() {
+ // implements org.eclipse.equinox.app.IApplication#stop(). No action.
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/NonRegressionModelsTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/NonRegressionModelsTest.java
new file mode 100755
index 000000000..990f86d1d
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/NonRegressionModelsTest.java
@@ -0,0 +1,164 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.emf.compare.diff.metamodel.ComparisonResourceSnapshot;
+import org.eclipse.emf.compare.diff.metamodel.DiffModel;
+import org.eclipse.emf.compare.diff.service.DiffService;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.compare.tests.EMFCompareTestPlugin;
+import org.eclipse.emf.compare.tests.util.FileUtils;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+// TODO This has to be updated with the metamodels' new versions
+/**
+ * Test the results models are still the same as expected.
+ *
+ * @author <a href="mailto:cedric.brun@obeo.fr">Cedric Brun</a>
+ */
+@SuppressWarnings("nls")
+public class NonRegressionModelsTest extends TestCase {
+ /**
+ * The input directory is the hierarchical root of the folder where we expect to find the models to
+ * compare.
+ */
+ private String inputDirectory;
+
+ /**
+ * Get the directory to use for model inputs.
+ *
+ * @return the input directory
+ */
+ public String getInputDirectory() {
+ return inputDirectory;
+ }
+
+ /**
+ * Set the directory to use for model inputs.
+ *
+ * @param inputDir
+ * New input directory.
+ */
+ public void setInputDirectory(String inputDir) {
+ inputDirectory = inputDir;
+ }
+
+ /**
+ * Compare the expected models (in the expected directories) with the result of the comparison services.
+ *
+ * @throws IOException
+ * Thrown if an I/O operation has failed or been interrupted.
+ * @throws InterruptedException
+ * If one of the threads is interrupted.
+ */
+ public void testNonRegressionModels() throws IOException, InterruptedException {
+ final File inputDir = new File(FileLocator.toFileURL(
+ EMFCompareTestPlugin.getDefault().getBundle().getEntry(getInputDirectory())).getFile());
+
+ final File[] directories = FileUtils.listDirectories(inputDir);
+
+ final Date start = Calendar.getInstance().getTime();
+ if (directories != null) {
+ for (int i = 0; i < directories.length; i++) {
+ compareSnapshots(directories[i]);
+ }
+ }
+ final Date end = Calendar.getInstance().getTime();
+ System.out.println("Non-regression models evaluated in " + ((end.getTime() - start.getTime()) / 1000)
+ + " s.");
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() throws Exception {
+ setInputDirectory("/inputs");
+ }
+
+ /**
+ * Compares the snapshot of a given folder with its expected folder snapshot.
+ *
+ * @param directory
+ * Input directory containing the models.
+ * @throws IOException
+ * Thrown if an I/O operation has failed or been interrupted.
+ * @throws InterruptedException
+ * If one of the threads is interrupted.
+ */
+ private void compareSnapshots(File directory) throws IOException, InterruptedException {
+ if (FileUtils.listDirectories(directory).length != 0) {
+ for (int i = 0; i < FileUtils.listDirectories(directory).length; i++) {
+ compareSnapshots(FileUtils.listDirectories(directory)[i]);
+ }
+ } else {
+ final File expectedDir = new File(directory.getPath().replace(File.separator + "inputs",
+ File.separator + "expected" + File.separator + "inputs"));
+
+ final String testedDir = directory.getName().toUpperCase();
+ System.out.println(testedDir + "\n===============");
+ final List<EObject> inputModels = ModelUtils.getModelsFrom(directory, new ResourceSetImpl());
+ final List<EObject> expectedSnapshot = ModelUtils.getModelsFrom(expectedDir,
+ new ResourceSetImpl());
+
+ if (inputModels.size() == 2 && expectedSnapshot.size() == 1) {
+ final MatchModel inputMatch = MatchService.doMatch(inputModels.get(0), inputModels.get(1),
+ Collections.<String, Object> emptyMap());
+ final DiffModel inputDiff = DiffService.doDiff(inputMatch, false);
+
+ // Serializes current and expected match and diff as Strings
+ final String currentMatch = ModelUtils.serialize(inputMatch);
+ final String currentDiff = ModelUtils.serialize(inputDiff);
+ final String expectedMatch = ModelUtils.serialize(((ComparisonResourceSnapshot)expectedSnapshot
+ .get(0)).getMatch());
+ final String expectedDiff = ModelUtils
+ .serialize(((ComparisonResourceSnapshot)expectedSnapshot.get(0)).getDiff());
+
+ assertEquals(testedDir + ',' + "MatchModels don't match.",
+ suppressPathReferences(currentMatch), suppressPathReferences(expectedMatch));
+ assertEquals(testedDir + ',' + "DiffModels don't match.",
+ suppressPathReferences(currentDiff), suppressPathReferences(expectedDiff));
+ }
+ }
+ }
+
+ /**
+ * Searches a {@link java.lang.String String} representing the contents of a model for all references to
+ * "a href='path#element'" and supresses the path.
+ *
+ * @param aFile
+ * The file to parse.
+ * @return The {@link String} <code>aFile</code> stripped from all pathes preceded by "href=".
+ */
+ private String suppressPathReferences(String aFile) {
+ final String[] fragments = aFile.split("\n");
+ final StringBuilder buffer = new StringBuilder();
+ for (int i = 0; i < fragments.length; i++) {
+ buffer.append(fragments[i].replaceAll("href=\".*#", "href=\"#"));
+ }
+ return buffer.toString();
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/CoreTestSuite.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/CoreTestSuite.java
new file mode 100644
index 000000000..e7f28396e
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/CoreTestSuite.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+import org.eclipse.emf.compare.tests.unit.core.util.AdapterUtilsTest;
+import org.eclipse.emf.compare.tests.unit.core.util.ClassUtilsTest;
+import org.eclipse.emf.compare.tests.unit.core.util.efactory.EFactoryTestSuite;
+import org.eclipse.emf.compare.tests.unit.core.util.emfcomparemap.EMFCompareMapTestSuite;
+import org.eclipse.emf.compare.tests.unit.core.util.modelutils.ModelUtilsTestSuite;
+
+/**
+ * Tests for the core org.eclipse.emf.compare plugin.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class CoreTestSuite extends TestCase {
+ /**
+ * Launches the test with the given arguments.
+ *
+ * @param args
+ * Arguments of the testCase.
+ */
+ public static void main(String[] args) {
+ TestRunner.run(suite());
+ }
+
+ /**
+ * Creates the {@link junit.framework.TestSuite TestSuite} for all the test.
+ *
+ * @return The testsuite containing all the tests
+ */
+ public static Test suite() {
+ final TestSuite suite = new TestSuite("Tests for the core plugin.");
+ // package org.eclipse.emf.compare
+ suite.addTestSuite(EMFComparePluginTest.class);
+ suite.addTestSuite(MessagesTest.class);
+ // package org.eclipse.emf.compare.util
+ suite.addTest(EFactoryTestSuite.suite());
+ suite.addTest(EMFCompareMapTestSuite.suite());
+ suite.addTest(ModelUtilsTestSuite.suite());
+ suite.addTestSuite(AdapterUtilsTest.class);
+ suite.addTestSuite(ClassUtilsTest.class);
+ return suite;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/EMFComparePluginTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/EMFComparePluginTest.java
new file mode 100644
index 000000000..de7d1ac09
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/EMFComparePluginTest.java
@@ -0,0 +1,295 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintStream;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.ILogListener;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.compare.EMFComparePlugin;
+import org.eclipse.emf.compare.tests.EMFCompareTestPlugin;
+
+/**
+ * Tests for the core plug-in activator. Will mainly test behavior of utility methods it declares.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class EMFComparePluginTest extends TestCase {
+ /** Error messages to use for these tests. */
+ private static final String[] ERROR_MESSAGES = {"NullPointerException has been thrown.",
+ "failed to build.", "Viewer's input was null.", };
+
+ /** Possible severities for an exception. */
+ private static final int[] ERROR_SEVERITIES = {IStatus.WARNING, IStatus.ERROR, IStatus.INFO, };
+
+ /** This will keep track of the last {@link IStatus} that has been logged. */
+ protected IStatus loggedStatus;
+
+ /** This listener will be used to keep track of {@link IStatus}es logged. */
+ private ILogListener logListener;
+
+ /** The output stream that will be used as a temporary System.err. */
+ private PrintStream temporaryErr;
+
+ /** File that will serve as an output for the temporary System.err. */
+ private File temporaryLog;
+
+ /**
+ * Tests the behavior of {@link EMFComparePlugin#log(Exception, boolean)} passing an arbitrary exception
+ * other than {@link NullPointerException} and {@link CoreException} to be logged. Expects the exception
+ * to be logged with the specified severity. The error message should be the one specified in
+ * org.eclipse.emf.compare.messages.properties with key &quot;EMFComparePlugin.JavaException&quot;.
+ */
+ public void testLogExceptionArbitraryException() {
+ boolean blocker = false;
+ for (String message : ERROR_MESSAGES) {
+ final PrintStream systemErr = System.err;
+ // disables standard error to avoid all logged exception to be displayed in console.
+ System.setErr(temporaryErr);
+ EMFComparePlugin.log(new IllegalArgumentException(message), blocker);
+ System.setErr(systemErr);
+
+ final String expectedMessage = org.eclipse.emf.compare.EMFCompareMessages
+ .getString("EMFComparePlugin.JavaException");
+ final int expectedSeverity;
+ if (blocker)
+ expectedSeverity = IStatus.ERROR;
+ else
+ expectedSeverity = IStatus.WARNING;
+ blocker = !blocker;
+
+ assertEquals("Unexpected message of the logged exception.", expectedMessage, loggedStatus
+ .getMessage());
+ assertEquals("Unexpected severity of the logged exception.", expectedSeverity, loggedStatus
+ .getSeverity());
+ assertEquals("Exception logged with unexpected plug-in ID.", EMFComparePlugin.PLUGIN_ID,
+ loggedStatus.getPlugin());
+ }
+ }
+
+ /**
+ * Tests the behavior of {@link EMFComparePlugin#log(Exception, boolean)} passing a {@link CoreException}
+ * to be logged. Expects the exception to be logged with the specified error message and severity.
+ */
+ public void testLogExceptionCoreException() {
+ for (int severity : ERROR_SEVERITIES) {
+ for (String message : ERROR_MESSAGES) {
+ final Status coreExceptionStatus = new Status(severity, EMFCompareTestPlugin.PLUGIN_ID,
+ message);
+ // disables standard error to avoid all logged exception to be displayed in console.
+ final PrintStream systemErr = System.err;
+ System.setErr(temporaryErr);
+ EMFComparePlugin.log(new CoreException(coreExceptionStatus), true);
+ System.setErr(systemErr);
+
+ assertEquals("Unexpected message of the logged core exception.", message, loggedStatus
+ .getMessage());
+ assertEquals("Unexpected severity of the logged core exception.", severity, loggedStatus
+ .getSeverity());
+ assertEquals("Core exception logged with unexpected plug-in ID.",
+ EMFCompareTestPlugin.PLUGIN_ID, loggedStatus.getPlugin());
+ }
+ }
+ }
+
+ /**
+ * Tests the behavior of {@link EMFComparePlugin#log(Exception, boolean)} with <code>null</code> as the
+ * exception argument. Expects a {@link NullPointerException} to be thrown.
+ */
+ public void testLogExceptionNullException() {
+ try {
+ EMFComparePlugin.log((Exception)null, true);
+ fail("Logging null didn't throw expected NullPointerException.");
+ } catch (NullPointerException e) {
+ // This was expected behavior
+ }
+ }
+
+ /**
+ * Tests the behavior of {@link EMFComparePlugin#log(Exception, boolean)} passing a
+ * {@link NullPointerException} to be logged. Expects the exception to be logged with the specified
+ * severity. The error message should be the one specified in org.eclipse.emf.compare.messages.properties
+ * with key &quot;EMFComparePlugin.ElementNotFound&quot;.
+ */
+ public void testLogExceptionNullPointerException() {
+ boolean blocker = false;
+ for (String message : ERROR_MESSAGES) {
+ // disables standard error to avoid all logged exception to be displayed in console.
+ final PrintStream systemErr = System.err;
+ System.setErr(temporaryErr);
+ EMFComparePlugin.log(new NullPointerException(message), blocker);
+ System.setErr(systemErr);
+
+ final String expectedMessage = org.eclipse.emf.compare.EMFCompareMessages
+ .getString("EMFComparePlugin.ElementNotFound");
+ final int expectedSeverity;
+ if (blocker)
+ expectedSeverity = IStatus.ERROR;
+ else
+ expectedSeverity = IStatus.WARNING;
+ blocker = !blocker;
+
+ assertEquals("Unexpected message of the logged NullPointerException.", expectedMessage,
+ loggedStatus.getMessage());
+ assertEquals("Unexpected severity of the logged NullPointerException.", expectedSeverity,
+ loggedStatus.getSeverity());
+ assertEquals("NullPointerException logged with unexpected plug-in ID.",
+ EMFComparePlugin.PLUGIN_ID, loggedStatus.getPlugin());
+ }
+ }
+
+ /**
+ * Tests the behavior of {@link EMFComparePlugin#log(String, boolean)} with <code>null</code> as the
+ * message to be logged. Expects a new entry to be logged with the given severity and the message
+ * specified in org.eclipse.emf.compare.messages.properties with key
+ * &quot;EMFComparePlugin.UnexpectedException&quot;.
+ */
+ public void testLogMessageNullMessage() {
+ boolean blocker = false;
+ for (int i = 0; i < ERROR_MESSAGES.length; i++) {
+ final PrintStream systemErr = System.err;
+ // disables standard error to avoid all logged exception to be displayed in console.
+ System.setErr(temporaryErr);
+ EMFComparePlugin.log((String)null, blocker);
+ System.setErr(systemErr);
+
+ final String expectedMessage = org.eclipse.emf.compare.EMFCompareMessages
+ .getString("EMFComparePlugin.UnexpectedException");
+ final int expectedSeverity;
+ if (blocker)
+ expectedSeverity = IStatus.ERROR;
+ else
+ expectedSeverity = IStatus.WARNING;
+ blocker = !blocker;
+
+ assertEquals("Unexpected message of the logged message.", expectedMessage, loggedStatus
+ .getMessage());
+ assertEquals("Unexpected severity of the logged message.", expectedSeverity, loggedStatus
+ .getSeverity());
+ assertEquals("Message logged with unexpected plug-in ID.", EMFComparePlugin.PLUGIN_ID,
+ loggedStatus.getPlugin());
+ }
+ }
+
+ /**
+ * Tests the behavior of {@link EMFComparePlugin#log(String, boolean)} with a valid message to be logged.
+ * Expects a new entry to be logged with the given severity and message.
+ */
+ public void testLogMessageValidMessage() {
+ boolean blocker = false;
+ for (String message : ERROR_MESSAGES) {
+ final PrintStream systemErr = System.err;
+ // disables standard error to avoid all logged exception to be displayed in console.
+ System.setErr(temporaryErr);
+ EMFComparePlugin.log(message, blocker);
+ System.setErr(systemErr);
+
+ final int expectedSeverity;
+ if (blocker)
+ expectedSeverity = IStatus.ERROR;
+ else
+ expectedSeverity = IStatus.WARNING;
+ blocker = !blocker;
+
+ assertEquals("Unexpected message logged.", message, loggedStatus.getMessage());
+ assertEquals("Unexpected severity of the logged message.", expectedSeverity, loggedStatus
+ .getSeverity());
+ assertEquals("Message logged with unexpected plug-in ID.", EMFComparePlugin.PLUGIN_ID,
+ loggedStatus.getPlugin());
+ }
+ }
+
+ /**
+ * Tests the behavior of {@link EMFComparePlugin#log(IStatus)} with <code>null</code> as the status to
+ * be logged. Expects a {@link NullPointerException} to be thrown with the given status' error message.
+ */
+ public void testLogStatusNullStatus() {
+ try {
+ EMFComparePlugin.log(null);
+ fail("Logging null status didn't throw expected NullPointerException.");
+ } catch (NullPointerException e) {
+ // This ws expected behavior
+ }
+ }
+
+ /**
+ * Tests the behavior of {@link EMFComparePlugin#log(IStatus)} with a valid status to be logged. Expects
+ * the status to be logged with the specified severity, error message and source plugin.
+ */
+ public void testLogStatusValidStatus() {
+ for (int severity : ERROR_SEVERITIES) {
+ for (String message : ERROR_MESSAGES) {
+ final Status status = new Status(severity, EMFCompareTestPlugin.PLUGIN_ID, message);
+ final PrintStream systemErr = System.err;
+ // disables standard error to avoid all logged exception to be displayed in console.
+ System.setErr(temporaryErr);
+ EMFComparePlugin.log(status);
+ System.setErr(systemErr);
+
+ assertEquals("Unexpected message of the logged exception.", message, loggedStatus
+ .getMessage());
+ assertEquals("Unexpected severity of the logged exception.", severity, loggedStatus
+ .getSeverity());
+ assertEquals("Exception logged with unexpected plug-in ID.", EMFCompareTestPlugin.PLUGIN_ID,
+ loggedStatus.getPlugin());
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() {
+ // Creates a log listener that will update the field loggedStatus as needed
+ logListener = new ILogListener() {
+ public void logging(IStatus status, String message) {
+ loggedStatus = status;
+ }
+ };
+ // Then sets it to listen to the log
+ EMFComparePlugin.getDefault().getLog().addLogListener(logListener);
+
+ try {
+ // Creates temporary error log
+ final File dataDir = new File(FileLocator.toFileURL(
+ EMFCompareTestPlugin.getDefault().getBundle().getEntry("/data")).getFile());
+ temporaryLog = new File(dataDir.getAbsolutePath() + "/testLogErrorLog");
+ temporaryErr = new PrintStream(temporaryLog);
+ } catch (IOException e) {
+ fail("Couldn't create temporary error log.");
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#tearDown()
+ */
+ @Override
+ protected void tearDown() {
+ EMFComparePlugin.getDefault().getLog().removeLogListener(logListener);
+ if (temporaryErr != null)
+ temporaryErr.close();
+ if (temporaryLog.exists())
+ temporaryLog.delete();
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/MessagesTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/MessagesTest.java
new file mode 100644
index 000000000..4d7106712
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/MessagesTest.java
@@ -0,0 +1,215 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core;
+
+import java.lang.reflect.Array;
+import java.util.HashSet;
+import java.util.Locale;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.EMFCompareMessages;
+
+/**
+ * Tests Messages class. These tests successful completion heavily depends on org.eclipse.emf.compare
+ * "messages.properties" file contents.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings({"unchecked", "nls", })
+public class MessagesTest extends TestCase {
+ /** Expected result of the parameterisable keys (only used if locale is en). */
+ private final String[] expectedForParameterisable = {"The feature {0} does not exist in {1}.",
+ "Illegal load factor for map: {0}.", };
+
+ /** Contains the expected results for the valid keys (only used if locale is en). */
+ private final String[] expectedForValidKeys = {"Required element not found.",
+ "A java exception has been thrown.", "Unknown EMF Compare problem.", };
+
+ /** These will be used when testing message retrieval with invalid keys. */
+ private final String[] invalidKeys = {"invalidKey", "EMFComparePlugin.ElementNotFound1", "", "\u00ec", };
+
+ /** Contains possible parameters for the messages. */
+ private final Object[] messageParameters = {null, "", "Foehn", -1, new Long(10), '\u0043', new HashSet(), };
+
+ /** These two are valid, parameterisable keys. See org.eclipse.emf.compare "messages.properties". */
+ private final String[] parameterisableKeys = {"EFactory.FeatureNotFound",
+ "EMFCompareMap.IllegalLoadFactor", };
+
+ /** These are valid, un-parameterisable keys. See org.eclipse.emf.compare "messages.properties". */
+ private final String[] validKeys = {"EMFComparePlugin.ElementNotFound", "EMFComparePlugin.JavaException",
+ "EMFComparePlugin.UnexpectedException", };
+
+ /**
+ * Tests {@link EMFCompareMessages#getString(String, Object...)} with an invalid key. Expects the String
+ *
+ * <pre>
+ * &quot;!&quot; + key + &quot;!&quot;
+ * </pre>
+ *
+ * to be returned. Parameters won't affect result here.
+ */
+ public void testFormattedGetStringInvalidKey() {
+ for (int i = 0; i < messageParameters.length; i++) {
+ for (int j = i; j < messageParameters.length; j++) {
+ final Object[] parameters = partialArrayCopy(messageParameters, i, j);
+ for (String invalidKey : invalidKeys)
+ assertEquals("Unexpected result of getString() with an invalid key.",
+ '!' + invalidKey + '!', EMFCompareMessages.getString(invalidKey, parameters));
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMessages#getString(String, Object...)} with <code>null</code> key. Expects a
+ * NullPointerException to be thrown. Parameters won't affect result here.
+ */
+ public void testFormattedGetStringNullKey() {
+ for (int i = 0; i < messageParameters.length; i++) {
+ for (int j = i; j < messageParameters.length; j++) {
+ final Object[] parameters = partialArrayCopy(messageParameters, i, j);
+ try {
+ EMFCompareMessages.getString(null, parameters);
+ fail("Calling getString() with null key did not throw NullPointerException.");
+ } catch (NullPointerException e) {
+ // This was expected
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMessages#getString(String, Object...)} with valid keys.
+ * <p>
+ * If the System locale is configured for english language, expects the String associated to the key in
+ * the properties file to be returned with all occurences of <code>&quot;{[0-9]*}&quot;</code> replaced
+ * by the correct parameter if any. Otherwise, expects the key to have been found, and the parameters to
+ * be correctly substituted.
+ * </p>
+ */
+ public void testFormattedGetStringValidKey() {
+ for (int i = 0; i < messageParameters.length; i++) {
+ for (int j = i; j < messageParameters.length; j++) {
+ final Object[] parameters = partialArrayCopy(messageParameters, i, j);
+ for (int k = 0; k < parameterisableKeys.length; k++) {
+ String expectedResult = expectedForParameterisable[k];
+ int parameterCount = 0;
+ while (expectedResult.matches(".*\\{[0-9]+\\}.*") && parameterCount < parameters.length) {
+ if (parameters[parameterCount] == null)
+ expectedResult = expectedResult.replaceFirst("\\{[0-9]+\\}", "null");
+ else
+ expectedResult = expectedResult.replaceFirst("\\{[0-9]+\\}",
+ parameters[parameterCount].toString());
+ parameterCount++;
+ }
+ if (Locale.getDefault().getLanguage().equalsIgnoreCase("en"))
+ assertEquals("Unexpected formatted String returned by getString(String, Object...).",
+ expectedResult, EMFCompareMessages.getString(parameterisableKeys[k],
+ parameters));
+ else {
+ final String result = EMFCompareMessages
+ .getString(parameterisableKeys[k], parameters);
+ assertFalse("Message class did not find an existing parameterisable key.", result
+ .equals('!' + "parameterisableKeys[k]" + '!'));
+ for (int l = 0; l < parameterCount; l++) {
+ if (parameters[l] != null)
+ assertTrue("Message class did not substitute the parameter in the result.",
+ result.contains(parameters[l].toString()));
+ else
+ assertTrue("Message class did not substitute the parameter in the result.",
+ result.contains("null"));
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMessages#getString(String, Object...)} with valid keys and <code>null</code>
+ * as formatting parameter. Expects the result to be the same as the
+ * {@link EMFCompareMessages#getString(String)}.
+ */
+ public void testFormattedGetStringValidKeyNullParameter() {
+ for (int i = 0; i < parameterisableKeys.length; i++) {
+ assertEquals("Unexpected formatted String returned by getString(String, Object...).",
+ EMFCompareMessages.getString(parameterisableKeys[i]), EMFCompareMessages.getString(
+ parameterisableKeys[i], (Object[])null));
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMessages#getString(String)} with an invalid key. Expects the String
+ *
+ * <pre>
+ * &quot;!&quot; + key + &quot;!&quot;
+ * </pre>
+ *
+ * to be returned.
+ */
+ public void testUnFormattedGetStringInvalidKey() {
+ for (String invalidKey : invalidKeys)
+ assertEquals("Unexpected result of getString() with an invalid key.", '!' + invalidKey + '!',
+ EMFCompareMessages.getString(invalidKey));
+ }
+
+ /**
+ * Tests {@link EMFCompareMessages#getString(String)} with <code>null</code> argument. Expects a
+ * NullPointerException to be thrown.
+ */
+ public void testUnFormattedGetStringNullKey() {
+ try {
+ EMFCompareMessages.getString(null);
+ fail("Calling getString() with null argument did not throw NullPointerException.");
+ } catch (NullPointerException e) {
+ // This was expected
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMessages#getString(String)} with valid keys. Expects the String associated to
+ * the key in the properties file to be returned.
+ */
+ public void testUnFormattedGetStringValidKey() {
+ for (int i = 0; i < validKeys.length; i++) {
+ if (Locale.getDefault().getLanguage().equalsIgnoreCase("en"))
+ assertEquals("Unexpected String returned by getString(String).", expectedForValidKeys[i],
+ EMFCompareMessages.getString(validKeys[i]));
+ else {
+ final String result = EMFCompareMessages.getString(validKeys[i]);
+ assertFalse("Message class did not find an existing parameterisable key.", result
+ .equals('!' + "parameterisableKeys[k]" + '!'));
+ }
+ }
+ }
+
+ /**
+ * This will return a partial copy of an array.
+ *
+ * @param <T>
+ * Type of the copied array.
+ * @param original
+ * Array to be copied.
+ * @param start
+ * starting index of the copy.
+ * @param end
+ * end index of the copy.
+ * @return Array containing a copy of the given range from <code>original</code>.
+ */
+ private <T> T[] partialArrayCopy(T[] original, int start, int end) {
+ final int range = end - start;
+ if (range < 0)
+ throw new IllegalArgumentException("Illegal copy range.");
+ final T[] copy = (T[])Array.newInstance(original.getClass().getComponentType(), range);
+ System.arraycopy(original, start, copy, 0, Math.min(original.length - start, range));
+ return copy;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/AdapterUtilsTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/AdapterUtilsTest.java
new file mode 100755
index 000000000..88aaa981a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/AdapterUtilsTest.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util;
+
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.compare.tests.EMFCompareTestPlugin;
+import org.eclipse.emf.compare.util.AdapterUtils;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.provider.EModelElementItemProvider;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+
+/**
+ * Tests the convenience methods provided by {@link AdapterUtils}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class AdapterUtilsTest extends TestCase {
+ /** References the location of an ecore model. */
+ private static final String ECORE_MODEL_PATH = '/' + EMFCompareTestPlugin.PLUGIN_ID + '/'
+ + "inputs/attribute/attributeChange/v2.ecore";
+
+ /** References the location of a genmodel model. */
+ private static final String GENMODEL_MODEL_PATH = '/' + EMFCompareTestPlugin.PLUGIN_ID + '/'
+ + "inputs/genmodel/attributeChange/v1.genmodel";
+
+ /**
+ * This will be instantiated in {@link #setUp()}, it will hold the EObject loaded from
+ * {@link #ECORE_MODEL_PATH}.
+ */
+ private EObject ecoreModel;
+
+ /**
+ * This will be instantiated in {@link #setUp()}, it will hold the EObject loaded from
+ * {@link #GENMODEL_MODEL_PATH}.
+ */
+ private EObject genmodelModel;
+
+ /**
+ * Tests the adaptation of an ecore model element to a supported type.
+ */
+ public void testValidAdaptEcore() {
+ final TreeIterator<EObject> ecoreIterator = ecoreModel.eAllContents();
+ while (ecoreIterator.hasNext()) {
+ final EObject next = ecoreIterator.next();
+ final IStructuredItemContentProvider contentProvider = AdapterUtils.adapt(next,
+ IStructuredItemContentProvider.class);
+ final IItemLabelProvider labelProvider = AdapterUtils.adapt(next, IItemLabelProvider.class);
+ final IItemPropertySource propertySource = AdapterUtils.adapt(next, IItemPropertySource.class);
+ assertNotNull("Couldn't find a content provider for ecore.", contentProvider);
+ assertNotNull("Couldn't find a label provider for ecore.", labelProvider);
+ assertNotNull("Couldn't find a property source for ecore.", propertySource);
+ assertTrue("Adapted content provider is not an ecore IStructuredItemContentProvider.",
+ contentProvider instanceof EModelElementItemProvider);
+ assertTrue("Adapted label provider is not an ecore IItemLabelProvider.",
+ labelProvider instanceof EModelElementItemProvider);
+ assertTrue("Adapted property source is not an ecore IItemPropertySource.",
+ propertySource instanceof EModelElementItemProvider);
+ }
+ }
+
+ /**
+ * Tests the adaptation of an genmodel model element to a supported type.
+ */
+ public void testValidAdaptGenmodel() {
+ final TreeIterator<EObject> genmodelIterator = genmodelModel.eAllContents();
+ while (genmodelIterator.hasNext()) {
+ final EObject next = genmodelIterator.next();
+ final IStructuredItemContentProvider contentProvider = AdapterUtils.adapt(next,
+ IStructuredItemContentProvider.class);
+ final IItemLabelProvider labelProvider = AdapterUtils.adapt(next, IItemLabelProvider.class);
+ final IItemPropertySource propertySource = AdapterUtils.adapt(next, IItemPropertySource.class);
+ assertNotNull("Couldn't find a content provider for genmodel.", contentProvider);
+ assertNotNull("Couldn't find a label provider for genmodel.", labelProvider);
+ assertNotNull("Couldn't find a property source for genmodel.", propertySource);
+
+ final String genmodelProviderPackage = "org.eclipse.emf.codegen.ecore.genmodel.provider";
+ assertTrue("Adapted content provider is not a genmodel IStructuredItemContentProvider.",
+ contentProvider.getClass().getCanonicalName().startsWith(genmodelProviderPackage));
+ assertTrue("Adapted label provider is not a genmodel IItemLabelProvider.", labelProvider
+ .getClass().getCanonicalName().startsWith(genmodelProviderPackage));
+ assertTrue("Adapted property source is not a genmodel IItemPropertySource.", propertySource
+ .getClass().getCanonicalName().startsWith(genmodelProviderPackage));
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() throws IOException {
+ // IOException should never be throw. Check ModelUtilsTest if it is.
+ ecoreModel = ModelUtils.load(ECORE_MODEL_PATH, new ResourceSetImpl());
+ genmodelModel = ModelUtils.load(GENMODEL_MODEL_PATH, new ResourceSetImpl());
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/ClassUtilsTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/ClassUtilsTest.java
new file mode 100644
index 000000000..69fe05e6f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/ClassUtilsTest.java
@@ -0,0 +1,187 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.util.ClassUtils;
+
+/**
+ * Tests for the utility methods offered by {@link ClassUtils}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class ClassUtilsTest extends TestCase {
+ /** These are all the primitive classes. */
+ private static final Class<?>[] PRIMITIVES = {short.class, int.class, long.class, byte.class, char.class,
+ boolean.class, float.class, double.class, void.class, };
+
+ /** These are all the wrapper classes for primitive types. */
+ private static final Class<?>[] WRAPPERS = {Short.class, Integer.class, Long.class, Byte.class,
+ Character.class, Boolean.class, Float.class, Double.class, Void.class, };
+
+ /**
+ * Tests
+ * {@link ClassUtils#classEquals(Class, Class) with classes assumed non-equal. Expects <code>False</code> to be returned.
+ */
+ public void testClassEqualsDistinctClasses() {
+ for (int i = 0; i < PRIMITIVES.length; i++) {
+ // Special case when we are right at the middle of the input
+ if ((PRIMITIVES.length & 1) == 1 && i == (PRIMITIVES.length >> 1))
+ assertFalse("Distinct classes shouldn't be considered equal.", ClassUtils.classEquals(
+ PRIMITIVES[i], Object.class));
+ else
+ assertFalse("Distinct classes shouldn't be considered equal." + i, ClassUtils.classEquals(
+ PRIMITIVES[i], WRAPPERS[WRAPPERS.length - i - 1]));
+ }
+ }
+
+ /**
+ * Tests
+ * {@link ClassUtils#classEquals(Class, Class) with classes assumed equal. Expects <code>True</code> to be returned.
+ */
+ public void testClassEqualsEqualClasses() {
+ for (Class<?> clazz : WRAPPERS) {
+ assertTrue("Class considered different than itself.", ClassUtils.classEquals(clazz, clazz));
+ }
+ for (Class<?> clazz : PRIMITIVES) {
+ assertTrue("Class considered different than itself.", ClassUtils.classEquals(clazz, clazz));
+ }
+ for (int i = 0; i < WRAPPERS.length; i++) {
+ assertTrue("A primitive should be considered equal to its wrapper.", ClassUtils.classEquals(
+ WRAPPERS[i], PRIMITIVES[i]));
+ }
+ }
+
+ /**
+ * Tests
+ * {@link ClassUtils#classEquals(Class, Class) with <code>null</code> as one of the tested classes. Expects a {@link NullPointerException}
+ * to be thrown.
+ */
+ public void testClassEqualsNullClass() {
+ try {
+ ClassUtils.classEquals(null, String.class);
+ fail("Expected IllegalArgumentException hasn't been thrown by classEquals.");
+ } catch (IllegalArgumentException e) {
+ // We were expectin this
+ }
+ try {
+ ClassUtils.classEquals(String.class, null);
+ fail("Expected IllegalArgumentException hasn't been thrown by classEquals.");
+ } catch (IllegalArgumentException e) {
+ // We were expectin this
+ }
+ }
+
+ /**
+ * Tests {@link ClassUtils#hasMethod(Class, String, Class...)} with a method name and parameters known to
+ * be invalid for the receiver. Expects <code>False</code> to be returned.
+ */
+ public void testHasMethodInvalidMethod() {
+ for (Method method : Object.class.getDeclaredMethods()) {
+ if (Modifier.isPublic(method.getModifiers())) {
+ assertFalse("Object declared an unknown method for hasMethod.", ClassUtils.hasMethod(
+ Object.class, new StringBuilder(method.getName()).reverse().toString(), method
+ .getParameterTypes()));
+ } else {
+ assertFalse("Method hasMethod should return false when seeking a non-public method.",
+ ClassUtils.hasMethod(Object.class, method.getName(), method.getParameterTypes()));
+ }
+ }
+ }
+
+ /**
+ * Tests {@link ClassUtils#hasMethod(Class, String, Class...)} with <code>null</code> as the receiver
+ * class. Expects a {@link NullPointerException} to be thrown.
+ */
+ public void testHasMethodNullClass() {
+ try {
+ ClassUtils.hasMethod(null, "");
+ fail("Expected NullPointerException hasn't been thrown by hasMethod.");
+ } catch (NullPointerException e) {
+ // This was expected behavior
+ }
+ }
+
+ /**
+ * Tests {@link ClassUtils#hasMethod(Class, String, Class...)} with a method name and parameters known to
+ * exist in the receiver. Expects <code>True</code> to be returned.
+ */
+ public void testHasMethodValidMethod() {
+ for (Method method : Object.class.getMethods()) {
+ assertTrue("A String did not present a method declared on Object for hasMethod.", ClassUtils
+ .hasMethod(String.class, method.getName(), method.getParameterTypes()));
+ }
+ }
+
+ /**
+ * Tests {@link ClassUtils#invokeMethod(Object, String, Object...)} with a method name and parameters
+ * known to be invalid for the receiver. Expects <code>null</code> to be returned.
+ */
+ public void testInvokeMethodInvalidMethod() {
+ final String testObject = "This shall be the tested String";
+ assertNull("Invocation of an inexistant method returned non-null value.", ClassUtils.invokeMethod(
+ testObject, "doesNotExistOnString"));
+ assertNull("Invocation of an inexistant method returned non-null value.", ClassUtils.invokeMethod(
+ testObject, "gnirtsbus", 5, new Integer(10)));
+ assertNull("Invocation of an inexistant method returned successfully.", ClassUtils.invokeMethod(
+ testObject, "", new Object()));
+ }
+
+ /**
+ * Tests {@link ClassUtils#invokeMethod(Object, String, Object...)} with <code>null</code> as the
+ * receiver Object. Expects a {@link NullPointerException} to be thrown.
+ */
+ public void testInvokeMethodNullObject() {
+ try {
+ ClassUtils.invokeMethod(null, "");
+ fail("Expected NullPointerException hasn't been thrown by invokeMethod.");
+ } catch (NullPointerException e) {
+ // We were expectin this
+ }
+ try {
+ ClassUtils.invokeMethod(null, "", "", new Object(), new Integer(5));
+ fail("Expected NullPointerException hasn't been thrown by invokeMethod.");
+ } catch (NullPointerException e) {
+ // We were expectin this
+ }
+ }
+
+ /**
+ * Tests {@link ClassUtils#invokeMethod(Object, String, Object...)} on a String with existing methods to
+ * ensure that the results are the same as the results of direct invocation.
+ */
+ public void testInvokeMethodValidMethod() {
+ final String testObject = "This shall be the tested String";
+ try {
+ final int startIndex = ((Integer)ClassUtils.invokeMethod(testObject, "indexOf", "tested"))
+ .intValue();
+ assertSame(
+ "Invocation of String#indexOf(String) via invokeMethod did not return expected result.",
+ testObject.indexOf("tested"), startIndex);
+ final int length = ((Integer)ClassUtils.invokeMethod(testObject, "length")).intValue();
+ assertSame("Invocation of String#Length() via invokeMethod did not return expected result.",
+ testObject.length(), length);
+ final String result = (String)ClassUtils
+ .invokeMethod(testObject, "substring", startIndex, length);
+ assertEquals(
+ "Invocation of String#subString(int, int) via invokeMethod did not return expected result.",
+ testObject.substring(startIndex, length), result);
+ } catch (ClassCastException e) {
+ e.printStackTrace();
+ fail("Invocation via invokeMethod returned a result of an unexpected type.");
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/EAddTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/EAddTest.java
new file mode 100755
index 000000000..3791e8899
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/EAddTest.java
@@ -0,0 +1,207 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.efactory;
+
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.diff.metamodel.DiffFactory;
+import org.eclipse.emf.compare.match.metamodel.MatchFactory;
+import org.eclipse.emf.compare.util.EFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcoreFactory;
+
+/**
+ * Tests the behavior of {@link EFactory#eAdd(EObject, String, Object)}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings({"unchecked", "nls", })
+public class EAddTest extends TestCase {
+ /** Contains invalid feature names whatever the target. */
+ private String[] invalidFeatureNames = {null, "", "-1", "invalidFeature", };
+
+ /** Objects used for all these tests. Will be reinitialised for each test via {@link #setUp()}. */
+ private EObject[] testEObjects = new EObject[5];
+
+ /**
+ * Tests {@link EFactory#eAdd(EObject, String, Object)} with <code>null</code> as its first parameter.
+ * No matter what the other arguments are, expects a {@link NullPointerException} to be thrown.
+ */
+ public void testEAddNullObject() {
+ for (int i = 0; i < invalidFeatureNames.length; i++) {
+ try {
+ EFactory.eAdd(null, invalidFeatureNames[i], null);
+ fail("Expected NullPointerException hasn't been thrown by eAdd().");
+ } catch (NullPointerException e) {
+ // We expected this
+ } catch (FactoryException e) {
+ fail("Unexpected FactoryException has been thrown by eAdd() operation.");
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eAdd(EObject, String, Object)} on a valid EObject with an invalid feature name.
+ * No matter what the value is, expects a {@link FactoryException} to be thrown.
+ */
+ public void testEAddValidObjectInvalidFeature() {
+ for (int i = 0; i < testEObjects.length; i++) {
+ for (int j = 0; j < invalidFeatureNames.length; j++) {
+ try {
+ EFactory.eAdd(testEObjects[i], invalidFeatureNames[j], null);
+ fail("Expected FactoryException hasn't been thrown by eAdd().");
+ } catch (NullPointerException e) {
+ fail("Unexpected NullPointerException has been thrown by eAdd().");
+ } catch (FactoryException e) {
+ // We expected this
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eAdd(EObject, String, Object)} on a valid EObject with valid feature names. If
+ * the feature is a list, expects the value to be appended to it, otherwise expects the value to be set as
+ * the feature value.
+ */
+ public void testEAddValidObjectValidFeature() {
+ for (int i = 0; i < testEObjects.length; i++) {
+ for (EStructuralFeature feature : testEObjects[i].eClass().getEAllStructuralFeatures()) {
+ if (feature.isChangeable()) {
+ for (Object newValue : getArbitraryValueFor(feature)) {
+ // We don't need to try with null values here
+ if (newValue != null) {
+ try {
+ EFactory.eAdd(testEObjects[i], feature.getName(), newValue);
+ if (testEObjects[i].eGet(feature) instanceof List) {
+ assertTrue(
+ "New value hasn't been appended to the feature's values list.",
+ ((List)testEObjects[i].eGet(feature)).contains(newValue));
+ } else {
+ assertEquals("Feature hasn't been set by eAdd.", newValue,
+ testEObjects[i].eGet(feature));
+ }
+ } catch (FactoryException e) {
+ fail("Unexpected FactoryException has been thrown by eAdd().");
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eAdd(EObject, String, Object)} on a valid EObject with valid feature names. As we
+ * try to add <code>null</code> from the feature's value, we expect no change to the value if it is a
+ * {@link List}. Otherwise, we expect the value to be reset to its default value.
+ */
+ public void testEAddValidObjectValidFeatureNullValue() {
+ for (int i = 0; i < testEObjects.length; i++) {
+ for (EStructuralFeature feature : testEObjects[i].eClass().getEAllStructuralFeatures()) {
+ if (feature.isChangeable()) {
+ final Object oldValue = testEObjects[i].eGet(feature);
+ try {
+ EFactory.eAdd(testEObjects[i], feature.getName(), null);
+ if (oldValue instanceof List) {
+ assertSame("eAdd changed the feature's values list.", oldValue, testEObjects[i]
+ .eGet(feature));
+ } else {
+ assertEquals("Feature hasn't been reset to its default by eAdd.", feature
+ .getDefaultValue(), testEObjects[i].eGet(feature));
+ }
+ } catch (FactoryException e) {
+ fail("Unexpected FactoryException has been thrown by eAdd().");
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eAdd(EObject, String, Object)} on a valid EObject with existing, unsettable
+ * feature names. Expects a {@link FactoryException} to be thrown if the feature is single-valued.
+ * Multi-valued features won't be affected.
+ */
+ public void testERemoveValidObjectUnsettableFeature() {
+ for (int i = 0; i < testEObjects.length; i++) {
+ for (EStructuralFeature feature : testEObjects[i].eClass().getEAllStructuralFeatures()) {
+ if (!feature.isChangeable()) {
+ final Object oldValue = testEObjects[i].eGet(feature);
+ try {
+ EFactory.eAdd(testEObjects[i], feature.getName(), null);
+ if (oldValue instanceof List)
+ assertEquals("eAdd changed the feature's values list.", oldValue, testEObjects[i]
+ .eGet(feature));
+ else
+ fail("Expected NullPointerException hasn't been thrown by eAdd();");
+ } catch (FactoryException e) {
+ if (oldValue instanceof List)
+ fail("Unexpected NullPointerException thrown by eAdd.");
+ // This was expected behavior for single-valued features
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() {
+ // These are the objects which features we'll call "eAdd" on
+ testEObjects[0] = DiffFactory.eINSTANCE.createMoveModelElement();
+ testEObjects[1] = DiffFactory.eINSTANCE.createDiffGroup();
+ testEObjects[2] = MatchFactory.eINSTANCE.createMatch2Elements();
+ testEObjects[3] = EcoreFactory.eINSTANCE.createEClass();
+ testEObjects[4] = EcoreFactory.eINSTANCE.createEPackage();
+ }
+
+ /**
+ * This will return an arbitrary value to be set for the given feature.
+ *
+ * @param feature
+ * Feature which value is to be set.
+ * @return Possible new values for the feature.
+ */
+ private Object[] getArbitraryValueFor(EStructuralFeature feature) {
+ Object[] newValues = new Object[1];
+ if (feature.getEType().getInstanceClass() != null) {
+ try {
+ newValues[0] = feature.getEType().getInstanceClass().newInstance();
+ } catch (IllegalAccessException e) {
+ // couldn't create an instance of the class this feature accepts as value
+ } catch (InstantiationException e) {
+ final String desiredClass = feature.getEType().getInstanceClassName();
+ if (desiredClass.matches("double")) {
+ newValues = new Object[] {(double)feature.getLowerBound(), Double.NaN, 0d,
+ Double.POSITIVE_INFINITY, (double)feature.getUpperBound(), };
+ } else if ("org.eclipse.emf.ecore.EObject".equals(desiredClass)) {
+ newValues[0] = EcoreFactory.eINSTANCE.createEObject();
+ } else if ("org.eclipse.emf.compare.diff.metamodel.DiffElement".equals(desiredClass)) {
+ newValues[0] = DiffFactory.eINSTANCE.createDiffGroup();
+ } else if ("org.eclipse.emf.ecore.EPackage".equals(desiredClass)) {
+ newValues[0] = EcoreFactory.eINSTANCE.createEPackage();
+ }
+ // many elements aren't given a test value here. Add as needed
+ }
+ }
+
+ return newValues;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/EFactoryTestSuite.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/EFactoryTestSuite.java
new file mode 100755
index 000000000..9bd1d16d1
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/EFactoryTestSuite.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.efactory;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+/**
+ * Launches all the JUnit tests for the {@link EFactory}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class EFactoryTestSuite extends TestCase {
+ /**
+ * Launches the test with the given arguments.
+ *
+ * @param args
+ * Arguments of the testCase.
+ */
+ public static void main(String[] args) {
+ TestRunner.run(suite());
+ }
+
+ /**
+ * Creates the {@link junit.framework.TestSuite TestSuite} for all the test.
+ *
+ * @return The test suite containing all the tests
+ */
+ public static Test suite() {
+ final TestSuite suite = new TestSuite("Tests for the EFactory behavior");
+ suite.addTestSuite(EAddTest.class);
+ suite.addTestSuite(EGetTest.class);
+ suite.addTestSuite(EGetAsListTest.class);
+ suite.addTestSuite(ERemoveTest.class);
+ suite.addTestSuite(ESetTest.class);
+ return suite;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/EGetAsListTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/EGetAsListTest.java
new file mode 100644
index 000000000..2f6ea4e56
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/EGetAsListTest.java
@@ -0,0 +1,161 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.efactory;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.diff.metamodel.DiffFactory;
+import org.eclipse.emf.compare.match.metamodel.MatchFactory;
+import org.eclipse.emf.compare.util.EFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcoreFactory;
+
+/**
+ * Tests the behavior of {@link EFactory#eGetAsList(EObject, String)}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings({"unchecked", "nls", })
+public class EGetAsListTest extends TestCase {
+ /** Contains invalid feature names whatever the target. */
+ private String[] invalidFeatureNames = {null, "", "-1", "invalidFeature", };
+
+ /** Objects used for all these tests. Will be reinitialised for each test via {@link #setUp()}. */
+ private EObject[] testEObjects = new EObject[5];
+
+ /**
+ * Tests {@link EFactory#eGetAsList(EObject, String)} with <code>null</code> as its first parameter. No
+ * matter what the specified feature name is, expects a {@link NullPointerException} to be thrown.
+ */
+ public void testEGetAsListNullObject() {
+ for (int i = 0; i < invalidFeatureNames.length; i++) {
+ try {
+ EFactory.eGetAsList(null, invalidFeatureNames[i]);
+ fail("Expected NullPointerException hasn't been thrown by eGetAsList().");
+ } catch (NullPointerException e) {
+ // We expected this
+ } catch (FactoryException e) {
+ fail("Unexpected FactoryException has been thrown by eGetAsList() operation.");
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eGetAsList(EObject, String)} on a valid EObject with an invalid feature name.
+ * Expects a {@link FactoryException} to be thrown.
+ */
+ public void testEGetAsListValidObjectInvalidFeature() {
+ for (int i = 0; i < testEObjects.length; i++) {
+ for (int j = 0; j < invalidFeatureNames.length; j++) {
+ try {
+ EFactory.eGetAsList(testEObjects[i], invalidFeatureNames[j]);
+ fail("Expected FactoryException hasn't been thrown by eGetAsList().");
+ } catch (NullPointerException e) {
+ fail("Unexpected NullPointerException has been thrown by eGetAsList().");
+ } catch (FactoryException e) {
+ // We expected this
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eGetAsList(EObject, String)} on a valid EObject with valid feature names.
+ * <p>
+ * Expected result if
+ * <ul>
+ * <li>feature is a list =&gt; result of {@link EObject#eGet(EStructuralFeature)}.</li>
+ * <li>feature is single valued =&gt; new list with only the feature's value.</li>
+ * </ul>
+ * </p>
+ */
+ public void testEGetAsListValidObjectValidFeature() {
+ for (int i = 0; i < testEObjects.length; i++) {
+ for (EStructuralFeature feature : testEObjects[i].eClass().getEAllStructuralFeatures()) {
+ try {
+ Object expectedValue = testEObjects[i].eGet(feature);
+ if (!(expectedValue instanceof List)) {
+ final List temp = new ArrayList();
+ if (expectedValue != null)
+ temp.add(expectedValue);
+ expectedValue = temp;
+ }
+ final Object actualValue = EFactory.eGetAsList(testEObjects[i], feature.getName());
+ assertEquals("Unexpected result of eGetAsList() operation.", expectedValue, actualValue);
+ } catch (FactoryException e) {
+ fail("Unexpected FactoryException has been thrown by eGetAsList().");
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eGetAsList(EObject, String)} on a valid EObject with valid operation names.
+ * Expected result is the result of the given operation's call, added to a new list if it isn't already an
+ * instance of {@link List}.
+ */
+ public void testEGetAsListValidObjectValidOperation() {
+ for (int i = 0; i < testEObjects.length; i++) {
+ for (EOperation operation : testEObjects[i].eClass().getEAllOperations()) {
+ try {
+ if (operation.getEParameters().size() == 0) {
+ final Method method = testEObjects[i].getClass().getMethod(operation.getName());
+ Object expectedValue = method.invoke(testEObjects[i]);
+ if (!(expectedValue instanceof List)) {
+ final List temp = new ArrayList();
+ if (expectedValue != null)
+ temp.add(expectedValue);
+ expectedValue = temp;
+ }
+ final Object actualValue = EFactory.eGetAsList(testEObjects[i], operation.getName());
+ assertEquals(
+ "Unexpected result of eGetAsList() on a valid EObject for an operation.",
+ expectedValue, actualValue);
+ }
+ } catch (FactoryException e) {
+ fail("Unexpected FactoryException has been thrown by eGetAsList().");
+ } catch (NoSuchMethodException e) {
+ // shouldn't happen
+ assert false;
+ } catch (InvocationTargetException e) {
+ // shouldn't happen
+ assert false;
+ } catch (IllegalAccessException e) {
+ // shouldn't happen
+ assert false;
+ }
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() {
+ // These are the objects which features we'll call "eAdd" on
+ testEObjects[0] = DiffFactory.eINSTANCE.createMoveModelElement();
+ testEObjects[1] = DiffFactory.eINSTANCE.createDiffGroup();
+ testEObjects[2] = MatchFactory.eINSTANCE.createMatch2Elements();
+ testEObjects[3] = EcoreFactory.eINSTANCE.createEClass();
+ testEObjects[4] = EcoreFactory.eINSTANCE.createEPackage();
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/EGetTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/EGetTest.java
new file mode 100644
index 000000000..2a0e859e9
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/EGetTest.java
@@ -0,0 +1,139 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.efactory;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.diff.metamodel.DiffFactory;
+import org.eclipse.emf.compare.match.metamodel.MatchFactory;
+import org.eclipse.emf.compare.util.EFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcoreFactory;
+
+/**
+ * Tests the behavior of {@link EFactory#eGet(EObject, String)}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class EGetTest extends TestCase {
+ /** Contains invalid feature names whatever the target. */
+ private String[] invalidFeatureNames = {null, "", "-1", "invalidFeature", };
+
+ /** Objects used for all these tests. Will be reinitialised for each test via {@link #setUp()}. */
+ private EObject[] testEObjects = new EObject[5];
+
+ /**
+ * Tests {@link EFactory#eGet(EObject, String)} with <code>null</code> as its first parameter. No matter
+ * what the specified feature name is, expects a {@link NullPointerException} to be thrown.
+ */
+ public void testEGetNullObject() {
+ for (int i = 0; i < invalidFeatureNames.length; i++) {
+ try {
+ EFactory.eGet(null, invalidFeatureNames[i]);
+ fail("Expected NullPointerException hasn't been thrown by eGet().");
+ } catch (NullPointerException e) {
+ // We expected this
+ } catch (FactoryException e) {
+ fail("Unexpected FactoryException has been thrown by eGet() operation.");
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eGet(EObject, String)} on a valid EObject with an invalid feature name. Expects a
+ * {@link FactoryException} to be thrown.
+ */
+ public void testEGetValidObjectInvalidFeature() {
+ for (int i = 0; i < testEObjects.length; i++) {
+ for (int j = 0; j < invalidFeatureNames.length; j++) {
+ try {
+ EFactory.eGet(testEObjects[i], invalidFeatureNames[j]);
+ fail("Expected FactoryException hasn't been thrown by eGet().");
+ } catch (NullPointerException e) {
+ fail("Unexpected NullPointerException has been thrown by eGet().");
+ } catch (FactoryException e) {
+ // We expected this
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eGet(EObject, String)} on a valid EObject with valid feature names. Expected
+ * result is the result of {@link EObject#eGet(EStructuralFeature)}.
+ */
+ public void testEGetValidObjectValidFeature() {
+ for (int i = 0; i < testEObjects.length; i++) {
+ for (EStructuralFeature feature : testEObjects[i].eClass().getEAllStructuralFeatures()) {
+ try {
+ final Object value = EFactory.eGet(testEObjects[i], feature.getName());
+ assertEquals(
+ "EFactory.eGet() didn't return the same value as EObject.eGet() for a feature.",
+ testEObjects[i].eGet(feature), value);
+ } catch (FactoryException e) {
+ fail("Unexpected FactoryException has been thrown by eGet().");
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eGet(EObject, String)} on a valid EObject with valid operation names. Expected
+ * result is the result of the given operation's call.
+ */
+ public void testEGetValidObjectValidOperation() {
+ for (int i = 0; i < testEObjects.length; i++) {
+ for (EOperation operation : testEObjects[i].eClass().getEAllOperations()) {
+ try {
+ if (operation.getEParameters().size() == 0) {
+ final Method method = testEObjects[i].getClass().getMethod(operation.getName());
+ final Object expectedValue = method.invoke(testEObjects[i]);
+ final Object actualValue = EFactory.eGet(testEObjects[i], operation.getName());
+ assertEquals("Unexpected result of eGet() on a valid EObject for an operation.",
+ expectedValue, actualValue);
+ }
+ } catch (FactoryException e) {
+ fail("Unexpected FactoryException has been thrown by eGet().");
+ } catch (NoSuchMethodException e) {
+ // shouldn't happen
+ assert false;
+ } catch (InvocationTargetException e) {
+ // shouldn't happen
+ assert false;
+ } catch (IllegalAccessException e) {
+ // shouldn't happen
+ assert false;
+ }
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() {
+ // These are the objects which features we'll call "eAdd" on
+ testEObjects[0] = DiffFactory.eINSTANCE.createMoveModelElement();
+ testEObjects[1] = DiffFactory.eINSTANCE.createDiffGroup();
+ testEObjects[2] = MatchFactory.eINSTANCE.createMatch2Elements();
+ testEObjects[3] = EcoreFactory.eINSTANCE.createEClass();
+ testEObjects[4] = EcoreFactory.eINSTANCE.createEPackage();
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/ERemoveTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/ERemoveTest.java
new file mode 100644
index 000000000..d0de94664
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/ERemoveTest.java
@@ -0,0 +1,206 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.efactory;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.tests.EMFCompareTestPlugin;
+import org.eclipse.emf.compare.util.EFactory;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+/**
+ * Tests the behavior of {@link EFactory#eRemove(EObject, String, Object)}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings({"unchecked", "nls", })
+public class ERemoveTest extends TestCase {
+ /** Path to an ecore model to use for those tests. */
+ private static final String INPUT_MODEL_ECORE = "/inputs/attribute/volatile/v2.ecore";
+
+ /** Contains invalid feature names whatever the target. */
+ private String[] invalidFeatureNames = {null, "", "-1", "invalidFeature", };
+
+ /** UML and ecore models that will be used for the tests. Loaded from {@link #setUp()}. */
+ private EObject[] models = new EObject[1];
+
+ /**
+ * Tests {@link EFactory#eRemove(EObject, String, Object)} with <code>null</code> as its first
+ * parameter. No matter what the other arguments are, expects a {@link NullPointerException} to be thrown.
+ */
+ public void testERemoveNullObject() {
+ for (int i = 0; i < invalidFeatureNames.length; i++) {
+ try {
+ EFactory.eRemove(null, invalidFeatureNames[i], null);
+ fail("Expected NullPointerException hasn't been thrown by eRemove().");
+ } catch (NullPointerException e) {
+ // We expected this
+ } catch (FactoryException e) {
+ fail("Unexpected FactoryException has been thrown by eRemove() operation.");
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eRemove(EObject, String, Object)} on a valid EObject with an invalid feature
+ * name. No matter what the value is, expects a {@link FactoryException} to be thrown.
+ */
+ public void testERemoveValidObjectInvalidFeature() {
+ for (int i = 0; i < models.length; i++) {
+ // For each model, we'll only iterate through the first root's content
+ for (int j = 0; j < models[i].eContents().size(); j++) {
+ for (int k = 0; k < invalidFeatureNames.length; k++) {
+ try {
+ EFactory.eRemove(models[i].eContents().get(j), invalidFeatureNames[k], null);
+ fail("Expected FactoryException hasn't been thrown by eRemove().");
+ } catch (NullPointerException e) {
+ fail("Unexpected NullPointerException has been thrown by eRemove().");
+ } catch (FactoryException e) {
+ // We expected this
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eRemove(EObject, String, Object)} on a valid EObject with existing, unsettable
+ * feature names. Expects a {@link FactoryException} to be thrown if the feature is single-valued.
+ * Multi-valued features won't be affected.
+ */
+ public void testERemoveValidObjectUnsettableFeature() {
+ for (int i = 0; i < models.length; i++) {
+ // For each models, we'll only iterate through the first root's content
+ for (int j = 0; j < models[i].eContents().size(); j++) {
+ final EObject object = models[i].eContents().get(j);
+ for (EStructuralFeature feature : object.eClass().getEAllStructuralFeatures()) {
+ if (!feature.isChangeable()) {
+ final Object oldValue = object.eGet(feature);
+ try {
+ EFactory.eRemove(object, feature.getName(), null);
+ if (oldValue instanceof List)
+ assertEquals("eRemove changed the feature's values list.", oldValue, object
+ .eGet(feature));
+ else
+ fail("Expected NullPointerException hasn't been thrown by eRemove();");
+ } catch (FactoryException e) {
+ if (oldValue instanceof List)
+ fail("Unexpected NullPointerException thrown by eRemove.");
+ // This was expected behavior for single-valued features
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eRemove(EObject, String, Object)} on a valid EObject with valid feature names. If
+ * the feature is a list, expects the value to be removed from it, otherwise expects the feature value to
+ * be reset to its default.
+ */
+ public void testERemoveValidObjectValidFeature() {
+ for (int i = 0; i < models.length; i++) {
+ // For each models, we'll only iterate through the first root's content
+ for (int j = 0; j < models[i].eContents().size(); j++) {
+ final EObject object = models[i].eContents().get(j);
+ for (EStructuralFeature feature : object.eClass().getEAllStructuralFeatures()) {
+ if (feature.isChangeable()) {
+ if (feature.isMany()) {
+ final Object[] arrayValues = ((List)object.eGet(feature)).toArray();
+ int currentSize = arrayValues.length;
+ for (int k = 0; k < arrayValues.length; k++) {
+ try {
+ EFactory.eRemove(object, feature.getName(), arrayValues[k]);
+ assertSame("Unexpected size of the list after eRemove() execution.",
+ --currentSize, ((List)object.eGet(feature)).size());
+ // As Lists allow duplicates, we can't assert that element is no more
+ // contained
+ } catch (FactoryException e) {
+ fail("Unexpected FactoryException thrown when removing a value from a list feature.");
+ }
+ }
+ assertSame(
+ "Feature values List hasn't been emptied by removing all its elements.",
+ 0, ((List)object.eGet(feature)).size());
+ } else {
+ try {
+ // Feature is single valued. eRemove should reset its value whatever the third
+ // argument
+ EFactory.eRemove(object, feature.getName(), "anyValue");
+ assertEquals("Feature hasn't been reset to its default by eRemove().",
+ feature.getDefaultValue(), object.eGet(feature));
+ } catch (FactoryException e) {
+ fail("Unexpected FactoryException thrown when removing a value from a list feature.");
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eRemove(EObject, String, Object)} on a valid EObject with valid feature names. As
+ * we try to remove <code>null</code> from the feature's value, we expect no change to the value if it
+ * is a {@link List}. Otherwise, we expect the value to be reset to its default value.
+ */
+ public void testERemoveValidObjectValidFeatureNullValue() {
+ for (int i = 0; i < models.length; i++) {
+ // For each models, we'll only iterate through the first root's content
+ for (int j = 0; j < models[i].eContents().size(); j++) {
+ final EObject object = models[i].eContents().get(j);
+ for (EStructuralFeature feature : object.eClass().getEAllStructuralFeatures()) {
+ if (feature.isChangeable()) {
+ final Object oldValue = object.eGet(feature);
+ try {
+ EFactory.eRemove(object, feature.getName(), null);
+ if (oldValue instanceof List) {
+ assertEquals("eRemove(null) changed the feature's values list.", oldValue,
+ object.eGet(feature));
+ } else {
+ assertEquals("Feature hasn't been set to its default value by eRemove.",
+ feature.getDefaultValue(), object.eGet(feature));
+ }
+ } catch (FactoryException e) {
+ fail("Unexpected FactoryException has been thrown by eRemove().");
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() {
+ try {
+ final File ecoreFile = new File(FileLocator.toFileURL(
+ EMFCompareTestPlugin.getDefault().getBundle().getEntry(INPUT_MODEL_ECORE)).getFile());
+ models[0] = ModelUtils.load(ecoreFile, new ResourceSetImpl());
+ } catch (IOException e) {
+ fail("Test setUp failed to load input models.");
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/ESetTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/ESetTest.java
new file mode 100644
index 000000000..cc8ca58bf
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/efactory/ESetTest.java
@@ -0,0 +1,283 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.efactory;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.diff.metamodel.DiffFactory;
+import org.eclipse.emf.compare.match.metamodel.MatchFactory;
+import org.eclipse.emf.compare.util.EFactory;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EEnumLiteral;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcoreFactory;
+
+/**
+ * Tests the behavior of {@link EFactory#eSet(EObject, String, Object)}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings({"unchecked", "nls", })
+public class ESetTest extends TestCase {
+ /** Contains invalid feature names whatever the target. */
+ private String[] invalidFeatureNames = {null, "", "-1", "invalidFeature", };
+
+ /** Objects used for all these tests. Will be reinitialised for each test via {@link #setUp()}. */
+ private EObject[] testEObjects = new EObject[5];
+
+ /**
+ * Tests {@link EFactory#eSet(EObject, String, Object)} on a valid EObject with an invalid feature name.
+ * No matter what the value is, expects a {@link FactoryException} to be thrown.
+ */
+ public void testEAddValidObjectInvalidFeature() {
+ for (int i = 0; i < testEObjects.length; i++) {
+ for (int j = 0; j < invalidFeatureNames.length; j++) {
+ try {
+ EFactory.eSet(testEObjects[i], invalidFeatureNames[j], null);
+ fail("Expected FactoryException hasn't been thrown by eSet().");
+ } catch (NullPointerException e) {
+ fail("Unexpected NullPointerException has been thrown by eSet().");
+ } catch (FactoryException e) {
+ // We expected this
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eSet(EObject, String, Object)} on a valid EObject with existing, unsettable
+ * feature names. Expects a {@link FactoryException} to be thrown.
+ */
+ public void testERemoveValidObjectUnsettableFeature() {
+ for (int i = 0; i < testEObjects.length; i++) {
+ for (EStructuralFeature feature : testEObjects[i].eClass().getEAllStructuralFeatures()) {
+ if (!feature.isChangeable()) {
+ try {
+ EFactory.eSet(testEObjects[i], feature.getName(), null);
+ fail("Expected NullPointerException hasn't been thrown by eSet().");
+ } catch (FactoryException e) {
+ // This was expected behavior for single-valued features
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eSet(EObject, String, Object)} with <code>null</code> as its first parameter.
+ * No matter what the other arguments are, expects a {@link NullPointerException} to be thrown.
+ */
+ public void testESetNullObject() {
+ for (int i = 0; i < invalidFeatureNames.length; i++) {
+ try {
+ EFactory.eSet(null, invalidFeatureNames[i], null);
+ fail("Expected NullPointerException hasn't been thrown by eSet().");
+ } catch (NullPointerException e) {
+ // We expected this
+ } catch (FactoryException e) {
+ fail("Unexpected FactoryException has been thrown by eSet() operation.");
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eSet(EObject, String, Object)} on a valid EObject with valid feature names. If
+ * the feature is an {@link EEnum enumeration} and the value we're trying to set a {@link String},
+ * expects the feature's value to be set to the enumeration value represented by this String. Otherwise,
+ * expects it to behave as would {@link EObject#eSet(EStructuralFeature, Object)}.
+ */
+ public void testESetValidEObjectEEnumFeature() {
+ try {
+ final EPackage packaje = EcoreFactory.eINSTANCE.createEPackage();
+ packaje.setName("aPackage");
+
+ final EEnum visibility = createEEnum();
+ packaje.getEClassifiers().add(visibility);
+
+ final EClass clazz = EcoreFactory.eINSTANCE.createEClass();
+ final EAttribute enumAttribute = EcoreFactory.eINSTANCE.createEAttribute();
+ enumAttribute.setName("anEnumAttribute");
+ enumAttribute.setEType(visibility);
+ enumAttribute.setDefaultValue(visibility.getEEnumLiteral(0));
+ clazz.getEStructuralFeatures().add(enumAttribute);
+ packaje.getEClassifiers().add(clazz);
+
+ final EObject testObject = packaje.getEFactoryInstance().create(clazz);
+ final String newLiteral = "package";
+
+ EFactory.eSet(testObject, enumAttribute.getName(), newLiteral);
+
+ assertEquals("eSet() didn't set correct value for EEnum type attribute.", visibility
+ .getEEnumLiteral(newLiteral), testObject.eGet(enumAttribute));
+ } catch (FactoryException e) {
+ e.printStackTrace();
+ fail("Unexpected FactoryException has been thrown by eSet() called on an EEnum.");
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eSet(EObject, String, Object)} on a valid EObject with valid feature names. As
+ * none of the features tested here are enumeration, expects the value to be set for the feature as it
+ * would with {@link EObject#eSet(EStructuralFeature, Object)}.
+ */
+ public void testESetValidObjectValidFeature() {
+ for (int i = 0; i < testEObjects.length; i++) {
+ for (EStructuralFeature feature : testEObjects[i].eClass().getEAllStructuralFeatures()) {
+ final List newValues = new ArrayList();
+ if (feature.isMany()) {
+ for (Object value : getArbitraryValueFor(feature)) {
+ final List actualValue = new ArrayList();
+ if (value != null)
+ actualValue.add(value);
+ newValues.add(actualValue);
+ }
+ } else {
+ newValues.addAll(Arrays.asList(getArbitraryValueFor(feature)));
+ final List nullList = new ArrayList();
+ nullList.add(null);
+ newValues.removeAll(nullList);
+ }
+
+ if (feature.isChangeable()) {
+ for (Object newValue : newValues) {
+ // We don't need to try with null value here
+ if (newValue != null) {
+ try {
+ EFactory.eSet(testEObjects[i], feature.getName(), newValue);
+ assertEquals("Feature hasn't been set by eSet().", newValue, testEObjects[i]
+ .eGet(feature));
+ } catch (FactoryException e) {
+ fail("Unexpected FactoryException has been thrown by eSet().");
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EFactory#eSet(EObject, String, Object)} on a valid EObject with valid feature names. As we
+ * try to set the feature's value to <code>null</code>, we expect the value to be reset to its default
+ * value.
+ */
+ public void testESetValidObjectValidFeatureNullValue() {
+ for (int i = 0; i < testEObjects.length; i++) {
+ for (EStructuralFeature feature : testEObjects[i].eClass().getEAllStructuralFeatures()) {
+ if (feature.isChangeable()) {
+ try {
+ EFactory.eSet(testEObjects[i], feature.getName(), null);
+ final Object expectedValue;
+ if (feature.isMany())
+ expectedValue = Collections.EMPTY_LIST;
+ else
+ expectedValue = feature.getDefaultValue();
+ assertEquals("Feature hasn't been reset to its default by eSet.", expectedValue,
+ testEObjects[i].eGet(feature));
+ } catch (FactoryException e) {
+ fail("Unexpected FactoryException has been thrown by eSet.");
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() {
+ // These are the objects which features we'll call "eSet" on
+ testEObjects[0] = DiffFactory.eINSTANCE.createMoveModelElement();
+ testEObjects[1] = DiffFactory.eINSTANCE.createDiffGroup();
+ testEObjects[2] = MatchFactory.eINSTANCE.createMatch2Elements();
+ testEObjects[3] = EcoreFactory.eINSTANCE.createEClass();
+ testEObjects[4] = EcoreFactory.eINSTANCE.createEPackage();
+ }
+
+ /**
+ * Creates an enumeration called "visibility" with the following values.
+ * <ul>
+ * <li>private = 0</li>
+ * <li>protected = 1</li>
+ * <li>package = 2</li>
+ * <li>public = 3</li>
+ * </ul>
+ *
+ * @return The created enumeration.
+ */
+ private EEnum createEEnum() {
+ final EEnum visibility = EcoreFactory.eINSTANCE.createEEnum();
+ visibility.setName("visibility");
+ final EEnumLiteral privateLiteral = EcoreFactory.eINSTANCE.createEEnumLiteral();
+ privateLiteral.setName("private");
+ privateLiteral.setValue(0);
+ final EEnumLiteral protectedLiteral = EcoreFactory.eINSTANCE.createEEnumLiteral();
+ protectedLiteral.setName("protected");
+ protectedLiteral.setValue(1);
+ final EEnumLiteral packageLiteral = EcoreFactory.eINSTANCE.createEEnumLiteral();
+ packageLiteral.setName("package");
+ packageLiteral.setValue(2);
+ final EEnumLiteral publicLiteral = EcoreFactory.eINSTANCE.createEEnumLiteral();
+ publicLiteral.setName("public");
+ publicLiteral.setValue(3);
+ visibility.getELiterals().add(privateLiteral);
+ visibility.getELiterals().add(protectedLiteral);
+ visibility.getELiterals().add(packageLiteral);
+ visibility.getELiterals().add(publicLiteral);
+ return visibility;
+ }
+
+ /**
+ * This will return an arbitrary value to be set for the given feature.
+ *
+ * @param feature
+ * Feature which value is to be set.
+ * @return Possible new values for the feature.
+ */
+ private Object[] getArbitraryValueFor(EStructuralFeature feature) {
+ Object[] newValues = new Object[1];
+ if (feature.getEType().getInstanceClass() != null) {
+ try {
+ newValues[0] = feature.getEType().getInstanceClass().newInstance();
+ } catch (IllegalAccessException e) {
+ // couldn't create an instance of the class this feature accepts as value
+ } catch (InstantiationException e) {
+ final String desiredClass = feature.getEType().getInstanceClassName();
+ if (desiredClass.matches("double")) {
+ newValues = new Object[] {(double)feature.getLowerBound(), Double.NaN, 0d,
+ Double.POSITIVE_INFINITY, (double)feature.getUpperBound(), };
+ } else if ("org.eclipse.emf.ecore.EObject".equals(desiredClass)) {
+ newValues[0] = EcoreFactory.eINSTANCE.createEObject();
+ } else if ("org.eclipse.emf.compare.diff.metamodel.DiffElement".equals(desiredClass)) {
+ newValues[0] = DiffFactory.eINSTANCE.createDiffGroup();
+ } else if ("org.eclipse.emf.ecore.EPackage".equals(desiredClass)) {
+ newValues[0] = EcoreFactory.eINSTANCE.createEPackage();
+ }
+ // many elements aren't given a test value here. Add as needed
+ }
+ }
+
+ return newValues;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/ConstructorsTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/ConstructorsTest.java
new file mode 100644
index 000000000..70efec139
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/ConstructorsTest.java
@@ -0,0 +1,182 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.emfcomparemap;
+
+import java.util.HashSet;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.util.EMFCompareMap;
+
+/**
+ * Tests the behavior of the map's constructors.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings({"unchecked", "nls", })
+public class ConstructorsTest extends TestCase {
+ /** These represents invalid initial capacities for the map. */
+ private static final int[] INVALID_CAPACITY = {Integer.MIN_VALUE, -10, -2, -1, };
+
+ /** Invalid load factors for the map. */
+ private static final float[] INVALID_LOAD = {Float.NEGATIVE_INFINITY, -10f, -5f, -2f, -1f, -0.5f, -0.1f,
+ -Float.MIN_VALUE, 0, +0.0f, Float.NaN, };
+
+ /** Input keys for a set map. */
+ private static final Object[] KEY_SET = {null, "", "Alize", "Bise", "Boree", "Chinook", "Eurus",
+ "Hurricane", "Noroit", "Rafale", "Sirocco", "Tourbillon", "Typhon", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(false), new HashSet(), 5, 15L, 25f, 35d, '\u00ab',
+ true, };
+
+ /** Name displayed before the constructor method names. */
+ private static final String MESSAGE_CONSTRUCTOR_NAME = "Constructor Fastmap";
+
+ /** Error message displayed when an expected {@link IllegalArgumentException} isn't thrown. */
+ private static final String MESSAGE_ILLEGAL_ARGUMENT = "did not throw IllegalArgumentException exception.";
+
+ /** Error message for a non-empty map creation. */
+ private static final String MESSAGE_NON_EMPTY_MAP = "created a non empty map.";
+
+ /** These are valid initial capacities for the map. */
+ private static final int[] VALID_CAPACITY = {0, 1, 2, 5, 10, 100, };
+
+ /** These are valid load factors for the map. */
+ private static final float[] VALID_LOAD = {Float.MIN_VALUE, 0.1f, 0.5f, 0.75f, 1f, 100f, Float.MAX_VALUE, };
+
+ /** Input values for a set map. */
+ private static final Object[] VALUE_SET = {null, "", "Aquilon", "Blizzard", "Brise", "Cyclone", "Foehn",
+ "Mistral", "Notus", "Simoon", "Suroit", "Tramontane", "Zephyr", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(true), new HashSet(), 5, 15L, 25f, 35d, '\u00aa',
+ false, };
+
+ /**
+ * Checks that the default constructor creates an empty map.
+ */
+ public void testDefaultConstructor() {
+ final EMFCompareMap map = new EMFCompareMap();
+ assertTrue(MESSAGE_CONSTRUCTOR_NAME + "()" + ' ' + MESSAGE_NON_EMPTY_MAP, map.isEmpty());
+ }
+
+ /**
+ * Tests the constructor {@link EMFCompareMap#EMFCompareMap(int, float)} with illegal initial capacities
+ * and valid load factors. Expects an {@link IllegalArgumentException} to be thrown.
+ */
+ public void testIllegalCapacityValidLoadFactorConstructor() {
+ for (int invalidCapacity : INVALID_CAPACITY) {
+ for (float validLoadFactor : VALID_LOAD) {
+ try {
+ new EMFCompareMap(invalidCapacity, validLoadFactor);
+ fail(MESSAGE_CONSTRUCTOR_NAME + '(' + invalidCapacity + ',' + ' ' + validLoadFactor + ')'
+ + ' ' + MESSAGE_ILLEGAL_ARGUMENT);
+ } catch (IllegalArgumentException e) {
+ // We expected this
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests the constructor {@link EMFCompareMap#EMFCompareMap(int)} with invalid initial capacities. Expects
+ * an {@link IllegalArgumentException} to be thrown.
+ */
+ public void testIllegalInitialCapacityConstructor() {
+ for (int invalidCapacity : INVALID_CAPACITY) {
+ try {
+ new EMFCompareMap(invalidCapacity);
+ fail(MESSAGE_CONSTRUCTOR_NAME + '(' + invalidCapacity + ')' + ' ' + MESSAGE_ILLEGAL_ARGUMENT);
+ } catch (IllegalArgumentException e) {
+ // We expected this
+ }
+ }
+ }
+
+ /**
+ * Tests the constructor {@link EMFCompareMap#EMFCompareMap(Map)} with a non-<code>null</code> map.
+ * Expects the creation of a new map containing all the mappings from the given map.
+ */
+ public void testMapConstructor() {
+ final EMFCompareMap map = new EMFCompareMap();
+
+ EMFCompareMap testMap = new EMFCompareMap(map);
+ assertTrue(MESSAGE_CONSTRUCTOR_NAME + "(new EMFCompareMap())" + ' ' + MESSAGE_NON_EMPTY_MAP, testMap
+ .isEmpty());
+
+ for (int i = 0; i < KEY_SET.length; i++) {
+ map.put(KEY_SET[i], VALUE_SET[i]);
+
+ testMap = new EMFCompareMap(map);
+ assertEquals(MESSAGE_CONSTRUCTOR_NAME + "(map)" + ' ' + "created map with wrong size.", i + 1,
+ testMap.size());
+
+ for (int j = 0; j < i; j++) {
+ assertEquals("EMFCompareMap(Map)" + ' ' + "creates map with wrong mappings.", VALUE_SET[j],
+ testMap.get(KEY_SET[j]));
+ }
+ }
+ }
+
+ /**
+ * Tests the constructor {@link EMFCompareMap#EMFCompareMap(Map)} with a <code>null</code> map. Expects
+ * a {@link NullPointerException} to be thrown.
+ */
+ public void testNullMapConstructor() {
+ try {
+ new EMFCompareMap(null);
+ fail(MESSAGE_CONSTRUCTOR_NAME + "(null)" + ' ' + "did not throw NullPointerException exception.");
+ } catch (NullPointerException e) {
+ // We expected this
+ }
+ }
+
+ /**
+ * Tests the constructor {@link EMFCompareMap#EMFCompareMap(int, float)} with valid initial capacities and
+ * invalid load factors. Expects an {@link IllegalArgumentException} to be thrown.
+ */
+ public void testValidCapacityInvalidLoadFactorConstructor() {
+ for (int validCapacity : VALID_CAPACITY) {
+ for (float invalidLoadFactor : INVALID_LOAD) {
+ try {
+ new EMFCompareMap(validCapacity, invalidLoadFactor);
+ fail(MESSAGE_CONSTRUCTOR_NAME + '(' + validCapacity + ',' + ' ' + invalidLoadFactor + ')'
+ + ' ' + MESSAGE_ILLEGAL_ARGUMENT);
+ } catch (IllegalArgumentException e) {
+ // We expected this
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests the constructor {@link EMFCompareMap#EMFCompareMap(int, float)} with valid initial capacities and
+ * load factors. Expects an empty map to be created.
+ */
+ public void testValidCapacityValidLoadFactorConstructor() {
+ for (int validCapacity : VALID_CAPACITY) {
+ for (float validLoadFactor : VALID_LOAD) {
+ final EMFCompareMap map = new EMFCompareMap(validCapacity, validLoadFactor);
+ assertTrue(MESSAGE_CONSTRUCTOR_NAME + '(' + validCapacity + ',' + ' ' + validLoadFactor + ')'
+ + ' ' + MESSAGE_NON_EMPTY_MAP, map.isEmpty());
+ }
+ }
+ }
+
+ /**
+ * Tests the constructor {@link EMFCompareMap#EMFCompareMap(int)} with valid initial capacities. Expects
+ * an empty map to be created.
+ */
+ public void testValidInitialCapacityConstructor() {
+ for (int validCapacity : VALID_CAPACITY) {
+ final EMFCompareMap map = new EMFCompareMap(validCapacity);
+ assertTrue(MESSAGE_CONSTRUCTOR_NAME + '(' + validCapacity + ')' + ' ' + MESSAGE_NON_EMPTY_MAP,
+ map.isEmpty());
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/ContainsKeyValueTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/ContainsKeyValueTest.java
new file mode 100644
index 000000000..4168f8704
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/ContainsKeyValueTest.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.emfcomparemap;
+
+import java.util.HashSet;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.util.EMFCompareMap;
+
+/**
+ * Tests the behavior of {@link EMFCompareMap#containsKey(Object)} and
+ * {@link EMFCompareMap#containsValue(Object)} so that they behave the same as their {@link HashMap}
+ * counterparts.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings({"unchecked", "nls", })
+public class ContainsKeyValueTest extends TestCase {
+ /** Input keys for a set map. */
+ private static final Object[] KEY_SET = {null, "", "Alize", "Bise", "Boree", "Chinook", "Eurus",
+ "Hurricane", "Noroit", "Rafale", "Sirocco", "Tourbillon", "Typhon", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(false), new HashSet(), 5, 15L, 25f, 35d, '\u00ab',
+ true, };
+
+ /** Input values for a set map. */
+ private static final Object[] VALUE_SET = {null, "", "Aquilon", "Blizzard", "Brise", "Cyclone", "Foehn",
+ "Mistral", "Notus", "Simoon", "Suroit", "Tramontane", "Zephyr", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(true), new HashSet(), 5, 15L, 25f, 35d, '\u00aa',
+ false, };
+
+ /**
+ * Tests {@link EMFCompareMap#containsKey(Object)} on an empty map. Expects <code>False</code> to be
+ * returned.
+ */
+ public void testContainsKeyEmptyMap() {
+ final EMFCompareMap map = new EMFCompareMap();
+ for (int i = 0; i < KEY_SET.length; i++) {
+ assertFalse("Empty maps shouldn't contain mappings.", map.containsKey(KEY_SET[i]));
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#containsValue(Object)} on an empty map. Expects <code>False</code> to be
+ * returned.
+ */
+ public void testContainsValueEmptyMap() {
+ final EMFCompareMap map = new EMFCompareMap();
+ for (int i = 0; i < VALUE_SET.length; i++) {
+ assertFalse("Empty maps shouldn't contain mappings." + i, map.containsValue(VALUE_SET[i]));
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#containsKey(Object)} on a non-empty map with not contained keys. Expects
+ * <code>False</code> to be returned.
+ */
+ public void testNotFoundKey() {
+ final EMFCompareMap map = new EMFCompareMap();
+ for (int i = 0; i < KEY_SET.length; i++) {
+ map.put(KEY_SET[i], VALUE_SET[i]);
+ for (int j = i + 1; j < KEY_SET.length; j++) {
+ assertFalse("ContainsKey returns true for uncontained keys.", map.containsKey(KEY_SET[j]));
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#containsValue(Object)} on a non-empty map with not contained values. Expects
+ * <code>False</code> to be returned.
+ */
+ public void testNotFoundValue() {
+ final EMFCompareMap map = new EMFCompareMap();
+ for (int i = 0; i < KEY_SET.length; i++) {
+ map.put(KEY_SET[i], VALUE_SET[i]);
+ for (int j = i + 1; j < KEY_SET.length; j++) {
+ assertFalse("ContainsValue returns true for uncontained values.", map
+ .containsValue(VALUE_SET[j]));
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#containsKey(Object)} on a non-empty map with contained keys. Expects
+ * <code>True</code> to be returned.
+ */
+ public void testValidKey() {
+ final EMFCompareMap map = new EMFCompareMap();
+ for (int i = 0; i < KEY_SET.length; i++) {
+ map.put(KEY_SET[i], VALUE_SET[i]);
+ }
+ for (int i = 0; i < KEY_SET.length; i++) {
+ assertTrue("ContainsKey returns false for contained keys.", map.containsKey(KEY_SET[i]));
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#containsValue(Object)} on a non-empty map with contained values. Expects
+ * <code>True</code> to be returned.
+ */
+ public void testValidValue() {
+ final EMFCompareMap map = new EMFCompareMap();
+ for (int i = 0; i < VALUE_SET.length; i++) {
+ map.put(KEY_SET[i], VALUE_SET[i]);
+ }
+ for (int i = 0; i < VALUE_SET.length; i++) {
+ assertTrue("ContainsValue returns false for contained values.", map.containsValue(VALUE_SET[i]));
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/EMFCompareMapTestSuite.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/EMFCompareMapTestSuite.java
new file mode 100644
index 000000000..5c0802087
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/EMFCompareMapTestSuite.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.emfcomparemap;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+/**
+ * Launches all the JUnit tests for the {@link EMFCompareMap}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class EMFCompareMapTestSuite extends TestCase {
+ /**
+ * Launches the test with the given arguments.
+ *
+ * @param args
+ * Arguments of the testCase.
+ */
+ public static void main(String[] args) {
+ TestRunner.run(suite());
+ }
+
+ /**
+ * Creates the {@link junit.framework.TestSuite TestSuite} for all the test.
+ *
+ * @return The test suite containing all the tests
+ */
+ public static Test suite() {
+ final TestSuite suite = new TestSuite("Tests for the EMFCompareMap behavior");
+ suite.addTestSuite(ConstructorsTest.class);
+ suite.addTestSuite(ContainsKeyValueTest.class);
+ suite.addTestSuite(EntrySetTest.class);
+ suite.addTestSuite(EqualsTest.class);
+ suite.addTestSuite(GetPutTest.class);
+ suite.addTestSuite(KeySetTest.class);
+ suite.addTestSuite(MethodsTest.class);
+ suite.addTestSuite(PutAllTest.class);
+ suite.addTestSuite(RemoveTest.class);
+ suite.addTestSuite(ValuesTest.class);
+ return suite;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/EntrySetTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/EntrySetTest.java
new file mode 100644
index 000000000..ccf2e5b89
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/EntrySetTest.java
@@ -0,0 +1,354 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.emfcomparemap;
+
+import java.util.ConcurrentModificationException;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Set;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.util.EMFCompareMap;
+
+/**
+ * Tests the behavior of the {@link EMFCompareMap}'s entrySet and its iterator so that they behave the same
+ * as their {@link HashMap} counterparts.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings({"unchecked", "nls", })
+public class EntrySetTest extends TestCase {
+ /** Input keys for a set map. */
+ private static final Object[] KEY_SET = {null, "", "Alize", "Bise", "Boree", "Chinook", "Eurus",
+ "Hurricane", "Noroit", "Rafale", "Sirocco", "Tourbillon", "Typhon", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(false), new HashSet(), 5, 15L, 25f, 35d, '\u00ab',
+ true, };
+
+ /** String displayed when an expected {@link ConcurrentModificationException} isn't thrown. */
+ private static final String MESSAGE_CONCURRENT = "ConcurrentModificationException hasn't been thrown by the iterator after changing map via";
+
+ /** String displayed when an unexpected {@link UnsupportedOperationException} is thrown. */
+ private static final String MESSAGE_UNSUPPORTED = "threw an unexpected UnsupportedOperationException.";
+
+ /** Input values for a set map. */
+ private static final Object[] VALUE_SET = {null, "", "Aquilon", "Blizzard", "Brise", "Cyclone", "Foehn",
+ "Mistral", "Notus", "Simoon", "Suroit", "Tramontane", "Zephyr", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(true), new HashSet(), 5, 15L, 25f, 35d, '\u00aa',
+ false, };
+
+ /** Map that will be used for all these tests. */
+ private final EMFCompareMap testedMap = new EMFCompareMap();
+
+ /** Name of the currently tested method for the error messages. */
+ private String testedMethod;
+
+ /**
+ * Tests the {@link EMFCompareMap}'s entry set. The set is expected to support the clear() operation and
+ * it effectively empties the map.
+ */
+ public void testClear() {
+ testedMethod = "Clear()";
+ final Set<Map.Entry> entrySet = testedMap.entrySet();
+ try {
+ entrySet.clear();
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertEquals("Clear() operation didn't effectively empty the map.", 0, testedMap.size());
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s entry set. The set's iterator is expected to throw a
+ * {@link ConcurrentModificationException} if its original map is structurally modified via the clear()
+ * method.
+ */
+ public void testConcurrentClear() {
+ testedMethod = "Clear()";
+ final Iterator<Map.Entry> entryIterator = testedMap.entrySet().iterator();
+ testedMap.clear();
+
+ try {
+ entryIterator.next();
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ } catch (ConcurrentModificationException e) {
+ // We expected this
+ } catch (NoSuchElementException e) {
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s entry set. The set's iterator is expected to throw a
+ * {@link ConcurrentModificationException} if its original map is structurally modified via the
+ * put(Object) method.
+ */
+ public void testConcurrentPut() {
+ testedMethod = "Put(Object)";
+ final Iterator<Map.Entry> entryIterator = testedMap.entrySet().iterator();
+ // This entry cannot exist (random value as a key, random key as a value)
+ testedMap.put(VALUE_SET[5], KEY_SET[10]);
+
+ try {
+ entryIterator.next();
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ } catch (ConcurrentModificationException e) {
+ // We expected this
+ } catch (NoSuchElementException e) {
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s entry set. The set's iterator is expected to throw a
+ * {@link ConcurrentModificationException} if its original map is structurally modified via the
+ * putAll(Collection) method.
+ */
+ public void testConcurrentPutAll() {
+ testedMethod = "PutAll(Collection)";
+ final EMFCompareMap anotherMap = new EMFCompareMap();
+ final Iterator<Map.Entry> entryIterator = anotherMap.entrySet().iterator();
+ anotherMap.putAll(testedMap);
+
+ try {
+ entryIterator.next();
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ } catch (ConcurrentModificationException e) {
+ // We expected this
+ } catch (NoSuchElementException e) {
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s entry set. The set's iterator is expected to throw a
+ * {@link ConcurrentModificationException} if its original map is structurally modified via the
+ * remove(Object) method.
+ */
+ public void testConcurrentRemove() {
+ testedMethod = "Remove(Object)";
+ final Iterator<Map.Entry> entryIterator = testedMap.entrySet().iterator();
+ // Removes a random entry from the set
+ testedMap.remove(KEY_SET[10]);
+
+ try {
+ entryIterator.next();
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ } catch (ConcurrentModificationException e) {
+ // We expected this
+ } catch (NoSuchElementException e) {
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s entry set. The set is expected not to support the add() operation.
+ */
+ public void testNoAddThroughSet() {
+ final Set<Map.Entry> entrySet = testedMap.entrySet();
+ try {
+ entrySet.add((Map.Entry)testedMap.entrySet().iterator().next());
+ fail("UnsupportedOperationException should have been thrown.");
+ } catch (UnsupportedOperationException e) {
+ // We expected this
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s entry set. The set is expected to support the removeAll(Collection)
+ * operation and it effectively removes all the map's element contained within the given collection.
+ */
+ public void testRemoveAll() {
+ testedMethod = "RemoveAll(Collection)";
+ Set<Map.Entry> entrySet = testedMap.entrySet();
+ Set<Map.Entry> removedElements = new HashSet(entrySet);
+ try {
+ entrySet.removeAll(removedElements);
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertEquals("Map should have been emptied by its entrySet removeAll().", 0, testedMap.size());
+
+ for (int i = 0; i < KEY_SET.length; i++) {
+ // Adds more and more values to the map for each loop
+ for (int j = 0; j < i; j++) {
+ testedMap.put(KEY_SET[j], VALUE_SET[j]);
+ }
+
+ entrySet = testedMap.entrySet();
+ // Create an array of the entries to avoid concurrent modification exception
+ final Object[] array = entrySet.toArray();
+ int currentMapSize = testedMap.size();
+ removedElements = new HashSet();
+ for (int j = 0; j < array.length; j++) {
+ removedElements.add((Map.Entry)array[j]);
+ try {
+ entrySet.removeAll(removedElements);
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertFalse(
+ "Operation removeAll(Collection) of the entry set did not remove necessary elements from the map.",
+ testedMap.containsKey(((Map.Entry)array[j]).getKey()));
+ assertEquals("Unexpected size of the map after removeAll() execution.", testedMap.size(),
+ --currentMapSize);
+ }
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s entry set's iterator. The iterator is expected to support the
+ * remove(Object) operation and this method is expected to effectively remove the given object from the
+ * map. Size of the map afterward should have decreased by 1.
+ */
+ public void testRemoveViaIterator() {
+ testedMethod = "Iterator's remove(Object)";
+
+ int currentMapSize = testedMap.size();
+ for (final Iterator entryIterator = testedMap.entrySet().iterator(); entryIterator.hasNext(); ) {
+ final Map.Entry currentEntry = (Map.Entry)(entryIterator.next());
+ try {
+ entryIterator.remove();
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertFalse(
+ "Operation remove() of the entry set's iterator did not remove the element from the map.",
+ testedMap.containsKey(currentEntry.getKey()));
+ assertEquals("Map size didn't decrease by one after removal of one element.", --currentMapSize,
+ testedMap.size());
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s entry set. The set is expected to support the remove(Object)
+ * operation and this method is expected to effectively remove the given object from the map. Size of the
+ * map afterward should have decreased by 1.
+ */
+ public void testRemoveViaSet() {
+ testedMethod = "Set's remove(Object)";
+ final Set<Map.Entry> entrySet = testedMap.entrySet();
+ // Create an array of the entries to avoid concurrent modification exception
+ final Object[] array = entrySet.toArray();
+ int currentMapSize = testedMap.size();
+ for (Object entry : array) {
+ try {
+ entrySet.remove(entry);
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertFalse("Operation remove() of the entry set did not remove the element from the map.",
+ testedMap.containsKey(((Map.Entry)entry).getKey()));
+ assertEquals("Map size didn't decrease by one after removal of one element.", testedMap.size(),
+ --currentMapSize);
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s entry set. The set is expected to support the retainAll(Collection)
+ * operation and it effectively removes all the map's element not contained within the given collection.
+ */
+ public void testRetainAll() {
+ testedMethod = "RetainAll(Collection)";
+ Set<Map.Entry> entrySet = testedMap.entrySet();
+ final Set<Map.Entry> retainedElements = new HashSet();
+ try {
+ entrySet.retainAll(retainedElements);
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertEquals("Map should have been emptied by its entrySet retainAll().", 0, testedMap.size());
+
+ for (int i = 0; i < KEY_SET.length; i++) {
+ // Adds more and more values to the map for each loop
+ for (int j = 0; j < i; j++) {
+ testedMap.put(KEY_SET[j], VALUE_SET[j]);
+ }
+
+ entrySet = testedMap.entrySet();
+ // Create an array of the entries to avoid concurrent modification exception
+ final Object[] array = entrySet.toArray();
+ int currentMapSize = testedMap.size();
+ for (int j = 0; j < array.length; j++) {
+ for (int k = 0; k < array.length - j; k++) {
+ retainedElements.add((Map.Entry)array[k]);
+ }
+ try {
+ entrySet.retainAll(retainedElements);
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+
+ for (int k = 0; k < array.length - j; k++) {
+ assertTrue(
+ "Operation retainAll(Collection) did not retain necessary elements within the map.",
+ testedMap.containsKey(((Map.Entry)array[k]).getKey()));
+ }
+
+ assertEquals("Unexpected size of the map after retainAll() execution.", currentMapSize--,
+ array.length - j);
+ }
+ }
+ }
+
+ /**
+ * Tests the creation of the {@link EMFCompareMap}'s entry set.
+ * <p>
+ * <ul>
+ * Assertions :
+ * <li>Created set isn't <code>null</code></li>
+ * <li>Created set's size is the same as its original map's.</li>
+ * <li>All the objects contained by the set are instances of {@link Map.Entry}.</li>
+ * <li>The set's entries correspond to the original map's mappings.</li>
+ * </ul>
+ * </p>
+ */
+ public void testSetCreation() {
+ final Set entrySet = testedMap.entrySet();
+
+ assertNotNull("Entry set hasn't been created.", entrySet);
+ assertEquals("Created entry set hasn't got the same size as its original map.", testedMap.size(),
+ entrySet.size());
+
+ for (final Iterator entryIterator = entrySet.iterator(); entryIterator.hasNext(); ) {
+ final Object currentEntry = entryIterator.next();
+
+ assertTrue("Iterator contains objects that aren't instances of Map.Entry.",
+ currentEntry instanceof Map.Entry);
+ assertEquals("The entry set's iterator contains mappings different than its original map's.",
+ ((Map.Entry)currentEntry).getValue(), testedMap.get(((Map.Entry)currentEntry).getKey()));
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() {
+ for (int i = 0; i < KEY_SET.length; i++) {
+ testedMap.put(KEY_SET[i], VALUE_SET[i]);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#tearDown()
+ */
+ @Override
+ protected void tearDown() {
+ testedMap.clear();
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/EqualsTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/EqualsTest.java
new file mode 100644
index 000000000..8d32ca060
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/EqualsTest.java
@@ -0,0 +1,171 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.emfcomparemap;
+
+import java.util.HashSet;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.util.EMFCompareMap;
+
+/**
+ * Tests the behavior of {@link EMFCompareMap#equals(Object)}. Two maps are equal if and only if they have
+ * the same size and contain the same mappings. A map cannot be considered equal to anything that isn't an
+ * instance of Map itself.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings({"unchecked", "nls", })
+public class EqualsTest extends TestCase {
+ /** Input keys for a set map. */
+ private static final Object[] KEY_SET = {null, "", "Alize", "Bise", "Boree", "Chinook", "Eurus",
+ "Hurricane", "Noroit", "Rafale", "Sirocco", "Tourbillon", "Typhon", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(false), new HashSet(), 5, 15L, 25f, 35d, '\u00ab',
+ true, };
+
+ /** Input values for a set map. */
+ private static final Object[] VALUE_SET = {null, "", "Aquilon", "Blizzard", "Brise", "Cyclone", "Foehn",
+ "Mistral", "Notus", "Simoon", "Suroit", "Tramontane", "Zephyr", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(true), new HashSet(), 5, 15L, 25f, 35d, '\u00aa',
+ false, };
+
+ /**
+ * Tests {@link EMFCompareMap#equals(Object)}.
+ * <p>
+ * Expected results : <table>
+ * <tr>
+ * <td>map</td>
+ * <td>object to be compared with</td>
+ * <td>result</td>
+ * </tr>
+ * <tr>
+ * <td>valid empty map</td>
+ * <td><code>null</code></td>
+ * <td><code>False</code></td>
+ * </tr>
+ * <tr>
+ * <td>valid empty map</td>
+ * <td>any object that isn't instance of Map</td>
+ * <td><code>False</code></td>
+ * </tr>
+ * <tr>
+ * <td>valid empty map</td>
+ * <td>valid non-empty map</td>
+ * <td><code>False</code></td>
+ * </tr>
+ * <tr>
+ * <td>valid empty map</td>
+ * <td>valid empty map</td>
+ * <td><code>True</code></td>
+ * </tr>
+ * <tr>
+ * <td>valid empty map</td>
+ * <td>same instance of map</td>
+ * <td><code>True</code></td>
+ * </tr>
+ * </table>
+ * </p>
+ */
+ public void testEqualsEmptyMap() {
+ final EMFCompareMap map = new EMFCompareMap();
+ final EMFCompareMap testMap = new EMFCompareMap();
+ for (int i = 0; i < KEY_SET.length; i++)
+ testMap.put(KEY_SET[i], VALUE_SET[i]);
+
+ final Object[] invalidTestObjects = {null, "", "Suroit", new Long(10), new HashSet(), 25f, '\u00aa',
+ testMap, };
+ final Object[] validTestObjects = {new EMFCompareMap(), map, };
+
+ for (int i = 0; i < invalidTestObjects.length; i++)
+ assertFalse("Unexpected result of equals() with non-equal objects.", map
+ .equals(invalidTestObjects[i]));
+ for (int i = 0; i < validTestObjects.length; i++)
+ assertTrue("Unexpected result of equals() with equal objects.", map.equals(validTestObjects[i]));
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#equals(Object)}.
+ * <p>
+ * Expected results : <table>
+ * <tr>
+ * <td>map</td>
+ * <td>object to be compared with</td>
+ * <td>result</td>
+ * </tr>
+ * <tr>
+ * <td>valid non-empty map</td>
+ * <td><code>null</code></td>
+ * <td><code>False</code></td>
+ * </tr>
+ * <tr>
+ * <td>valid non-empty map</td>
+ * <td>any object that isn't instance of Map</td>
+ * <td><code>False</code></td>
+ * </tr>
+ * <tr>
+ * <td>valid non-empty map</td>
+ * <td>valid empty map</td>
+ * <td><code>False</code></td>
+ * </tr>
+ * <tr>
+ * <td>valid non-empty map</td>
+ * <td>valid non-empty map with different size</td>
+ * <td><code>False</code></td>
+ * </tr>
+ * <tr>
+ * <td>valid non-empty map</td>
+ * <td>valid non-empty map with same size and different mappings</td>
+ * <td><code>False</code></td>
+ * </tr>
+ * <tr>
+ * <td>valid non-empty map</td>
+ * <td>valid non-empty map with same mappings</td>
+ * <td><code>True</code></td>
+ * </tr>
+ * <tr>
+ * <td>valid non-empty map</td>
+ * <td>same instance of map</td>
+ * <td><code>True</code></td>
+ * </tr>
+ * </table>
+ * </p>
+ * <p>
+ * Also ensures that equal maps have same hashCode.
+ * </p>
+ */
+ public void testEqualsNonEmptyMap() {
+ final EMFCompareMap map = new EMFCompareMap();
+ final EMFCompareMap differentSize = new EMFCompareMap();
+ final EMFCompareMap sameSizeDifferentMappings = new EMFCompareMap();
+ final EMFCompareMap sameMappings = new EMFCompareMap();
+ for (int i = 0; i < KEY_SET.length; i++)
+ map.put(KEY_SET[i], VALUE_SET[i]);
+ for (int i = 0; i < KEY_SET.length >> 1; i++)
+ differentSize.put(KEY_SET[i], VALUE_SET[i]);
+ for (int i = 0; i < KEY_SET.length; i++)
+ sameSizeDifferentMappings.put(KEY_SET[i], VALUE_SET[VALUE_SET.length - 1 - i]);
+ for (int i = 0; i < KEY_SET.length; i++)
+ sameMappings.put(KEY_SET[i], VALUE_SET[i]);
+
+ final Object[] invalidTestObjects = {null, "", "Foehn", new Long(10), new HashSet(), 25f, '\u00aa',
+ differentSize, sameSizeDifferentMappings, };
+ final Object[] validTestObjects = {sameMappings, map, };
+
+ for (int i = 0; i < invalidTestObjects.length; i++)
+ assertFalse("Unexpected result of equals() with non-equal objects.", map
+ .equals(invalidTestObjects[i]));
+ for (int i = 0; i < validTestObjects.length; i++) {
+ assertTrue("Unexpected result of equals() with equal objects.", map.equals(validTestObjects[i]));
+ assertEquals("Equal maps should return the same hashCode.", map.hashCode(), validTestObjects[i]
+ .hashCode());
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/GetPutTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/GetPutTest.java
new file mode 100644
index 000000000..3a7bab98c
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/GetPutTest.java
@@ -0,0 +1,125 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.emfcomparemap;
+
+import java.util.HashSet;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.util.EMFCompareMap;
+
+/**
+ * Tests the behavior of {@link EMFCompareMap#get(Object)} and {@link EMFCompareMap#put(Object, Object)} so
+ * that they behave the same as their {@link HashMap} counterparts.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings({"unchecked", "nls", })
+public class GetPutTest extends TestCase {
+ /** Input keys for a set map. */
+ private static final Object[] KEY_SET = {null, "", "Alize", "Bise", "Boree", "Chinook", "Eurus",
+ "Hurricane", "Noroit", "Rafale", "Sirocco", "Tourbillon", "Typhon", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(false), new HashSet(), 5, 15L, 25f, 35d, '\u00ab',
+ true, };
+
+ /** Input values for a set map. */
+ private static final Object[] VALUE_SET = {null, "", "Aquilon", "Blizzard", "Brise", "Cyclone", "Foehn",
+ "Mistral", "Notus", "Simoon", "Suroit", "Tramontane", "Zephyr", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(true), new HashSet(), 5, 15L, 25f, 35d, '\u00aa',
+ false, };
+
+ /**
+ * Tests {@link EMFCompareMap#put(Object, Object)} on a non-empty map. Expects
+ * {@link EMFCompareMap#get(Object)} to reflect the accurate mapping added and
+ * {@link EMFCompareMap#put(Object, Object)} to return the previous value mapped to the given key or
+ * <code>null</code> if none.
+ */
+ public void testAlreadyStoredPut() {
+ EMFCompareMap map = null;
+ Object expected = null;
+
+ for (int i = 0; i < KEY_SET.length; i++) {
+ map = new EMFCompareMap();
+ for (int j = 0; j <= i; j++) {
+ map.put(KEY_SET[j], VALUE_SET[j]);
+ }
+
+ for (int j = 0; j < VALUE_SET.length; j++) {
+ if (j > i) {
+ expected = null;
+ } else {
+ expected = VALUE_SET[j];
+ }
+
+ assertEquals("Method put(Object,Object) returns an unexpected value.", expected, map.put(
+ KEY_SET[j], VALUE_SET[j]));
+ assertEquals(
+ "Method put(Object,Object) did not associate the specified value with the specified key.",
+ VALUE_SET[j], map.get(KEY_SET[j]));
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#get(Object)} on an empty map. Expects <code>null</code> to be returned.
+ */
+ public void testEmptyMapGet() {
+ final EMFCompareMap map = new EMFCompareMap();
+ for (int i = 0; i < KEY_SET.length; i++) {
+ assertNull("Method get(Object) returns a value for an empty map.", map.get(KEY_SET[i]));
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#put(Object, Object)} on an empty map. Expects
+ * {@link EMFCompareMap#get(Object)} to reflect the accurate mapping added and
+ * {@link EMFCompareMap#put(Object, Object)} to return <code>null</code>.
+ */
+ public void testEmptyMapPut() {
+ final EMFCompareMap map = new EMFCompareMap();
+ for (int i = 0; i < KEY_SET.length; i++) {
+ assertNull("Put(Object,Object) returns with non null value when no previous mapping existed.",
+ map.put(KEY_SET[i], VALUE_SET[i]));
+ assertEquals(
+ "Method put(Object,Object) did not associate the specified value with the specified key.",
+ VALUE_SET[i], map.get(KEY_SET[i]));
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#get(Object)} on a non-empty map with not contained keys. Expects
+ * <code>null</code> to be returned.
+ */
+ public void testNotFoundGet() {
+ final EMFCompareMap map = new EMFCompareMap();
+ for (int i = 0; i < KEY_SET.length; i++) {
+ map.put(KEY_SET[i], VALUE_SET[i]);
+ for (int j = i + 1; j < KEY_SET.length; j++) {
+ assertNull("Method get(Object) returns a value for an uncontained key.", map.get(KEY_SET[j]));
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#get(Object)} on a non-empty map with valid keys. Expects the accurate value
+ * to be returned.
+ */
+ public void testValidGet() {
+ final EMFCompareMap map = new EMFCompareMap();
+ for (int i = 0; i < KEY_SET.length; i++) {
+ map.put(KEY_SET[i], VALUE_SET[i]);
+ for (int j = 0; j <= i; j++) {
+ assertEquals("Method get(Object) returns inaccurate value for key " + KEY_SET[j],
+ VALUE_SET[j], map.get(KEY_SET[j]));
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/KeySetTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/KeySetTest.java
new file mode 100644
index 000000000..e4d0ee568
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/KeySetTest.java
@@ -0,0 +1,350 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.emfcomparemap;
+
+import java.util.ConcurrentModificationException;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+import java.util.Set;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.util.EMFCompareMap;
+
+/**
+ * Tests the behavior of the {@link EMFCompareMap}'s key set and its iterator so that they behave the same as
+ * their {@link HashMap} counterparts.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings({"unchecked", "nls", })
+public class KeySetTest extends TestCase {
+ /** Input keys for a set map. */
+ private static final Object[] KEY_SET = {null, "", "Alize", "Bise", "Boree", "Chinook", "Eurus",
+ "Hurricane", "Noroit", "Rafale", "Sirocco", "Tourbillon", "Typhon", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(false), new HashSet(), 5, 15L, 25f, 35d, '\u00ab',
+ true, };
+
+ /** String displayed when an expected {@link ConcurrentModificationException} isn't thrown. */
+ private static final String MESSAGE_CONCURRENT = "ConcurrentModificationException hasn't been thrown by the iterator after changing map via";
+
+ /** String displayed when an unexpected {@link UnsupportedOperationException} is thrown. */
+ private static final String MESSAGE_UNSUPPORTED = "threw an unexpected UnsupportedOperationException.";
+
+ /** Input values for a set map. */
+ private static final Object[] VALUE_SET = {null, "", "Aquilon", "Blizzard", "Brise", "Cyclone", "Foehn",
+ "Mistral", "Notus", "Simoon", "Suroit", "Tramontane", "Zephyr", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(true), new HashSet(), 5, 15L, 25f, 35d, '\u00aa',
+ false, };
+
+ /** Map that will be used for all these tests. */
+ private final EMFCompareMap testedMap = new EMFCompareMap();
+
+ /** Name of the currently tested method for the error messages. */
+ private String testedMethod;
+
+ /**
+ * Tests the {@link EMFCompareMap}'s key set. The set is expected to support the clear() operation and it
+ * effectively empties the map.
+ */
+ public void testClear() {
+ testedMethod = "Clear()";
+ final Set keySet = testedMap.keySet();
+ try {
+ keySet.clear();
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertEquals("Clear() operation didn't effectively empty the map.", 0, testedMap.size());
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s key set. The set's iterator is expected to throw a
+ * {@link ConcurrentModificationException} if its original map is structurally modified via the clear()
+ * method.
+ */
+ public void testConcurrentClear() {
+ testedMethod = "Clear()";
+ final Iterator keyIterator = testedMap.keySet().iterator();
+ testedMap.clear();
+
+ try {
+ keyIterator.next();
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ } catch (ConcurrentModificationException e) {
+ // We expected this
+ } catch (NoSuchElementException e) {
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s key set. The set's iterator is expected to throw a
+ * {@link ConcurrentModificationException} if its original map is structurally modified via the
+ * put(Object) method.
+ */
+ public void testConcurrentPut() {
+ testedMethod = "Put(Object)";
+ final Iterator keyIterator = testedMap.keySet().iterator();
+ // This entry cannot exist (random value as a key, random key as a value)
+ testedMap.put(VALUE_SET[5], KEY_SET[10]);
+
+ try {
+ keyIterator.next();
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ } catch (ConcurrentModificationException e) {
+ // We expected this
+ } catch (NoSuchElementException e) {
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s key set. The set's iterator is expected to throw a
+ * {@link ConcurrentModificationException} if its original map is structurally modified via the
+ * putAll(Collection) method.
+ */
+ public void testConcurrentPutAll() {
+ testedMethod = "PutAll(Collection)";
+ final EMFCompareMap anotherMap = new EMFCompareMap();
+ final Iterator keyIterator = anotherMap.keySet().iterator();
+ anotherMap.putAll(testedMap);
+
+ try {
+ keyIterator.next();
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ } catch (ConcurrentModificationException e) {
+ // We expected this
+ } catch (NoSuchElementException e) {
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s key set. The set's iterator is expected to throw a
+ * {@link ConcurrentModificationException} if its original map is structurally modified via the
+ * remove(Object) method.
+ */
+ public void testConcurrentRemove() {
+ testedMethod = "Remove(Object)";
+ final Iterator keyIterator = testedMap.keySet().iterator();
+ // Removes a random entry from the set
+ testedMap.remove(KEY_SET[10]);
+
+ try {
+ keyIterator.next();
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ } catch (ConcurrentModificationException e) {
+ // We expected this
+ } catch (NoSuchElementException e) {
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s key set. The set is expected not to support the add() operation.
+ */
+ public void testNoAddThroughSet() {
+ final Set keySet = testedMap.keySet();
+ try {
+ keySet.add(VALUE_SET[10]);
+ fail("UnsupportedOperationException should have been thrown.");
+ } catch (UnsupportedOperationException e) {
+ // We expected this
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s key set. The set is expected to support the removeAll(Collection)
+ * operation and it effectively removes all the map's element contained within the given collection.
+ */
+ public void testRemoveAll() {
+ testedMethod = "RemoveAll(Collection)";
+ Set keySet = testedMap.keySet();
+ Set removedElements = new HashSet(keySet);
+ try {
+ keySet.removeAll(removedElements);
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertEquals("Map should have been emptied by its keySet removeAll().", 0, testedMap.size());
+
+ for (int i = 0; i < KEY_SET.length; i++) {
+ // Adds more and more values to the map for each loop
+ for (int j = 0; j < i; j++) {
+ testedMap.put(KEY_SET[j], VALUE_SET[j]);
+ }
+
+ keySet = testedMap.entrySet();
+ // Create an array of the entries to avoid concurrent modification exception
+ final Object[] array = keySet.toArray();
+ int currentMapSize = testedMap.size();
+ removedElements = new HashSet();
+ for (int j = 0; j < array.length; j++) {
+ removedElements.add(array[j]);
+ try {
+ keySet.removeAll(removedElements);
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertFalse(
+ "Operation removeAll(Collection) of the key set did not remove necessary elements from the map.",
+ testedMap.containsKey(array[j]));
+ assertEquals("Unexpected size of the map after removeAll() execution.", --currentMapSize,
+ testedMap.size());
+ }
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s key set's iterator. The iterator is expected to support the
+ * remove(Object) operation and this method is expected to effectively remove the given object from the
+ * map. Size of the map afterward should have decreased by 1.
+ */
+ public void testRemoveViaIterator() {
+ testedMethod = "Iterator's remove(Object)";
+
+ int currentMapSize = testedMap.size();
+ for (final Iterator keyIterator = testedMap.keySet().iterator(); keyIterator.hasNext(); ) {
+ final Object currentKey = keyIterator.next();
+ try {
+ keyIterator.remove();
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertFalse(
+ "Operation remove() of the key set's iterator did not remove the element from the map.",
+ testedMap.containsKey(currentKey));
+ assertEquals("Unexpected size of the map after removal of an element.", --currentMapSize,
+ testedMap.size());
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s key set. The set is expected to support the remove(Object) operation
+ * and this method is expected to effectively remove the given object from the map. Size of the map
+ * afterward should have decreased by 1.
+ */
+ public void testRemoveViaSet() {
+ testedMethod = "Set's remove(Object)";
+
+ final Set keySet = testedMap.keySet();
+ // Create an array of the entries to avoid concurrent modification exception
+ final Object[] array = keySet.toArray();
+ int currentMapSize = testedMap.size();
+ for (Object key : array) {
+ try {
+ keySet.remove(key);
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertFalse("Operation remove() of the key set did not remove the element from the map.",
+ testedMap.containsKey(key));
+ assertEquals("Map size didn't decrease by one after removal of one element.", --currentMapSize,
+ testedMap.size());
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s key set. The set is expected to support the retainAll(Collection)
+ * operation and it effectively removes all the map's element not contained within the given collection.
+ */
+ public void testRetainAll() {
+ testedMethod = "RetainAll(Collection)";
+ Set keySet = testedMap.keySet();
+ final Set retainedElements = new HashSet();
+ try {
+ keySet.retainAll(retainedElements);
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertEquals("Map should have been emptied by its keySet retainAll().", 0, testedMap.size());
+
+ for (int i = 0; i < KEY_SET.length; i++) {
+ // Adds more and more values to the map for each loop
+ for (int j = 0; j < i; j++) {
+ testedMap.put(KEY_SET[j], VALUE_SET[j]);
+ }
+
+ keySet = testedMap.keySet();
+ // Create an array of the entries to avoid concurrent modification exception
+ final Object[] array = keySet.toArray();
+ int currentMapSize = testedMap.size();
+ for (int j = 0; j < array.length; j++) {
+ for (int k = 0; k < array.length - j; k++) {
+ retainedElements.add(array[k]);
+ }
+ try {
+ keySet.retainAll(retainedElements);
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+
+ for (int k = 0; k < array.length - j; k++) {
+ assertTrue(
+ "Operation retainAll(Collection) did not retain necessary elements within the map.",
+ testedMap.containsKey(array[k]));
+ }
+
+ assertEquals("Unexpected size of the map after retainAll() execution.", currentMapSize--,
+ array.length - j);
+ }
+ }
+ }
+
+ /**
+ * Tests the creation of the {@link EMFCompareMap}'s key set.
+ * <p>
+ * <ul>
+ * Assertions :
+ * <li>Created set isn't <code>null</code></li>
+ * <li>Created set's size is the same as its original map's.</li>
+ * <li>The set's entries correspond to the original map's keys.</li>
+ * </ul>
+ * </p>
+ */
+ public void testSetCreation() {
+ final Set keySet = testedMap.keySet();
+
+ assertNotNull("Key set hasn't been created.", keySet);
+ assertEquals("Created set hasn't got the same size as its original map.", testedMap.size(), keySet
+ .size());
+
+ for (final Iterator keyIterator = keySet.iterator(); keyIterator.hasNext(); ) {
+ final Object currentKey = keyIterator.next();
+ assertTrue("The set's iterator contains mappings different than its original map's keys.",
+ testedMap.containsKey(currentKey));
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() {
+ for (int i = 0; i < KEY_SET.length; i++) {
+ testedMap.put(KEY_SET[i], VALUE_SET[i]);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#tearDown()
+ */
+ @Override
+ protected void tearDown() {
+ testedMap.clear();
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/MethodsTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/MethodsTest.java
new file mode 100644
index 000000000..cb09fa06a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/MethodsTest.java
@@ -0,0 +1,198 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.emfcomparemap;
+
+import java.util.HashSet;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.util.EMFCompareMap;
+
+/**
+ * Tests the behavior of {@link EMFCompareMap#clear()}, {@link EMFCompareMap#clone()},
+ * {@link EMFCompareMap#size()} and {@link EMFCompareMap#isEmpty()} so that they behave the same as their
+ * {@link HashMap} counterparts.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings({"unchecked", "nls", })
+public class MethodsTest extends TestCase {
+ /** Input keys for a set map. */
+ private static final Object[] KEY_SET = {null, "", "Alize", "Bise", "Boree", "Chinook", "Eurus",
+ "Hurricane", "Noroit", "Rafale", "Sirocco", "Tourbillon", "Typhon", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(false), new HashSet(), 5, 15L, 25f, 35d, '\u00ab',
+ true, };
+
+ /** String displayed when an unexpected {@link UnsupportedOperationException} is thrown. */
+ private static final String MESSAGE_UNSUPPORTED = "threw an unexpected UnsupportedOperationException.";
+
+ /** Input values for a set map. */
+ private static final Object[] VALUE_SET = {null, "", "Aquilon", "Blizzard", "Brise", "Cyclone", "Foehn",
+ "Mistral", "Notus", "Simoon", "Suroit", "Tramontane", "Zephyr", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(true), new HashSet(), 5, 15L, 25f, 35d, '\u00aa',
+ false, };
+
+ /** Map that will be used for all these tests. */
+ private final EMFCompareMap testedMap = new EMFCompareMap();
+
+ /**
+ * Tests {@link EMFCompareMap#clear()} with sizes growing from 0 to 12 elements. Expects the size to be
+ * reverted back to 0 after each execution of clear().
+ */
+ public void testClear() {
+ try {
+ testedMap.clear();
+ } catch (UnsupportedOperationException e) {
+ fail("Clear()" + ' ' + MESSAGE_UNSUPPORTED);
+ }
+
+ assertEquals("Map hasn't been emptied by clear() operation or size() returns inaccurate result.", 0,
+ testedMap.size());
+ for (int j = 0; j < KEY_SET.length; j++) {
+ assertFalse("Values contained by the map weren't nulled out by clear().", testedMap
+ .containsKey(KEY_SET[j]));
+ assertNull("Values contained by the map weren't nulled out by clear().", testedMap
+ .get(KEY_SET[j]));
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#clone()} and {@link EMFCompareMap#size()}.
+ * <p>
+ * <ul>
+ * Assertions :
+ * <li>Clone() returns non-null map.</li>
+ * <li>Clone() returns an instance of {@link EMFCompareMap}.</li>
+ * <li>Original and cloned map both have the same size.</li>
+ * <li>Original and cloned map contain the same mappings.</li>
+ * </ul>
+ * </p>
+ */
+ public void testCloneSize() {
+ EMFCompareMap clonedMap = null;
+ try {
+ clonedMap = (EMFCompareMap)(testedMap.clone());
+ } catch (ClassCastException e) {
+ fail("Result of clone() was not an instance of EMFCompareMap.");
+ }
+
+ assertNotNull("Result of clone() was null.", clonedMap);
+ // Keeps compiler happy
+ assert clonedMap != null;
+ assertEquals("Result of clone() hasn't the same size as its original.", testedMap.size(), clonedMap
+ .size());
+
+ for (int i = 0; i < KEY_SET.length; i++) {
+ assertTrue("Cloned map doesn't contain all the keys of its original.", clonedMap
+ .containsKey(KEY_SET[i]));
+ assertEquals("Result of clone() hasn't the same mappings as its original.", VALUE_SET[i],
+ clonedMap.get(KEY_SET[i]));
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#hashCode()} to ensure it always produces the same hash code for two maps
+ * that have the same size and contain the same mappings.
+ */
+ public void testHashCode() {
+ final EMFCompareMap map1 = new EMFCompareMap();
+ final EMFCompareMap map2 = new EMFCompareMap();
+ assertEquals("Two empty maps should have the same hash code.", map1.hashCode(), map2.hashCode());
+
+ // progressively add mappings to both maps
+ for (int i = 0; i < KEY_SET.length; i++) {
+ map1.put(KEY_SET[i], VALUE_SET[i]);
+ // hashCode() doesn't necessarily produce distinct result for non-equal maps,
+ // yet we try to reduce the probability of this happening.
+ assertNotSame("Two distinct maps' hashCode() shouldn't produce the same result.",
+ map1.hashCode(), map2.hashCode());
+
+ map2.put(KEY_SET[i], VALUE_SET[i]);
+ assertTrue("Unexpected behavior of put().", map1.equals(map2));
+ assertEquals("Two identical maps' hashCode() didn't produce the same result.", map1.hashCode(),
+ map2.hashCode());
+ }
+
+ // progressively removes mappings from both maps
+ for (int i = 0; i < KEY_SET.length; i++) {
+ map1.put(KEY_SET[i], VALUE_SET[i]);
+ map2.put(KEY_SET[i], VALUE_SET[i]);
+ assertEquals("Two identical maps' hashCode() didn't produce the same result.", map1.hashCode(),
+ map2.hashCode());
+ }
+
+ // progressively populate two maps with same keys, different values
+ for (int i = 0; i < KEY_SET.length; i++) {
+ map1.put(KEY_SET[i], VALUE_SET[i]);
+ map2.put(KEY_SET[i], VALUE_SET[VALUE_SET.length - 1 - i]);
+ // hashCode() doesn't necessarily produce distinct result for non-equal maps,
+ // yet we try to reduce the probability of this happening.
+ assertNotSame("Two different maps' hashCode() produced the same result.", map1.hashCode(), map2
+ .hashCode());
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#isEmpty()}.
+ * <p>
+ * <ul>
+ * Assertions :
+ * <li>Empty map =&gt; isEmpty() returns <code>True</code>.</li>
+ * <li>After put() operation =&gt; isEmpty() returns <code>False</code>.</li>
+ * <li>Cleared map =&gt; isEmpty() returns <code>True</code>.</li>
+ * </ul>
+ * </p>
+ */
+ public void testIsEmpty() {
+ assertTrue("Method isEmpty() returns false on new map.", new EMFCompareMap().isEmpty());
+ assertFalse("Method isEmpty() returns true on non-empty map.", testedMap.isEmpty());
+ testedMap.clear();
+ assertTrue("Unexpected result of isEmpty() on cleared map.", testedMap.isEmpty());
+ }
+
+ /**
+ * We cannot really test the output of the toString() method, the main purpose of this test is to ensure
+ * it throws no exception. Result of toString() is expected to be neither <code>null</code> nor empty.
+ */
+ public void testToString() {
+ for (int i = 0; i < KEY_SET.length; i++) {
+ final EMFCompareMap map = new EMFCompareMap();
+ for (int j = 0; j < i; j++) {
+ map.put(KEY_SET[j], VALUE_SET[j]);
+ }
+ final String toString = map.toString();
+ assertNotNull("Operation toString() returned null result.", toString);
+ assertNotSame("Operation toString() on the map returned empty String.", toString, "");
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() {
+ for (int i = 0; i < KEY_SET.length; i++) {
+ testedMap.put(KEY_SET[i], VALUE_SET[i]);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#tearDown()
+ */
+ @Override
+ protected void tearDown() {
+ testedMap.clear();
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/PutAllTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/PutAllTest.java
new file mode 100644
index 000000000..0835bc5cf
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/PutAllTest.java
@@ -0,0 +1,199 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.emfcomparemap;
+
+import java.util.HashSet;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.util.EMFCompareMap;
+
+/**
+ * Tests the behavior of {@link EMFCompareMap#putAll(Collection)} so that it behaves the same as its
+ * {@link HashMap} counterpart.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings({"unchecked", "nls", })
+public class PutAllTest extends TestCase {
+ /** Input keys for a set map. */
+ private static final Object[] KEY_SET = {null, "", "Alize", "Bise", "Boree", "Chinook", "Eurus",
+ "Hurricane", "Noroit", "Rafale", "Sirocco", "Tourbillon", "Typhon", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(false), new HashSet(), 5, 15L, 25f, 35d, '\u00ab',
+ true, };
+
+ /** String displayed when an unexpected exception is thrown. */
+ private static final String MESSAGE_UNEXPECTED = "threw an unexpected";
+
+ /** Name of the tested method. Will be used to display junit error messages. */
+ private static final String METHOD_NAME = "putAll(Collection)";
+
+ /** Input values for a set map. */
+ private static final Object[] VALUE_SET = {null, "", "Aquilon", "Blizzard", "Brise", "Cyclone", "Foehn",
+ "Mistral", "Notus", "Simoon", "Suroit", "Tramontane", "Zephyr", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(true), new HashSet(), 5, 15L, 25f, 35d, '\u00aa',
+ false, };
+
+ /**
+ * Tests {@link EMFCompareMap#putAll(Collection)} on a non-empty map with a non-empty collection with some
+ * keys intersecting. Expects that all mappings from the source will be inserted in the target, replacing
+ * the existing mapping if any.
+ */
+ public void testPutAllIntersects() {
+ final EMFCompareMap map1 = new EMFCompareMap();
+ final EMFCompareMap map2 = new EMFCompareMap();
+
+ for (int i = 0; i < (KEY_SET.length >> 1) + 3; i++) {
+ map1.put(KEY_SET[i], VALUE_SET[i]);
+ }
+ // inverts values for the second map so that we can test the intersection replacement
+ for (int i = (KEY_SET.length >> 1) - 3; i < KEY_SET.length; i++) {
+ map2.put(KEY_SET[i], VALUE_SET[VALUE_SET.length - 1 - i]);
+ }
+
+ try {
+ map1.putAll(map2);
+ } catch (UnsupportedOperationException e) {
+ fail(METHOD_NAME + ' ' + MESSAGE_UNEXPECTED + e.getClass().getName() + '.');
+ } catch (ClassCastException e) {
+ fail(METHOD_NAME + ' ' + MESSAGE_UNEXPECTED + e.getClass().getName() + '.');
+ }
+
+ assertEquals("Unexpected size of the map after putAll() execution.", KEY_SET.length, map1.size());
+ assertEquals("PutAll() altered its source map's size.", (KEY_SET.length >> 1) + 4, map2.size());
+ // These are keys from map1 that did not intersect with map2's mappings
+ for (int i = 0; i < (KEY_SET.length >> 1) - 3; i++) {
+ assertTrue("PutAll() did not insert all of the necessary mappings in the map.", map1
+ .containsKey(KEY_SET[i]));
+ assertEquals("PutAll() altered non-intersecting mappings.", VALUE_SET[i], map1.get(KEY_SET[i]));
+ }
+ // These are keys from map2 that did intersect with map1's mappings
+ for (int i = (KEY_SET.length >> 1) - 3; i < (KEY_SET.length >> 1) + 3; i++) {
+ assertTrue("PutAll() did not insert all necessary mappings in the map.", map1
+ .containsKey(KEY_SET[i]));
+ assertEquals("PutAll() did not replace intersecting mappings.", VALUE_SET[VALUE_SET.length - 1
+ - i], map1.get(KEY_SET[i]));
+ }
+ // These are keys from map2 that did not intersect with map1's mappings
+ for (int i = (KEY_SET.length >> 1) + 3; i < KEY_SET.length; i++) {
+ assertTrue("PutAll() did not insert all necessary mappings in the map.", map1
+ .containsKey(KEY_SET[i]));
+ assertEquals("PutAll() did not insert non-intersecting mappings.", VALUE_SET[VALUE_SET.length - 1
+ - i], map1.get(KEY_SET[i]));
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#putAll(Collection)} on a non-empty map with a non-empty collection without
+ * any key intersection. Expects that all mappings from the source will be inserted in the target.
+ */
+ public void testPutAllNoIntersects() {
+ final EMFCompareMap map1 = new EMFCompareMap();
+ final EMFCompareMap map2 = new EMFCompareMap();
+
+ for (int i = 0; i < KEY_SET.length >> 1; i++) {
+ map1.put(KEY_SET[i], VALUE_SET[i]);
+ }
+ for (int i = KEY_SET.length >> 1; i < KEY_SET.length; i++) {
+ map2.put(KEY_SET[i], VALUE_SET[i]);
+ }
+
+ try {
+ map1.putAll(map2);
+ } catch (UnsupportedOperationException e) {
+ fail(METHOD_NAME + ' ' + MESSAGE_UNEXPECTED + e.getClass().getName() + '.');
+ } catch (ClassCastException e) {
+ fail(METHOD_NAME + ' ' + MESSAGE_UNEXPECTED + e.getClass().getName() + '.');
+ }
+
+ assertEquals("Unexpected size of the map after putAll() execution.", KEY_SET.length, map1.size());
+ assertEquals("PutAll() altered its source map's size.", (KEY_SET.length >> 1) + 1, map2.size());
+ for (int i = 0; i < KEY_SET.length; i++) {
+ assertTrue("PutAll() did not insert all of the necessary mappings in the map.", map1
+ .containsKey(KEY_SET[i]));
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#putAll(Collection)} on an empty map with an empty collection. Expects the
+ * size to stay <code>0</code>.
+ */
+ public void testPutEmptyInEmpty() {
+ final EMFCompareMap target = new EMFCompareMap();
+ final EMFCompareMap source = new EMFCompareMap();
+
+ try {
+ target.putAll(source);
+ assertEquals("Operation putAll() with an empty map inserted mappings in its target.", 0, target
+ .size());
+ } catch (UnsupportedOperationException e) {
+ fail(METHOD_NAME + ' ' + MESSAGE_UNEXPECTED + e.getClass().getName() + '.');
+ } catch (ClassCastException e) {
+ fail(METHOD_NAME + ' ' + MESSAGE_UNEXPECTED + e.getClass().getName() + '.');
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#putAll(Collection)} on a non-empty map with an empty collection. Expects the
+ * size and the mappings not to be altered.
+ */
+ public void testPutEmptyInNonEmpty() {
+ final EMFCompareMap target = new EMFCompareMap();
+ final EMFCompareMap source = new EMFCompareMap();
+
+ for (int i = 0; i < KEY_SET.length; i++) {
+ target.put(KEY_SET[i], VALUE_SET[i]);
+ }
+ try {
+ target.putAll(source);
+ assertEquals("Operation putAll() with an empty map altered its target's size.", KEY_SET.length,
+ target.size());
+ for (int i = 0; i < KEY_SET.length; i++) {
+ assertTrue("Operation putAll() with deleted keys from its target.", target
+ .containsKey(KEY_SET[i]));
+ assertEquals("Operation putAll() with an empty map altered its target's mappings.",
+ VALUE_SET[i], target.get(KEY_SET[i]));
+ }
+ } catch (UnsupportedOperationException e) {
+ fail(METHOD_NAME + ' ' + MESSAGE_UNEXPECTED + e.getClass().getName() + '.');
+ } catch (ClassCastException e) {
+ fail(METHOD_NAME + ' ' + MESSAGE_UNEXPECTED + e.getClass().getName() + '.');
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#putAll(Collection)} on an empty map with a non-empty collection. Expects the
+ * size and the mappings of the target to be equal to the source's.
+ */
+ public void testPutNonEmptyInEmpty() {
+ final EMFCompareMap target = new EMFCompareMap();
+ final EMFCompareMap source = new EMFCompareMap();
+
+ for (int i = 0; i < KEY_SET.length; i++) {
+ source.put(KEY_SET[i], VALUE_SET[i]);
+ }
+ try {
+ target.putAll(source);
+ assertEquals(
+ "Operation putAll() with non-empty map did not insert all the collection's mappings.",
+ KEY_SET.length, target.size());
+ for (int i = 0; i < KEY_SET.length; i++) {
+ assertEquals(
+ "Operation putAll() with non-empty map did not insert all mappings in its target.",
+ VALUE_SET[i], target.get(KEY_SET[i]));
+ }
+ } catch (UnsupportedOperationException e) {
+ fail(METHOD_NAME + ' ' + MESSAGE_UNEXPECTED + e.getClass().getName() + '.');
+ } catch (ClassCastException e) {
+ fail(METHOD_NAME + ' ' + MESSAGE_UNEXPECTED + e.getClass().getName() + '.');
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/RemoveTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/RemoveTest.java
new file mode 100644
index 000000000..b5e595fe1
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/RemoveTest.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.emfcomparemap;
+
+import java.util.HashSet;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.util.EMFCompareMap;
+
+/**
+ * Tests the behavior of {@link EMFCompareMap#remove(Object)} so that it behaves the same as its
+ * {@link HashMap} counterpart.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings({"unchecked", "nls", })
+public class RemoveTest extends TestCase {
+ /** Input keys for a set map. */
+ private static final Object[] KEY_SET = {null, "", "Alize", "Bise", "Boree", "Chinook", "Eurus",
+ "Hurricane", "Noroit", "Rafale", "Sirocco", "Tourbillon", "Typhon", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(false), new HashSet(), 5, 15L, 25f, 35d, '\u00ab',
+ true, };
+
+ /** String displayed when an unexpected {@link UnsupportedOperationException} is thrown. */
+ private static final String MESSAGE_UNSUPPORTED = "threw an unexpected UnsupportedOperationException.";
+
+ /** Input values for a set map. */
+ private static final Object[] VALUE_SET = {null, "", "Aquilon", "Blizzard", "Brise", "Cyclone", "Foehn",
+ "Mistral", "Notus", "Simoon", "Suroit", "Tramontane", "Zephyr", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(true), new HashSet(), 5, 15L, 25f, 35d, '\u00aa',
+ false, };
+
+ /**
+ * Tests {@link EMFCompareMap#remove(Object)} on an empty map. Expects <code>null</code> to be returned.
+ */
+ public void testRemoveFromEmptyMap() {
+ final EMFCompareMap map = new EMFCompareMap();
+
+ for (int i = 0; i < KEY_SET.length; i++) {
+ try {
+ assertNull("Unexpected result of remove() operation on an empty map.", map.remove(KEY_SET[i]));
+ } catch (UnsupportedOperationException e) {
+ fail("Remove()" + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertEquals("Unexpected size of the map after a remove() operation.", 0, map.size());
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareMap#remove(Object)} on a non-empty map. Expects it to return the old value if
+ * present.
+ */
+ public void testRemoveIfPresent() {
+ for (int i = 0; i < KEY_SET.length; i++) {
+ for (int j = 0; j < KEY_SET.length; j++) {
+ final EMFCompareMap map = new EMFCompareMap();
+
+ // We'll progressively add more and more mappings to the tested map
+ for (int k = 0; k <= i; k++) {
+ map.put(KEY_SET[k], VALUE_SET[k]);
+ }
+
+ Object result = null;
+ try {
+ result = map.remove(KEY_SET[j]);
+ } catch (UnsupportedOperationException e) {
+ fail("Remove()" + ' ' + MESSAGE_UNSUPPORTED);
+ }
+
+ if (j <= i) {
+ assertFalse("Remove() didn't deleted necessary mapping from the map.", map
+ .containsKey(KEY_SET[j]));
+ assertEquals("Remove() didn't return accurate value.", VALUE_SET[j], result);
+ } else {
+ assertNull(result);
+ }
+
+ for (int k = 0; k < i; k++) {
+ if (k != j) {
+ assertTrue("Remove() deleted innacurate mapping from the map.", map
+ .containsKey(KEY_SET[k]));
+ assertEquals("Unexpected result of the remove() operation.", VALUE_SET[k], map
+ .get(KEY_SET[k]));
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/ValuesTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/ValuesTest.java
new file mode 100644
index 000000000..26256141f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/emfcomparemap/ValuesTest.java
@@ -0,0 +1,358 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.emfcomparemap;
+
+import java.util.Collection;
+import java.util.ConcurrentModificationException;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+import java.util.Set;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.util.EMFCompareMap;
+
+/**
+ * Tests the behavior of the {@link EMFCompareMap}'s values collection and its iterator so that they behave
+ * the same as their {@link HashMap} counterparts.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings({"unchecked", "nls", })
+public class ValuesTest extends TestCase {
+ /** Input keys for a set map. */
+ private static final Object[] KEY_SET = {null, "", "Alize", "Bise", "Boree", "Chinook", "Eurus",
+ "Hurricane", "Noroit", "Rafale", "Sirocco", "Tourbillon", "Typhon", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(false), new HashSet(), 5, 15L, 25f, 35d, '\u00ab',
+ true, };
+
+ /** String displayed when an expected {@link ConcurrentModificationException} isn't thrown. */
+ private static final String MESSAGE_CONCURRENT = "ConcurrentModificationException hasn't been thrown by the iterator after changing map via";
+
+ /** String displayed when an unexpected {@link UnsupportedOperationException} is thrown. */
+ private static final String MESSAGE_UNSUPPORTED = "threw an unexpected UnsupportedOperationException.";
+
+ /** Input values for a set map. */
+ private static final Object[] VALUE_SET = {null, "", "Aquilon", "Blizzard", "Brise", "Cyclone", "Foehn",
+ "Mistral", "Notus", "Simoon", "Suroit", "Tramontane", "Zephyr", new Integer(0), new Long(10),
+ new Float(20), new Double(30), new Boolean(true), new HashSet(), 5, 15L, 25f, 35d, '\u00aa',
+ false, };
+
+ /** Map that will be used for all these tests. */
+ private final EMFCompareMap testedMap = new EMFCompareMap();
+
+ /** Name of the currently tested method for the error messages. */
+ private String testedMethod;
+
+ /**
+ * Tests the {@link EMFCompareMap}'s values collection. The collection is expected to support the clear()
+ * operation and it effectively empties the map.
+ */
+ public void testClear() {
+ testedMethod = "Clear()";
+ final Collection values = testedMap.values();
+ try {
+ values.clear();
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertEquals("Clear() operation didn't effectively empty the map.", 0, testedMap.size());
+ }
+
+ /**
+ * Tests the creation of the {@link EMFCompareMap}'s values collection.
+ * <p>
+ * <ul>
+ * Assertions :
+ * <li>Created collection isn't <code>null</code></li>
+ * <li>Created collection's size is the same as its original map's.</li>
+ * <li>The collection's entries correspond to the original map's values.</li>
+ * </ul>
+ * </p>
+ */
+ public void testCollectionCreation() {
+ final Collection values = testedMap.values();
+
+ assertNotNull("Values collection hasn't been created.", values);
+ assertEquals("Created collection hasn't got the same size as its original map.", testedMap.size(),
+ values.size());
+
+ for (final Iterator valueIterator = values.iterator(); valueIterator.hasNext(); ) {
+ final Object currentValue = valueIterator.next();
+ assertTrue(
+ "The collection's iterator contains mappings different than its original map's values.",
+ testedMap.containsValue(currentValue));
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s values collection. The collection's iterator is expected to throw a
+ * {@link ConcurrentModificationException} if its original map is structurally modified via the clear()
+ * method.
+ */
+ public void testConcurrentClear() {
+ testedMethod = "Clear()";
+ final Iterator valueIterator = testedMap.values().iterator();
+ testedMap.clear();
+
+ try {
+ valueIterator.next();
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ } catch (ConcurrentModificationException e) {
+ // We expected this
+ } catch (NoSuchElementException e) {
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s values collection. The collection's iterator is expected to throw a
+ * {@link ConcurrentModificationException} if its original map is structurally modified via the
+ * put(Object) method.
+ */
+ public void testConcurrentPut() {
+ testedMethod = "Put(Object)";
+ final Iterator valueIterator = testedMap.values().iterator();
+ // This entry cannot exist (random value as a key, random key as a value)
+ testedMap.put(VALUE_SET[5], KEY_SET[10]);
+
+ try {
+ valueIterator.next();
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ } catch (ConcurrentModificationException e) {
+ // We expected this
+ } catch (NoSuchElementException e) {
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s values collection. The collection's iterator is expected to throw a
+ * {@link ConcurrentModificationException} if its original map is structurally modified via the
+ * putAll(Collection) method.
+ */
+ public void testConcurrentPutAll() {
+ testedMethod = "PutAll(Collection)";
+ final EMFCompareMap anotherMap = new EMFCompareMap();
+ final Iterator valueIterator = anotherMap.values().iterator();
+ anotherMap.putAll(testedMap);
+
+ try {
+ valueIterator.next();
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ } catch (ConcurrentModificationException e) {
+ // We expected this
+ } catch (NoSuchElementException e) {
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s values collection. The collection's iterator is expected to throw a
+ * {@link ConcurrentModificationException} if its original map is structurally modified via the
+ * remove(Object) method.
+ */
+ public void testConcurrentRemove() {
+ testedMethod = "Remove(Object)";
+ final Iterator valueIterator = testedMap.values().iterator();
+ // Removes a random entry from the set
+ testedMap.remove(KEY_SET[10]);
+
+ try {
+ valueIterator.next();
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ } catch (ConcurrentModificationException e) {
+ // We expected this
+ } catch (NoSuchElementException e) {
+ fail(MESSAGE_CONCURRENT + ' ' + testedMethod + '.');
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s values collection. The collection is expected not to support the
+ * add() operation.
+ */
+ public void testNoAddThroughCollection() {
+ final EMFCompareMap map = new EMFCompareMap();
+ final Collection col = map.values();
+ try {
+ col.add(KEY_SET[5]);
+ fail("UnsupportedOperationException should have been thrown.");
+ } catch (UnsupportedOperationException e) {
+ // We expected this
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s values collection. The collection is expected to support the
+ * removeAll(Collection) operation and it effectively removes all the map's element contained within the
+ * given collection.
+ */
+ public void testRemoveAll() {
+ testedMethod = "RemoveAll(Collection)";
+ Collection values = testedMap.values();
+ Set removedElements = new HashSet(values);
+ try {
+ values.removeAll(removedElements);
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertEquals("Map should have been emptied by its values set removeAll().", 0, testedMap.size());
+
+ for (int i = 0; i < KEY_SET.length; i++) {
+ // Adds more and more values to the map for each loop
+ for (int j = 0; j < i; j++) {
+ testedMap.put(KEY_SET[j], VALUE_SET[j]);
+ }
+
+ values = testedMap.values();
+ // Create an array of the entries to avoid concurrent modification exception
+ final Object[] array = values.toArray();
+ int currentMapSize = testedMap.size();
+ removedElements = new HashSet();
+ for (int j = 0; j < array.length; j++) {
+ removedElements.add(array[j]);
+ try {
+ values.removeAll(removedElements);
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertFalse(
+ "Operation removeAll(Collection) of the values set did not remove necessary elements from the map.",
+ testedMap.containsValue(array[j]));
+ assertEquals("Unexpected size of the map after removeAll() execution.", --currentMapSize,
+ testedMap.size());
+ }
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s values collection. The collection is expected to support the
+ * remove(Object) operation and this method is expected to effectively remove the given object from the
+ * map. Size of the map afterward should have decreased by 1.
+ */
+ public void testRemoveViaCollection() {
+ testedMethod = "Collection's remove(Object)";
+
+ final Collection values = testedMap.values();
+ // Create an array of the entries to avoid concurrent modification exception
+ final Object[] array = values.toArray();
+ int currentMapSize = testedMap.size();
+ for (Object value : array) {
+ try {
+ values.remove(value);
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertFalse(
+ "Operation remove() of the values collection did not remove the element from the map.",
+ testedMap.containsValue(value));
+ assertEquals("Map size didn't decrease by one after removal of one element.", --currentMapSize,
+ testedMap.size());
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s values collection's iterator. The iterator is expected to support
+ * the remove(Object) operation and this method is expected to effectively remove the given object from
+ * the map. Size of the map afterward should have decreased by 1.
+ */
+ public void testRemoveViaIterator() {
+ testedMethod = "Iterator's remove(Object)";
+
+ int currentMapSize = testedMap.size();
+ for (final Iterator valueIterator = testedMap.values().iterator(); valueIterator.hasNext(); ) {
+ final Object currentValue = valueIterator.next();
+ try {
+ valueIterator.remove();
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertFalse(
+ "Operation remove() of the values collection's iterator did not remove the element from the map.",
+ testedMap.containsValue(currentValue));
+ assertEquals("Unexpected size of the map after removal of an element.", --currentMapSize,
+ testedMap.size());
+ }
+ }
+
+ /**
+ * Tests the {@link EMFCompareMap}'s values collection. The collection is expected to support the
+ * retainAll(Collection) operation and it effectively removes all the map's element not contained within
+ * the given collection.
+ */
+ public void testRetainAll() {
+ testedMethod = "RetainAll(Collection)";
+ Collection values = testedMap.values();
+ final Set retainedElements = new HashSet();
+ try {
+ values.retainAll(retainedElements);
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+ assertEquals("Map should have been emptied by its values collection retainAll().", 0, testedMap
+ .size());
+
+ for (int i = 0; i < KEY_SET.length; i++) {
+ // Adds more and more values to the map for each loop
+ for (int j = 0; j < i; j++) {
+ testedMap.put(KEY_SET[j], VALUE_SET[j]);
+ }
+
+ values = testedMap.values();
+ // Create an array of the entries to avoid concurrent modification exception
+ final Object[] array = values.toArray();
+ int currentMapSize = testedMap.size();
+ for (int j = 0; j < array.length; j++) {
+ for (int k = 0; k < array.length - j; k++) {
+ retainedElements.add(array[k]);
+ }
+ try {
+ values.retainAll(retainedElements);
+ } catch (UnsupportedOperationException e) {
+ fail(testedMethod + ' ' + MESSAGE_UNSUPPORTED);
+ }
+
+ for (int k = 0; k < array.length - j; k++) {
+ assertTrue(
+ "Operation retainAll(Collection) did not retain necessary elements within the map.",
+ testedMap.containsValue(array[k]));
+ }
+
+ assertEquals("Unexpected size of the map after retainAll() execution.", currentMapSize--,
+ array.length - j);
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() {
+ for (int i = 0; i < KEY_SET.length; i++) {
+ testedMap.put(KEY_SET[i], VALUE_SET[i]);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#tearDown()
+ */
+ @Override
+ protected void tearDown() {
+ testedMap.clear();
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/AttachResourceTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/AttachResourceTest.java
new file mode 100644
index 000000000..94718503f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/AttachResourceTest.java
@@ -0,0 +1,164 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.modelutils;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.tests.EMFCompareTestPlugin;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * Tests the behavior of
+ * {@link ModelUtils#attachResource(org.eclipse.emf.common.util.URI, org.eclipse.emf.ecore.EObject)} and
+ * {@link ModelUtils#attachResource(org.eclipse.emf.common.util.URI, org.eclipse.emf.ecore.resource.ResourceSet, org.eclipse.emf.ecore.EObject)}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class AttachResourceTest extends TestCase {
+ /** Full path to the directory containing the models. */
+ private static final String INPUT_DIRECTORY = "/inputs/attribute/attributeChange";
+
+ /** This contains the models loaded from {@link INPUT_DIRECTORY}. */
+ private static final List<EObject> INPUT_MODELS;
+
+ /** These URIs will be used as the new resources' URIs. */
+ private static final String[] TEST_URIS = {"data", "\u00E9", "\r\n", ""};
+
+ static {
+ List<EObject> temp = new ArrayList<EObject>();
+ try {
+ temp = ModelUtils.getModelsFrom(new File(FileLocator.toFileURL(
+ EMFCompareTestPlugin.getDefault().getBundle().getEntry(INPUT_DIRECTORY)).getFile()),
+ new ResourceSetImpl());
+ } catch (IOException e) {
+ // no operation, continues with an empty list
+ }
+ INPUT_MODELS = Collections.unmodifiableList(temp);
+ }
+
+ /**
+ * tests
+ * {@link ModelUtils#attachResource(org.eclipse.emf.common.util.URI, org.eclipse.emf.ecore.resource.ResourceSet, org.eclipse.emf.ecore.EObject)}.
+ * Expects all models to be attached to a non-<code>null</code> resource in the same resourceSet.
+ */
+ public void testAttachResource() {
+ final ResourceSet resourceSet = new ResourceSetImpl();
+ for (EObject model : INPUT_MODELS) {
+ for (String uriPath : TEST_URIS) {
+ final EObject test = EcoreUtil.copy(model);
+ assertNull("A copy should have no resource, EMF's API has been changed.", test.eResource());
+ ModelUtils.attachResource(URI.createFileURI(uriPath), resourceSet, test);
+ assertNotNull("attachResource() did not attach a resource as expected.", test.eResource());
+ assertEquals("attachResource() did not attach a resource with the expected URI.", test
+ .eResource().getURI(), URI.createFileURI(uriPath));
+ assertEquals("attachResource() did not attach a resource of the expected resourceSet.",
+ resourceSet, test.eResource().getResourceSet());
+ }
+ }
+ }
+
+ /**
+ * tests {@link ModelUtils#attachResource(org.eclipse.emf.common.util.URI, org.eclipse.emf.ecore.EObject)}.
+ * Expects all models to be attached to a non-<code>null</code> resource.
+ */
+ public void testAttachResourceNoResourceSet() {
+ for (EObject model : INPUT_MODELS) {
+ for (String uriPath : TEST_URIS) {
+ final EObject test = EcoreUtil.copy(model);
+ assertNull("A copy should have no resource, EMF's API has been changed.", test.eResource());
+ ModelUtils.attachResource(URI.createFileURI(uriPath), test);
+ assertNotNull("attachResource() did not attach a resource as expected.", test.eResource());
+ assertEquals("attachResource() did not attach a resource with the expected URI.", test
+ .eResource().getURI(), URI.createFileURI(uriPath));
+ }
+ }
+ }
+
+ /**
+ * tests {@link ModelUtils#attachResource(org.eclipse.emf.common.util.URI, org.eclipse.emf.ecore.EObject)}
+ * and
+ * {@link ModelUtils#attachResource(org.eclipse.emf.common.util.URI, org.eclipse.emf.ecore.resource.ResourceSet, org.eclipse.emf.ecore.EObject)}
+ * with <code>null</code> as the object to attach. Expects a {@link NullPointerException} to be thrown.
+ */
+ public void testAttachResourceNullEObject() {
+ final ResourceSet resourceSet = new ResourceSetImpl();
+ for (String uriPath : TEST_URIS) {
+ try {
+ ModelUtils.attachResource(URI.createFileURI(uriPath), null);
+ } catch (NullPointerException e) {
+ // This is expected behavior
+ }
+ try {
+ ModelUtils.attachResource(URI.createFileURI(uriPath), resourceSet, null);
+ } catch (NullPointerException e) {
+ // This is expected behavior
+ }
+ }
+ }
+
+ /**
+ * tests {@link ModelUtils#attachResource(org.eclipse.emf.common.util.URI, org.eclipse.emf.ecore.EObject)}
+ * and
+ * {@link ModelUtils#attachResource(org.eclipse.emf.common.util.URI, org.eclipse.emf.ecore.resource.ResourceSet, org.eclipse.emf.ecore.EObject)}
+ * with <code>null</code> as the resource's resourceSet. Expects a {@link NullPointerException} to be
+ * thrown.
+ */
+ public void testAttachResourceNullResourceSet() {
+ for (EObject model : INPUT_MODELS) {
+ for (String uriPath : TEST_URIS) {
+ final EObject test = EcoreUtil.copy(model);
+ assertNull("A copy should have no resource, EMF's API changed.", test.eResource());
+ try {
+ ModelUtils.attachResource(URI.createFileURI(uriPath), null, test);
+ } catch (NullPointerException e) {
+ // This is expected behavior
+ }
+ }
+ }
+ }
+
+ /**
+ * tests {@link ModelUtils#attachResource(org.eclipse.emf.common.util.URI, org.eclipse.emf.ecore.EObject)}
+ * and
+ * {@link ModelUtils#attachResource(org.eclipse.emf.common.util.URI, org.eclipse.emf.ecore.resource.ResourceSet, org.eclipse.emf.ecore.EObject)}
+ * with <code>null</code> as the resource URI. Expects a {@link NullPointerException} to be thrown.
+ */
+ public void testAttachResourceNullURI() {
+ final ResourceSet resourceSet = new ResourceSetImpl();
+ for (EObject model : INPUT_MODELS) {
+ final EObject test = EcoreUtil.copy(model);
+ assertNull("A copy should have no resource, EMF's API changed.", test.eResource());
+ try {
+ ModelUtils.attachResource(null, test);
+ } catch (NullPointerException e) {
+ // This is expected behavior
+ }
+ try {
+ ModelUtils.attachResource(null, resourceSet, test);
+ } catch (NullPointerException e) {
+ // This is expected behavior
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/GetModelsFromTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/GetModelsFromTest.java
new file mode 100755
index 000000000..49500eb4c
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/GetModelsFromTest.java
@@ -0,0 +1,295 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.modelutils;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.emf.compare.tests.EMFCompareTestPlugin;
+import org.eclipse.emf.compare.tests.util.FileUtils;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+/**
+ * Tests the behavior of {@link ModelUtils#getModelsFrom(File)}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class GetModelsFromTest extends TestCase {
+ /** Full path to the directory containing the models. */
+ private static final String INPUT_DIRECTORY = "/inputs";
+
+ /**
+ * This array contains references to all subdirectories of {@link #INPUT_DIRECTORY} that does not contain
+ * models.
+ */
+ private ArrayList<File> invalidDirectories = new ArrayList<File>();
+
+ /**
+ * This array contains references to all subdirectories of {@link #INPUT_DIRECTORY} directly containing
+ * non-regression models.
+ */
+ private ArrayList<File> modelDirectories = new ArrayList<File>();
+
+ /** Names of directories we shouldn't be able to read. */
+ private String[] unreadableDirectories = {"", "\r\n", "/lost+found/", };
+
+ /**
+ * Tests {@link ModelUtils#getModelsFrom(File)} with invalid directories. Expects an empty list to be
+ * returned.
+ */
+ public void testGetModelsFromInvalidDirectory() {
+ for (File invalidDirectory : invalidDirectories) {
+ try {
+ assertEquals("Unexpected result of getModelsFrom() with invalid directory.",
+ new ArrayList<EObject>(), ModelUtils.getModelsFrom(invalidDirectory,
+ new ResourceSetImpl()));
+ } catch (IOException e) {
+ fail("Unexpected IOException thrown while loading models from an invalid directory.");
+ }
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#getModelsFrom(File)} with <code>null</code> directory. Expects a
+ * {@link NullPointerException} to be thrown.
+ */
+ public void testGetModelsFromNullDirectory() {
+ try {
+ ModelUtils.getModelsFrom(null, new ResourceSetImpl());
+ fail("Expected NullPointerException hasn't been thrown.");
+ } catch (NullPointerException e) {
+ // We expected this
+ } catch (IOException e) {
+ fail("Expected NullPointerException hasn't been thrown.");
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#getModelsFrom(File)} with directories that cannot be read. Expects an empty
+ * list to be returned.
+ */
+ public void testGetModelsFromUnreadableDirectory() {
+ for (String unreadableDirectory : unreadableDirectories) {
+ try {
+ assertEquals("Unexpected result of getModelsFrom() with unreadable directory.",
+ new ArrayList<EObject>(), ModelUtils.getModelsFrom(new File(unreadableDirectory),
+ new ResourceSetImpl()));
+ } catch (IOException e) {
+ fail("Unexpected IOException has been thrown.");
+ }
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#getModelsFrom(File)} with valid directories. Expects the returned list to have
+ * a size equal to the number of files contained by the given directory, and all of the list's objects to
+ * have an associated resource.
+ */
+ public void testGetModelsFromValidDirectory() {
+ for (File modelDirectory : modelDirectories) {
+ List<EObject> result = null;
+ final ResourceSet resourceSet = new ResourceSetImpl();
+ try {
+ result = ModelUtils.getModelsFrom(modelDirectory, resourceSet);
+ } catch (IOException e) {
+ fail("Unexpected IOException thrown while loading models from a valid folder.");
+ }
+
+ // Keeps compiler happy
+ assert result != null;
+
+ int expectedSize = 0;
+ for (File aFile : modelDirectory.listFiles()) {
+ if (!aFile.isDirectory() && !aFile.getName().startsWith(String.valueOf('.'))) {
+ expectedSize++;
+ }
+ }
+ assertSame("The returned list doesn't contain the expected number of objects.", expectedSize,
+ result.size());
+
+ for (EObject loadedModel : result) {
+ assertNotNull("Loaded EObject isn't associated to a resource.", loadedModel.eResource());
+ assertEquals("Model hasn't been loaded in the accurate resource set.", resourceSet,
+ loadedModel.eResource().getResourceSet());
+ }
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#getModelsFrom(File)} with valid directories but invalid file extensions.
+ * Expects the returned list to be empty.
+ */
+ public void testGetModelsFromValidDirectoryInvalidExtension() {
+ for (File modelDirectory : modelDirectories) {
+ List<EObject> result = null;
+ final ResourceSet resourceSet = new ResourceSetImpl();
+ try {
+ result = ModelUtils.getModelsFrom(modelDirectory, "ThisCannotBeAValidExtension", resourceSet);
+ } catch (IOException e) {
+ fail("Unexpected IOException thrown while loading models with invalid extensions.");
+ }
+
+ // Keeps compiler happy
+ assert result != null;
+
+ assertSame("Resulting list doesn't contain the expected number of objects.", 0, result.size());
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#getModelsFrom(File)} with valid directories and no resourceSet. Expects the
+ * returned list to have a size equal to the number of files contained by the given directory, and all of
+ * the list's objects to have an associated resource. All resources are expected to be contained by the
+ * same resourceSet.
+ */
+ public void testGetModelsFromValidDirectoryNullResourceSet() {
+ for (File modelDirectory : modelDirectories) {
+ List<EObject> result = null;
+ try {
+ result = ModelUtils.getModelsFrom(modelDirectory, null);
+ } catch (IOException e) {
+ fail("Unexpected IOException thrown while loading models.");
+ }
+
+ // Keeps compiler happy
+ assert result != null;
+
+ int expectedSize = 0;
+ for (File aFile : modelDirectory.listFiles()) {
+ if (!aFile.isDirectory() && !aFile.getName().startsWith(String.valueOf('.'))) {
+ expectedSize++;
+ }
+ }
+ assertSame("Resulting list doesn't contain the expected number of objects.", expectedSize, result
+ .size());
+
+ ResourceSet resourceSet = null;
+ for (EObject loadedModel : result) {
+ assertNotNull("Loaded EObject hasn't been associated to a resource.", loadedModel.eResource());
+ if (resourceSet == null)
+ resourceSet = loadedModel.eResource().getResourceSet();
+ else
+ assertEquals("Model hasn't been loaded in the accurate resource set.", resourceSet,
+ loadedModel.eResource().getResourceSet());
+ }
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#getModelsFrom(File)} with valid directories and a valid file extension. Expects
+ * the returned list to have a size equal to the number of files of that given extension contained by the
+ * given directory, and all of the list's objects to have an associated resource.
+ */
+ public void testGetModelsFromValidDirectoryValidExtension() {
+ for (File modelDirectory : modelDirectories) {
+ List<EObject> result = null;
+ final ResourceSet resourceSet = new ResourceSetImpl();
+ final String fileExtension = "ecore";
+ try {
+ result = ModelUtils.getModelsFrom(modelDirectory, fileExtension, resourceSet);
+ } catch (IOException e) {
+ fail("Unexpected IOException thrown while loading models.");
+ }
+
+ // Keeps compiler happy
+ assert result != null;
+
+ int expectedSize = 0;
+ for (File aFile : modelDirectory.listFiles()) {
+ if (!aFile.isDirectory() && !aFile.getName().startsWith(String.valueOf('.'))
+ && aFile.getName().endsWith(fileExtension)) {
+ expectedSize++;
+ }
+ }
+ assertSame("Resulting list doesn't contain the expected number of objects for this extension.",
+ expectedSize, result.size());
+
+ for (EObject loadedModel : result) {
+ assertNotNull("Loaded EObject isn't associated to a resource.", loadedModel.eResource());
+ assertEquals("Model hasn't been loaded in the expected resource set.", resourceSet,
+ loadedModel.eResource().getResourceSet());
+ }
+ }
+ }
+
+ /**
+ * Default constructor. Scans for model files in {@link #INPUT_DIRECTORY}.
+ */
+ @Override
+ protected void setUp() {
+ File inputDir = null;
+ try {
+ inputDir = new File(FileLocator.toFileURL(
+ EMFCompareTestPlugin.getDefault().getBundle().getEntry(INPUT_DIRECTORY)).getFile());
+ } catch (IOException e) {
+ // shouldn't happen
+ assert false;
+ }
+
+ final File[] directories = FileUtils.listDirectories(inputDir);
+ if (directories != null) {
+ for (int i = 0; i < directories.length; i++) {
+ scanForModels(directories[i]);
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#tearDown()
+ */
+ @Override
+ protected void tearDown() {
+ invalidDirectories.clear();
+ modelDirectories.clear();
+ }
+
+ /**
+ * Called from setup, this method allows retrieval of references to the files corresponding to the
+ * non-regression models.
+ *
+ * @param folder
+ * Folder in which model files are to be found.
+ */
+ private void scanForModels(File folder) {
+ // Ignores the folder containing non-standard models (uml, gmfgen, ...)
+ if (folder.getName().contains("nonstd"))
+ return;
+
+ final File[] subFolders = FileUtils.listDirectories(folder);
+ if (subFolders.length != 0) {
+ invalidDirectories.add(folder);
+ for (File aSubFolder : subFolders) {
+ scanForModels(aSubFolder);
+ }
+ } else if (folder.exists() && folder.isDirectory()) {
+ final File[] files = folder.listFiles();
+ for (File aFile : files) {
+ // All directories containing at least one file that isn't a folder is considered to contain
+ // models.
+ if (!aFile.isDirectory() && !aFile.getName().startsWith(String.valueOf('.'))) {
+ modelDirectories.add(folder);
+ break;
+ }
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/LoadFromFileTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/LoadFromFileTest.java
new file mode 100755
index 000000000..9aa1b0c5e
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/LoadFromFileTest.java
@@ -0,0 +1,189 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.modelutils;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.emf.compare.tests.EMFCompareTestPlugin;
+import org.eclipse.emf.compare.tests.util.FileUtils;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+/**
+ * Tests the behavior of {@link ModelUtils#load(File)}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class LoadFromFileTest extends TestCase {
+ /** Full path to the directory containing the non-regression models. */
+ private static final String INPUT_DIRECTORY = "/inputs";
+
+ /** Message displayed when an unexpected {@link IOException} is thrown. */
+ private static final String MESSAGE_IOEXCEPTION_UNEXPECTED = "UnExpected IOException has been thrown.";
+
+ /** Message displayed when an expected {@link NullPointerException} isn't thrown. */
+ private static final String MESSAGE_NULLPOINTER_EXPECTED = "Expected NullPointerException hasn't been thrown.";
+
+ /** This array contains pathes to unreadable or inexistant files. */
+ private String[] invalidFiles = {"", "/etc/shadow", "/etc/sudoers", "\r\n",
+ File.listRoots()[0].getAbsolutePath() + "nofolder", };
+
+ /**
+ * This array contains references to all the models contained by {@link INPUT_DIRECTORY} or its
+ * subfolders.
+ */
+ private List<File> models = new ArrayList<File>();
+
+ /**
+ * Default constructor. Scans for model files in {@link #INPUT_DIRECTORY}.
+ */
+ public LoadFromFileTest() {
+ File inputDir = null;
+ try {
+ inputDir = new File(FileLocator.toFileURL(
+ EMFCompareTestPlugin.getDefault().getBundle().getEntry(INPUT_DIRECTORY)).getFile());
+ } catch (IOException e) {
+ // shouldn't happen
+ assert false;
+ }
+
+ final File[] directories = FileUtils.listDirectories(inputDir);
+ if (directories != null) {
+ for (int i = 0; i < directories.length; i++) {
+ scanForModels(directories[i]);
+ }
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#load(File, ResourceSet)} with an invalid model file to be loaded and no
+ * resourceSet. Expects a {@link NullPointerException} to be thrown.
+ */
+ public void testLoadModelFromInvalidFileNullResourceSet() {
+ for (String modelFile : invalidFiles) {
+ try {
+ ModelUtils.load(new File(modelFile), null);
+ fail(MESSAGE_NULLPOINTER_EXPECTED);
+ } catch (NullPointerException e) {
+ // This was expected
+ } catch (IOException e) {
+ fail(MESSAGE_IOEXCEPTION_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#load(File, ResourceSet)} with an invalid model file to be loaded and a valid
+ * resourceSet. Expects an {@link IOException} to be thrown.
+ */
+ public void testLoadModelFromInvalidFileValidResourceSet() {
+ for (String modelFile : invalidFiles) {
+ try {
+ final ResourceSet resourceSet = new ResourceSetImpl();
+ ModelUtils.load(new File(modelFile), resourceSet);
+ fail("Expected IOException hasn't been thrown.");
+ } catch (NullPointerException e) {
+ fail("Unexpected NullPointerException thrown when loading models from invalid files.");
+ } catch (IOException e) {
+ // This was expected
+ }
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#load(File, ResourceSet)} with <code>null</code> as the file to be loaded.
+ * Expects a {@link NullPointerException} to be thrown no matter the specified resourceSet.
+ */
+ public void testLoadModelFromNullFile() {
+ try {
+ ModelUtils.load((File)null, null);
+ fail(MESSAGE_NULLPOINTER_EXPECTED);
+ } catch (NullPointerException e) {
+ // This was expected
+ } catch (IOException e) {
+ fail(MESSAGE_IOEXCEPTION_UNEXPECTED);
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#load(File, ResourceSet)} with a valid model file to be loaded and no
+ * resourceSet. Expects a {@link NullPointerException} to be thrown.
+ */
+ public void testLoadModelFromValidFileNullResourceSet() {
+ for (File modelFile : models) {
+ try {
+ ModelUtils.load(modelFile, null);
+ fail(MESSAGE_NULLPOINTER_EXPECTED);
+ } catch (NullPointerException e) {
+ // This was expected
+ } catch (IOException e) {
+ fail(MESSAGE_IOEXCEPTION_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#load(File, ResourceSet)} with a valid model file and a valid resourceSet.
+ * Expects a non-null EObject associated to the given {@link ResourceSet} to be returned.
+ */
+ public void testLoadModelFromValidFileValidResourceSet() {
+ for (File modelFile : models) {
+ try {
+ final ResourceSet resourceSet = new ResourceSetImpl();
+ final EObject result = ModelUtils.load(modelFile, resourceSet);
+ assertNotNull("ModelUtils didn't load its target model.", result);
+ assertEquals("Loaded object was associated to an unexpected resourceSet.", resourceSet,
+ result.eResource().getResourceSet());
+ assertEquals("Loaded model isn't the expected one.", modelFile.getPath(), result.eResource()
+ .getURI().toFileString());
+ } catch (IOException e) {
+ fail(MESSAGE_IOEXCEPTION_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Called from initializer, this method allows retrieval of references to the files corresponding to the
+ * non-regression models.
+ *
+ * @param folder
+ * Folder in which model files are to be found.
+ */
+ private void scanForModels(File folder) {
+ // Ignores the folder containing non-standard models (uml, gmfgen, ...)
+ if (folder.getName().contains("nonstd"))
+ return;
+
+ final File[] subFolders = FileUtils.listDirectories(folder);
+ if (subFolders.length != 0) {
+ for (File aSubFolder : subFolders) {
+ scanForModels(aSubFolder);
+ }
+ } else if (folder.exists() && folder.isDirectory()) {
+ final File[] files = folder.listFiles();
+ for (File aFile : files) {
+ // All files are considered models regardless of their extension
+ if (!aFile.isDirectory() && !aFile.getName().startsWith(".")) {
+ models.add(aFile);
+ }
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/LoadFromInputStreamTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/LoadFromInputStreamTest.java
new file mode 100644
index 000000000..248af76b9
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/LoadFromInputStreamTest.java
@@ -0,0 +1,239 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.modelutils;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.emf.compare.tests.EMFCompareTestPlugin;
+import org.eclipse.emf.compare.tests.util.FileUtils;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.XMIResource;
+
+/**
+ * Tests the behavior of {@link ModelUtils#load(InputStream, String, ResourceSet)}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class LoadFromInputStreamTest extends TestCase {
+ /** Full path to the directory containing the non-regression models. */
+ private static final String INPUT_DIRECTORY = "/inputs";
+
+ /** Contains invalid file names for model loading. */
+ private static final String[] INVALID_FILENAMES = {"", "model", "ecaure", };
+
+ /** Message displayed when an unexpected {@link IOException} is thrown. */
+ private static final String MESSAGE_FILENOTFOUNDEXCEPTION_UNEXPECTED = "UnExpected FileNotFoundException has been thrown while loading models from stream.";
+
+ /** Message displayed when an unexpected {@link IOException} is thrown. */
+ private static final String MESSAGE_IOEXCEPTION_UNEXPECTED = "UnExpected IOException has been thrown.";
+
+ /** Message displayed when an expected {@link NullPointerException} isn't thrown. */
+ private static final String MESSAGE_NULLPOINTER_EXPECTED = "Expected NullPointerException hasn't been thrown.";
+
+ /**
+ * This array contains references to all the models contained by {@link INPUT_DIRECTORY} or its
+ * subfolders.
+ */
+ private List<File> models = new ArrayList<File>();
+
+ /**
+ * Default constructor. Scans for model files in {@link #INPUT_DIRECTORY}.
+ */
+ public LoadFromInputStreamTest() {
+ File inputDir = null;
+ try {
+ inputDir = new File(FileLocator.toFileURL(
+ EMFCompareTestPlugin.getDefault().getBundle().getEntry(INPUT_DIRECTORY)).getFile());
+ } catch (IOException e) {
+ // shouldn't happen
+ assert false;
+ }
+
+ final File[] directories = FileUtils.listDirectories(inputDir);
+ if (directories != null) {
+ for (int i = 0; i < directories.length; i++) {
+ scanForModels(directories[i]);
+ }
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#load(InputStream, String, ResourceSet)} with <code>null</code> as its
+ * InputStream. Expects a {@link NullPointerException} to be thrown whatever the two other specified
+ * arguments are.
+ */
+ public void testLoadModelFromNullInputStream() {
+ for (String invalidFileName : INVALID_FILENAMES) {
+ // First try will be with null resourceSet
+ try {
+ ModelUtils.load(null, invalidFileName, null);
+ fail(MESSAGE_NULLPOINTER_EXPECTED);
+ } catch (NullPointerException e) {
+ // This was expected
+ } catch (IOException e) {
+ fail(MESSAGE_IOEXCEPTION_UNEXPECTED);
+ }
+
+ // We then try with a valid resourceSet
+ final ResourceSet resourceSet = new ResourceSetImpl();
+ try {
+ ModelUtils.load(null, invalidFileName, resourceSet);
+ fail(MESSAGE_NULLPOINTER_EXPECTED);
+ } catch (NullPointerException e) {
+ // This was expected
+ } catch (IOException e) {
+ fail(MESSAGE_IOEXCEPTION_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#load(InputStream, String, ResourceSet)} with valid inputStream and resourceSet.
+ * As the filename given is invalid, expects the model to be loaded as an XMI file.
+ *
+ * @throws IOException
+ * Allows us not to catch it. Test just fails if thrown.
+ */
+ public void testLoadModelFromValidInputInvalidExtension() throws IOException {
+ for (File model : models) {
+ try {
+ for (String invalidFileName : INVALID_FILENAMES) {
+ final FileInputStream fsInput = new FileInputStream(model);
+ final BufferedInputStream buffInput = new BufferedInputStream(fsInput);
+ final ResourceSet resourceSet = new ResourceSetImpl();
+ final EObject result = ModelUtils.load(buffInput, invalidFileName, resourceSet);
+
+ assertNotNull("ModelUtils didn't load its target model.", result);
+ assertEquals("Loaded object was associated to an unexpected resourceSet.", resourceSet,
+ result.eResource().getResourceSet());
+ assertTrue("Model loaded as an unexpected type of resource.",
+ result.eResource() instanceof XMIResource);
+
+ buffInput.close();
+ fsInput.close();
+ }
+ } catch (FileNotFoundException e) {
+ fail(MESSAGE_FILENOTFOUNDEXCEPTION_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#load(InputStream, String, ResourceSet)} with a valid InputStream and
+ * <code>null</code> as a resourceSet. Expects a {@link NullPointerException} to be thrown no matter
+ * what the filename is.
+ *
+ * @throws IOException
+ * Allows us not to catch it. Test just fails if thrown.
+ */
+ public void testLoadModelFromValidInputNullResourceSet() throws IOException {
+ for (File model : models) {
+ FileInputStream fsInput = null;
+ BufferedInputStream buffInput = null;
+ try {
+ fsInput = new FileInputStream(model);
+ buffInput = new BufferedInputStream(fsInput);
+
+ // First executes tests with invalid file names
+ for (String invalidFileName : INVALID_FILENAMES) {
+ try {
+ ModelUtils.load(buffInput, invalidFileName, null);
+ } catch (NullPointerException e) {
+ // This was expected
+ }
+ }
+
+ // Then with valid file names
+ try {
+ ModelUtils.load(buffInput, model.getName(), null);
+ } catch (NullPointerException e) {
+ // This was expected
+ }
+ } catch (FileNotFoundException e) {
+ fail(MESSAGE_FILENOTFOUNDEXCEPTION_UNEXPECTED);
+ } finally {
+ // fsInput cannot be null if buffInput isn't, but test keeps compiler happy
+ if (buffInput != null && fsInput != null) {
+ buffInput.close();
+ fsInput.close();
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#load(InputStream, String, ResourceSet)} with valid inputStream and resourceSet.
+ * As the filename given is valid, expects the model to be loaded in an appropriate resource.
+ *
+ * @throws IOException
+ * Allows us not to catch it. Test just fails if thrown.
+ */
+ public void testLoadModelFromValidInputValidExtension() throws IOException {
+ for (File model : models) {
+ try {
+ final FileInputStream fsInput = new FileInputStream(model);
+ final BufferedInputStream buffInput = new BufferedInputStream(fsInput);
+ final ResourceSet resourceSet = new ResourceSetImpl();
+ final EObject result = ModelUtils.load(buffInput, model.getName(), resourceSet);
+
+ assertNotNull("ModelUtils didn't load its target model.", result);
+ assertEquals("Loaded object was associated to an unexpected resourceSet.", resourceSet,
+ result.eResource().getResourceSet());
+
+ buffInput.close();
+ fsInput.close();
+ } catch (FileNotFoundException e) {
+ fail(MESSAGE_FILENOTFOUNDEXCEPTION_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Called from initializer, this method allows retrieval of references to the files corresponding to the
+ * non-regression models.
+ *
+ * @param folder
+ * Folder in which model files are to be found.
+ */
+ private void scanForModels(File folder) {
+ // Ignores the folder containing non-standard models (uml, gmfgen, ...)
+ if (folder.getName().contains("nonstd"))
+ return;
+
+ final File[] subFolders = FileUtils.listDirectories(folder);
+ if (subFolders.length != 0) {
+ for (File aSubFolder : subFolders) {
+ scanForModels(aSubFolder);
+ }
+ } else if (folder.exists() && folder.isDirectory()) {
+ final File[] files = folder.listFiles();
+ for (File aFile : files) {
+ // All files are considered models regardless of their extension
+ if (!aFile.isDirectory() && !aFile.getName().startsWith(".")) {
+ models.add(aFile);
+ }
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/LoadFromStringTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/LoadFromStringTest.java
new file mode 100644
index 000000000..66bc50b33
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/LoadFromStringTest.java
@@ -0,0 +1,161 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.modelutils;
+
+import java.io.File;
+import java.io.IOException;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.tests.EMFCompareTestPlugin;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+/**
+ * Tests the behavior of {@link ModelUtils#load(String)}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class LoadFromStringTest extends TestCase {
+ /** This holds pathes to unreadable or inexistant files. */
+ private static final String[] INVALID_PATHES = {"/etc/shadow", "/etc/sudoers",
+ "/inputs/attribute/attributeChange/v1.ecore",
+ File.listRoots()[0].getAbsolutePath() + "projectname/modelname.extension", };
+
+ /** Message displayed when an unexpected {@link IOException} is thrown. */
+ private static final String MESSAGE_IOEXCEPTION_UNEXPECTED = "UnExpected IOException has been thrown.";
+
+ /** Message displayed when an unexpected {@link NullPointerException} is thrown. */
+ private static final String MESSAGE_NPE_UNEXPECTED = "UnExpected NullPointerException has been thrown.";
+
+ /** Prefix of all the valid pathes. */
+ private static final String PATH_PREFIX = '/' + EMFCompareTestPlugin.PLUGIN_ID + '/' + "inputs";
+
+ /** This holds strings referencing valid model locations. */
+ private static final String[] VALID_PATHES = {PATH_PREFIX + "/attribute/attributeChange/v1.ecore",
+ PATH_PREFIX + "/genmodel/attributeChange/v1.genmodel",
+ "platform:/plugin/org.eclipse.emf.compare.diff/model/diff.ecore", };
+
+ /**
+ * Tries and call {@link ModelUtils#load(String, ResourceSet)} with an invalid path and no resourceSet.
+ * <p>
+ * Expects an NPE to be thrown.
+ * </p>
+ */
+ public void testLoadInvalidPathNullResourceSet() {
+ for (String path : INVALID_PATHES) {
+ try {
+ ModelUtils.load(path, null);
+ fail("Expected NullPointerException hasn't been thrown.");
+ } catch (NullPointerException e) {
+ // Expected behavior
+ } catch (IOException e) {
+ fail(MESSAGE_IOEXCEPTION_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Tries and call {@link ModelUtils#load(String, ResourceSet)} with an invalid path but a valid
+ * resourceSet.
+ * <p>
+ * Expects an IOException to be thrown.
+ * </p>
+ */
+ public void testLoadInvalidPathValidResourceSet() {
+ for (String path : INVALID_PATHES) {
+ final ResourceSet resourceSet = new ResourceSetImpl();
+ try {
+ ModelUtils.load(path, resourceSet);
+ fail("Expected IOException hasn't been thrown.");
+ } catch (IOException e) {
+ // Expected behavior
+ }
+ }
+ }
+
+ /**
+ * Tries and call {@link ModelUtils#load(String, ResourceSet)} with <code>null</code> arguments or an
+ * empty String.
+ * <p>
+ * Expects an Illegal argument exception to be thrown.
+ * </p>
+ */
+ public void testLoadNullPath() {
+ final String errMsg = "Unexpected NullPointerException has been thrown.";
+ try {
+ ModelUtils.load((String)null, null);
+ fail(errMsg);
+ } catch (NullPointerException e) {
+ fail(MESSAGE_NPE_UNEXPECTED);
+ } catch (IOException e) {
+ fail(MESSAGE_IOEXCEPTION_UNEXPECTED);
+ } catch (IllegalArgumentException e) {
+ // Expected behavior
+ }
+ try {
+ ModelUtils.load("", null);
+ fail(errMsg);
+ } catch (NullPointerException e) {
+ fail(MESSAGE_NPE_UNEXPECTED);
+ } catch (IOException e) {
+ fail(MESSAGE_IOEXCEPTION_UNEXPECTED);
+ } catch (IllegalArgumentException e) {
+ // Expected behavior
+ }
+ }
+
+ /**
+ * Tries and call {@link ModelUtils#load(String, ResourceSet)} with a valid path but no resourceSet.
+ * <p>
+ * Expects an NPE to be thrown.
+ * </p>
+ */
+ public void testLoadValidPathNullResourceSet() {
+ final String errMsg = "Expected NullPointerException hasn't been thrown.";
+ for (String path : VALID_PATHES) {
+ try {
+ ModelUtils.load(path, null);
+ fail(errMsg);
+ } catch (NullPointerException e) {
+ // Expected behavior
+ } catch (IOException e) {
+ fail(MESSAGE_IOEXCEPTION_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Tries and call {@link ModelUtils#load(String, ResourceSet)} with both a valid path and a valid
+ * resourceSet.
+ * <p>
+ * Expects a non-null EObject associated to the resourceSet to be returned.
+ * </p>
+ */
+ public void testLoadValidPathValidResourceSet() {
+ for (String path : VALID_PATHES) {
+ final ResourceSet resourceSet = new ResourceSetImpl();
+ try {
+ final EObject result = ModelUtils.load(path, resourceSet);
+ assertNotNull("ModelUtils didn't load the expected model.", result);
+ assertEquals("Loaded model hasn't been associated with the expected resourceSet.",
+ resourceSet, result.eResource().getResourceSet());
+ assertTrue("Loaded model isn't the expected one.", result.eResource().getURI().toString()
+ .endsWith(path));
+ } catch (IOException e) {
+ fail(MESSAGE_IOEXCEPTION_UNEXPECTED);
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/ModelUtilsTestSuite.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/ModelUtilsTestSuite.java
new file mode 100755
index 000000000..94a43cd8a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/ModelUtilsTestSuite.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.modelutils;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+/**
+ * Launches all the JUnit tests for the {@link ModelUtils} class.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class ModelUtilsTestSuite extends TestCase {
+ /**
+ * Launches the test with the given arguments.
+ *
+ * @param args
+ * Arguments of the testCase.
+ */
+ public static void main(String[] args) {
+ TestRunner.run(suite());
+ }
+
+ /**
+ * Creates the {@link junit.framework.TestSuite TestSuite} for all the tests.
+ *
+ * @return The test suite containing all the tests.
+ */
+ public static Test suite() {
+ final TestSuite suite = new TestSuite("Tests for the ModelUtils behavior");
+ suite.addTestSuite(AttachResourceTest.class);
+ suite.addTestSuite(GetModelsFromTest.class);
+ suite.addTestSuite(LoadFromFileTest.class);
+ suite.addTestSuite(LoadFromInputStreamTest.class);
+ suite.addTestSuite(LoadFromStringTest.class);
+ suite.addTestSuite(SaveSerializeTest.class);
+ return suite;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/SaveSerializeTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/SaveSerializeTest.java
new file mode 100644
index 000000000..081266871
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/core/util/modelutils/SaveSerializeTest.java
@@ -0,0 +1,193 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.core.util.modelutils;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.emf.compare.tests.EMFCompareTestPlugin;
+import org.eclipse.emf.compare.tests.util.FileUtils;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+/**
+ * Tests the behavior of {@link ModelUtils#save(EObject, String)} and {@link ModelUtils#serialize(EObject)}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class SaveSerializeTest extends TestCase {
+ /** Full path to the directory containing the non-regression models. */
+ private static final String INPUT_DIRECTORY = "/inputs";
+
+ /**
+ * This array contains references to the root of all the models contained by {@link INPUT_DIRECTORY} or
+ * its subfolders.
+ */
+ private List<EObject> models = new ArrayList<EObject>();
+
+ /** Full path to the directory where will put the temporary saved files. */
+ private String outputDirectory;
+
+ /**
+ * Default constructor. Scans for model files in {@link #INPUT_DIRECTORY}.
+ */
+ public SaveSerializeTest() {
+ File inputDir = null;
+ try {
+ inputDir = new File(FileLocator.toFileURL(
+ EMFCompareTestPlugin.getDefault().getBundle().getEntry(INPUT_DIRECTORY)).getFile());
+ outputDirectory = FileLocator.toFileURL(
+ EMFCompareTestPlugin.getDefault().getBundle().getEntry("/data")).getFile();
+ } catch (IOException e) {
+ // shouldn't happen
+ assert false;
+ }
+
+ final File[] directories = FileUtils.listDirectories(inputDir);
+ if (directories != null) {
+ for (int i = 0; i < directories.length; i++) {
+ scanForModels(directories[i]);
+ }
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#save(EObject, String)} with <code>null</code> as the object to save. Expects
+ * a {@link NullPointerException} to be thrown.
+ */
+ public void testSaveNullRoot() {
+ try {
+ ModelUtils.save(null, outputDirectory);
+ fail("Expected NullPointerException hasn't been thrown by save().");
+ } catch (NullPointerException e) {
+ // We were expecting this
+ } catch (IOException e) {
+ fail("Unexpected IOException has been thrown by save().");
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#save(EObject, String)} with a valid EObject and a valid path where it has to be
+ * saved. Expects a non-empty File to be created at the specified path.
+ */
+ public void testSaveValidEObject() {
+ for (EObject modelRoot : models) {
+ try {
+ final String filePath = modelRoot.eResource().getURI().toFileString();
+ final String filename = filePath.substring(filePath.lastIndexOf(File.separatorChar) + 1);
+ ModelUtils.save(modelRoot, outputDirectory + File.separatorChar + filename);
+
+ final File savedFile = new File(outputDirectory + File.separatorChar + filename);
+ assertTrue("File hasn't been saved.", savedFile.exists() && savedFile.isFile());
+
+ final FileInputStream fsInput = new FileInputStream(savedFile);
+ assertNotSame("Saved file is empty.", -1, fsInput.read());
+
+ // Cleans up before next loop
+ fsInput.close();
+ savedFile.delete();
+ } catch (IOException e) {
+ fail("Unexpected IOException has been thrown by a valid call to save().");
+ }
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#save(EObject, String)} with <code>null</code> as the path where to save.
+ * Expects a {@link NullPointerException} to be thrown.
+ */
+ public void testSaveValidEObjectNullPath() {
+ for (EObject modelRoot : models) {
+ try {
+ ModelUtils.save(modelRoot, null);
+ fail("Expected NullPointerException hasn't been thrown by save().");
+ } catch (NullPointerException e) {
+ // We were expecting this
+ } catch (IOException e) {
+ fail("Unexpected IOException has been thrown by save().");
+ }
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#serialize(EObject)} with <code>null</code> as the object to serialize.
+ * Expects a {@link NullPointerException} to be thrown.
+ */
+ public void testSerializeNullRoot() {
+ try {
+ ModelUtils.serialize(null);
+ fail("Expected NullPointerException hasn't been thrown by serialize() operation.");
+ } catch (NullPointerException e) {
+ // We were expecting this
+ } catch (IOException e) {
+ fail("Unexpected IOException has been thrown by serialize() operation.");
+ }
+ }
+
+ /**
+ * Tests {@link ModelUtils#serialize(EObject)} with a valid EObject to serialize. Expects a non-empty
+ * String to be returned.
+ */
+ public void testSerializeValidEObject() {
+ for (EObject modelRoot : models) {
+ try {
+ final String result = ModelUtils.serialize(modelRoot);
+
+ assertNotNull("EObject hasn't been serialized by serialize().", result);
+ assertFalse("EObject has been serialized as an empty String", "".equals(result));
+ assertTrue("EObject hasn't been serialized as an XML object.", result.startsWith("<?xml"));
+ } catch (IOException e) {
+ fail("Unexpected IOException has been thrown by a valid call to save().");
+ }
+ }
+ }
+
+ /**
+ * Called from initializer, this method allows retrieval of references to the files corresponding to the
+ * non-regression models.
+ *
+ * @param folder
+ * Folder in which model files are to be found.
+ */
+ private void scanForModels(File folder) {
+ // Ignores the folder containing non-standard models (uml, gmfgen, ...)
+ if (folder.getName().contains("nonstd"))
+ return;
+
+ final File[] subFolders = FileUtils.listDirectories(folder);
+ if (subFolders.length != 0) {
+ for (File aSubFolder : subFolders) {
+ scanForModels(aSubFolder);
+ }
+ } else if (folder.exists() && folder.isDirectory()) {
+ final File[] files = folder.listFiles();
+ for (File aFile : files) {
+ // All files are considered models regardless of their extension
+ if (!aFile.isDirectory() && !aFile.getName().startsWith(".")) {
+ try {
+ models.add(ModelUtils.load(aFile, new ResourceSetImpl()));
+ } catch (IOException e) {
+ // Shouldn't happen
+ assert false;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/diff/DiffTestSuite.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/diff/DiffTestSuite.java
new file mode 100644
index 000000000..3dbc40057
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/diff/DiffTestSuite.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.diff;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+/**
+ * Tests for the diff plugin.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+public class DiffTestSuite extends TestCase {
+ /** Minimal -Xmx setting to run comparison tests. Set to 500m. */
+ private static final long MIN_XMX_SETTING = 500000000;
+
+ /**
+ * Launches the test with the given arguments.
+ *
+ * @param args
+ * Arguments of the testCase.
+ */
+ public static void main(String[] args) {
+ TestRunner.run(suite());
+ }
+
+ /**
+ * Creates the {@link junit.framework.TestSuite TestSuite} for all the test.
+ *
+ * @return The testsuite containing all the tests
+ */
+ public static Test suite() {
+ final TestSuite suite = new TestSuite("Tests for the diff plugin."); //$NON-NLS-1$
+ // These tests are too long/costly to be run with too low memory
+ if (Runtime.getRuntime().maxMemory() > MIN_XMX_SETTING) {
+ suite.addTestSuite(ThreeWayDiffTest.class);
+ suite.addTestSuite(TwoWayDiffTest.class);
+ }
+ suite.addTestSuite(MessagesTest.class);
+ return suite;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/diff/MessagesTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/diff/MessagesTest.java
new file mode 100644
index 000000000..7e4a45704
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/diff/MessagesTest.java
@@ -0,0 +1,231 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.diff;
+
+import java.lang.reflect.Array;
+import java.util.HashSet;
+import java.util.Locale;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.diff.EMFCompareDiffMessages;
+
+/**
+ * Tests Messages class. These tests successful completion heavily depends on org.eclipse.emf.compare.diff
+ * "messages.properties" file contents.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings({"unchecked", "nls", })
+public class MessagesTest extends TestCase {
+ /** Expected result of the parameterisable keys (only used if locale is en). */
+ private final String[] expectedForParameterisable = {"Couldn't copy value {0} of reference {1}",
+ "Attribute {0} in {1} has been remotely changed from {2} to {3}", };
+
+ /** Contains the expected results for the valid keys (only used if locale is en). */
+ private final String[] expectedForValidKeys = {"Illegal side value for object retrieval.",
+ "Priority cannot be null.", };
+
+ /** These will be used when testing message retrieval with invalid keys. */
+ private final String[] invalidKeys = {"invalidKey", "AddModelElementImpl.ToString1", "", "\u00ec", };
+
+ /** Contains possible parameters for the messages. */
+ private final Object[] messageParameters = {null, "", "Foehn", -1, new Long(10), '\u0043', new HashSet(),
+ "0x6c9a.^\\/", };
+
+ /** These two are valid, parameterisable keys. See org.eclipse.emf.compare.diff "messages.properties". */
+ private final String[] parameterisableKeys = {"EMFCompareEObjectCopier.MergeFailure",
+ "RemoteUpdateAttributeImpl.ToString", };
+
+ /** These are valid, un-parameterisable keys. See org.eclipse.emf.compare.diif "messages.properties". */
+ private final String[] validKeys = {"GenericDiffEngine.IllegalSide", "Descriptor.IllegalPriority", };
+
+ /**
+ * Tests {@link EMFCompareDiffMessages#getString(String, Object...)} with an invalid key. Expects the
+ * String
+ *
+ * <pre>
+ * &quot;!&quot; + key + &quot;!&quot;
+ * </pre>
+ *
+ * to be returned. Parameters won't affect result here.
+ */
+ public void testFormattedGetStringInvalidKey() {
+ for (int i = 0; i < messageParameters.length; i++) {
+ for (int j = i; j < messageParameters.length; j++) {
+ final Object[] parameters = partialArrayCopy(messageParameters, i, j);
+ for (final String invalidKey : invalidKeys) {
+ assertEquals("Unexpected result of getString() with an invalid key.",
+ '!' + invalidKey + '!', EMFCompareDiffMessages.getString(invalidKey, parameters));
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareDiffMessages#getString(String, Object...)} with <code>null</code> key. Expects a
+ * NullPointerException to be thrown. Parameters won't affect result here.
+ */
+ public void testFormattedGetStringNullKey() {
+ for (int i = 0; i < messageParameters.length; i++) {
+ for (int j = i; j < messageParameters.length; j++) {
+ final Object[] parameters = partialArrayCopy(messageParameters, i, j);
+ try {
+ EMFCompareDiffMessages.getString(null, parameters);
+ fail("Calling getString() with null key did not throw NullPointerException.");
+ } catch (final NullPointerException e) {
+ // This was expected
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareDiffMessages#getString(String, Object...)} with valid keys.
+ * <p>
+ * If the System locale is configured for english language, expects the String associated to the key in
+ * the properties file to be returned with all occurences of <code>&quot;{[0-9]*}&quot;</code> replaced by
+ * the correct parameter if any. Otherwise, expects the key to have been found, and the parameters to be
+ * correctly substituted.
+ * </p>
+ */
+ public void testFormattedGetStringValidKey() {
+ for (int i = 0; i < messageParameters.length; i++) {
+ for (int j = i; j < messageParameters.length; j++) {
+ final Object[] parameters = partialArrayCopy(messageParameters, i, j);
+ for (int k = 0; k < parameterisableKeys.length; k++) {
+ String expectedResult = expectedForParameterisable[k];
+ int parameterCount = 0;
+ while (expectedResult.matches(".*\\{[0-9]+\\}.*") && parameterCount < parameters.length) {
+ if (parameters[parameterCount] == null) {
+ expectedResult = expectedResult.replaceFirst("\\{[0-9]+\\}", "null");
+ } else {
+ expectedResult = expectedResult.replaceFirst("\\{[0-9]+\\}",
+ parameters[parameterCount].toString());
+ }
+ parameterCount++;
+ }
+ Locale previousLocale = null;
+ if (Locale.getDefault() != Locale.ENGLISH) {
+ previousLocale = Locale.getDefault();
+ }
+ Locale.setDefault(Locale.ENGLISH);
+ assertEquals("Unexpected formatted String returned by getString(String, Object...).",
+ expectedResult, EMFCompareDiffMessages.getString(parameterisableKeys[k],
+ parameters));
+ if (previousLocale != null) {
+ Locale.setDefault(previousLocale);
+ } else {
+ Locale.setDefault(Locale.FRENCH);
+ }
+ final String result = EMFCompareDiffMessages
+ .getString(parameterisableKeys[k], parameters);
+ assertFalse("Message class did not find an existing parameterisable key.", result
+ .equals('!' + "parameterisableKeys[k]" + '!'));
+ for (int l = 0; l < parameterCount; l++) {
+ if (parameters[l] != null) {
+ assertTrue("Message class did not substitute the parameter in the result.",
+ result.contains(parameters[l].toString()));
+ } else {
+ assertTrue("Message class did not substitute the parameter in the result.",
+ result.contains("null"));
+ }
+ }
+ if (previousLocale == null) {
+ Locale.setDefault(Locale.ENGLISH);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareDiffMessages#getString(String, Object...)} with valid keys and <code>null</code>
+ * as formatting parameter. Expects the result to be the same as the result of
+ * {@link EMFCompareDiffMessages#getString(String)}.
+ */
+ public void testFormattedGetStringValidKeyNullParameter() {
+ for (int i = 0; i < parameterisableKeys.length; i++) {
+ assertEquals("Unexpected formatted String returned by getString(String, Object...).",
+ EMFCompareDiffMessages.getString(parameterisableKeys[i]), EMFCompareDiffMessages
+ .getString(parameterisableKeys[i], (Object[])null));
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareDiffMessages#getString(String)} with an invalid key. Expects the String
+ *
+ * <pre>
+ * &quot;!&quot; + key + &quot;!&quot;
+ * </pre>
+ *
+ * to be returned.
+ */
+ public void testUnFormattedGetStringInvalidKey() {
+ for (final String invalidKey : invalidKeys) {
+ assertEquals("Unexpected result of getString() with an invalid key.", '!' + invalidKey + '!',
+ EMFCompareDiffMessages.getString(invalidKey));
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareDiffMessages#getString(String)} with <code>null</code> argument. Expects a
+ * NullPointerException to be thrown.
+ */
+ public void testUnFormattedGetStringNullKey() {
+ try {
+ EMFCompareDiffMessages.getString(null);
+ fail("Calling getString() with null argument did not throw NullPointerException.");
+ } catch (final NullPointerException e) {
+ // This was expected
+ }
+ }
+
+ /**
+ * Tests {@link EMFCompareDiffMessages#getString(String)} with valid keys. Expects the String associated
+ * to the key in the properties file to be returned.
+ */
+ public void testUnFormattedGetStringValidKey() {
+ for (int i = 0; i < validKeys.length; i++) {
+ if (Locale.getDefault().getLanguage().equalsIgnoreCase("en")) {
+ assertEquals("Unexpected String returned by getString(String).", expectedForValidKeys[i],
+ EMFCompareDiffMessages.getString(validKeys[i]));
+ } else {
+ final String result = EMFCompareDiffMessages.getString(validKeys[i]);
+ assertFalse("Message class did not find an existing parameterisable key.", result
+ .equals('!' + "parameterisableKeys[k]" + '!'));
+ }
+ }
+ }
+
+ /**
+ * This will return a partial copy of an array.
+ *
+ * @param <T>
+ * Type of the copied array.
+ * @param original
+ * Array to be copied.
+ * @param start
+ * starting index of the copy.
+ * @param end
+ * end index of the copy.
+ * @return Array containing a copy of the given range from <code>original</code>.
+ */
+ private <T> T[] partialArrayCopy(T[] original, int start, int end) {
+ final int range = end - start;
+ if (range < 0) {
+ throw new IllegalArgumentException("Illegal copy range.");
+ }
+ final T[] copy = (T[])Array.newInstance(original.getClass().getComponentType(), range);
+ System.arraycopy(original, start, copy, 0, Math.min(original.length - start, range));
+ return copy;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/diff/ThreeWayDiffTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/diff/ThreeWayDiffTest.java
new file mode 100644
index 000000000..5f9000328
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/diff/ThreeWayDiffTest.java
@@ -0,0 +1,338 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.diff;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.diff.metamodel.DiffElement;
+import org.eclipse.emf.compare.diff.metamodel.DiffGroup;
+import org.eclipse.emf.compare.diff.metamodel.DiffModel;
+import org.eclipse.emf.compare.diff.metamodel.ModelElementChangeLeftTarget;
+import org.eclipse.emf.compare.diff.service.DiffService;
+import org.eclipse.emf.compare.match.MatchOptions;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.compare.tests.util.EcoreModelUtils;
+import org.eclipse.emf.compare.util.EFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+// TODO testing : these tests are not covering conflicting changes
+/**
+ * Tests the behavior of the generic diff engine. Be aware that these tests will take a while to be executed.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class ThreeWayDiffTest extends TestCase {
+ /** This is the resource holding the first model we'll use to test the differencing process. */
+ private Resource testResource1;
+
+ /** This is the resource holding the second model we'll use to test the differencing process. */
+ private Resource testResource2;
+
+ /**
+ * Tests the behavior of the GenericDiffEngine with two distinct EObjects (a model and its deep copy
+ * slightly modified). The left model will be used as common ancestor.
+ * <p>
+ * We're assuming that the matching process is returning the expected result as it has been tested through
+ * the org.eclipse.emf.compare.tests.unit.match.* tests.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test3WayDiffDifferentModelsLocalChange() throws FactoryException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testResource1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ internalTest3WayDistinctModelsLocalChange();
+ }
+
+ /**
+ * Tests the behavior of the GenericDiffEngine with two distinct EObjects (a model and its deep copy
+ * slightly modified). The right model will be used as common ancestor.
+ * <p>
+ * We're assuming that the matching process is returning the expected result as it has been tested through
+ * the org.eclipse.emf.compare.tests.unit.match.* tests.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test3WayDiffDifferentModelsRemoteChange() throws FactoryException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testResource1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ internalTest3WayDistinctModelsRemoteChange();
+ }
+
+ /**
+ * Tests the behavior of the GenericDiffEngine with two equal EObjects (a model and its deep copy). The
+ * left model will be used as common ancestor.
+ * <p>
+ * We're assuming that the matching process is returning the expected result as it has been tested through
+ * the org.eclipse.emf.compare.tests.unit.match.* tests.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test3WayDiffEqualModelsLocalChange() throws FactoryException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testResource1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+
+ MatchModel match = null;
+ try {
+ match = MatchService.doResourceMatch(testResource1, testResource2, testResource1, getOptions());
+ } catch (final InterruptedException e) {
+ fail("modelMatch() threw an unexpected Exception.");
+ }
+ assertNotNull("Failed to match the models.", match);
+
+ final DiffModel diff = DiffService.doDiff(match, true);
+ assertNotNull("Failed to compute the models' diff.", diff);
+
+ final TreeIterator<EObject> diffIterator = diff.eAllContents();
+ int elementCount = 0;
+ while (diffIterator.hasNext()) {
+ final DiffElement aDiff = (DiffElement)diffIterator.next();
+ if (!(aDiff instanceof DiffGroup)) {
+ elementCount++;
+ }
+ }
+
+ assertEquals("There shouldn't have been a differences.", 0, elementCount);
+ }
+
+ /**
+ * Tests the behavior of the GenericDiffEngine with two equal EObjects (a model and its deep copy). The
+ * right model will be used as common ancestor.
+ * <p>
+ * We're assuming that the matching process is returning the expected result as it has been tested through
+ * the org.eclipse.emf.compare.tests.unit.match.* tests.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test3WayDiffEqualModelsRemoteChange() throws FactoryException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testResource1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+
+ MatchModel match = null;
+ try {
+ match = MatchService.doResourceMatch(testResource1, testResource2, testResource1, getOptions());
+ } catch (final InterruptedException e) {
+ fail("modelMatch threw an unexpected InterruptedException.");
+ }
+ assertNotNull("Failed to match the two models.", match);
+
+ final DiffModel diff = DiffService.doDiff(match, true);
+ assertNotNull("Failed to compute the two models' diff.", diff);
+
+ final TreeIterator<EObject> diffIterator = diff.eAllContents();
+ int elementCount = 0;
+ while (diffIterator.hasNext()) {
+ final DiffElement aDiff = (DiffElement)diffIterator.next();
+ if (!(aDiff instanceof DiffGroup)) {
+ elementCount++;
+ }
+ }
+
+ assertEquals("There shouldn't have been a single difference.", 0, elementCount);
+ }
+
+ /**
+ * Tests the behavior of the GenericDiffEngine with a <code>null</code> match model.
+ * <p>
+ * Expects a {@link NullPointerException} to be thrown.
+ * </p>
+ */
+ public void test3WayDiffNullEObjects() {
+ final String failNPE = "The differencing process did not throw the expected NullPointerException.";
+ try {
+ DiffService.doDiff((MatchModel)null, true);
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#tearDown()
+ */
+ @Override
+ protected void tearDown() {
+ // voids the testResources (and hopes gc passes by ... should we hint at it here with System.gc?)
+ if (testResource1 != null) {
+ testResource1.getContents().clear();
+ }
+ if (testResource2 != null) {
+ testResource2.getContents().clear();
+ }
+ testResource1 = null;
+ testResource2 = null;
+ }
+
+ /**
+ * This will return the map of options to be used for comparisons within this test class.
+ *
+ * @return Default options for matching.
+ */
+ private Map<String, Object> getOptions() {
+ final Map<String, Object> options = new HashMap<String, Object>();
+ options.put(MatchOptions.OPTION_DISTINCT_METAMODELS, Boolean.TRUE);
+ return options;
+ }
+
+ /**
+ * This handles the modification of the given model.
+ * <p>
+ * We'll retrieve the first Writer we find (see javadoc of {@link EcoreModelUtils#createMetaModel()}).
+ * First we copy this element, modify its name and void its "writtenBooks" reference to have a new element
+ * to add to the model, then we'll modify the original's "name" attribute to see if we can still match it.
+ * </p>
+ *
+ * @param copyModel
+ * The model to alter.
+ */
+ private void internalModifyModel(EObject copyModel) {
+ try {
+ EObject originalWriter = null;
+ EObject newElement = null;
+ for (final EObject element : copyModel.eContents()) {
+ if ("Writer".equals(element.eClass().getName())) {
+ originalWriter = element;
+ newElement = EcoreUtil.copy(element);
+ break;
+ }
+ }
+ // Change name
+ EFactory.eSet(newElement, "name", "ThisNameShouldntHaveBeenUsedYet");
+ // void books
+ final List<Object> values = new ArrayList<Object>();
+ values.addAll(EFactory.eGetAsList(newElement, "writtenBooks"));
+ for (final Object aValue : values) {
+ EFactory.eRemove(newElement, "writtenBooks", aValue);
+ }
+ // add this new element to model
+ EFactory.eAdd(copyModel, "authors", newElement);
+ // modify existing element
+ EFactory.eSet(originalWriter, "name", "ModifiedWriterName");
+ } catch (final FactoryException e) {
+ /*
+ * Shouldn't have happened if we had found a Writer as expected. Consider it a failure
+ */
+ fail("Couldn't modify original model to test differencing.");
+ }
+ }
+
+ /**
+ * Handles the modification and comparison of the test models for distinct objects comparison.
+ * <p>
+ * Match failures should have been tested in the match engine test suite. As for the differencing
+ * failures, we expect to find an AddModelElement and an UpdateAttribute in the result. Externalized here
+ * to avoid copy/pasting within the two tests making use of it.
+ * </p>
+ */
+ private void internalTest3WayDistinctModelsRemoteChange() {
+ internalModifyModel(testResource2.getContents().get(0));
+
+ MatchModel match = null;
+ try {
+ match = MatchService.doResourceMatch(testResource1, testResource2, testResource1, getOptions());
+ } catch (final InterruptedException e) {
+ fail("modelMatch() threw an unexpected InterruptedException.");
+ }
+ assertNotNull("Failed to match the three models.", match);
+
+ final DiffModel diff = DiffService.doDiff(match, true);
+ assertNotNull("Failed to compute the three models' diff.", diff);
+
+ final TreeIterator<EObject> diffIterator = diff.eAllContents();
+ int elementCount = 0;
+ int deletionCount = 0;
+ while (diffIterator.hasNext()) {
+ final DiffElement aDiff = (DiffElement)diffIterator.next();
+ if (aDiff instanceof ModelElementChangeLeftTarget) {
+ deletionCount++;
+ }
+ if (!(aDiff instanceof DiffGroup)) {
+ elementCount++;
+ }
+ }
+
+ // We're expecting two changes, one of which being a removal
+ assertEquals("Unexpected count of differences.", 2, elementCount);
+ assertEquals("Unexpected count of deletions in the DiffModel.", 1, deletionCount);
+ }
+
+ /**
+ * Handles the modification and comparison of the test models for distinct objects comparison.
+ * <p>
+ * Match failures should have been tested in the match engine test suite. As for the differencing
+ * failures, we expect to find a RemoteRemoveModelElement and a RemoteUpdateAttribute in the result.
+ * Externalized here to avoid copy/pasting within the two tests making use of it.
+ * </p>
+ */
+ private void internalTest3WayDistinctModelsLocalChange() {
+ internalModifyModel(testResource2.getContents().get(0));
+
+ MatchModel match = null;
+ try {
+ match = MatchService.doResourceMatch(testResource1, testResource2, testResource2, getOptions());
+ } catch (final InterruptedException e) {
+ fail("modelMatch() threw an unexpected InterruptedException.");
+ }
+ assertNotNull("Failed to match the three models.", match);
+
+ final DiffModel diff = DiffService.doDiff(match, true);
+ assertNotNull("Failed to compute the three models' diff.", diff);
+
+ final TreeIterator<EObject> diffIterator = diff.eAllContents();
+ int elementCount = 0;
+ int additionCount = 0;
+ while (diffIterator.hasNext()) {
+ final DiffElement aDiff = (DiffElement)diffIterator.next();
+ if (aDiff instanceof ModelElementChangeLeftTarget) {
+ additionCount++;
+ }
+ if (!(aDiff instanceof DiffGroup)) {
+ elementCount++;
+ }
+ }
+
+ // We're expecting two changes, one of which being an addition
+ assertEquals("Unexpected count of differences.", 2, elementCount);
+ assertEquals("Unexpected count of additions in the DiffModel.", 1, additionCount);
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/diff/TwoWayDiffTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/diff/TwoWayDiffTest.java
new file mode 100644
index 000000000..42b066645
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/diff/TwoWayDiffTest.java
@@ -0,0 +1,285 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.diff;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.diff.metamodel.DiffElement;
+import org.eclipse.emf.compare.diff.metamodel.DiffGroup;
+import org.eclipse.emf.compare.diff.metamodel.DiffModel;
+import org.eclipse.emf.compare.diff.metamodel.ModelElementChangeRightTarget;
+import org.eclipse.emf.compare.diff.service.DiffService;
+import org.eclipse.emf.compare.match.MatchOptions;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.compare.tests.util.EcoreModelUtils;
+import org.eclipse.emf.compare.util.EFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * Tests the behavior of the generic diff engine. Be aware that these tests will take a while to be executed.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class TwoWayDiffTest extends TestCase {
+ /** This is the resource holding the first model we'll use to test the differencing process. */
+ private Resource testResource1;
+
+ /** This is the resource holding the second model we'll use to test the differencing process. */
+ private Resource testResource2;
+
+ /**
+ * Tests the behavior of the GenericDiffEngine with two distinct EObjects (a model and its deep copy
+ * slightly modified).
+ * <p>
+ * We're assuming that the matching process is returning the expected result as it has been tested through
+ * the org.eclipse.emf.compare.tests.unit.match.* tests.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test2WayDiffDifferentBigModels() throws FactoryException {
+ final int writerCount = 150;
+ final int bookPerWriterCount = 4;
+ final long seed = System.nanoTime();
+ testResource1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ internalTest2WayDistinctModels();
+ }
+
+ /**
+ * Tests the behavior of the GenericDiffEngine with two distinct EObjects (a model and its deep copy
+ * slightly modified).
+ * <p>
+ * We're assuming that the matching process is returning the expected result as it has been tested through
+ * the org.eclipse.emf.compare.tests.unit.match.* tests.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test2WayDiffDifferentSmallModels() throws FactoryException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testResource1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ internalTest2WayDistinctModels();
+ }
+
+ /**
+ * Tests the behavior of the GenericDiffEngine with two equal EObjects (a model and its deep copy).
+ * <p>
+ * We're assuming that the matching process is returning the expected result as it has been tested through
+ * the org.eclipse.emf.compare.tests.unit.match.* tests.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test2WayDiffEqualBigModels() throws FactoryException {
+ final int writerCount = 150;
+ final int bookPerWriterCount = 4;
+ final long seed = System.nanoTime();
+ testResource1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ internalTest2wayEqualModels();
+ }
+
+ /**
+ * Tests the behavior of the GenericDiffEngine with two equal EObjects (a model and its deep copy).
+ * <p>
+ * We're assuming that the matching process is returning the expected result as it has been tested through
+ * the org.eclipse.emf.compare.tests.unit.match.* tests.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test2WayDiffEqualSmallModels() throws FactoryException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testResource1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ internalTest2wayEqualModels();
+ }
+
+ /**
+ * Tests the behavior of the GenericDiffEngine with a <code>null</code> match model.
+ * <p>
+ * Expects a {@link NullPointerException} to be thrown.
+ * </p>
+ */
+ public void test2WayDiffNullEObjects() {
+ final String failNPE = "The differencing process did not throw the expected NullPointerException.";
+ try {
+ DiffService.doDiff((MatchModel)null);
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#tearDown()
+ */
+ @Override
+ protected void tearDown() {
+ // voids the testResources (and hopes gc passes by ... should we hint at it here with System.gc?)
+ if (testResource1 != null) {
+ testResource1.getContents().clear();
+ }
+ if (testResource2 != null) {
+ testResource2.getContents().clear();
+ }
+ testResource1 = null;
+ testResource2 = null;
+ }
+
+ /**
+ * This will return the map of options to be used for comparisons within this test class.
+ *
+ * @return Default options for matching.
+ */
+ private Map<String, Object> getOptions() {
+ final Map<String, Object> options = new HashMap<String, Object>();
+ options.put(MatchOptions.OPTION_DISTINCT_METAMODELS, Boolean.TRUE);
+ return options;
+ }
+
+ /**
+ * This handles the modification of the given model.
+ * <p>
+ * We'll retrieve the first Writer we find (see javadoc of {@link EcoreModelUtils#createMetaModel()}).
+ * First we copy this element, modify its name and void its "writtenBooks" reference to have a new element
+ * to add to the model, then we'll modify the original's "name" attribute to see if we can still match it.
+ * </p>
+ *
+ * @param copyModel
+ * The model to alter.
+ */
+ private void internalModifyModel(EObject copyModel) {
+ try {
+ EObject originalWriter = null;
+ EObject newElement = null;
+ for (final EObject element : copyModel.eContents()) {
+ if ("Writer".equals(element.eClass().getName())) {
+ originalWriter = element;
+ newElement = EcoreUtil.copy(element);
+ break;
+ }
+ }
+ // Change name
+ EFactory.eSet(newElement, "name", "ThisNameShouldntHaveBeenUsedYet");
+ // void books
+ final List<Object> values = new ArrayList<Object>();
+ values.addAll(EFactory.eGetAsList(newElement, "writtenBooks"));
+ for (final Object aValue : values) {
+ EFactory.eRemove(newElement, "writtenBooks", aValue);
+ }
+ // add this new element to model
+ EFactory.eAdd(copyModel, "authors", newElement);
+ // modify existing element
+ EFactory.eSet(originalWriter, "name", "ModifiedWriterName");
+ } catch (final FactoryException e) {
+ /*
+ * Shouldn't have happened if we had found a Writer as expected. Consider it a failure
+ */
+ fail("Couldn't modify original model to test differencing.");
+ }
+ }
+
+ /**
+ * Handles the modification and comparison of the test models for distinct objects comparison.
+ * <p>
+ * Match failures should have been tests in the match engine test suite. As for the differencing failures,
+ * we expect to find an AddModelElement and a ModelElementChangeLeftTarget in the result. Externalized
+ * here to avoid copy/pasting within the two tests making use of it.
+ * </p>
+ */
+ private void internalTest2WayDistinctModels() {
+ internalModifyModel(testResource2.getContents().get(0));
+
+ MatchModel match = null;
+ try {
+ match = MatchService.doResourceMatch(testResource1, testResource2, getOptions());
+ } catch (final InterruptedException e) {
+ fail("modelMatch() threw an unexpected InterruptedException.");
+ }
+ assertNotNull("Failed to match the two models.", match);
+
+ final DiffModel diff = DiffService.doDiff(match);
+ assertNotNull("Failed to compute the two models' diff.", diff);
+
+ final TreeIterator<EObject> diffIterator = diff.eAllContents();
+ int elementCount = 0;
+ int deletionCount = 0;
+ while (diffIterator.hasNext()) {
+ final DiffElement aDiff = (DiffElement)diffIterator.next();
+ if (aDiff instanceof ModelElementChangeRightTarget) {
+ deletionCount++;
+ }
+ if (!(aDiff instanceof DiffGroup)) {
+ elementCount++;
+ }
+ }
+
+ // We're expecting two changes, one of which being a deletion
+ assertEquals("Unexpected count of differences.", 2, elementCount);
+ assertEquals("Unexpected count of additions in the DiffModel.", 1, deletionCount);
+ }
+
+ /**
+ * Handles the comparing of the test models for equal objects comparison.
+ * <p>
+ * Match failures should have been tests in the match engine test suite. As for the diff, we expect to
+ * find no differences in the resulting DiffModel. Externalized here to avoid copy/pasting within the two
+ * tests making use of it.
+ * </p>
+ */
+ private void internalTest2wayEqualModels() {
+ MatchModel match = null;
+ try {
+ match = MatchService.doResourceMatch(testResource1, testResource2, getOptions());
+ } catch (final InterruptedException e) {
+ fail("modelMatch() threw an unexpected InterruptedException.");
+ }
+ assertNotNull("Failed to match the two models.", match);
+
+ final DiffModel diff = DiffService.doDiff(match);
+ assertNotNull("Failed to compute the two models' diff.", diff);
+
+ final TreeIterator<EObject> diffIterator = diff.eAllContents();
+ int elementCount = 0;
+ while (diffIterator.hasNext()) {
+ final DiffElement aDiff = (DiffElement)diffIterator.next();
+ if (!(aDiff instanceof DiffGroup)) {
+ elementCount++;
+ }
+ }
+
+ assertEquals("There shouldn't have been a single difference.", 0, elementCount);
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/MatchTestSuite.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/MatchTestSuite.java
new file mode 100644
index 000000000..b1f0c3d93
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/MatchTestSuite.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+import org.eclipse.emf.compare.tests.unit.match.engine.MatchEngineTestSuite;
+import org.eclipse.emf.compare.tests.unit.match.statistic.similarity.NameSimilarityTest;
+import org.eclipse.emf.compare.tests.unit.match.statistic.similarity.ResourceSimilarityTest;
+import org.eclipse.emf.compare.tests.unit.match.statistic.similarity.structuresimilarity.StructureSimilarityTestSuite;
+
+/**
+ * Tests for the match plugin.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+public class MatchTestSuite extends TestCase {
+ /** Minimal -Xmx setting to run comparison tests. Set to 500m. */
+ private static final long MIN_XMX_SETTING = 500000000;
+
+ /**
+ * Launches the test with the given arguments.
+ *
+ * @param args
+ * Arguments of the testCase.
+ */
+ public static void main(String[] args) {
+ TestRunner.run(suite());
+ }
+
+ /**
+ * Creates the {@link junit.framework.TestSuite TestSuite} for all the test.
+ *
+ * @return The testsuite containing all the tests
+ */
+ public static Test suite() {
+ final TestSuite suite = new TestSuite("Tests for the match plugin."); //$NON-NLS-1$
+ suite.addTestSuite(NameSimilarityTest.class);
+ suite.addTestSuite(ResourceSimilarityTest.class);
+ suite.addTest(StructureSimilarityTestSuite.suite());
+ // These tests are too long/costly to be run with too low memory
+ if (Runtime.getRuntime().maxMemory() > MIN_XMX_SETTING)
+ suite.addTest(MatchEngineTestSuite.suite());
+ return suite;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/EnginesPriorityTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/EnginesPriorityTest.java
new file mode 100755
index 000000000..035851b36
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/EnginesPriorityTest.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine;
+
+import junit.framework.ComparisonFailure;
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.match.engine.IMatchEngine;
+import org.eclipse.emf.compare.match.service.MatchService;
+
+/**
+ * Test the engine contribution priority handling.
+ *
+ * @author <a href="mailto:cedric.brun@obeo.fr">Cedric Brun</a>
+ */
+public class EnginesPriorityTest extends TestCase {
+ /**
+ * Test the engine choosing with file extension.
+ *
+ * @throws ComparisonFailure
+ * Thrown when an assertEquals for String has failed.
+ */
+ public void testEngineFileExtension() throws ComparisonFailure {
+ IMatchEngine engine = null;
+ engine = MatchService.getBestMatchEngine("a"); //$NON-NLS-1$
+ assertEquals("AEngine", engine.getClass().getSimpleName()); //$NON-NLS-1$
+ engine = MatchService.getBestMatchEngine("b"); //$NON-NLS-1$
+ assertEquals("BEngine", engine.getClass().getSimpleName()); //$NON-NLS-1$
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/MatchEngineSelectionTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/MatchEngineSelectionTest.java
new file mode 100644
index 000000000..aa7982c77
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/MatchEngineSelectionTest.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine;
+
+import java.io.File;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.match.engine.IMatchEngine;
+import org.eclipse.emf.compare.match.service.MatchEngineDescriptor;
+import org.eclipse.emf.compare.match.service.MatchEngineRegistry;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.compare.tests.EMFCompareTestPlugin;
+import org.eclipse.emf.compare.tests.util.EcoreModelUtils;
+import org.eclipse.emf.compare.util.ModelIdentifier;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+/**
+ * This will test the behavior of the match engine selection.
+ *
+ * @author <a href="mailto:gonzague.reydet@obeo.fr">Gonzague Reydet</a>
+ */
+public class MatchEngineSelectionTest extends TestCase {
+ /** Full path to the model containing this test's input. */
+ private static final String INPUT_MODEL_PATH = "/inputs/genmodel/attributeChange/v1.genmodel"; //$NON-NLS-1$
+
+ /** Model that contains the test's input. */
+ private EObject inputModelFile;
+
+ /** This is the resource holding the first model we'll use to test the match engine selection. */
+ private Resource testResource1;
+
+ /** This is the resource holding the second model we'll use to test the match engine selection. */
+ private Resource testResource2;
+
+ /**
+ * Test the engine selection for a dynamic resource.
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void testEngineSelectionForDynamicResource() throws FactoryException {
+ testResource1 = EcoreModelUtils.createModel(1, 1).eResource();
+
+ final ModelIdentifier identifier = new ModelIdentifier(testResource1);
+ assertEquals("ecore", identifier.getExtension()); //$NON-NLS-1$
+
+ final IMatchEngine engine = MatchService.getBestMatchEngine(testResource1);
+ assertEquals("GenericMatchEngine", engine.getClass().getSimpleName()); //$NON-NLS-1$
+ }
+
+ /**
+ * Test the engine selection for namespace and namespace pattern.
+ */
+ public void testEngineSelectionForFileResource() {
+ final ModelIdentifier identifier = new ModelIdentifier(inputModelFile.eResource());
+ assertEquals("http://www.eclipse.org/emf/2002/GenModel", identifier.getNamespace()); //$NON-NLS-1$
+ assertEquals("genmodel", identifier.getExtension()); //$NON-NLS-1$
+
+ final IMatchEngine engine = MatchService.getBestMatchEngine(inputModelFile.eResource());
+ assertEquals("DEngine", engine.getClass().getSimpleName()); //$NON-NLS-1$
+
+ final List<MatchEngineDescriptor> descriptors = MatchEngineRegistry.INSTANCE
+ .getDescriptors(identifier);
+ assertEquals("DEngine", descriptors.get(0).getEngineInstance().getClass().getSimpleName()); //$NON-NLS-1$
+ assertEquals("EEngine", descriptors.get(1).getEngineInstance().getClass().getSimpleName()); //$NON-NLS-1$
+ assertEquals("GenericMatchEngine", descriptors.get(2).getEngineInstance().getClass().getSimpleName()); //$NON-NLS-1$
+ assertEquals(3, descriptors.size());
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void tearDown() {
+ // voids the testResources (and hopes gc passes by ... should we hint at it here with System.gc?)
+ if (testResource1 != null) {
+ testResource1.getContents().clear();
+ }
+ if (testResource2 != null) {
+ testResource2.getContents().clear();
+ }
+ testResource1 = null;
+ testResource2 = null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() throws Exception {
+ final File modelFile = new File(FileLocator.toFileURL(
+ EMFCompareTestPlugin.getDefault().getBundle().getEntry(INPUT_MODEL_PATH)).getFile());
+ inputModelFile = ModelUtils.load(modelFile, new ResourceSetImpl());
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/MatchEngineTestSuite.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/MatchEngineTestSuite.java
new file mode 100644
index 000000000..281ad33fc
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/MatchEngineTestSuite.java
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+/**
+ * Launches all the JUnit tests for the {@link DifferencesService}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class MatchEngineTestSuite extends TestCase {
+ /**
+ * Launches the test with the given arguments.
+ *
+ * @param args
+ * Arguments of the testCase.
+ */
+ public static void main(String[] args) {
+ TestRunner.run(suite());
+ }
+
+ /**
+ * Creates the {@link junit.framework.TestSuite TestSuite} for all the test.
+ *
+ * @return The test suite containing all the tests
+ */
+ public static Test suite() {
+ final TestSuite suite = new TestSuite("Tests for the generic match engine behavior");
+ suite.addTestSuite(EnginesPriorityTest.class);
+ suite.addTestSuite(MatchEngineSelectionTest.class);
+ suite.addTestSuite(MatchOptionsTest.class);
+ suite.addTestSuite(ThreeWayModelMatchTest.class);
+ suite.addTestSuite(ThreeWayContentMatchTest.class);
+ suite.addTestSuite(ThreeWayResourceMatchTest.class);
+ suite.addTestSuite(TwoWayModelMatchFragments.class);
+ suite.addTestSuite(TwoWayModelMatchTest.class);
+ suite.addTestSuite(TwoWayContentMatchTest.class);
+ suite.addTestSuite(TwoWayResourceMatchTest.class);
+ return suite;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/MatchOptionsTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/MatchOptionsTest.java
new file mode 100644
index 000000000..1663d8d27
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/MatchOptionsTest.java
@@ -0,0 +1,85 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.match.MatchOptions;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.compare.tests.util.EcoreModelUtils;
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * This will test the behavior of the generic match engine with each of the available options.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class MatchOptionsTest extends TestCase {
+ /**
+ * This will test the behavior of the match engine with different values of the option
+ * {@link MatchOptions#OPTION_DISTINCT_METAMODELS}.
+ * <p>
+ * We'll create two models here, each with a metamodel created through
+ * {@link EcoreModelUtils#createMetaModel(boolean)}. The meta-models of each model will be in a different
+ * resource though semantically identical. We then expect no elements to be matched when this option is
+ * set to <code>False</code>.
+ * <p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ * @throws InterruptedException
+ * Won't be thrown as we're not using progess monitors.
+ */
+ public void testDistinctMetamodelOption() throws FactoryException, InterruptedException {
+ final int writerCount = 50;
+ final int bookPerWriterCount = 4;
+ final long seed = System.nanoTime();
+
+ final Resource testResource = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed,
+ false, true).eResource();
+ final Resource sameMetaModel = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed,
+ false, false).eResource();
+ final Resource distinctMetaModel = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed,
+ false, true).eResource();
+
+ final Map<String, Object> options = new HashMap<String, Object>();
+ MatchModel match = MatchService.doResourceMatch(testResource, sameMetaModel, options);
+ assertEquals(
+ "There shouldn't have been a single unmatched element between a model and one using the same metamodel.",
+ 0, match.getUnmatchedElements().size());
+
+ // With distinct metamodels, EMF Compare will consider the roots as matched.
+ match = MatchService.doResourceMatch(testResource, distinctMetaModel, options);
+ assertEquals(
+ "We shouldn't have been able to match more than the roots when using distinct metamodel.", 0,
+ match.getMatchedElements().get(0).getSubMatchElements().size());
+
+ // Now let's set this option to true
+ options.put(MatchOptions.OPTION_DISTINCT_METAMODELS, true);
+
+ // As the tests will now be metamodel-independant, we expect to find a matched element for each
+ match = MatchService.doResourceMatch(testResource, sameMetaModel, options);
+ assertEquals(
+ "There shouldn't have been a single unmatched element between a model and one using the same metamodel.",
+ 0, match.getUnmatchedElements().size());
+
+ match = MatchService.doResourceMatch(testResource, distinctMetaModel, options);
+ assertEquals(
+ "There shouldn't have been a single unmatched element with OPTION_DISTINCT_METAMODELS set to true.",
+ 0, match.getUnmatchedElements().size());
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/ThreeWayContentMatchTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/ThreeWayContentMatchTest.java
new file mode 100644
index 000000000..019561667
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/ThreeWayContentMatchTest.java
@@ -0,0 +1,320 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.match.MatchOptions;
+import org.eclipse.emf.compare.match.metamodel.Match2Elements;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.compare.match.metamodel.UnmatchElement;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.compare.tests.util.EcoreModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * Tests the behavior of the GenericMatchEngine's implementation of the 3-way content match.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class ThreeWayContentMatchTest extends TestCase {
+ /** Name of the metamodel's &quot;Writer&quot; class. */
+ private static final String WRITER_CLASS_NAME = "Writer";
+
+ /** This is the EObject that will be used as the left one for the matching process. */
+ private EObject testEObject1;
+
+ /** This is the EObject that will be used as the right one for the matching process. */
+ private EObject testEObject2;
+
+ /**
+ * Tests the behavior with three distinct EObjects.
+ * <p>
+ * A model and its slightly modified deep copy are taken as roots, then we iterate through their content
+ * and match EObjects one after the other. A deep copy of the original model will be used as common
+ * ancestor.
+ * </p>
+ * <p>
+ * The compared models are flat and intended to be small for this test (6 to 15 elements). Since the
+ * compared EObject are totally distinct, expects the match model to contain an UnmatchedElement for each
+ * object contained within the compared objects.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ * @throws InterruptedException
+ * Won't be thrown since we've got no progress monitor.
+ */
+ public void test3WayContentMatchDifferentObjects() throws FactoryException, InterruptedException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testEObject1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ testEObject2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+
+ /*
+ * We'll create the list of the EObjects to be compared : all the writers of the library as "left"
+ * elements, all the books in the library as "right" elements. Writers will also be considered as
+ * common ancestors.
+ */
+ final List<EObject> eObjects1 = new ArrayList<EObject>();
+ final List<EObject> eObjects2 = new ArrayList<EObject>();
+ final TreeIterator<EObject> iteratorObj1 = testEObject1.eAllContents();
+ while (iteratorObj1.hasNext()) {
+ final EObject next = iteratorObj1.next();
+ if (next.eClass().getName().matches(WRITER_CLASS_NAME)) {
+ eObjects1.add(next);
+ }
+ }
+ final TreeIterator<EObject> iteratorObj2 = testEObject2.eAllContents();
+ while (iteratorObj2.hasNext()) {
+ final EObject next = iteratorObj2.next();
+ if (next.eClass().getName().matches("Book")) {
+ eObjects2.add(next);
+ }
+ }
+
+ // now tests the matching process
+ for (int i = 0; i < eObjects1.size(); i++) {
+ final EObject obj1 = eObjects1.get(i);
+ for (int j = 0; j < eObjects2.size(); j++) {
+ final EObject obj2 = eObjects2.get(j);
+
+ final MatchModel match = MatchService.doContentMatch(obj1, obj2, obj1, getOptions());
+ assertNotNull("Failed to match the three objects.", match);
+
+ int elementCount = 0;
+ final TreeIterator<EObject> iterator1 = obj1.eAllContents();
+ while (iterator1.hasNext()) {
+ final EObject next = iterator1.next();
+ boolean found = false;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ final EObject nextMatch = matchIterator.next();
+ if (nextMatch instanceof UnmatchElement
+ && ((UnmatchElement)nextMatch).getElement().equals(next)) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ fail("contentMatch() did not found an unmatch for every element of the original object.");
+ }
+ elementCount++;
+ }
+ final TreeIterator<EObject> iterator2 = obj2.eAllContents();
+ while (iterator2.hasNext()) {
+ final EObject next = iterator2.next();
+ boolean found = false;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ final EObject nextMatch = matchIterator.next();
+ if (nextMatch instanceof UnmatchElement
+ && ((UnmatchElement)nextMatch).getElement().equals(next)) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ fail("contentMatch() did not found an unmatch for every element of the original object.");
+ }
+ elementCount++;
+ }
+
+ // Note : need to add 2 to the element count this none of the two roots has been counted yet
+ assertEquals("contentMatch() shouldn't have found a match element.", elementCount + 2, match
+ .getUnmatchedElements().size());
+
+ // We shouldn't find a single MatchElement
+ assertTrue("contentMatch() found a matched element in the compared objects", match
+ .getMatchedElements() == null
+ || match.getMatchedElements().size() == 0);
+ }
+ }
+ }
+
+ /**
+ * Tests the behavior with three equal EObjects.
+ * <p>
+ * A model and its deep copy are taken as roots, then we iterate through their content and match EObjects
+ * one after the other. The original model's deep copy will be considered common ancestor.
+ * </p>
+ * <p>
+ * The compared models are flat and intended to be small for this test (6 to 15 elements). Expects the
+ * matchModel to contain a mapping for each and every EObject of the test model.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ * @throws InterruptedException
+ * Won't be thrown: we're not using Progress monitors here.
+ */
+ public void test3WayContentMatchEqualEObjects() throws FactoryException, InterruptedException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testEObject1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ testEObject2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+
+ /*
+ * We'll create the list of the EObjects to be compared : all the writers and books contained by the
+ * library. We won't compare the library itself (this is handled with modelMatch's tests) or the
+ * objects' structural features.
+ */
+ final List<EObject> eObjects1 = new ArrayList<EObject>();
+ final List<EObject> eObjects2 = new ArrayList<EObject>();
+ final TreeIterator<EObject> iterator1 = testEObject1.eAllContents();
+ while (iterator1.hasNext()) {
+ final EObject next = iterator1.next();
+ if (next.eClass().getName().matches(WRITER_CLASS_NAME + "|Book")) {
+ eObjects1.add(next);
+ }
+ }
+ final TreeIterator<EObject> iterator2 = testEObject2.eAllContents();
+ while (iterator2.hasNext()) {
+ final EObject next = iterator2.next();
+ if (next.eClass().getName().matches(WRITER_CLASS_NAME + "|Book")) {
+ eObjects2.add(next);
+ }
+ }
+
+ assertEquals("There isn't the same number of element in both of the objects.", eObjects1.size(),
+ eObjects2.size());
+
+ // now tests the matching process
+ for (int i = 0; i < eObjects1.size(); i++) {
+ final EObject obj1 = eObjects1.get(i);
+ final EObject obj2 = eObjects2.get(i);
+
+ final MatchModel match = MatchService.doContentMatch(obj1, obj2, obj1, getOptions());
+ assertNotNull("Failed to match the three objects.", match);
+
+ int elementCount = 0;
+ final TreeIterator<EObject> iteratorObj1 = obj1.eAllContents();
+ while (iteratorObj1.hasNext()) {
+ final EObject next = iteratorObj1.next();
+ boolean found = false;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ final EObject nextMatch = matchIterator.next();
+ if (nextMatch instanceof Match2Elements
+ && ((Match2Elements)nextMatch).getLeftElement().equals(next)
+ || (nextMatch instanceof UnmatchElement && ((UnmatchElement)nextMatch)
+ .getElement().equals(next))) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ fail("contentMatch() did not found a match for every element of the original object.");
+ }
+ elementCount++;
+ }
+
+ int matchElementCount = 0;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ if (matchIterator.next() instanceof Match2Elements) {
+ matchElementCount++;
+ }
+ }
+
+ /*
+ * cannot be less elements since we've found a mapping for each at this point. Note that we need
+ * to add 1 to the element count since the object itself hasn't been counted yet.
+ */
+ assertEquals("contentMatch() found more matches than there are elements in the original object.",
+ elementCount + 1, matchElementCount);
+
+ // We shouldn't find a single UnMatchElement
+ assertTrue("contentMatch() found an unmatched element in the compared objects", match
+ .getUnmatchedElements() == null
+ || match.getUnmatchedElements().size() == 0);
+ }
+ }
+
+ /**
+ * Tests the behavior with <code>null</code> as the compared EObjects.
+ * <p>
+ * Expects a {@link NullPointerException} to be thrown.
+ * </p>
+ */
+ public void test3WayContentMatchNullEObjects() {
+ final String failNPE = "contentMatch() with null objects did not throw the expected NullPointerException.";
+ final String failInterrupt = "modelMatch() with null objects threw an unexpected InterruptedException.";
+ try {
+ MatchService.doContentMatch(null, EcoreFactory.eINSTANCE.createEObject(), EcoreFactory.eINSTANCE
+ .createEObject(), getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ try {
+ MatchService.doContentMatch(EcoreFactory.eINSTANCE.createEObject(), null, EcoreFactory.eINSTANCE
+ .createEObject(), getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ try {
+ MatchService.doContentMatch(EcoreFactory.eINSTANCE.createEObject(), EcoreFactory.eINSTANCE
+ .createEObject(), null, getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void tearDown() {
+ // voids the testModels (and hopes gc passes by ... should we hint at it here with System.gc?)
+ if (testEObject1 != null) {
+ EcoreUtil.remove(testEObject1);
+ }
+ if (testEObject2 != null) {
+ EcoreUtil.remove(testEObject2);
+ }
+ testEObject1 = null;
+ testEObject2 = null;
+ }
+
+ /**
+ * This will return the map of options to be used for comparisons within this test class.
+ *
+ * @return Default options for matching.
+ */
+ private Map<String, Object> getOptions() {
+ final Map<String, Object> options = new HashMap<String, Object>();
+ options.put(MatchOptions.OPTION_DISTINCT_METAMODELS, Boolean.TRUE);
+ return options;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/ThreeWayModelMatchTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/ThreeWayModelMatchTest.java
new file mode 100644
index 000000000..1003f693a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/ThreeWayModelMatchTest.java
@@ -0,0 +1,363 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.match.MatchOptions;
+import org.eclipse.emf.compare.match.metamodel.Match2Elements;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.compare.match.metamodel.UnmatchElement;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.compare.tests.util.EcoreModelUtils;
+import org.eclipse.emf.compare.util.EFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * Tests the behavior of the GenericMatchEngine's implementation of the 3-way model match.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class ThreeWayModelMatchTest extends TestCase {
+ /** This is the root of the first model we'll use to test the matching process. */
+ private EObject testModel1;
+
+ /** This is the root of the second model we'll use to test the matching process. */
+ private EObject testModel2;
+
+ /** This is the root of the ancestor model we'll use to test the matching process. */
+ private EObject testModel3;
+
+ /**
+ * Tests the behavior with three distinct EObjects (a model and its deep copy slightly modified).
+ * <p>
+ * The compared models are flat and intended to be a little bigger for this test (150 to 600 elements).
+ * Expects the matchModel to contain a mapping for each and every EObject of the test model, and an
+ * {@link UnMatchElement} for each element added in the copy. There will be no conflictual change for this
+ * test.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test3WayModelMatchDifferentBigObjects() throws FactoryException {
+ final int writerCount = 150;
+ final int bookPerWriterCount = 4;
+ final long seed = System.nanoTime();
+ testModel1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ testModel2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ testModel3 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ internalTest3WayDistinctModels();
+ }
+
+ /**
+ * Tests the behavior with three distinct EObjects (a model and its deep copy slightly modified).
+ * <p>
+ * The compared models are flat and intended to be small for this test (6 to 15 elements). Expects the
+ * matchModel to contain a mapping for each and every EObject of the test model, and an
+ * {@link UnMatchElement} for each element added in the copy.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test3WayModelMatchDifferentSmallObjects() throws FactoryException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testModel1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ testModel2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ testModel3 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ internalTest3WayDistinctModels();
+ }
+
+ /**
+ * Tests the behavior with equal EObjects (a model and its deep copies).
+ * <p>
+ * The compared models are flat and intended to be a little bigger for this test (150 to 600 elements).
+ * Expects the matchModel to contain a mapping for each and every EObject of the test model.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test3WayModelMatchEqualBigEObjects() throws FactoryException {
+ final int writerCount = 150;
+ final int bookPerWriterCount = 4;
+ final long seed = System.nanoTime();
+ testModel1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ testModel2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ testModel3 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ internalTest3wayEqualModels();
+ }
+
+ /**
+ * Tests the behavior with equal EObjects (a model and its deep copies).
+ * <p>
+ * The compared models are flat and intended to be small for this test (6 to 15 elements). Expects the
+ * matchModel to contain a mapping for each and every EObject of the test model.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test3WayModelMatchEqualSmallEObjects() throws FactoryException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testModel1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ testModel2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ testModel3 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ internalTest3wayEqualModels();
+ }
+
+ /**
+ * Tests the behavior with <code>null</code> as the compared EObjects.
+ * <p>
+ * Expects a {@link NullPointerException} to be thrown.
+ * </p>
+ */
+ public void test3WayModelMatchNullEObjects() {
+ final String failNPE = "modelMatch() with null objects did not throw the expected NullPointerException.";
+ final String failInterrupt = "modelMatch() with null objects threw an unexpected InterruptedException.";
+ try {
+ MatchService.doMatch(null, EcoreFactory.eINSTANCE.createEObject(), null, getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ try {
+ MatchService.doMatch(null, null, EcoreFactory.eINSTANCE.createEObject(), getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ try {
+ MatchService.doMatch(null, EcoreFactory.eINSTANCE.createEObject(), (EObject)null, getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ try {
+ MatchService.doMatch(null, null, EcoreFactory.eINSTANCE.createEObject(), getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void tearDown() {
+ // voids the testModels (and hopes gc passes by ... should we hint at it here with System.gc?)
+ if (testModel1 != null) {
+ EcoreUtil.remove(testModel1);
+ }
+ if (testModel2 != null) {
+ EcoreUtil.remove(testModel2);
+ }
+ if (testModel3 != null) {
+ EcoreUtil.remove(testModel3);
+ }
+ testModel1 = null;
+ testModel2 = null;
+ testModel3 = null;
+ }
+
+ /**
+ * This will return the map of options to be used for comparisons within this test class.
+ *
+ * @return Default options for matching.
+ */
+ private Map<String, Object> getOptions() {
+ final Map<String, Object> options = new HashMap<String, Object>();
+ options.put(MatchOptions.OPTION_DISTINCT_METAMODELS, Boolean.TRUE);
+ return options;
+ }
+
+ /**
+ * This handles the modification of the given model.
+ * <p>
+ * We'll retrieve the first Writer we find (see javadoc of {@link EcoreModelUtils#createMetaModel()}).
+ * First we copy this element, modify its name and void its "writtenBooks" reference to have a new element
+ * to add to the model, then we'll modify the original's "name" attribute to see if we can still match it.
+ * </p>
+ *
+ * @param copyModel
+ * The model to alter.
+ */
+ private void internalModifyModel(EObject copyModel) {
+ try {
+ EObject originalWriter = null;
+ EObject newElement = null;
+ for (final EObject element : copyModel.eContents()) {
+ if ("Writer".equals(element.eClass().getName())) {
+ originalWriter = element;
+ newElement = EcoreUtil.copy(element);
+ break;
+ }
+ }
+ // Change name
+ EFactory.eSet(newElement, "name", "ThisNameShouldntHaveBeenUsedYet");
+ // void books
+ final List<Object> values = new ArrayList<Object>();
+ values.addAll(EFactory.eGetAsList(newElement, "writtenBooks"));
+ for (final Object aValue : values) {
+ EFactory.eRemove(newElement, "writtenBooks", aValue);
+ }
+ // add this new element to model
+ EFactory.eAdd(copyModel, "authors", newElement);
+ // modify existing element
+ EFactory.eSet(originalWriter, "name", "ModifiedWriterName");
+ } catch (final FactoryException e) {
+ /*
+ * Shouldn't have happened if we had found a Writer as expected. Consider it a failure
+ */
+ fail("Couldn't modify original model to test matching.");
+ }
+ }
+
+ /**
+ * Handles the modification and comparing of the test models for distinct objects comparison.
+ * <p>
+ * This will fail if an unexpected exception is thrown, we did not find a mapping for each element of
+ * <code>testModel</code> or there were no UnMatchElements for the added objects. Externalized here to
+ * avoid copy/pasting within the tests making use of it.
+ * </p>
+ */
+ private void internalTest3WayDistinctModels() {
+ internalModifyModel(testModel2);
+
+ /*
+ * matching models
+ */
+ MatchModel match = null;
+ try {
+ match = MatchService.doMatch(testModel1, testModel2, testModel3, getOptions());
+ } catch (final InterruptedException e) {
+ fail("modelMatch() threw an unexpected InterruptedException while comparing three models.");
+ }
+
+ assertNotNull("Failed to match the three models.", match);
+ // keeps compiler happy
+ assert match != null;
+
+ int elementCount = 0;
+ final TreeIterator<EObject> iterator = testModel1.eAllContents();
+ while (iterator.hasNext()) {
+ final EObject next = iterator.next();
+ boolean found = false;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ final EObject nextMatch = matchIterator.next();
+ if (nextMatch instanceof Match2Elements
+ && ((Match2Elements)nextMatch).getLeftElement().equals(next)
+ || nextMatch instanceof UnmatchElement
+ && ((UnmatchElement)nextMatch).getElement().equals(next)) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ fail("modelMatch() did not found a match for every element of the original model with three way comparison.");
+ }
+ elementCount++;
+ }
+
+ int matchElementCount = 0;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ if (matchIterator.next() instanceof Match2Elements) {
+ matchElementCount++;
+ }
+ }
+
+ /*
+ * cannot be less elements since we've found a mapping for each at this point. Note that we need to
+ * add 1 to the model element count since the root hasn't been counted yet.
+ */
+ assertEquals("modelMatch() found more matches than there are elements in the left model.",
+ elementCount + 1, matchElementCount);
+
+ // We should find one single UnMatchElement corresponding to the added modelElement
+ assertTrue("modelMatch() did not found the unmatched element we added in the right model.", match
+ .getUnmatchedElements() != null
+ && match.getUnmatchedElements().size() == 1);
+ }
+
+ /**
+ * Handles the comparing of the test models for equal objects comparison.
+ * <p>
+ * This will fail if an unexpected exception is thrown or we did not find a mapping for each element of
+ * the model. Externalized here to avoid copy/pasting within the two tests making use of it.
+ * </p>
+ */
+ private void internalTest3wayEqualModels() {
+ try {
+ final MatchModel match = MatchService.doMatch(testModel1, testModel2, testModel3, getOptions());
+
+ int elementCount = 0;
+ final TreeIterator<EObject> iterator = testModel1.eAllContents();
+ while (iterator.hasNext()) {
+ final EObject next = iterator.next();
+ boolean found = false;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ final EObject nextMatch = matchIterator.next();
+ if (((Match2Elements)nextMatch).getLeftElement().equals(next)) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ fail("modelMatch() did not found a match for every element of two equal EObjects.");
+ }
+ elementCount++;
+ }
+
+ int matchElementCount = 0;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ matchIterator.next();
+ matchElementCount++;
+ }
+
+ // cannot be less elements since we've found a mapping for each at this point.
+ // Note that we need to add 1 to the model element count since the root hasn't been counted yet.
+ assertEquals("modelMatch() found more matches than there are elements in the model.",
+ elementCount + 1, matchElementCount);
+ } catch (final InterruptedException e) {
+ fail("modelMatch() threw an unexpected InterruptedException.");
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/ThreeWayResourceMatchTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/ThreeWayResourceMatchTest.java
new file mode 100644
index 000000000..3337d05b1
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/ThreeWayResourceMatchTest.java
@@ -0,0 +1,365 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.match.MatchOptions;
+import org.eclipse.emf.compare.match.metamodel.Match2Elements;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.compare.match.metamodel.UnmatchElement;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.compare.tests.util.EcoreModelUtils;
+import org.eclipse.emf.compare.util.EFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * Tests the behavior ofthe GenericMatchEngine's implementation of the 3-way resource match.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class ThreeWayResourceMatchTest extends TestCase {
+ /** This is the resource holding first model we'll use to test the matching process. */
+ private Resource testResource1;
+
+ /** This is the resource holding the second model we'll use to test the matching process. */
+ private Resource testResource2;
+
+ /** This is the resource holding the ancestor model we'll use to test the matching process. */
+ private Resource testResource3;
+
+ /**
+ * Tests the behavior with three distinct EObjects (a model and its deep copy slightly modified).
+ * <p>
+ * The compared models are flat and intended to be a little bigger for this test (150 to 600 elements).
+ * Expects the matchModel to contain a mapping for each and every EObject of the test model, and an
+ * {@link UnMatchElement} for each element added in the copy. There will be no conflictual change for this
+ * test.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test3WayModelMatchDifferentBigObjects() throws FactoryException {
+ final int writerCount = 150;
+ final int bookPerWriterCount = 4;
+ final long seed = System.nanoTime();
+ testResource1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource3 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ internalTest3WayDistinctModels();
+ }
+
+ /**
+ * Tests the behavior with three distinct EObjects (a model and its deep copy slightly modified).
+ * <p>
+ * The compared models are flat and intended to be small for this test (6 to 15 elements). Expects the
+ * matchModel to contain a mapping for each and every EObject of the test model, and an
+ * {@link UnMatchElement} for each element added in the copy.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test3WayModelMatchDifferentSmallObjects() throws FactoryException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testResource1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource3 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ internalTest3WayDistinctModels();
+ }
+
+ /**
+ * Tests the behavior with equal EObjects (a model and its deep copies).
+ * <p>
+ * The compared models are flat and intended to be a little bigger for this test (150 to 600 elements).
+ * Expects the matchModel to contain a mapping for each and every EObject of the test model.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test3WayModelMatchEqualBigEObjects() throws FactoryException {
+ final int writerCount = 150;
+ final int bookPerWriterCount = 4;
+ final long seed = System.nanoTime();
+ testResource1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource3 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ internalTest3wayEqualModels();
+ }
+
+ /**
+ * Tests the behavior with equal EObjects (a model and its deep copies).
+ * <p>
+ * The compared models are flat and intended to be small for this test (6 to 15 elements). Expects the
+ * matchModel to contain a mapping for each and every EObject of the test model.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test3WayModelMatchEqualSmallEObjects() throws FactoryException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testResource1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource3 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ internalTest3wayEqualModels();
+ }
+
+ /**
+ * Tests the behavior with <code>null</code> as the compared EObjects.
+ * <p>
+ * Expects a {@link NullPointerException} to be thrown.
+ * </p>
+ */
+ public void test3WayModelMatchNullEObjects() {
+ final String failNPE = "modelMatch() with null objects did not throw the expected NullPointerException.";
+ final String failInterrupt = "modelMatch() with null objects threw an unexpected InterruptedException.";
+ try {
+ MatchService.doResourceMatch(null, new ResourceImpl(), null, getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ try {
+ MatchService.doResourceMatch(null, null, new ResourceImpl(), getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ try {
+ MatchService.doResourceMatch(null, new ResourceImpl(), null, getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ try {
+ MatchService.doResourceMatch(null, null, new ResourceImpl(), getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void tearDown() {
+ // voids the testModels (and hopes gc passes by ... should we hint at it here with System.gc?)
+ if (testResource1 != null) {
+ testResource1.getContents().clear();
+ }
+ if (testResource2 != null) {
+ testResource2.getContents().clear();
+ }
+ if (testResource3 != null) {
+ testResource3.getContents().clear();
+ }
+ testResource1 = null;
+ testResource2 = null;
+ testResource3 = null;
+ }
+
+ /**
+ * This will return the map of options to be used for comparisons within this test class.
+ *
+ * @return Default options for matching.
+ */
+ private Map<String, Object> getOptions() {
+ final Map<String, Object> options = new HashMap<String, Object>();
+ options.put(MatchOptions.OPTION_DISTINCT_METAMODELS, Boolean.TRUE);
+ return options;
+ }
+
+ /**
+ * This handles the modification of the given model.
+ * <p>
+ * We'll retrieve the first Writer we find (see javadoc of {@link EcoreModelUtils#createMetaModel()}).
+ * First we copy this element, modify its name and void its "writtenBooks" reference to have a new element
+ * to add to the model, then we'll modify the original's "name" attribute to see if we can still match it.
+ * </p>
+ *
+ * @param copyModel
+ * The model to alter.
+ */
+ private void internalModifyModel(EObject copyModel) {
+ try {
+ EObject originalWriter = null;
+ EObject newElement = null;
+ for (final EObject element : copyModel.eContents()) {
+ if ("Writer".equals(element.eClass().getName())) {
+ originalWriter = element;
+ newElement = EcoreUtil.copy(element);
+ break;
+ }
+ }
+ // Change name
+ EFactory.eSet(newElement, "name", "ThisNameShouldntHaveBeenUsedYet");
+ // void books
+ final List<Object> values = new ArrayList<Object>();
+ values.addAll(EFactory.eGetAsList(newElement, "writtenBooks"));
+ for (final Object aValue : values) {
+ EFactory.eRemove(newElement, "writtenBooks", aValue);
+ }
+ // add this new element to model
+ EFactory.eAdd(copyModel, "authors", newElement);
+ // modify existing element
+ EFactory.eSet(originalWriter, "name", "ModifiedWriterName");
+ } catch (final FactoryException e) {
+ /*
+ * Shouldn't have happened if we had found a Writer as expected. Consider it a failure
+ */
+ fail("Couldn't modify original model to test matching.");
+ }
+ }
+
+ /**
+ * Handles the modification and comparing of the test models for distinct objects comparison.
+ * <p>
+ * This will fail if an unexpected exception is thrown, we did not find a mapping for each element of
+ * <code>testResource</code> or there were no UnMatchElements for the added objects. Externalized here to
+ * avoid copy/pasting within the tests making use of it.
+ * </p>
+ */
+ private void internalTest3WayDistinctModels() {
+ internalModifyModel(testResource2.getContents().get(0));
+
+ /*
+ * matching models
+ */
+ MatchModel match = null;
+ try {
+ match = MatchService.doResourceMatch(testResource1, testResource2, testResource3, getOptions());
+ } catch (final InterruptedException e) {
+ fail("modelMatch() threw an unexpected InterruptedException while comparing three models.");
+ }
+
+ assertNotNull("Failed to match the three models.", match);
+ // keeps compiler happy
+ assert match != null;
+
+ int elementCount = 0;
+ final TreeIterator<EObject> iterator = testResource1.getContents().get(0).eAllContents();
+ while (iterator.hasNext()) {
+ final EObject next = iterator.next();
+ boolean found = false;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ final EObject nextMatch = matchIterator.next();
+ if (nextMatch instanceof Match2Elements
+ && ((Match2Elements)nextMatch).getLeftElement().equals(next)
+ || nextMatch instanceof UnmatchElement
+ && ((UnmatchElement)nextMatch).getElement().equals(next)) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ fail("modelMatch() did not found a match for every element of the original model with three way comparison.");
+ }
+ elementCount++;
+ }
+
+ int matchElementCount = 0;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ if (matchIterator.next() instanceof Match2Elements) {
+ matchElementCount++;
+ }
+ }
+
+ /*
+ * cannot be less elements since we've found a mapping for each at this point. Note that we need to
+ * add 1 to the model element count since the root hasn't been counted yet.
+ */
+ assertEquals("modelMatch() found more matches than there are elements in the left model.",
+ elementCount + 1, matchElementCount);
+
+ // We should find one single UnMatchElement corresponding to the added modelElement
+ assertTrue("modelMatch() did not found the unmatched element we added in the right model.", match
+ .getUnmatchedElements() != null
+ && match.getUnmatchedElements().size() == 1);
+ }
+
+ /**
+ * Handles the comparing of the test models for equal objects comparison.
+ * <p>
+ * This will fail if an unexpected exception is thrown or we did not find a mapping for each element of
+ * the model. Externalized here to avoid copy/pasting within the two tests making use of it.
+ * </p>
+ */
+ private void internalTest3wayEqualModels() {
+ try {
+ final MatchModel match = MatchService.doResourceMatch(testResource1, testResource2,
+ testResource3, getOptions());
+
+ int elementCount = 0;
+ final TreeIterator<EObject> iterator = testResource1.getContents().get(0).eAllContents();
+ while (iterator.hasNext()) {
+ final EObject next = iterator.next();
+ boolean found = false;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ final EObject nextMatch = matchIterator.next();
+ if (((Match2Elements)nextMatch).getLeftElement().equals(next)) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ fail("modelMatch() did not found a match for every element of two equal EObjects.");
+ }
+ elementCount++;
+ }
+
+ int matchElementCount = 0;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ matchIterator.next();
+ matchElementCount++;
+ }
+
+ // cannot be less elements since we've found a mapping for each at this point.
+ // Note that we need to add 1 to the model element count since the root hasn't been counted yet.
+ assertEquals("modelMatch() found more matches than there are elements in the model.",
+ elementCount + 1, matchElementCount);
+ } catch (final InterruptedException e) {
+ fail("modelMatch() threw an unexpected InterruptedException.");
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/TwoWayContentMatchTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/TwoWayContentMatchTest.java
new file mode 100644
index 000000000..052abb3ff
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/TwoWayContentMatchTest.java
@@ -0,0 +1,307 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.match.MatchOptions;
+import org.eclipse.emf.compare.match.metamodel.Match2Elements;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.compare.match.metamodel.UnmatchElement;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.compare.tests.util.EcoreModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * Tests the behavior ofthe GenericMatchEngine's implementation of the 2-way content match.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class TwoWayContentMatchTest extends TestCase {
+ /** Name of the metamodel's &quot;Writer&quot; class. */
+ private static final String WRITER_CLASS_NAME = "Writer";
+
+ /** This is the EObject that will be used as the left one for the matching process. */
+ private EObject testEObject1;
+
+ /** This is the EObject that will be used as the right one for the matching process. */
+ private EObject testEObject2;
+
+ /**
+ * Tests the behavior with two distinct EObjects.
+ * <p>
+ * A model and its slightly modified deep copy are taken as roots, then we iterate through their content
+ * and match EObjects one after the other.
+ * </p>
+ * <p>
+ * The compared models are flat and intended to be small for this test (6 to 15 elements). Since the
+ * compared EObject are totally distinct, expects the match model to contain an UnmatchedElement for each
+ * object contained within the compared objects.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ * @throws InterruptedException
+ * Won't be thrown : We're not using progress monitors.
+ */
+ public void test2WayContentMatchDifferentObjects() throws FactoryException, InterruptedException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testEObject1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ testEObject2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+
+ /*
+ * We'll create the list of the EObjects to be compared : all the writers of the library as "left"
+ * elements, all the books in the library as "right" elements.
+ */
+ final List<EObject> eObjects1 = new ArrayList<EObject>();
+ final List<EObject> eObjects2 = new ArrayList<EObject>();
+ final TreeIterator<EObject> iteratorObj1 = testEObject1.eAllContents();
+ while (iteratorObj1.hasNext()) {
+ final EObject next = iteratorObj1.next();
+ if (next.eClass().getName().matches(WRITER_CLASS_NAME)) {
+ eObjects1.add(next);
+ }
+ }
+ final TreeIterator<EObject> iteratorObj2 = testEObject2.eAllContents();
+ while (iteratorObj2.hasNext()) {
+ final EObject next = iteratorObj2.next();
+ if (next.eClass().getName().matches("Book")) {
+ eObjects2.add(next);
+ }
+ }
+
+ // now tests the matching process
+ for (int i = 0; i < eObjects1.size(); i++) {
+ final EObject obj1 = eObjects1.get(i);
+ for (int j = 0; j < eObjects2.size(); j++) {
+ final EObject obj2 = eObjects2.get(j);
+
+ final MatchModel match = MatchService.doContentMatch(obj1, obj2, getOptions());
+ assertNotNull("Failed to match the two objects.", match);
+
+ int elementCount = 0;
+ final TreeIterator<EObject> iterator1 = obj1.eAllContents();
+ while (iterator1.hasNext()) {
+ final EObject next = iterator1.next();
+ boolean found = false;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ final EObject nextMatch = matchIterator.next();
+ if (nextMatch instanceof UnmatchElement
+ && ((UnmatchElement)nextMatch).getElement().equals(next)) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ fail("contentMatch() did not found an unmatch for every element of the original object.");
+ }
+ elementCount++;
+ }
+ final TreeIterator<EObject> iterator2 = obj2.eAllContents();
+ while (iterator2.hasNext()) {
+ final EObject next = iterator2.next();
+ boolean found = false;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ final EObject nextMatch = matchIterator.next();
+ if (nextMatch instanceof UnmatchElement
+ && ((UnmatchElement)nextMatch).getElement().equals(next)) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ fail("contentMatch() did not found an unmatch for every element of the original object.");
+ }
+ elementCount++;
+ }
+
+ // Note : need to add 2 to the element count since none of the two roots has been counted yet
+ assertEquals("contentMatch() shouldn't have found a match element.", elementCount + 2, match
+ .getUnmatchedElements().size());
+
+ // We shouldn't find a single MatchElement
+ assertTrue("contentMatch() found a matched element in the compared objects", match
+ .getMatchedElements() == null
+ || match.getMatchedElements().size() == 0);
+ }
+ }
+ }
+
+ /**
+ * Tests the behavior with two equal EObjects.
+ * <p>
+ * A model and its deep copy are taken as roots, then we iterate through their content and match EObjects
+ * one after the other.
+ * </p>
+ * <p>
+ * The compared models are flat and intended to be small for this test (6 to 15 elements). Expects the
+ * matchModel to contain a mapping for each and every EObject of the test model.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ * @throws InterruptedException
+ * Won't be thrown : we're not using progress monitors.
+ */
+ public void test2WayContentMatchEqualEObjects() throws FactoryException, InterruptedException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testEObject1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ testEObject2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+
+ /*
+ * We'll create the list of the EObjects to be compared : all the writers and books contained by the
+ * library. We won't compare the library itself (this is handled with modelMatch's tests) or the
+ * objects' structural features.
+ */
+ final List<EObject> eObjects1 = new ArrayList<EObject>();
+ final List<EObject> eObjects2 = new ArrayList<EObject>();
+ final TreeIterator<EObject> iterator1 = testEObject1.eAllContents();
+ while (iterator1.hasNext()) {
+ final EObject next = iterator1.next();
+ if (next.eClass().getName().matches(WRITER_CLASS_NAME + "|Book")) {
+ eObjects1.add(next);
+ }
+ }
+ final TreeIterator<EObject> iterator2 = testEObject2.eAllContents();
+ while (iterator2.hasNext()) {
+ final EObject next = iterator2.next();
+ if (next.eClass().getName().matches(WRITER_CLASS_NAME + "|Book")) {
+ eObjects2.add(next);
+ }
+ }
+
+ assertEquals("There isn't the same number of element in both of the objects.", eObjects1.size(),
+ eObjects2.size());
+
+ // now tests the matching process
+ for (int i = 0; i < eObjects1.size(); i++) {
+ final EObject obj1 = eObjects1.get(i);
+ final EObject obj2 = eObjects2.get(i);
+
+ final MatchModel match = MatchService.doContentMatch(obj1, obj2, getOptions());
+ assertNotNull("Failed to match the two objects.", match);
+
+ int elementCount = 0;
+ final TreeIterator<EObject> iteratorObj1 = obj1.eAllContents();
+ while (iteratorObj1.hasNext()) {
+ final EObject next = iteratorObj1.next();
+ boolean found = false;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ final EObject nextMatch = matchIterator.next();
+ if (nextMatch instanceof Match2Elements
+ && ((Match2Elements)nextMatch).getLeftElement().equals(next)
+ || (nextMatch instanceof UnmatchElement && ((UnmatchElement)nextMatch)
+ .getElement().equals(next))) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ fail("contentMatch() did not found a match for every element of the original object.");
+ }
+ elementCount++;
+ }
+
+ int matchElementCount = 0;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ if (matchIterator.next() instanceof Match2Elements) {
+ matchElementCount++;
+ }
+ }
+
+ /*
+ * cannot be less elements since we've found a mapping for each at this point. Note that we need
+ * to add 1 to the element count since the object itself hasn't been counted yet.
+ */
+ assertEquals("contentMatch() found more matches than there are elements in the original object.",
+ elementCount + 1, matchElementCount);
+
+ // We shouldn't find a single UnMatchElement
+ assertTrue("contentMatch() found an unmatched element in the compared objects", match
+ .getUnmatchedElements() == null
+ || match.getUnmatchedElements().size() == 0);
+ }
+ }
+
+ /**
+ * Tests the behavior with <code>null</code> as the compared EObjects.
+ * <p>
+ * Expects a {@link NullPointerException} to be thrown.
+ * </p>
+ */
+ public void test2WayContentMatchNullEObjects() {
+ final String failNPE = "contentMatch() with null objects did not throw the expected NullPointerException.";
+ final String failInterrupt = "modelMatch() with null objects threw an unexpected InterruptedException.";
+ try {
+ MatchService.doContentMatch(null, EcoreFactory.eINSTANCE.createEObject(), getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ try {
+ MatchService.doContentMatch(EcoreFactory.eINSTANCE.createEObject(), null, getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void tearDown() {
+ // voids the testModels (and hopes gc passes by ... should we hint at it here with System.gc?)
+ if (testEObject1 != null) {
+ EcoreUtil.remove(testEObject1);
+ }
+ if (testEObject2 != null) {
+ EcoreUtil.remove(testEObject2);
+ }
+ testEObject1 = null;
+ testEObject2 = null;
+ }
+
+ /**
+ * This will return the map of options to be used for comparisons within this test class.
+ *
+ * @return Default options for matching.
+ */
+ private Map<String, Object> getOptions() {
+ final Map<String, Object> options = new HashMap<String, Object>();
+ options.put(MatchOptions.OPTION_DISTINCT_METAMODELS, Boolean.TRUE);
+ return options;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/TwoWayModelMatchFragments.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/TwoWayModelMatchFragments.java
new file mode 100644
index 000000000..80829cc1b
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/TwoWayModelMatchFragments.java
@@ -0,0 +1,112 @@
+package org.eclipse.emf.compare.tests.unit.match.engine;
+
+import java.util.Collections;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.diff.metamodel.DiffModel;
+import org.eclipse.emf.compare.diff.metamodel.DiffResourceSet;
+import org.eclipse.emf.compare.diff.service.DiffService;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.compare.match.metamodel.MatchResourceSet;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+public class TwoWayModelMatchFragments extends TestCase {
+ /** Current VM's encoding name. */
+ private static final String ENCODING_STRING = System.getProperty("file.encoding");
+
+ /** Current machine's line separator. */
+ private static final String LINE_SEPARATOR = System.getProperty("line.separator");
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ String expected = "<?xml version=\"1.0\" encoding=\"" + ENCODING_STRING + "\"?>" + LINE_SEPARATOR
+ + "<diff:DiffModel xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:diff=\"http://www.eclipse.org/emf/compare/diff/1.1\">" + LINE_SEPARATOR
+ + " <ownedElements xsi:type=\"diff:DiffGroup\">" + LINE_SEPARATOR
+ + " <subDiffElements xsi:type=\"diff:DiffGroup\">" + LINE_SEPARATOR
+ + " <subDiffElements xsi:type=\"diff:DiffGroup\">" + LINE_SEPARATOR
+ + " <subDiffElements xsi:type=\"diff:UpdateAttribute\">" + LINE_SEPARATOR
+ + " <attribute href=\"http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name\"/>" + LINE_SEPARATOR
+ + " <leftElement href=\"platform:/plugin/org.eclipse.emf.compare.tests/inputs/fragment/v1/parent.ecore#//ClassInParent\"/>" + LINE_SEPARATOR
+ + " <rightElement href=\"platform:/plugin/org.eclipse.emf.compare.tests/inputs/fragment/v2/parent.ecore#//ClassInParentRenamed\"/>" + LINE_SEPARATOR
+ + " </subDiffElements>" + LINE_SEPARATOR
+ + " <rightParent href=\"platform:/plugin/org.eclipse.emf.compare.tests/inputs/fragment/v2/parent.ecore#//ClassInParentRenamed\"/>" + LINE_SEPARATOR
+ + " </subDiffElements>" + LINE_SEPARATOR
+ + " <rightParent href=\"platform:/plugin/org.eclipse.emf.compare.tests/inputs/fragment/v2/parent.ecore#/\"/>" + LINE_SEPARATOR
+ + " </subDiffElements>" + LINE_SEPARATOR
+ + " <subDiffElements xsi:type=\"diff:DiffGroup\">" + LINE_SEPARATOR
+ + " <subDiffElements xsi:type=\"diff:DiffGroup\">" + LINE_SEPARATOR
+ + " <subDiffElements xsi:type=\"diff:ReferenceChangeRightTarget\">" + LINE_SEPARATOR
+ + " <reference href=\"http://www.eclipse.org/emf/2002/Ecore#//EClass/eSuperTypes\"/>" + LINE_SEPARATOR
+ + " <rightElement href=\"platform:/plugin/org.eclipse.emf.compare.tests/inputs/fragment/v2/child.ecore#//ClassInChild\"/>" + LINE_SEPARATOR
+ + " <leftElement href=\"platform:/plugin/org.eclipse.emf.compare.tests/inputs/fragment/v1/child.ecore#//ClassInChild\"/>" + LINE_SEPARATOR
+ + " <rightTarget href=\"platform:/plugin/org.eclipse.emf.compare.tests/inputs/fragment/v2/parent.ecore#//ClassInParentRenamed\"/>" + LINE_SEPARATOR
+ + " <leftTarget href=\"platform:/plugin/org.eclipse.emf.compare.tests/inputs/fragment/v1/parent.ecore#//ClassInParent\"/>" + LINE_SEPARATOR
+ + " </subDiffElements>" + LINE_SEPARATOR
+ + " <rightParent href=\"platform:/plugin/org.eclipse.emf.compare.tests/inputs/fragment/v2/child.ecore#//ClassInChild\"/>" + LINE_SEPARATOR
+ + " </subDiffElements>" + LINE_SEPARATOR
+ + " <rightParent href=\"platform:/plugin/org.eclipse.emf.compare.tests/inputs/fragment/v2/child.ecore#/\"/>" + LINE_SEPARATOR
+ + " </subDiffElements>" + LINE_SEPARATOR
+ + " </ownedElements>" + LINE_SEPARATOR
+ + " <leftRoots href=\"platform:/plugin/org.eclipse.emf.compare.tests/inputs/fragment/v1/parent.ecore#/\"/>" + LINE_SEPARATOR
+ + " <rightRoots href=\"platform:/plugin/org.eclipse.emf.compare.tests/inputs/fragment/v2/parent.ecore#/\"/>" + LINE_SEPARATOR
+ + "</diff:DiffModel>" + LINE_SEPARATOR;
+
+ public void testFragmentedEcoresResourceSetMatch() throws Exception {
+ ResourceSet leftSet = new ResourceSetImpl();
+ ResourceSet rightSet = new ResourceSetImpl();
+ EObject left = ModelUtils.load(URI.createPlatformPluginURI(
+ "/org.eclipse.emf.compare.tests/inputs/fragment/v1/parent.ecore", true), leftSet);
+ EObject right = ModelUtils.load(URI.createPlatformPluginURI(
+ "/org.eclipse.emf.compare.tests/inputs/fragment/v2/parent.ecore", true), rightSet);
+ //
+ MatchResourceSet match = MatchService.doResourceSetMatch(leftSet, rightSet, Collections.EMPTY_MAP);
+ //
+ DiffResourceSet diff = DiffService.doDiff(match);
+ //
+ String resultResourceSetMatch = ModelUtils.serialize(diff.getDiffModels().get(0));
+
+ assertEquals(expected, resultResourceSetMatch);
+ }
+
+ public void testFragmentedEcoresContentMatch() throws Exception {
+ ResourceSet leftSet = new ResourceSetImpl();
+ ResourceSet rightSet = new ResourceSetImpl();
+ EObject left = ModelUtils.load(URI.createPlatformPluginURI(
+ "/org.eclipse.emf.compare.tests/inputs/fragment/v1/parent.ecore", true), leftSet);
+ EObject right = ModelUtils.load(URI.createPlatformPluginURI(
+ "/org.eclipse.emf.compare.tests/inputs/fragment/v2/parent.ecore", true), rightSet);
+ //
+
+ MatchModel modelMatch = MatchService.doContentMatch(left, right, Collections.EMPTY_MAP);
+ DiffModel modelDiff = DiffService.doDiff(modelMatch);
+ String resultContentMatch = ModelUtils.serialize(modelDiff);
+ assertEquals(expected, resultContentMatch);
+ }
+
+ public void testFragmentedEcoresResourceMatch() throws Exception {
+ ResourceSet leftSet = new ResourceSetImpl();
+ ResourceSet rightSet = new ResourceSetImpl();
+ EObject left = ModelUtils.load(URI.createPlatformPluginURI(
+ "/org.eclipse.emf.compare.tests/inputs/fragment/v1/parent.ecore", true), leftSet);
+ EObject right = ModelUtils.load(URI.createPlatformPluginURI(
+ "/org.eclipse.emf.compare.tests/inputs/fragment/v2/parent.ecore", true), rightSet);
+ //
+
+ MatchModel resourceMatch = MatchService.doResourceMatch(left.eResource(), right.eResource(),
+ Collections.EMPTY_MAP);
+ DiffModel resourceDiff = DiffService.doDiff(resourceMatch);
+ String resultResourceMatch = ModelUtils.serialize(resourceDiff);
+
+ assertEquals(expected, resultResourceMatch);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/TwoWayModelMatchTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/TwoWayModelMatchTest.java
new file mode 100644
index 000000000..f374b9447
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/TwoWayModelMatchTest.java
@@ -0,0 +1,335 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.match.MatchOptions;
+import org.eclipse.emf.compare.match.metamodel.Match2Elements;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.compare.match.metamodel.UnmatchElement;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.compare.tests.util.EcoreModelUtils;
+import org.eclipse.emf.compare.util.EFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * Tests the behavior the GenericMatchEngine's implementation of the 2-way model match.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class TwoWayModelMatchTest extends TestCase {
+ /** This is the root of the first model we'll use to test the matching process. */
+ private EObject testModel1;
+
+ /** This is the root of the second model we'll use to test the matching process. */
+ private EObject testModel2;
+
+ /**
+ * Tests the behavior with two distinct EObjects (a model and its deep copy slightly modified).
+ * <p>
+ * The compared models are flat and intended to be a little bigger for this test (150 to 600 elements).
+ * Expects the matchModel to contain a mapping for each and every EObject of the test model, and an
+ * {@link UnMatchElement} for each element added in the copy.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test2WayModelMatchDifferentBigObjects() throws FactoryException {
+ final int writerCount = 150;
+ final int bookPerWriterCount = 4;
+ final long seed = System.nanoTime();
+ testModel1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ testModel2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ internalTest2WayDistinctModels();
+ }
+
+ /**
+ * Tests the behavior with two distinct EObjects (a model and its deep copy slightly modified).
+ * <p>
+ * The compared models are flat and intended to be small for this test (6 to 15 elements). Expects the
+ * matchModel to contain a mapping for each and every EObject of the test model, and an
+ * {@link UnMatchElement} for each element added in the copy.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test2WayModelMatchDifferentSmallObjects() throws FactoryException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testModel1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ testModel2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ internalTest2WayDistinctModels();
+ }
+
+ /**
+ * Tests the behavior with two equal EObjects (a model and its deep copy).
+ * <p>
+ * The compared models are flat and intended to be a little bigger for this test (150 to 600 elements).
+ * Expects the matchModel to contain a mapping for each and every EObject of the test model.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test2WayModelMatchEqualBigEObjects() throws FactoryException {
+ final int writerCount = 150;
+ final int bookPerWriterCount = 4;
+ final long seed = System.nanoTime();
+ testModel1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ testModel2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ internalTest2wayEqualModels();
+ }
+
+ /**
+ * Tests the behavior with two equal EObjects (a model and its deep copy).
+ * <p>
+ * The compared models are flat and intended to be small for this test (6 to 15 elements). Expects the
+ * matchModel to contain a mapping for each and every EObject of the test model.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test2WayModelMatchEqualSmallEObjects() throws FactoryException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testModel1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ testModel2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed);
+ internalTest2wayEqualModels();
+ }
+
+ /**
+ * Tests the behavior with <code>null</code> as the compared EObjects.
+ * <p>
+ * Expects a {@link NullPointerException} to be thrown.
+ * </p>
+ */
+ public void test2WayModelMatchNullEObjects() {
+ final String failNPE = "modelMatch() with null objects did not throw the expected NullPointerException.";
+ final String failInterrupt = "modelMatch() with null objects threw an unexpected InterruptedException.";
+ try {
+ MatchService.doMatch(null, EcoreFactory.eINSTANCE.createEObject(), getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ try {
+ MatchService.doMatch(EcoreFactory.eINSTANCE.createEObject(), null, getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void tearDown() {
+ // voids the testModels (and hopes gc passes by ... should we hint at it here with System.gc?)
+ if (testModel1 != null) {
+ EcoreUtil.remove(testModel1);
+ }
+ if (testModel2 != null) {
+ EcoreUtil.remove(testModel2);
+ }
+ testModel1 = null;
+ testModel2 = null;
+ }
+
+ /**
+ * This will return the map of options to be used for comparisons within this test class.
+ *
+ * @return Default options for matching.
+ */
+ private Map<String, Object> getOptions() {
+ final Map<String, Object> options = new HashMap<String, Object>();
+ options.put(MatchOptions.OPTION_DISTINCT_METAMODELS, Boolean.TRUE);
+ return options;
+ }
+
+ /**
+ * This handles the modification of the given model.
+ * <p>
+ * We'll retrieve the first Writer we find (see javadoc of {@link EcoreModelUtils#createMetaModel()}).
+ * First we copy this element, modify its name and void its "writtenBooks" reference to have a new element
+ * to add to the model, then we'll modify the original's "name" attribute to see if we can still match it.
+ * </p>
+ *
+ * @param copyModel
+ * The model to alter.
+ */
+ private void internalModifyModel(EObject copyModel) {
+ try {
+ EObject originalWriter = null;
+ EObject newElement = null;
+ for (final EObject element : copyModel.eContents()) {
+ if ("Writer".equals(element.eClass().getName())) {
+ originalWriter = element;
+ newElement = EcoreUtil.copy(element);
+ break;
+ }
+ }
+ // Change name
+ EFactory.eSet(newElement, "name", "ThisNameShouldntHaveBeenUsedYet");
+ // void books
+ final List<Object> values = new ArrayList<Object>();
+ values.addAll(EFactory.eGetAsList(newElement, "writtenBooks"));
+ for (final Object aValue : values) {
+ EFactory.eRemove(newElement, "writtenBooks", aValue);
+ }
+ // add this new element to model
+ EFactory.eAdd(copyModel, "authors", newElement);
+ // modify existing element
+ EFactory.eSet(originalWriter, "name", "ModifiedWriterName");
+ } catch (final FactoryException e) {
+ /*
+ * Shouldn't have happened if we had found a Writer as expected. Consider it a failure
+ */
+ fail("Couldn't modify original model to test matching.");
+ }
+ }
+
+ /**
+ * Handles the modification and comparing of the test models for distinct objects comparison.
+ * <p>
+ * This will fail if an unexpected exception is thrown, we did not find a mapping for each element of
+ * <code>testModel</code> or there were no UnMatchElements for the added objects. Externalized here to
+ * avoid copy/pasting within the two tests making use of it.
+ * </p>
+ */
+ private void internalTest2WayDistinctModels() {
+ internalModifyModel(testModel2);
+
+ /*
+ * matching models
+ */
+ MatchModel match = null;
+ try {
+ match = MatchService.doMatch(testModel1, testModel2, getOptions());
+ } catch (final InterruptedException e) {
+ fail("modelMatch() threw an unexpected InterruptedException.");
+ }
+
+ assertNotNull("Failed to match the two models.", match);
+ // keeps compiler happy
+ assert match != null;
+
+ int elementCount = 0;
+ final TreeIterator<EObject> iterator = testModel1.eAllContents();
+ while (iterator.hasNext()) {
+ final EObject next = iterator.next();
+ boolean found = false;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ final EObject nextMatch = matchIterator.next();
+ if (nextMatch instanceof Match2Elements
+ && ((Match2Elements)nextMatch).getLeftElement().equals(next)
+ || nextMatch instanceof UnmatchElement
+ && ((UnmatchElement)nextMatch).getElement().equals(next)) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ fail("modelMatch() did not found a match for every element of the original model.");
+ }
+ elementCount++;
+ }
+
+ int matchElementCount = 0;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ if (matchIterator.next() instanceof Match2Elements) {
+ matchElementCount++;
+ }
+ }
+
+ /*
+ * cannot be less elements since we've found a mapping for each at this point. Note that we need to
+ * add 1 to the model element count since the root hasn't been counted yet.
+ */
+ assertEquals("modelMatch() found more matches than there are elements in the original model.",
+ elementCount + 1, matchElementCount);
+
+ // We should find one single UnMatchElement corresponding to the added modelElement
+ assertTrue("modelMatch() did not found the unmatched element we added to the model.", match
+ .getUnmatchedElements() != null
+ && match.getUnmatchedElements().size() == 1);
+ }
+
+ /**
+ * Handles the comparing of the test models for equal objects comparison.
+ * <p>
+ * This will fail if an unexpected exception is thrown or we did not find a mapping for each element of
+ * the model. Externalized here to avoid copy/pasting within the two tests making use of it.
+ * </p>
+ */
+ private void internalTest2wayEqualModels() {
+ try {
+ final MatchModel match = MatchService.doMatch(testModel1, testModel2, getOptions());
+
+ int elementCount = 0;
+ final TreeIterator<EObject> iterator = testModel1.eAllContents();
+ while (iterator.hasNext()) {
+ final EObject next = iterator.next();
+ boolean found = false;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ final EObject nextMatch = matchIterator.next();
+ if (((Match2Elements)nextMatch).getLeftElement().equals(next)) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ fail("modelMatch() did not found a match for every element of two equal EObjects.");
+ }
+ elementCount++;
+ }
+
+ int matchElementCount = 0;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ matchIterator.next();
+ matchElementCount++;
+ }
+
+ // cannot be less elements since we've found a mapping for each at this point.
+ // Note that we need to add 1 to the model element count since the root hasn't been counted yet.
+ assertEquals("modelMatch() found more matches than there are elements in the model.",
+ elementCount + 1, matchElementCount);
+ } catch (final InterruptedException e) {
+ fail("modelMatch() threw an unexpected InterruptedException.");
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/TwoWayResourceMatchTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/TwoWayResourceMatchTest.java
new file mode 100644
index 000000000..69e2cdd3f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/TwoWayResourceMatchTest.java
@@ -0,0 +1,336 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.match.MatchOptions;
+import org.eclipse.emf.compare.match.metamodel.Match2Elements;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.compare.match.metamodel.UnmatchElement;
+import org.eclipse.emf.compare.match.service.MatchService;
+import org.eclipse.emf.compare.tests.util.EcoreModelUtils;
+import org.eclipse.emf.compare.util.EFactory;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * Tests the behavior the GenericMatchEngine's implementation of the 2-way resource match.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class TwoWayResourceMatchTest extends TestCase {
+ /** This is the resource holding the first model we'll use to test the matching process. */
+ private Resource testResource1;
+
+ /** This is the resource holding the second model we'll use to test the matching process. */
+ private Resource testResource2;
+
+ /**
+ * Tests the behavior with two distinct EObjects (a model and its deep copy slightly modified).
+ * <p>
+ * The compared models are flat and intended to be a little bigger for this test (150 to 600 elements).
+ * Expects the matchModel to contain a mapping for each and every EObject of the test model, and an
+ * {@link UnMatchElement} for each element added in the copy.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test2WayModelMatchDifferentBigObjects() throws FactoryException {
+ final int writerCount = 150;
+ final int bookPerWriterCount = 4;
+ final long seed = System.nanoTime();
+ testResource1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ internalTest2WayDistinctModels();
+ }
+
+ /**
+ * Tests the behavior with two distinct EObjects (a model and its deep copy slightly modified).
+ * <p>
+ * The compared models are flat and intended to be small for this test (6 to 15 elements). Expects the
+ * matchModel to contain a mapping for each and every EObject of the test model, and an
+ * {@link UnMatchElement} for each element added in the copy.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test2WayModelMatchDifferentSmallObjects() throws FactoryException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testResource1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ internalTest2WayDistinctModels();
+ }
+
+ /**
+ * Tests the behavior with two equal EObjects (a model and its deep copy).
+ * <p>
+ * The compared models are flat and intended to be a little bigger for this test (150 to 600 elements).
+ * Expects the matchModel to contain a mapping for each and every EObject of the test model.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test2WayModelMatchEqualBigEObjects() throws FactoryException {
+ final int writerCount = 150;
+ final int bookPerWriterCount = 4;
+ final long seed = System.nanoTime();
+ testResource1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ internalTest2wayEqualModels();
+ }
+
+ /**
+ * Tests the behavior with two equal EObjects (a model and its deep copy).
+ * <p>
+ * The compared models are flat and intended to be small for this test (6 to 15 elements). Expects the
+ * matchModel to contain a mapping for each and every EObject of the test model.
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the comparison fails somehow.
+ */
+ public void test2WayModelMatchEqualSmallEObjects() throws FactoryException {
+ final int writerCount = 3;
+ final int bookPerWriterCount = 5;
+ final long seed = System.nanoTime();
+ testResource1 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ testResource2 = EcoreModelUtils.createModel(writerCount, bookPerWriterCount, seed).eResource();
+ internalTest2wayEqualModels();
+ }
+
+ /**
+ * Tests the behavior with <code>null</code> as the compared EObjects.
+ * <p>
+ * Expects a {@link NullPointerException} to be thrown.
+ * </p>
+ */
+ public void test2WayModelMatchNullEObjects() {
+ final String failNPE = "modelMatch() with null objects did not throw the expected NullPointerException.";
+ final String failInterrupt = "modelMatch() with null objects threw an unexpected InterruptedException.";
+ try {
+ MatchService.doMatch(null, EcoreFactory.eINSTANCE.createEObject(), getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ try {
+ MatchService.doMatch(EcoreFactory.eINSTANCE.createEObject(), null, getOptions());
+ fail(failNPE);
+ } catch (final NullPointerException e) {
+ // This was expected behavior
+ } catch (final InterruptedException e) {
+ fail(failInterrupt);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void tearDown() {
+ // voids the testResources (and hopes gc passes by ... should we hint at it here with System.gc?)
+ if (testResource1 != null) {
+ testResource1.getContents().clear();
+ }
+ if (testResource2 != null) {
+ testResource2.getContents().clear();
+ }
+ testResource1 = null;
+ testResource2 = null;
+ }
+
+ /**
+ * This will return the map of options to be used for comparisons within this test class.
+ *
+ * @return Default options for matching.
+ */
+ private Map<String, Object> getOptions() {
+ final Map<String, Object> options = new HashMap<String, Object>();
+ options.put(MatchOptions.OPTION_DISTINCT_METAMODELS, Boolean.TRUE);
+ return options;
+ }
+
+ /**
+ * This handles the modification of the given model.
+ * <p>
+ * We'll retrieve the first Writer we find (see javadoc of {@link EcoreModelUtils#createMetaModel()}).
+ * First we copy this element, modify its name and void its "writtenBooks" reference to have a new element
+ * to add to the model, then we'll modify the original's "name" attribute to see if we can still match it.
+ * </p>
+ *
+ * @param copyModel
+ * The model to alter.
+ */
+ private void internalModifyModel(EObject copyModel) {
+ try {
+ EObject originalWriter = null;
+ EObject newElement = null;
+ for (final EObject element : copyModel.eContents()) {
+ if ("Writer".equals(element.eClass().getName())) {
+ originalWriter = element;
+ newElement = EcoreUtil.copy(element);
+ break;
+ }
+ }
+ // Change name
+ EFactory.eSet(newElement, "name", "ThisNameShouldntHaveBeenUsedYet");
+ // void books
+ final List<Object> values = new ArrayList<Object>();
+ values.addAll(EFactory.eGetAsList(newElement, "writtenBooks"));
+ for (final Object aValue : values) {
+ EFactory.eRemove(newElement, "writtenBooks", aValue);
+ }
+ // add this new element to model
+ EFactory.eAdd(copyModel, "authors", newElement);
+ // modify existing element
+ EFactory.eSet(originalWriter, "name", "ModifiedWriterName");
+ } catch (final FactoryException e) {
+ /*
+ * Shouldn't have happened if we had found a Writer as expected. Consider it a failure
+ */
+ fail("Couldn't modify original model to test matching.");
+ }
+ }
+
+ /**
+ * Handles the modification and comparing of the test models for distinct objects comparison.
+ * <p>
+ * This will fail if an unexpected exception is thrown, we did not find a mapping for each element of
+ * <code>testResource</code> or there were no UnMatchElements for the added objects. Externalized here to
+ * avoid copy/pasting within the two tests making use of it.
+ * </p>
+ */
+ private void internalTest2WayDistinctModels() {
+ internalModifyModel(testResource2.getContents().get(0));
+
+ /*
+ * matching models
+ */
+ MatchModel match = null;
+ try {
+ match = MatchService.doResourceMatch(testResource1, testResource2, getOptions());
+ } catch (final InterruptedException e) {
+ fail("modelMatch() threw an unexpected InterruptedException.");
+ }
+
+ assertNotNull("Failed to match the two models.", match);
+ // keeps compiler happy
+ assert match != null;
+
+ int elementCount = 0;
+ final TreeIterator<EObject> iterator = testResource1.getContents().get(0).eAllContents();
+ while (iterator.hasNext()) {
+ final EObject next = iterator.next();
+ boolean found = false;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ final EObject nextMatch = matchIterator.next();
+ if (nextMatch instanceof Match2Elements
+ && ((Match2Elements)nextMatch).getLeftElement().equals(next)
+ || nextMatch instanceof UnmatchElement
+ && ((UnmatchElement)nextMatch).getElement().equals(next)) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ fail("modelMatch() did not found a match for every element of the original model.");
+ }
+ elementCount++;
+ }
+
+ int matchElementCount = 0;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ if (matchIterator.next() instanceof Match2Elements) {
+ matchElementCount++;
+ }
+ }
+
+ /*
+ * cannot be less elements since we've found a mapping for each at this point. Note that we need to
+ * add 1 to the model element count since the root hasn't been counted yet.
+ */
+ assertEquals("modelMatch() found more matches than there are elements in the original model.",
+ elementCount + 1, matchElementCount);
+
+ // We should find one single UnMatchElement corresponding to the added modelElement
+ assertTrue("modelMatch() did not found the unmatched element we added to the model.", match
+ .getUnmatchedElements() != null
+ && match.getUnmatchedElements().size() == 1);
+ }
+
+ /**
+ * Handles the comparing of the test models for equal objects comparison.
+ * <p>
+ * This will fail if an unexpected exception is thrown or we did not find a mapping for each element of
+ * the model. Externalized here to avoid copy/pasting within the two tests making use of it.
+ * </p>
+ */
+ private void internalTest2wayEqualModels() {
+ try {
+ final MatchModel match = MatchService.doResourceMatch(testResource1, testResource2, getOptions());
+
+ int elementCount = 0;
+ final TreeIterator<EObject> iterator = testResource1.getContents().get(0).eAllContents();
+ while (iterator.hasNext()) {
+ final EObject next = iterator.next();
+ boolean found = false;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ final EObject nextMatch = matchIterator.next();
+ if (((Match2Elements)nextMatch).getLeftElement().equals(next)) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ fail("modelMatch() did not found a match for every element of two equal EObjects.");
+ }
+ elementCount++;
+ }
+
+ int matchElementCount = 0;
+ final TreeIterator<EObject> matchIterator = match.eAllContents();
+ while (matchIterator.hasNext()) {
+ matchIterator.next();
+ matchElementCount++;
+ }
+
+ // cannot be less elements since we've found a mapping for each at this point.
+ // Note that we need to add 1 to the model element count since the root hasn't been counted yet.
+ assertEquals("modelMatch() found more matches than there are elements in the model.",
+ elementCount + 1, matchElementCount);
+ } catch (final InterruptedException e) {
+ fail("modelMatch() threw an unexpected InterruptedException.");
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/AEngine.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/AEngine.java
new file mode 100755
index 000000000..7b982cbb9
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/AEngine.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine.mock;
+
+import java.util.Map;
+
+import org.eclipse.emf.compare.match.engine.IMatchEngine;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * A dummy match engine.
+ *
+ * @author <a href="mailto:cedric.brun@obeo.fr">Cedric Brun</a>
+ */
+public class AEngine implements IMatchEngine {
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#contentMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel contentMatch(EObject leftObject, EObject rightObject, EObject ancestor,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#contentMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel contentMatch(EObject leftObject, EObject rightRoot, Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#modelMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel modelMatch(EObject leftRoot, EObject rightRoot, EObject ancestor,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#modelMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel modelMatch(EObject leftRoot, EObject rightRoot, Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#reset()
+ */
+ public void reset() {
+ // no reset needed here
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#resourceMatch(org.eclipse.emf.ecore.resource.Resource,
+ * org.eclipse.emf.ecore.resource.Resource, java.util.Map)
+ */
+ public MatchModel resourceMatch(Resource leftResource, Resource rightResource,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#resourceMatch(org.eclipse.emf.ecore.resource.Resource,
+ * org.eclipse.emf.ecore.resource.Resource, org.eclipse.emf.ecore.resource.Resource, java.util.Map)
+ */
+ public MatchModel resourceMatch(Resource leftResource, Resource rightResource, Resource ancestorResource,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/BEngine.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/BEngine.java
new file mode 100755
index 000000000..1737b29d2
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/BEngine.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine.mock;
+
+import java.util.Map;
+
+import org.eclipse.emf.compare.match.engine.IMatchEngine;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * A dummy match engine.
+ *
+ * @author <a href="mailto:cedric.brun@obeo.fr">Cedric Brun</a>
+ */
+public class BEngine implements IMatchEngine {
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#contentMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel contentMatch(EObject leftObject, EObject rightObject, EObject ancestor,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#contentMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel contentMatch(EObject leftObject, EObject rightRoot, Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#modelMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel modelMatch(EObject leftRoot, EObject rightRoot, EObject ancestor,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#modelMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel modelMatch(EObject leftRoot, EObject rightRoot, Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#reset()
+ */
+ public void reset() {
+ // no reset needed here
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#resourceMatch(org.eclipse.emf.ecore.resource.Resource,
+ * org.eclipse.emf.ecore.resource.Resource, java.util.Map)
+ */
+ public MatchModel resourceMatch(Resource leftResource, Resource rightResource,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#resourceMatch(org.eclipse.emf.ecore.resource.Resource,
+ * org.eclipse.emf.ecore.resource.Resource, org.eclipse.emf.ecore.resource.Resource, java.util.Map)
+ */
+ public MatchModel resourceMatch(Resource leftResource, Resource rightResource, Resource ancestorResource,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/CHighEngine.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/CHighEngine.java
new file mode 100755
index 000000000..8e7f31d1d
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/CHighEngine.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine.mock;
+
+import java.util.Map;
+
+import org.eclipse.emf.compare.match.engine.IMatchEngine;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * A dummy match engine.
+ *
+ * @author <a href="mailto:cedric.brun@obeo.fr">Cedric Brun</a>
+ */
+public class CHighEngine implements IMatchEngine {
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#contentMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel contentMatch(EObject leftObject, EObject rightObject, EObject ancestor,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#contentMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel contentMatch(EObject leftObject, EObject rightRoot, Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#modelMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel modelMatch(EObject leftRoot, EObject rightRoot, EObject ancestor,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#modelMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel modelMatch(EObject leftRoot, EObject rightRoot, Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#reset()
+ */
+ public void reset() {
+ // no reset needed here
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#resourceMatch(org.eclipse.emf.ecore.resource.Resource,
+ * org.eclipse.emf.ecore.resource.Resource, java.util.Map)
+ */
+ public MatchModel resourceMatch(Resource leftResource, Resource rightResource,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#resourceMatch(org.eclipse.emf.ecore.resource.Resource,
+ * org.eclipse.emf.ecore.resource.Resource, org.eclipse.emf.ecore.resource.Resource, java.util.Map)
+ */
+ public MatchModel resourceMatch(Resource leftResource, Resource rightResource, Resource ancestorResource,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/CLowEngine.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/CLowEngine.java
new file mode 100755
index 000000000..3e7f8a15a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/CLowEngine.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine.mock;
+
+import java.util.Map;
+
+import org.eclipse.emf.compare.match.engine.IMatchEngine;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * A dummy match engine.
+ *
+ * @author <a href="mailto:cedric.brun@obeo.fr">Cedric Brun</a>
+ */
+public class CLowEngine implements IMatchEngine {
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#contentMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel contentMatch(EObject leftObject, EObject rightObject, EObject ancestor,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#contentMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel contentMatch(EObject leftObject, EObject rightRoot, Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#modelMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel modelMatch(EObject leftRoot, EObject rightRoot, EObject ancestor,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#modelMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel modelMatch(EObject leftRoot, EObject rightRoot, Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#reset()
+ */
+ public void reset() {
+ // no reset needed here
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#resourceMatch(org.eclipse.emf.ecore.resource.Resource,
+ * org.eclipse.emf.ecore.resource.Resource, java.util.Map)
+ */
+ public MatchModel resourceMatch(Resource leftResource, Resource rightResource,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#resourceMatch(org.eclipse.emf.ecore.resource.Resource,
+ * org.eclipse.emf.ecore.resource.Resource, org.eclipse.emf.ecore.resource.Resource, java.util.Map)
+ */
+ public MatchModel resourceMatch(Resource leftResource, Resource rightResource, Resource ancestorResource,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/DEngine.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/DEngine.java
new file mode 100644
index 000000000..f6a4e1f52
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/DEngine.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine.mock;
+
+import java.util.Map;
+
+import org.eclipse.emf.compare.match.engine.IMatchEngine;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * A dummy match engine.
+ *
+ * @author <a href="mailto:cedric.brun@obeo.fr">Cedric Brun</a>
+ */
+public class DEngine implements IMatchEngine {
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#contentMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel contentMatch(EObject leftObject, EObject rightObject, EObject ancestor,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#contentMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel contentMatch(EObject leftObject, EObject rightRoot, Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#modelMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel modelMatch(EObject leftRoot, EObject rightRoot, EObject ancestor,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#modelMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel modelMatch(EObject leftRoot, EObject rightRoot, Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#reset()
+ */
+ public void reset() {
+ // no reset needed here
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#resourceMatch(org.eclipse.emf.ecore.resource.Resource,
+ * org.eclipse.emf.ecore.resource.Resource, java.util.Map)
+ */
+ public MatchModel resourceMatch(Resource leftResource, Resource rightResource,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#resourceMatch(org.eclipse.emf.ecore.resource.Resource,
+ * org.eclipse.emf.ecore.resource.Resource, org.eclipse.emf.ecore.resource.Resource, java.util.Map)
+ */
+ public MatchModel resourceMatch(Resource leftResource, Resource rightResource, Resource ancestorResource,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/EEngine.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/EEngine.java
new file mode 100644
index 000000000..4697e246f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/EEngine.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine.mock;
+
+import java.util.Map;
+
+import org.eclipse.emf.compare.match.engine.IMatchEngine;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * A dummy match engine.
+ *
+ * @author <a href="mailto:cedric.brun@obeo.fr">Cedric Brun</a>
+ */
+public class EEngine implements IMatchEngine {
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#contentMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel contentMatch(EObject leftObject, EObject rightObject, EObject ancestor,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#contentMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel contentMatch(EObject leftObject, EObject rightRoot, Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#modelMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel modelMatch(EObject leftRoot, EObject rightRoot, EObject ancestor,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#modelMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel modelMatch(EObject leftRoot, EObject rightRoot, Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#reset()
+ */
+ public void reset() {
+ // no reset needed here
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#resourceMatch(org.eclipse.emf.ecore.resource.Resource,
+ * org.eclipse.emf.ecore.resource.Resource, java.util.Map)
+ */
+ public MatchModel resourceMatch(Resource leftResource, Resource rightResource,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#resourceMatch(org.eclipse.emf.ecore.resource.Resource,
+ * org.eclipse.emf.ecore.resource.Resource, org.eclipse.emf.ecore.resource.Resource, java.util.Map)
+ */
+ public MatchModel resourceMatch(Resource leftResource, Resource rightResource, Resource ancestorResource,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/GenericHighestEngine.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/GenericHighestEngine.java
new file mode 100755
index 000000000..41930748c
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/engine/mock/GenericHighestEngine.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.engine.mock;
+
+import java.util.Map;
+
+import org.eclipse.emf.compare.match.engine.IMatchEngine;
+import org.eclipse.emf.compare.match.metamodel.MatchModel;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * A dummy match engine.
+ *
+ * @author <a href="mailto:cedric.brun@obeo.fr">Cedric Brun</a>
+ */
+public class GenericHighestEngine implements IMatchEngine {
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#contentMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel contentMatch(EObject leftObject, EObject rightObject, EObject ancestor,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#contentMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel contentMatch(EObject leftObject, EObject rightRoot, Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#modelMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel modelMatch(EObject leftRoot, EObject rightRoot, EObject ancestor,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#modelMatch(org.eclipse.emf.ecore.EObject,
+ * org.eclipse.emf.ecore.EObject, java.util.Map)
+ */
+ public MatchModel modelMatch(EObject leftRoot, EObject rightRoot, Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#reset()
+ */
+ public void reset() {
+ // no reset needed here
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#resourceMatch(org.eclipse.emf.ecore.resource.Resource,
+ * org.eclipse.emf.ecore.resource.Resource, java.util.Map)
+ */
+ public MatchModel resourceMatch(Resource leftResource, Resource rightResource,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.compare.match.engine.IMatchEngine#resourceMatch(org.eclipse.emf.ecore.resource.Resource,
+ * org.eclipse.emf.ecore.resource.Resource, org.eclipse.emf.ecore.resource.Resource, java.util.Map)
+ */
+ public MatchModel resourceMatch(Resource leftResource, Resource rightResource, Resource ancestorResource,
+ Map<String, Object> optionMap) {
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/NameSimilarityTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/NameSimilarityTest.java
new file mode 100644
index 000000000..f54442843
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/NameSimilarityTest.java
@@ -0,0 +1,369 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.statistic.similarity;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.match.internal.statistic.NameSimilarity;
+import org.eclipse.emf.compare.match.statistic.MetamodelFilter;
+import org.eclipse.emf.compare.tests.EMFCompareTestPlugin;
+import org.eclipse.emf.compare.util.EFactory;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * Tests the methods used to compute name similarity.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class NameSimilarityTest extends TestCase {
+ /** Full path to the model containing this test's input. */
+ private static final String INPUT_MODEL_PATH = "/data/testInput.ecore";
+
+ /** String displayed for a <code>null</code> result where it shouldn't be. */
+ private static final String MESSAGE_NULL_RESULT = "returned a null result.";
+
+ /** Filter that will be used to detect the relevant features of an {@link EObject}. */
+ private MetamodelFilter filter;
+
+ /** Model that contains the test's input. */
+ private EObject inputModel;
+
+ /** Name of the currently tested method for the error messages. */
+ private String testedMethod;
+
+ /**
+ * Tests {@link NameSimilarity#contentValue(EObject, MetamodelFilter)}.
+ * <p>
+ * Expected (assumed from the model data/testInput) :
+ * <ul>
+ * <li>Class1 =&gt; "false "</li>
+ * <li>Class1 and Class1Clone =&gt; equal result</li>
+ * <li>Class1 and Class1.clone() =&gt; equal result</li>
+ * <li>Class1 and Class1Altered =&gt; distinct result</li>
+ * </ul>
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the similarity couldn't be computed. Considered a failed test.
+ */
+ public void testFilteredContentValue() throws FactoryException {
+ testedMethod = "NameSimilarity#contentValue(EObject, MetaModelFilter)";
+
+ // inputModel.eContents().get(0) returns reference to Class1, which solely has an attribute.
+ // expected value is the result of filter.getFilteredFeatures() toString concatenation
+ final EObject class1 = inputModel.eContents().get(0);
+ final EObject class1ClonedFromModel = inputModel.eContents().get(1);
+ final EObject class1ClonedFromCode = EcoreUtil.copy(class1);
+ final EObject class1Altered = inputModel.eContents().get(2);
+
+ final String class1Content = NameSimilarity.contentValue(class1, filter);
+ final String class1ClonedFromModelContent = NameSimilarity
+ .contentValue(class1ClonedFromModel, filter);
+ final String class1ClonedFromCodeContent = NameSimilarity.contentValue(class1ClonedFromCode, filter);
+ final String class1AlteredContent = NameSimilarity.contentValue(class1Altered, filter);
+
+ assertNotNull(testedMethod + ' ' + MESSAGE_NULL_RESULT, class1Content);
+
+ // the expected "false " comes from the "interface" attribute of EClass
+ assertEquals(testedMethod + ' ' + "didn't return the expected result.", new String("false "),
+ class1Content);
+ assertEquals(testedMethod + ' ' + "returned a distinct result for two identical objects.",
+ class1Content, class1ClonedFromModelContent);
+ assertEquals(testedMethod + ' ' + "returned a distinct result for two clones.", class1Content,
+ class1ClonedFromCodeContent);
+
+ // Class1 and Class1Altered are distinct in that Class1Altered has its "interface" flag set as "true"
+ assertFalse(testedMethod + ' ' + "returned an equal result for two different objects.", class1Content
+ .equals(class1AlteredContent));
+ }
+
+ /**
+ * Tests {@link NameSimilarity#findName(EObject)}.
+ * <p>
+ * Expected results (assumed from the model data/testInput) :
+ * <ul>
+ * <li>Class1 (EClass) =&gt; same result as {@link EClass#getName()}</li>
+ * <li>EString (EDataType) =&gt; same result as {@link EDataType#getName()}</li>
+ * <li>Visibility (EEnum) =&gt; same result as {@link EEnum#getName()}</li>
+ * <li>Package1 (EPackage) =&gt; same result as {@link EPackage#getName()}</li>
+ * <li>Object with no "name" attribute =&gt; name of the object's class.</li>
+ * <li>Unnamed object =&gt; name of the object's class.</li>
+ * </ul>
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if an object's name couldn't be retrieved. Considered a failed test.
+ */
+ public void testFindName() throws FactoryException {
+ testedMethod = "NameSimilarity#findName(EObject)";
+
+ // Will test findName() on class, datatype, enum and package.
+ final EObject clazz = inputModel.eContents().get(0);
+ final EObject datatype = inputModel.eContents().get(3);
+ final EObject enumeration = inputModel.eContents().get(4);
+ final EObject packaje = inputModel.eContents().get(6);
+ final EObject noNameObject = EcoreFactory.eINSTANCE.createEObject();
+ final EObject unnamedClass = inputModel.eContents().get(5);
+
+ final String className = NameSimilarity.findName(clazz);
+ final String datatypeName = NameSimilarity.findName(datatype);
+ final String enumName = NameSimilarity.findName(enumeration);
+ final String packageName = NameSimilarity.findName(packaje);
+ final String noName = NameSimilarity.findName(noNameObject);
+ final String unnamedClassName = NameSimilarity.findName(unnamedClass);
+
+ assertNotNull(testedMethod + ' ' + MESSAGE_NULL_RESULT, className);
+
+ assertEquals(testedMethod + ' ' + "didn't return the accurate result for a class.", ((EClass)clazz)
+ .getName(), className);
+ assertEquals(testedMethod + ' ' + "didn't return the accurate result for a data type.",
+ ((EDataType)datatype).getName(), datatypeName);
+ assertEquals(testedMethod + ' ' + "didn't return the accurate result for an enumeration.",
+ ((EEnum)enumeration).getName(), enumName);
+ assertEquals(testedMethod + ' ' + "didn't return the accurate result for a package.",
+ ((EPackage)packaje).getName(), packageName);
+ assertEquals(testedMethod + ' ' + "returned an unexpected result for a object without name.",
+ noNameObject.eClass().getName(), noName);
+ assertEquals(testedMethod + ' ' + "returned an unexpected result for an unnamed object.",
+ unnamedClass.eClass().getName(), unnamedClassName);
+ }
+
+ /**
+ * Tests {@link NameSimilarity#nameSimilarityMetric(String, String)}.
+ * <p>
+ * Expected results :
+ * <table>
+ * <tr>
+ * <td>arg1</td>
+ * <td>arg2</td>
+ * <td>result</td>
+ * </tr>
+ * <tr>
+ * <td><code>null</code></td>
+ * <td><code>null</code></td>
+ * <td><code>0</code></td>
+ * </tr>
+ * <tr>
+ * <td><code>null</code></td>
+ * <td>&quot;string&quot;</td>
+ * <td><code>0</code></td>
+ * </tr>
+ * <tr>
+ * <td>&quot;string&quot;</td>
+ * <td><code>null</code></td>
+ * <td><code>0</code></td>
+ * </tr>
+ * <tr>
+ * <td>&quot;ceString&quot;</td>
+ * <td>&quot;ceString&quot;</td>
+ * <td><code>1</code></td>
+ * </tr>
+ * <tr>
+ * <td>&quot;classe&quot;</td>
+ * <td>&quot;Classe&quot;</td>
+ * <td><code>0.999999</code></td>
+ * </tr>
+ * <tr>
+ * <td>&quot;Classe&quot;</td>
+ * <td>&quot;UneClasse&quot;</td>
+ * <td><code>10/13</code></td>
+ * </tr>
+ * <tr>
+ * <td>&quot;package&quot;</td>
+ * <td>&quot;packagedeux&quot;</td>
+ * <td><code>12/16</code></td>
+ * </tr>
+ * <tr>
+ * <td>&quot;&quot;</td>
+ * <td>&quot;MaClasse&quot;</td>
+ * <td><code>0</code></td>
+ * </tr>
+ * <tr>
+ * <td>&quot;package&quot;</td>
+ * <td>&quot;packageASupprimer&quot;</td>
+ * <td><code>12/22</code></td>
+ * </tr>
+ * <tr>
+ * <td>&quot;attribut&quot;</td>
+ * <td>&quot;reference&quot;</td>
+ * <td><code>0</code></td>
+ * </tr>
+ * <tr>
+ * <td>&quot;aa&quot;</td>
+ * <td>&quot;aaaa&quot;</td>
+ * <td><code>2/4</code></td>
+ * </tr>
+ * <tr>
+ * <td>&quot;v1&quot;</td>
+ * <td>&quot;v2&quot;</td>
+ * <td><code>2/4</code></td>
+ * </tr>
+ * <tr>
+ * <td>&quot;v&quot;</td>
+ * <td>&quot;v1&quot;</td>
+ * <td><code>1/3</code></td>
+ * </tr>
+ * </table>
+ * </p>
+ */
+ public void testNameSimilarityMetric() {
+ final String[] data = new String[] {null, null, null, "string", "string", null, "ceString",
+ "ceString", "classe", "Classe", "Classe", "UneClasse", "package", "packagedeux", "",
+ "MaClasse", "package", "packageASupprimer", "attribut", "reference", "aa", "aaaa", "v1",
+ "v2", "v", "v1", };
+ final double[] similarities = new double[] {0d, 0d, 0d, 1d, 0.999999d, 10d / 13d, 3d / 4d, 0d,
+ 6d / 11d, 0d, 1d / 2d, 1d / 2d, 1d / 3d, };
+ for (int i = 0; i < data.length; i += 2) {
+ assertEquals("Unexpected result of nameSimilarityMetric for str1 = " + data[i] + " and str2 = "
+ + data[i + 1], similarities[i / 2], NameSimilarity.nameSimilarityMetric(data[i],
+ data[i + 1]));
+ }
+ }
+
+ /**
+ * Tests {@link NameSimilarity#pairs(String)}.
+ * <p>
+ * <ul>
+ * Assertions :
+ * <li>Result isn't <code>null</code>.</li>
+ * <li>Result is instance of {@link ArrayList}.</li>
+ * <li>Result's size is equal to source's length - 1 if length &gt; 1, <code>0</code> otherwise.</li>
+ * <li>All {@link String}s contained within the result are 2-character long.</li>
+ * </ul>
+ * <ul>
+ * Expected results :
+ * <li><code>null</code> =&gt; empty {@link ArrayList}</li>
+ * <li>&quot;anEvenSizeString&quot; =&gt; [an, nE, Ev, ve, en, nS, Si, iz, ze, eS, St, tr, ri, in, ng]</li>
+ * <li>&quot;anOddSizeString&quot; =&gt; [an, nO, Od, dd, dS, Si, iz, ze, eS, St, tr, ri, in, ng]</li>
+ * <li>&quot;&quot; =&gt; empty {@link ArrayList}</li>
+ * <li>&quot;!&quot; =&gt; empty {@link ArrayList}</li>
+ * <li>&quot;-&amp;;+&quot; =&gt; [-&amp;, &amp;;, ;+]</li>
+ * </ul>
+ * </p>
+ */
+ public void testPairs() {
+ final String[] data = new String[] {null, "anEvenSizeString", "anOddSizeString", "", "!", "-&;+",
+ Calendar.getInstance().getTime().toString(), };
+ for (int i = 0; i < data.length; i++) {
+ final List<String> result = NameSimilarity.pairs(data[i]);
+ assertNotNull("Method pairs() returned null result.", result);
+ assertTrue("Method pairs()'s result isn't an instance of ArrayList.", result instanceof ArrayList);
+
+ // Special case for null and 1-char long input
+ if (data[i] == null || data[i].length() < 2) {
+ assertEquals("Unexpected size of pair()'s result.", 0, result.size());
+ } else {
+ assertEquals("Unexpected size of pair()'s result.", data[i].length() - 1, result.size());
+
+ for (int j = 0; j < result.size(); j++) {
+ assertEquals("Unexpected pair size for " + '"' + result.get(j) + '"', 2, result.get(j)
+ .length());
+ assertEquals("Unexpected pair for source " + '"' + data[i] + '"', data[i].substring(j,
+ j + 2), result.get(j));
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests {@link NameSimilarity#contentValue(EObject, MetamodelFilter)}.
+ * <p>
+ * Expected results (assumed from the model data/testInput) :
+ * <ul>
+ * <li>Class1 =&gt; concatenation of all attributes</li>
+ * <li>Class1 and Class1Clone =&gt; equal result</li>
+ * <li>Class1 and Class1.clone() =&gt; equal result</li>
+ * <li>Class1 and Class1Altered =&gt; distinct result</li>
+ * </ul>
+ * </p>
+ *
+ * @throws FactoryException
+ * Thrown if the similarity couldn't be computed. Considered a failed test.
+ */
+ public void testUnFilteredContentValue() throws FactoryException {
+ testedMethod = "NameSimilarity#contentValue(EObject, MetaModelFilter)";
+
+ final EObject class1 = inputModel.eContents().get(0);
+ final EObject class1ClonedFromModel = inputModel.eContents().get(1);
+ final EObject class1ClonedFromCode = EcoreUtil.copy(class1);
+ final EObject class1Altered = inputModel.eContents().get(2);
+
+ // Computes the expected result for class1
+ final StringBuilder buffer = new StringBuilder();
+ final List<EAttribute> classAttrib = new ArrayList<EAttribute>(class1.eClass().getEAllAttributes());
+ // unfiltered content similarity keeps the name feature
+ for (final EAttribute attribute : classAttrib) {
+ if (attribute != null && EFactory.eGet(class1, attribute.getName()) != null) {
+ buffer.append(EFactory.eGetAsString(class1, attribute.getName())).append(" ");
+ }
+ }
+ // As the name is distinct, computes the expected result for the clone
+ final StringBuilder bufferClone = new StringBuilder();
+ // unfiltered content similarity keeps the name feature
+ for (final EAttribute attribute : classAttrib) {
+ if (attribute != null && EFactory.eGet(class1ClonedFromModel, attribute.getName()) != null) {
+ bufferClone.append(EFactory.eGetAsString(class1ClonedFromModel, attribute.getName())).append(
+ " ");
+ }
+ }
+
+ final String expectedClass1Content = buffer.toString();
+ final String expectedCloneContent = bufferClone.toString();
+ final String class1Content = NameSimilarity.contentValue(class1, null);
+ final String class1ClonedFromModelContent = NameSimilarity.contentValue(class1ClonedFromModel, null);
+ final String class1ClonedFromCodeContent = NameSimilarity.contentValue(class1ClonedFromCode, null);
+ final String class1AlteredContent = NameSimilarity.contentValue(class1Altered, null);
+
+ assertNotNull(testedMethod + ' ' + MESSAGE_NULL_RESULT, class1Content);
+
+ assertEquals(testedMethod + ' ' + "didn't return the expected result.", expectedClass1Content,
+ class1Content);
+ assertEquals(testedMethod + ' ' + "returned an unexpected result for the model copy.",
+ expectedCloneContent, class1ClonedFromModelContent);
+ assertEquals(testedMethod + ' ' + "returned a distinct result for two clones.", class1Content,
+ class1ClonedFromCodeContent);
+
+ // Class1 and Class1Altered are distinct in that Class1Altered has its "interface" flag set as "true"
+ assertFalse(testedMethod + ' ' + "returned an equal result for two different objects.", class1Content
+ .equals(class1AlteredContent));
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() throws Exception {
+ final File modelFile = new File(FileLocator.toFileURL(
+ EMFCompareTestPlugin.getDefault().getBundle().getEntry(INPUT_MODEL_PATH)).getFile());
+ inputModel = ModelUtils.load(modelFile, new ResourceSetImpl());
+ filter = new MetamodelFilter();
+ filter.analyseModel(inputModel);
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/ResourceSimilarityTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/ResourceSimilarityTest.java
new file mode 100644
index 000000000..9a28d2ff6
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/ResourceSimilarityTest.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2010 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.statistic.similarity;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.match.internal.statistic.ResourceSimilarity;
+
+/**
+ * Tests the methods used to compute resource similarity.
+ *
+ * @author Gonzague Reydet <a href="mailto:gonzague.reydet@obeo.fr">gonzague.reydet@obeo.fr</a>
+ */
+@SuppressWarnings("nls")
+public class ResourceSimilarityTest extends TestCase {
+
+ /**
+ * Tests
+ * {@link ResourceSimilarity#computeURISimilarity(org.eclipse.emf.common.util.URI, org.eclipse.emf.common.util.URI)}
+ * .
+ */
+ public void testURISimilarity() {
+ final String[] references = {"platform:/resource/test/model.dsl#/foo/bar",
+ "platform:/resource/test/model.dsl#/bar", "platform:/resource/test/model.dsl#/bar",
+ "platform:/resource/test/model.dsl", "platform:/resource/folder/model.dsl",
+ "platform:/resource/folder1/model.dsl#/foo/bar",
+ "ar:/#/arPackageShortName/arSubPackageShortName/arElementName",
+ "ar:/#/arPackageShortName/arElementName", "ar:/#/arPackageName/arElementName", };
+ final String[] candidates = {"platform:/resource/test/model.dsl#/foo/bar",
+ "platform:/resource/test/model.dsl#/package/bar", "platform:/resource/model.dsl#/bar",
+ "platform:/resource/test/model.dsl", "platform:/resource/model.dsl",
+ "platform:/resource/folder2/model.dsl#/foo2/bar",
+ "ar:/#/arPackageShortName/arSubPackageShortName/arElementName",
+ "ar:/test#/arPackageShortName/arElementName", "ar:/#/arPackageName/arElementFoo", };
+ final double[] similarities = {1d, 0.6571428571428571, 1d, 1d, 1d, 0.88, 1d, 0.6, 0.9886792452830189 };
+
+ for (int i = 0; i < references.length; i++) {
+ final URI reference = URI.createURI(references[i]);
+ final URI candidate = URI.createURI(candidates[i]);
+
+ final double similarity = ResourceSimilarity.computeURISimilarity(reference, candidate);
+ assertEquals("Unexpected result of computeURISimilarity for reference = " + references[i]
+ + " and candidate = " + candidates[i], similarities[i], similarity);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/RelationsSimilarityBehaviorTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/RelationsSimilarityBehaviorTest.java
new file mode 100644
index 000000000..ab6dab02c
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/RelationsSimilarityBehaviorTest.java
@@ -0,0 +1,171 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.statistic.similarity.structuresimilarity;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.match.internal.statistic.StructureSimilarity;
+import org.eclipse.emf.compare.match.statistic.MetamodelFilter;
+import org.eclipse.emf.compare.tests.EMFCompareTestPlugin;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+/**
+ * Tests {@link StructureSimilarity#relationsSimilarityMetric(EObject, EObject, MetamodelFilter)} to ensure it
+ * behaves as expected.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class RelationsSimilarityBehaviorTest extends TestCase {
+ /** Full path to the model containing this test's input. */
+ private static final String INPUT_MODEL_PATH = "/data/testInput.ecore";
+
+ /** Message displayed when an unexpected {@link FactoryException} is raised. */
+ private static final String MESSAGE_FACTORY_UNEXPECTED = "Unexpected FactoryException has been thrown by relationsSimilarityMetrics.";
+
+ /** Message displayed when an expected {@link NullPointerException} is raised. */
+ private static final String MESSAGE_NULLPOINTER_EXPECTED = "Expected NullPointerException hasn't been thrown by relationsSimilarityMetrics.";
+
+ /** Filter that will be used to detect the relevant features of an {@link EObject}. */
+ private MetamodelFilter filter;
+
+ /** List of the Objects we'll iterate through for these tests. */
+ private List<EObject> inputList = new ArrayList<EObject>();
+
+ /**
+ * Tests behavior of
+ * {@link StructureSimilarity#relationsSimilarityMetric(EObject, EObject, MetamodelFilter)} with
+ * filtering. Since we pass <code>null</code> as the first or second object, expects a
+ * {@link NullPointerException} to be thrown.
+ */
+ public void testFilteredRelationsSimilarityNullObjects() {
+ for (int i = 0; i < inputList.size(); i++) {
+ try {
+ StructureSimilarity.relationsSimilarityMetric(inputList.get(i), null, filter);
+ fail(MESSAGE_NULLPOINTER_EXPECTED);
+ } catch (NullPointerException e) {
+ // This was expected behavior
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ try {
+ StructureSimilarity.relationsSimilarityMetric(null, inputList.get(i), filter);
+ fail(MESSAGE_NULLPOINTER_EXPECTED);
+ } catch (NullPointerException e) {
+ // This was expected behavior
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Tests behavior of
+ * {@link StructureSimilarity#relationsSimilarityMetric(EObject, EObject, MetamodelFilter)} with filtering
+ * on non-<code>null</code> objects. Expects the result to be comprised between <code>0</code> and
+ * <code>1</code>.
+ */
+ public void testFilteredRelationsSimilarityValidObjects() {
+ for (int i = 0; i < inputList.size(); i++) {
+ try {
+ final double similarity = StructureSimilarity.relationsSimilarityMetric(inputList.get(i),
+ inputList.get(inputList.size() - i - 1), filter);
+ assertTrue("Computed similarity is below 0", similarity >= 0);
+ assertTrue("Computed similarity is above 1", similarity <= 1);
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Tests behavior of
+ * {@link StructureSimilarity#relationsSimilarityMetric(EObject, EObject, MetamodelFilter)} without
+ * filtering. Since we pass <code>null</code> as the first or second object, expects a
+ * {@link NullPointerException} to be thrown.
+ */
+ public void testUnfilteredRelationsSimilarityNullObjects() {
+ for (int i = 0; i < inputList.size(); i++) {
+ try {
+ StructureSimilarity.relationsSimilarityMetric(inputList.get(i), null, null);
+ fail(MESSAGE_NULLPOINTER_EXPECTED);
+ } catch (NullPointerException e) {
+ // This was expected behavior
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ try {
+ StructureSimilarity.relationsSimilarityMetric(null, inputList.get(i), null);
+ fail(MESSAGE_NULLPOINTER_EXPECTED);
+ } catch (NullPointerException e) {
+ // This was expected behavior
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Tests behavior of
+ * {@link StructureSimilarity#relationsSimilarityMetric(EObject, EObject, MetamodelFilter)} without
+ * filtering on non-<code>null</code> objects. Expects the result to be comprised between
+ * <code>0</code> and <code>1</code>.
+ */
+ public void testUnfilteredRelationsSimilarityValidObjects() {
+ for (int i = 0; i < inputList.size(); i++) {
+ try {
+ final double similarity = StructureSimilarity.relationsSimilarityMetric(inputList.get(i),
+ inputList.get(inputList.size() - i - 1), null);
+ assertTrue("Computed similarity is below 0", similarity >= 0);
+ assertTrue("Computed similarity is above 1", similarity <= 1);
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() {
+ try {
+ final File modelFile = new File(FileLocator.toFileURL(
+ EMFCompareTestPlugin.getDefault().getBundle().getEntry(INPUT_MODEL_PATH)).getFile());
+ final EObject model = ModelUtils.load(modelFile, new ResourceSetImpl());
+ // index "7" points to the package "structureSimilarityTests" which contains
+ // input data for these tests. See model at location INPUT_MODEL_PATH.
+ final int packageIndex = 7;
+ final EObject inputPackage = model.eContents().get(packageIndex);
+
+ final Iterator<EObject> it = inputPackage.eAllContents();
+ while (it.hasNext())
+ inputList.add(it.next());
+
+ filter = new MetamodelFilter();
+ filter.analyseModel(model);
+ } catch (IOException e) {
+ fail("Couldn't load input model for StructureSimilarity tests.");
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/RelationsSimilarityDistinctTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/RelationsSimilarityDistinctTest.java
new file mode 100644
index 000000000..a6f68ebd5
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/RelationsSimilarityDistinctTest.java
@@ -0,0 +1,132 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.statistic.similarity.structuresimilarity;
+
+import java.io.File;
+import java.util.Iterator;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.match.internal.statistic.StructureSimilarity;
+import org.eclipse.emf.compare.match.statistic.MetamodelFilter;
+import org.eclipse.emf.compare.tests.EMFCompareTestPlugin;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+/**
+ * Tests the behavior of
+ * {@link StructureSimilarity#relationsSimilarityMetric(EObject, EObject, MetamodelFilter)} with objects known
+ * to be distinct.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class RelationsSimilarityDistinctTest extends TestCase {
+ /** Similarities higher than this threshold will be considered too high for distinct objects. */
+ private static final double HIGH_FILTERED_SIMILARITY_THRESHOLD = 0.4d;
+
+ /**
+ * Defines a higher threshold for relations similarity when computing without filtering unused (thus
+ * identical) features.
+ */
+ private static final double HIGH_UNFILTERED_SIMILARITY_THRESHOLD = 0.6d;
+
+ /** Full path to the model containing this test's input. */
+ private static final String INPUT_MODEL_PATH = "/data/testInput.ecore";
+
+ /** Message displayed when an unexpected {@link FactoryException} is raised. */
+ private static final String MESSAGE_FACTORY_UNEXPECTED = "Unexpected FactoryException has been thrown by relationsSimilarityMetrics.";
+
+ /** Filter that will be used to detect the relevant features of an {@link EObject}. */
+ private MetamodelFilter filter;
+
+ /** Reference to the package named "structureSimilarityTests". See model located at INPUT_MODEL_PATH. */
+ private EObject inputPackage;
+
+ /**
+ * Tests behavior of
+ * {@link StructureSimilarity#relationsSimilarityMetric(EObject, EObject, MetamodelFilter)} with
+ * filtering. Input EObjects are the contents of the packages &quot;similar&quot; (first) and
+ * &quot;totallydifferent&quot;.
+ */
+ public void testFilteredRelationsSimilarityTotallyDifferentObjects() {
+ final EObject defaultPackage = inputPackage.eContents().get(0);
+ final EObject totallyDifferentPackage = inputPackage.eContents().get(2);
+
+ final Iterator<EObject> defaultIterator = defaultPackage.eAllContents();
+ while (defaultIterator.hasNext()) {
+ final EObject defaultObject = defaultIterator.next();
+ final Iterator<EObject> differentIterator = totallyDifferentPackage.eAllContents();
+ while (differentIterator.hasNext()) {
+ final EObject differentObject = differentIterator.next();
+ try {
+ final double similarity = StructureSimilarity.relationsSimilarityMetric(defaultObject,
+ differentObject, filter);
+ assertTrue(
+ "Relations similarity between two totally different objects shouldn't be this high.",
+ similarity < HIGH_FILTERED_SIMILARITY_THRESHOLD);
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ }
+ }
+ }
+
+ /**
+ * Tests behavior of
+ * {@link StructureSimilarity#relationsSimilarityMetric(EObject, EObject, MetamodelFilter)} with no
+ * filtering. Input EObjects are the contents of the packages &quot;similar&quot; (first) and
+ * &quot;totallydifferent&quot;.
+ */
+ public void testUnfilteredRelationsSimilarityTotallyDifferentObjects() {
+ final EObject defaultPackage = inputPackage.eContents().get(0);
+ final EObject totallyDifferentPackage = inputPackage.eContents().get(2);
+
+ final Iterator<EObject> defaultIterator = defaultPackage.eAllContents();
+ while (defaultIterator.hasNext()) {
+ final EObject defaultObject = defaultIterator.next();
+ final Iterator<EObject> differentIterator = totallyDifferentPackage.eAllContents();
+ while (differentIterator.hasNext()) {
+ final EObject differentObject = differentIterator.next();
+ try {
+ final double similarity = StructureSimilarity.relationsSimilarityMetric(defaultObject,
+ differentObject, null);
+ assertTrue(
+ "Relations similarity between two totally different objects shouldn't be this high.",
+ similarity < HIGH_UNFILTERED_SIMILARITY_THRESHOLD);
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() throws Exception {
+ final File modelFile = new File(FileLocator.toFileURL(
+ EMFCompareTestPlugin.getDefault().getBundle().getEntry(INPUT_MODEL_PATH)).getFile());
+ final EObject model = ModelUtils.load(modelFile, new ResourceSetImpl());
+ // index "7" points to the package "structureSimilarityTests" which contains
+ // input data for these tests. See model at location INPUT_MODEL_PATH.
+ final int packageIndex = 7;
+ inputPackage = model.eContents().get(packageIndex);
+ filter = new MetamodelFilter();
+ filter.analyseModel(model);
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/RelationsSimilaritySimilarTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/RelationsSimilaritySimilarTest.java
new file mode 100644
index 000000000..9cf0ebe0d
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/RelationsSimilaritySimilarTest.java
@@ -0,0 +1,266 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.statistic.similarity.structuresimilarity;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.diff.metamodel.DiffFactory;
+import org.eclipse.emf.compare.match.internal.statistic.StructureSimilarity;
+import org.eclipse.emf.compare.match.metamodel.MatchFactory;
+import org.eclipse.emf.compare.match.statistic.MetamodelFilter;
+import org.eclipse.emf.compare.tests.EMFCompareTestPlugin;
+import org.eclipse.emf.compare.util.EFactory;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EGenericType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * Tests the behavior of
+ * {@link StructureSimilarity#relationsSimilarityMetric(EObject, EObject, MetamodelFilter)} with objects known
+ * to be similar.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class RelationsSimilaritySimilarTest extends TestCase {
+ /** Full path to the model containing this test's input. */
+ private static final String INPUT_MODEL_PATH = "/data/testInput.ecore";
+
+ /** Message displayed when an unexpected {@link FactoryException} is raised. */
+ private static final String MESSAGE_FACTORY_UNEXPECTED = "Unexpected FactoryException has been thrown by relationsSimilarityMetrics.";
+
+ /** Filter that will be used to detect the relevant features of an {@link EObject}. */
+ private MetamodelFilter filter;
+
+ /** Reference to the package named "structureSimilarityTests". See model located at INPUT_MODEL_PATH. */
+ private EObject inputPackage;
+
+ /**
+ * Tests behavior of
+ * {@link StructureSimilarity#relationsSimilarityMetric(EObject, EObject, MetamodelFilter)} with
+ * filtering. Since we'll be comparing an object with itself or its clone, expects the result to be
+ * <code>1</code> each time.
+ */
+ public void testFilteredRelationsSimilarityCloneObjects() {
+ final EObject defaultPackage = inputPackage.eContents().get(0);
+
+ final Iterator<EObject> defaultIterator = defaultPackage.eAllContents();
+ while (defaultIterator.hasNext()) {
+ final EObject defaultObject = defaultIterator.next();
+ // We'll avoid generic types since we cannot copy it
+ if (defaultObject instanceof EGenericType)
+ continue;
+
+ final EObject copyObject = EcoreUtil.copy(defaultObject);
+ // puts copy in same container as needed
+ if (defaultObject.eContainer() != null) {
+ final EReference containmentReference = defaultObject.eContainmentFeature();
+ try {
+ EFactory.eAdd(defaultObject.eContainer(), containmentReference.getName(), copyObject);
+ } catch (FactoryException e) {
+ e.printStackTrace();
+ fail("Could not copy Eobject.");
+ }
+ }
+
+ try {
+ assertEquals("Relations similarity between an Object and itself isn't 1.", 1d,
+ StructureSimilarity.relationsSimilarityMetric(defaultObject, defaultObject, filter));
+ assertEquals("Relations similarity between an Object and its copy isn't 1.", 1d,
+ StructureSimilarity.relationsSimilarityMetric(defaultObject, copyObject, filter));
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Tests behavior of
+ * {@link StructureSimilarity#relationsSimilarityMetric(EObject, EObject, MetamodelFilter)} with
+ * filtering. Since we'll be comparing two newly created Objects, expects the result to be <code>1</code>
+ * each time.
+ */
+ public void testFilteredRelationsSimilarityNewObjects() {
+ final List<EObject> elements = new ArrayList<EObject>();
+ elements.add(DiffFactory.eINSTANCE.createMoveModelElement());
+ elements.add(DiffFactory.eINSTANCE.createMoveModelElement());
+ elements.add(DiffFactory.eINSTANCE.createDiffGroup());
+ elements.add(DiffFactory.eINSTANCE.createDiffGroup());
+ elements.add(MatchFactory.eINSTANCE.createMatch2Elements());
+ elements.add(MatchFactory.eINSTANCE.createMatch2Elements());
+ elements.add(EcoreFactory.eINSTANCE.createEClass());
+ elements.add(EcoreFactory.eINSTANCE.createEClass());
+ elements.add(EcoreFactory.eINSTANCE.createEPackage());
+ elements.add(EcoreFactory.eINSTANCE.createEPackage());
+
+ for (int i = 0; i < elements.size(); i += 2) {
+ try {
+ assertEquals("The relations similarity between two identical objects isn't 1.", 1d,
+ StructureSimilarity.relationsSimilarityMetric(elements.get(i), elements.get(i + 1),
+ filter));
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Tests behavior of
+ * {@link StructureSimilarity#relationsSimilarityMetric(EObject, EObject, MetamodelFilter)} with
+ * filtering. Input EObjects are the contents of the packages &quot;similar&quot; (first) and
+ * &quot;similar&quot; (second). Since we'll be comparing strictly similar objects, expects the result to
+ * be <code>1</code> each time.
+ */
+ public void testFilteredRelationsSimilaritySimilarObjects() {
+ final EObject defaultPackage = inputPackage.eContents().get(0);
+ final EObject similarPackage = inputPackage.eContents().get(1);
+
+ final Iterator<EObject> defaultIterator = defaultPackage.eAllContents();
+ final Iterator<EObject> similarIterator = similarPackage.eAllContents();
+ while (defaultIterator.hasNext() && similarIterator.hasNext()) {
+ final EObject defaultObject = defaultIterator.next();
+ final EObject similarObject = similarIterator.next();
+
+ try {
+ final double similarity = StructureSimilarity.relationsSimilarityMetric(defaultObject,
+ similarObject, filter);
+ assertEquals("Similar EObjects' relations similarity isn't 1.", 1d, similarity);
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Tests behavior of
+ * {@link StructureSimilarity#relationsSimilarityMetric(EObject, EObject, MetamodelFilter)} without
+ * filtering. Since we'll be comparing an object with itself or its clone, expects the result to be
+ * <code>1</code> each time.
+ */
+ public void testUnfilteredRelationsSimilarityCloneObjects() {
+ final EObject defaultPackage = inputPackage.eContents().get(0);
+
+ final Iterator<EObject> defaultIterator = defaultPackage.eAllContents();
+ while (defaultIterator.hasNext()) {
+ final EObject defaultObject = defaultIterator.next();
+ // We'll avoid generic types since we cannot copy it
+ if (defaultObject instanceof EGenericType)
+ continue;
+
+ final EObject copyObject = EcoreUtil.copy(defaultObject);
+ // puts copy in same container as needed
+ if (defaultObject.eContainer() != null) {
+ final EReference containmentReference = defaultObject.eContainmentFeature();
+ try {
+ EFactory.eAdd(defaultObject.eContainer(), containmentReference.getName(), copyObject);
+ } catch (FactoryException e) {
+ e.printStackTrace();
+ fail("Could not copy Eobject.");
+ }
+ }
+
+ try {
+ assertEquals("Computed relations similarity between an Object and itself isn't 1.", 1d,
+ StructureSimilarity.relationsSimilarityMetric(defaultObject, defaultObject, null));
+ assertEquals("Computed relations similarity between an Object and its copy isn't 1.", 1d,
+ StructureSimilarity.relationsSimilarityMetric(defaultObject, copyObject, null));
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Tests behavior of
+ * {@link StructureSimilarity#relationsSimilarityMetric(EObject, EObject, MetamodelFilter)} without
+ * filtering. Since we'll be comparing two newly created Objects, expects the result to be <code>1</code>
+ * each time.
+ */
+ public void testUnfilteredRelationsSimilarityNewObjects() {
+ final List<EObject> elements = new ArrayList<EObject>();
+ elements.add(DiffFactory.eINSTANCE.createMoveModelElement());
+ elements.add(DiffFactory.eINSTANCE.createMoveModelElement());
+ elements.add(DiffFactory.eINSTANCE.createDiffGroup());
+ elements.add(DiffFactory.eINSTANCE.createDiffGroup());
+ elements.add(MatchFactory.eINSTANCE.createMatch2Elements());
+ elements.add(MatchFactory.eINSTANCE.createMatch2Elements());
+ elements.add(EcoreFactory.eINSTANCE.createEClass());
+ elements.add(EcoreFactory.eINSTANCE.createEClass());
+ elements.add(EcoreFactory.eINSTANCE.createEPackage());
+ elements.add(EcoreFactory.eINSTANCE.createEPackage());
+
+ for (int i = 0; i < elements.size(); i += 2) {
+ try {
+ assertEquals("The relations similarity between two identical objects isn't 1.", 1d,
+ StructureSimilarity.relationsSimilarityMetric(elements.get(i), elements.get(i + 1),
+ null));
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Tests behavior of
+ * {@link StructureSimilarity#relationsSimilarityMetric(EObject, EObject, MetamodelFilter)} without
+ * filtering. Input EObjects are the contents of the packages &quot;similar&quot; (first) and
+ * &quot;similar&quot; (second). Since we'll be comparing strictly similar objects, expects the result to
+ * be <code>1</code> each time.
+ */
+ public void testUnfilteredRelationsSimilaritySimilarObjects() {
+ final EObject defaultPackage = inputPackage.eContents().get(0);
+ final EObject similarPackage = inputPackage.eContents().get(1);
+
+ final Iterator<EObject> defaultIterator = defaultPackage.eAllContents();
+ final Iterator<EObject> similarIterator = similarPackage.eAllContents();
+ while (defaultIterator.hasNext() && similarIterator.hasNext()) {
+ final EObject defaultObject = defaultIterator.next();
+ final EObject similarObject = similarIterator.next();
+
+ try {
+ final double similarity = StructureSimilarity.relationsSimilarityMetric(defaultObject,
+ similarObject, null);
+ assertEquals("Similar EObjects' relations similarity isn't 1.", 1d, similarity);
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() throws Exception {
+ final File modelFile = new File(FileLocator.toFileURL(
+ EMFCompareTestPlugin.getDefault().getBundle().getEntry(INPUT_MODEL_PATH)).getFile());
+ final EObject model = ModelUtils.load(modelFile, new ResourceSetImpl());
+ // index "7" points to the package "structureSimilarityTests" which contains
+ // input data for these tests. See model at location INPUT_MODEL_PATH.
+ final int packageIndex = 7;
+ inputPackage = model.eContents().get(packageIndex);
+ filter = new MetamodelFilter();
+ filter.analyseModel(model);
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/StructureSimilarityTestSuite.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/StructureSimilarityTestSuite.java
new file mode 100644
index 000000000..ac82280b5
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/StructureSimilarityTestSuite.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.statistic.similarity.structuresimilarity;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+/**
+ * Launches all the JUnit tests for the {@link StructureSimilarity}.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class StructureSimilarityTestSuite extends TestCase {
+ /**
+ * Launches the test with the given arguments.
+ *
+ * @param args
+ * Arguments of the testCase.
+ */
+ public static void main(String[] args) {
+ TestRunner.run(suite());
+ }
+
+ /**
+ * Creates the {@link junit.framework.TestSuite TestSuite} for all the test.
+ *
+ * @return The test suite containing all the tests
+ */
+ public static Test suite() {
+ final TestSuite suite = new TestSuite("Tests for the StructureSimilarity behavior");
+ suite.addTestSuite(RelationsSimilarityDistinctTest.class);
+ suite.addTestSuite(RelationsSimilarityBehaviorTest.class);
+ suite.addTestSuite(RelationsSimilaritySimilarTest.class);
+ suite.addTestSuite(TypeSimilarityBehaviorTest.class);
+ return suite;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/TypeSimilarityBehaviorTest.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/TypeSimilarityBehaviorTest.java
new file mode 100644
index 000000000..fe0c3e81e
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/unit/match/statistic/similarity/structuresimilarity/TypeSimilarityBehaviorTest.java
@@ -0,0 +1,120 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.unit.match.statistic.similarity.structuresimilarity;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.match.internal.statistic.StructureSimilarity;
+import org.eclipse.emf.compare.match.statistic.MetamodelFilter;
+import org.eclipse.emf.compare.tests.EMFCompareTestPlugin;
+import org.eclipse.emf.compare.util.ModelUtils;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+/**
+ * Tests {@link StructureSimilarity#typeSimilarityMetric(EObject, EObject)} to ensure it behaves as expected.
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public class TypeSimilarityBehaviorTest extends TestCase {
+ /** Full path to the model containing this test's input. */
+ private static final String INPUT_MODEL_PATH = "/data/testInput.ecore";
+
+ /** Message displayed when an unexpected {@link FactoryException} is raised. */
+ private static final String MESSAGE_FACTORY_UNEXPECTED = "Unexpected FactoryException has been thrown by typeSimilarityMetrics.";
+
+ /** Message displayed when an expected {@link NullPointerException} is raised. */
+ private static final String MESSAGE_NULLPOINTER_EXPECTED = "Expected NullPointerException hasn't been thrown by typeSimilarityMetrics.";
+
+ /** Filter that will be used to detect the relevant features of an {@link EObject}. */
+ private MetamodelFilter filter;
+
+ /** List of the Objects we'll iterate through for these tests. */
+ private List<EObject> inputList = new ArrayList<EObject>();
+
+ /**
+ * Tests behavior of {@link StructureSimilarity#typeSimilarityMetric(EObject, EObject)}. Since we pass
+ * <code>null</code> as the first or second object, expects a {@link NullPointerException} to be thrown.
+ */
+ public void testTypeSimilarityNullObjects() {
+ for (int i = 0; i < inputList.size(); i++) {
+ try {
+ StructureSimilarity.typeSimilarityMetric(inputList.get(i), null);
+ fail(MESSAGE_NULLPOINTER_EXPECTED);
+ } catch (NullPointerException e) {
+ // This was expected behavior
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ try {
+ StructureSimilarity.typeSimilarityMetric(null, inputList.get(i));
+ fail(MESSAGE_NULLPOINTER_EXPECTED);
+ } catch (NullPointerException e) {
+ // This was expected behavior
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * Tests behavior of {@link StructureSimilarity#typeSimilarityMetric(EObject, EObject)} on non-<code>null</code>
+ * objects. Expects the result to be comprised between <code>0</code> and <code>1</code>.
+ */
+ public void testTypeSimilarityValidObjects() {
+ for (int i = 0; i < inputList.size(); i++) {
+ try {
+ final double similarity = StructureSimilarity.typeSimilarityMetric(inputList.get(i),
+ inputList.get(inputList.size() - i - 1));
+ assertTrue("Computed similarity is below 0", similarity >= 0);
+ assertTrue("Computed similarity is above 1", similarity <= 1);
+ } catch (FactoryException e) {
+ fail(MESSAGE_FACTORY_UNEXPECTED);
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() {
+ try {
+ final File modelFile = new File(FileLocator.toFileURL(
+ EMFCompareTestPlugin.getDefault().getBundle().getEntry(INPUT_MODEL_PATH)).getFile());
+ final EObject model = ModelUtils.load(modelFile, new ResourceSetImpl());
+ // index "7" points to the package "structureSimilarityTests" which contains
+ // input data for these tests. See model at location INPUT_MODEL_PATH.
+ final int packageIndex = 7;
+ final EObject inputPackage = model.eContents().get(packageIndex);
+
+ final Iterator<EObject> it = inputPackage.eAllContents();
+ while (it.hasNext())
+ inputList.add(it.next());
+
+ filter = new MetamodelFilter();
+ filter.analyseModel(model);
+ } catch (IOException e) {
+ fail("Couldn't load input model for StructureSimilarity tests.");
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/util/EcoreModelUtils.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/util/EcoreModelUtils.java
new file mode 100644
index 000000000..7cad8eae3
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/util/EcoreModelUtils.java
@@ -0,0 +1,455 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.util;
+
+import java.util.Random;
+
+import org.eclipse.emf.compare.FactoryException;
+import org.eclipse.emf.compare.util.EFactory;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EEnumLiteral;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceImpl;
+import org.eclipse.emf.ecore.xmi.XMIResource;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
+
+/**
+ * This class is a convenience class for creating ecore models for the purpose of testing.
+ * <p>
+ * Keep in mind that this class has been intended for the puposes of testing and does not performs any check
+ * to validate its method parameters.
+ * </p>
+ *
+ * @author <a href="mailto:laurent.goubet@obeo.fr">Laurent Goubet</a>
+ */
+@SuppressWarnings("nls")
+public final class EcoreModelUtils {
+ /** Keeps a reference to the book class of the metamodel created via {@link #createMetaModel()}. */
+ private static EClass bookClass;
+
+ /** The factory for creating ecore related objects. */
+ private static final EcoreFactory EFACTORY = EcorePackage.eINSTANCE.getEcoreFactory();
+
+ /** The package for getting ecore related data types. */
+ private static final EcorePackage EPACKAGE = EcorePackage.eINSTANCE;
+
+ /** Keeps a reference to the library class of the metamodel created via {@link #createMetaModel()}. */
+ private static EClass libraryClass;
+
+ /** Keeps a reference towards the created metamodel. */
+ private static EPackage metaModel;
+
+ /** Keeps a reference to the visibility enum of the metamodel created via {@link #createMetaModel()}. */
+ private static EEnum visibilityEnum;
+
+ /** Keeps a reference to the writer class of the metamodel created via {@link #createMetaModel()}. */
+ private static EClass writerClass;
+
+ /**
+ * Utility classes don't need to (and shouldn't) be instantiated.
+ */
+ private EcoreModelUtils() {
+ // prevents instantiation.
+ }
+
+ /**
+ * Creates and returns a containment {@link EReference} of the given name, with the given type, under the
+ * given containing class.
+ *
+ * @param containingClass
+ * The class that is to be added a new reference.
+ * @param name
+ * Name to give the created reference.
+ * @param type
+ * EType of the created reference.
+ * @return The created EReference.
+ */
+ public static EReference createContainmentEReference(EClass containingClass, String name, EClassifier type) {
+ final EReference reference = EFACTORY.createEReference();
+ reference.setName(name);
+ reference.setEType(type);
+ reference.setContainment(true);
+ containingClass.getEStructuralFeatures().add(reference);
+ return reference;
+ }
+
+ /**
+ * Creates and returns an {@link EAttribute} of the given name, with the given type, under the given
+ * containing class.
+ *
+ * @param containingClass
+ * The class that will be the container of our new attribute.
+ * @param name
+ * Name to give the created attribute.
+ * @param type
+ * EType of the created attribute.
+ * @return The created EAttribute.
+ */
+ public static EAttribute createEAttribute(EClass containingClass, String name, EClassifier type) {
+ final EAttribute attribute = EFACTORY.createEAttribute();
+ attribute.setName(name);
+ attribute.setEType(type);
+ containingClass.getEStructuralFeatures().add(attribute);
+ return attribute;
+ }
+
+ /**
+ * Creates and returns an {@link EClass} of the given name under the given container.
+ *
+ * @param container
+ * The package under which the class has to be created.
+ * @param name
+ * Name of the created EClass.
+ * @return The created EClass.
+ */
+ public static EClass createEClass(EPackage container, String name) {
+ final EClass clazz = EFACTORY.createEClass();
+ clazz.setName(name);
+ container.getEClassifiers().add(clazz);
+ return clazz;
+ }
+
+ /**
+ * Creates and returns an {@link EEnum} of the given name under the given package. The enumeration will
+ * have literals in number and names such as defined by <code>literals</code>.
+ *
+ * @param container
+ * The package under which will be created the enumeration.
+ * @param name
+ * Name of the new enumeration.
+ * @param literals
+ * Literals to create under this enumeration.
+ * @return The created EEnum.
+ */
+ public static EEnum createEEnum(EPackage container, String name, String... literals) {
+ final EEnum eenum = EFACTORY.createEEnum();
+ eenum.setName(name);
+ for (int i = 0; i < literals.length; i++) {
+ final EEnumLiteral literal = EFACTORY.createEEnumLiteral();
+ literal.setName(literals[i]);
+ literal.setValue(i);
+ eenum.getELiterals().add(literal);
+ }
+ container.getEClassifiers().add(eenum);
+ return eenum;
+ }
+
+ /**
+ * Creates and returns an {@link EPackage} of the given name under the given container.
+ *
+ * @param container
+ * Container for the created package.
+ * @param name
+ * Name of the EPackage to create.
+ * @return The created EPackage.
+ */
+ public static EPackage createEPackage(EPackage container, String name) {
+ final EPackage packaje = EFACTORY.createEPackage();
+ packaje.setName(name);
+ container.getESubpackages().add(packaje);
+ return packaje;
+ }
+
+ /**
+ * Creates and returns an {@link EPackage} of the given name under the given resource.
+ *
+ * @param resource
+ * The resource under which the package has to be crated.
+ * @param name
+ * Name of the EPackage to create.
+ * @return The created EPackage.
+ */
+ public static EPackage createEPackage(Resource resource, String name) {
+ final EPackage packaje = EFACTORY.createEPackage();
+ packaje.setName(name);
+ resource.getContents().add(packaje);
+ return packaje;
+ }
+
+ /**
+ * Creates and returns an {@link EReference} of the given name, with the given type, under the given
+ * containing class.
+ *
+ * @param containingClass
+ * The class that is to be added a new reference.
+ * @param name
+ * Name to give the created reference.
+ * @param type
+ * EType of the created reference.
+ * @return The created EReference.
+ */
+ public static EReference createEReference(EClass containingClass, String name, EClassifier type) {
+ final EReference reference = EFACTORY.createEReference();
+ reference.setName(name);
+ reference.setEType(type);
+ containingClass.getEStructuralFeatures().add(reference);
+ return reference;
+ }
+
+ /**
+ * This is a convenience method fully equivalent to <code>createMetaModel(false)</code>.
+ *
+ * @return The root of the created metamodel.
+ */
+ public static EPackage createMetaModel() {
+ return createMetaModel(false);
+ }
+
+ /**
+ * This will generate an ecore metamodel.
+ * <p>
+ * Generated metamodel will be of the form :
+ *
+ * <pre>
+ * EPackage -root-
+ * |
+ * |---EPackage -library-
+ * |
+ * |---EClass -Library-
+ * | |
+ * | |---EAttribute -name- : EString
+ * | |---EReference -books- : Book
+ * | |---EReference -authors- : Writer
+ * |
+ * |---EClass -Book-
+ * | |
+ * | |---EAttribute -title- : EString
+ * | |---EAttribute -pages- : EInt
+ * | |---EAttribute -visibility- : visibility
+ * | |---EReference -author- : Writer
+ * |
+ * |---EClass -Writer-
+ * | |
+ * | |---EAttribute -name- : EString
+ * | |---EAttribute -visibility- : visibility
+ * | |---EReference -writtenBooks- : Book
+ * |
+ * |---EEnum -visibility-
+ * |
+ * |---EEnumLiteral -private- = 0
+ * |---EEnumLiteral -package- = 1
+ * |---EEnumLiteral -protected- = 2
+ * |---EEnumLiteral -public- = 3
+ * </pre>
+ *
+ * </p>
+ *
+ * @param forceCreate
+ * If set to <code>True</code>, the metamodel will be created anew even if it has already
+ * been cached.
+ * @return The root of the created metamodel.
+ */
+ public static EPackage createMetaModel(boolean forceCreate) {
+ if (metaModel == null || forceCreate) {
+ final String eenumName = "visibility";
+ final String nameFeatureName = "name";
+ final Resource resource = new ResourceImpl();
+ // First creates the structure (classes, packages, datatypes)
+ metaModel = createEPackage(resource, "root");
+ final EPackage libraryPackage = createEPackage(metaModel, "library");
+ libraryClass = createEClass(libraryPackage, "Library");
+ bookClass = createEClass(libraryPackage, "Book");
+ writerClass = createEClass(libraryPackage, "Writer");
+ visibilityEnum = createEEnum(libraryPackage, eenumName, "private", "package", "protected",
+ "public");
+
+ // Then creates structural features.
+ // Library features
+ createEAttribute(libraryClass, nameFeatureName, EPACKAGE.getEString());
+ final EReference libraryBooksReference = createContainmentEReference(libraryClass, "books",
+ bookClass);
+ final EReference libraryWritersReference = createContainmentEReference(libraryClass, "authors",
+ writerClass);
+ // Book features
+ createEAttribute(bookClass, "title", EPACKAGE.getEString());
+ createEAttribute(bookClass, "pages", EPACKAGE.getEInt());
+ createEAttribute(bookClass, eenumName, visibilityEnum);
+ final EReference bookAuthorReference = createEReference(bookClass, "author", writerClass);
+ // Writer features
+ createEAttribute(writerClass, nameFeatureName, EPACKAGE.getEString());
+ createEAttribute(writerClass, eenumName, visibilityEnum);
+ final EReference writerBooksReference = createEReference(writerClass, "writtenBooks", bookClass);
+
+ // Sets multiplicity and oppposites of the references
+ libraryBooksReference.setUpperBound(-1);
+ libraryWritersReference.setUpperBound(-1);
+ bookAuthorReference.setEOpposite(writerBooksReference);
+ writerBooksReference.setUpperBound(-1);
+ }
+ return metaModel;
+ }
+
+ /**
+ * This will create an ecore model with the metamodel defined by {@link #createMetaModel()}.
+ * <p>
+ * <code>writerCount</code> and <code>bookPerWriterCount</code> allows us to create either small or
+ * huge models.
+ * </p>
+ *
+ * @param writerCount
+ * Total number of writers to create in the model.
+ * @param bookPerWriterCount
+ * Maximum number of books to create for each author. Actual number will be comprised between 0
+ * and this value.
+ * @return The root of the created model.
+ * @throws FactoryException
+ * Thrown if an error occurs when trying to set one of the model content's features via
+ * {@link EFactory#eSet(EObject, String, Object)}.
+ */
+ public static EObject createModel(int writerCount, int bookPerWriterCount) throws FactoryException {
+ return createModel(writerCount, bookPerWriterCount, System.nanoTime(), false, false);
+ }
+
+ /**
+ * This will create an ecore model with the metamodel defined by {@link #createMetaModel()}.
+ * <p>
+ * <code>writerCount</code> and <code>bookPerWriterCount</code> allows us to create either small or
+ * huge models.
+ * </p>
+ * <p>
+ * <code>seed</code> will be used for the random number generator throughout the creation. calling this
+ * method twice with the same given <code>seed</code> will create equal models.
+ * </p>
+ *
+ * @param writerCount
+ * Total number of writers to create in the model.
+ * @param bookPerWriterCount
+ * Maximum number of books to create for each author. Actual number will be comprised between 0
+ * and this value.
+ * @param seed
+ * <code>seed</code> to be used for the pseudo-random number generator.
+ * @return The root of the created model.
+ * @throws FactoryException
+ * Thrown if an error occurs when trying to set one of the model content's features via
+ * {@link EFactory#eSet(EObject, String, Object)}.
+ * @see Random
+ */
+ public static EObject createModel(int writerCount, int bookPerWriterCount, long seed)
+ throws FactoryException {
+ return createModel(writerCount, bookPerWriterCount, seed, false, false);
+ }
+
+ /**
+ * This will create an ecore model with the metamodel defined by {@link #createMetaModel()}.
+ * <p>
+ * <code>writerCount</code> and <code>bookPerWriterCount</code> allows us to create either small or
+ * huge models.
+ * </p>
+ * <p>
+ * <code>seed</code> will be used for the random number generator throughout the creation. calling this
+ * method twice with the same given <code>seed</code> will create equal models.
+ * </p>
+ *
+ * @param writerCount
+ * Total number of writers to create in the model.
+ * @param bookPerWriterCount
+ * Maximum number of books to create for each author. Actual number will be comprised between 0
+ * and this value.
+ * @param seed
+ * <code>seed</code> to be used for the pseudo-random number generator.
+ * @param setXMIID
+ * If set to <code>True</code>, this will set a an auto incremented number as the XMI ID of
+ * each created object.
+ * @return The root of the created model.
+ * @throws FactoryException
+ * Thrown if an error occurs when trying to set one of the model content's features via
+ * {@link EFactory#eSet(EObject, String, Object)}.
+ * @see Random
+ */
+ public static EObject createModel(int writerCount, int bookPerWriterCount, long seed, boolean setXMIID)
+ throws FactoryException {
+ return createModel(writerCount, bookPerWriterCount, seed, setXMIID, false);
+ }
+
+ /**
+ * This will create an ecore model with the metamodel defined by {@link #createMetaModel()}.
+ * <p>
+ * <code>writerCount</code> and <code>bookPerWriterCount</code> allows us to create either small or
+ * huge models.
+ * </p>
+ * <p>
+ * <code>seed</code> will be used for the random number generator throughout the creation. calling this
+ * method twice with the same given <code>seed</code> will create equal models.
+ * </p>
+ *
+ * @param writerCount
+ * Total number of writers to create in the model.
+ * @param bookPerWriterCount
+ * Maximum number of books to create for each author. Actual number will be comprised between 0
+ * and this value.
+ * @param seed
+ * <code>seed</code> to be used for the pseudo-random number generator.
+ * @param setXMIID
+ * If set to <code>True</code>, this will set a an auto incremented number as the XMI ID of
+ * each created object.
+ * @param forceMetaModelCreation
+ * Forces the creation of a new meta model even if one has already been cached.
+ * @return The root of the created model.
+ * @throws FactoryException
+ * Thrown if an error occurs when trying to set one of the model content's features via
+ * {@link EFactory#eSet(EObject, String, Object)}.
+ * @see Random
+ */
+ public static EObject createModel(int writerCount, int bookPerWriterCount, long seed, boolean setXMIID, boolean forceMetaModelCreation)
+ throws FactoryException {
+ int xmiID = 0;
+ final XMIResource resource = new XMIResourceImpl();
+ final String eenumName = "visibility";
+ final String nameFeatureName = "name";
+ final Random randomGenerator = new Random(seed);
+ final EPackage libraryPackage = (EPackage)createMetaModel(forceMetaModelCreation).eContents().get(0);
+ final org.eclipse.emf.ecore.EFactory libraryFactory = libraryPackage.getEFactoryInstance();
+
+ // Creates the library itself
+ final EObject library = libraryFactory.create(libraryClass);
+ EFactory.eSet(library, nameFeatureName, "Library");
+ resource.getContents().add(library);
+ if (setXMIID)
+ resource.setID(library, new Integer(++xmiID).toString());
+
+ // Creates each writer of the library
+ for (int writerNum = 0; writerNum < writerCount; writerNum++) {
+ final EObject writer = libraryFactory.create(writerClass);
+ EFactory.eSet(writer, nameFeatureName, "writer" + writerNum);
+ EFactory.eSet(writer, eenumName, visibilityEnum.getELiterals().get(
+ Double.valueOf(randomGenerator.nextDouble() * visibilityEnum.getELiterals().size())
+ .intValue()).getLiteral());
+ EFactory.eAdd(library, "authors", writer);
+ if (setXMIID)
+ resource.setID(writer, new Integer(++xmiID).toString());
+
+ // Creates a random number of book for each writer
+ for (int bookNum = 0; bookNum < (randomGenerator.nextDouble() * bookPerWriterCount) + 1; bookNum++) {
+ final EObject book = libraryFactory.create(bookClass);
+ EFactory
+ .eSet(book, "title", "book" + Integer.toString(writerNum) + Integer.toString(bookNum));
+ EFactory.eSet(book, "pages", Double.valueOf(randomGenerator.nextDouble() * 1000).intValue());
+ EFactory.eSet(book, eenumName, visibilityEnum.getELiterals().get(
+ Double.valueOf(randomGenerator.nextDouble() * visibilityEnum.getELiterals().size())
+ .intValue()).getLiteral());
+ EFactory.eSet(book, "author", writer);
+ EFactory.eAdd(library, "books", book);
+ if (setXMIID)
+ resource.setID(book, new Integer(++xmiID).toString());
+ }
+ }
+
+ return library;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/util/FileUtils.java b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/util/FileUtils.java
new file mode 100644
index 000000000..48e1d0c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/src/org/eclipse/emf/compare/tests/util/FileUtils.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.tests.util;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.util.Arrays;
+
+/**
+ * File utilities for Unit tests getting expected results from the JUnit project.
+ *
+ * @author <a href="mailto:cedric.brun@obeo.fr">Cedric Brun</a>
+ */
+public final class FileUtils {
+ /**
+ * Utility classes don't need to (and shouldn't) be instantiated.
+ */
+ private FileUtils() {
+ // prevents instantiation.
+ }
+
+ /**
+ * Lists all subdirectories contained within a given folder, with the exception of directories starting
+ * with a "." or directories named "CVS".
+ *
+ * @param aDirectory
+ * Directory from which we need to list subfolders.
+ * @return Array composed by all <code>aDirectory</code> subfolders.
+ */
+ public static File[] listDirectories(File aDirectory) {
+ File[] directories = null;
+
+ if (aDirectory.exists() && aDirectory.isDirectory()) {
+ directories = aDirectory.listFiles(new FileFilter() {
+ public boolean accept(File file) {
+ return file.isDirectory() && !file.getName().startsWith(".") //$NON-NLS-1$
+ && !"CVS".equals(file.getName()); //$NON-NLS-1$
+ }
+ });
+ }
+ Arrays.sort(directories);
+ return directories;
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.tests/test.xml b/plugins/org.eclipse.emf.compare.tests/test.xml
new file mode 100755
index 000000000..0a9c1d69b
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.tests/test.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+
+<project name="testsuite" default="run" basedir=".">
+ <!-- The property ${eclipse-home} should be passed into this script -->
+ <!-- Set a meaningful default value for when it is not. -->
+ <property name="eclipse-home" value="${basedir}\..\.."/>
+
+ <!-- sets the properties plugin-name, and library-file -->
+ <property name="plugin-name" value="org.eclipse.emf.compare.tests"/>
+ <property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>
+
+ <!-- This target holds all initialization code that needs to be done for -->
+ <!-- all tests that are to be run. Initialization for individual tests -->
+ <!-- should be done within the body of the suite target. -->
+ <target name="init">
+ <tstamp/>
+ <delete>
+ <fileset dir="${eclipse-home}" includes="org*.xml"/>
+ </delete>
+ </target>
+
+ <!-- This target defines the tests that need to be run. -->
+ <target name="suite">
+ <property name="emf-folder" value="${eclipse-home}/emf_folder"/>
+ <delete dir="${emf-folder}" quiet="true"/>
+ <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
+ <property name="data-dir" value="${emf-folder}"/>
+ <property name="plugin-name" value="${plugin-name}"/>
+ <property name="classname" value="org.eclipse.emf.compare.tests.suite.AllTests"/>
+ </ant>
+ </target>
+
+ <!-- This target holds code to cleanup the testing environment after -->
+ <!-- after all of the tests have been run. You can use this target to -->
+ <!-- delete temporary files that have been created. -->
+ <target name="cleanup">
+ </target>
+
+ <!-- This target runs the test suite. Any actions that need to happen -->
+ <!-- after all the tests have been run should go here. -->
+ <target name="run" depends="init,suite,cleanup">
+ <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
+ <property name="includes" value="org*.xml"/>
+ <property name="output-file" value="${plugin-name}.xml"/>
+ </ant>
+ </target>
+
+</project>

Back to the top