Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare')
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/AbstractTest.java29
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/DiagramInputData.java49
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/groups/PapyrusDifferencesOrderTest.java107
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/AssocMergeTest.java594
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/AssocMergeInputData.java97
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/EdgeMergeInputData.java57
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/NodeMergeInputData.java54
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/ancestor.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/ancestor.notation192
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/ancestor.uml30
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/left.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/left.notation198
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/left.uml30
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/package-info.java17
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/right.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/right.notation198
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/right.uml30
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/ancestor.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/ancestor.notation87
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/ancestor.uml12
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/left.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/left.notation103
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/left.uml12
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/package-info.java18
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/right.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/right.notation103
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/right.uml12
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/ancestor.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/ancestor.notation192
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/ancestor.uml30
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/left.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/left.notation198
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/left.uml30
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/package-info.java17
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/right.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/right.notation198
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/right.uml30
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/ancestor.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/ancestor.notation99
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/ancestor.uml13
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/left.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/left.notation119
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/left.uml13
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/package-info.java18
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/right.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/right.notation119
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/right.uml13
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/left.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/left.notation110
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/left.uml18
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/package-info.java19
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/right.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/right.notation84
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/right.uml17
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/left.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/left.notation110
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/left.uml17
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/package-info.java19
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/right.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/right.notation84
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/right.uml16
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/left.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/left.notation73
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/left.uml11
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/package-info.java19
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/right.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/right.notation73
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/right.uml11
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/suite/AllTests.java3
69 files changed, 3660 insertions, 178 deletions
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/AbstractTest.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/AbstractTest.java
index a35fc48f2..ff583366b 100644
--- a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/AbstractTest.java
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/AbstractTest.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2013 Obeo.
+ * Copyright (c) 2013, 2015 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
@@ -31,7 +31,6 @@ import org.eclipse.emf.compare.diagram.internal.CompareDiagramPostProcessor;
import org.eclipse.emf.compare.diagram.internal.extensions.DiagramDiff;
import org.eclipse.emf.compare.diagram.internal.merge.CompareDiagramMerger;
import org.eclipse.emf.compare.merge.IMerger;
-import org.eclipse.emf.compare.postprocessor.IPostProcessor;
import org.eclipse.emf.compare.postprocessor.PostProcessorDescriptorRegistryImpl;
import org.eclipse.emf.compare.scope.IComparisonScope;
import org.eclipse.emf.compare.tests.postprocess.data.TestPostProcessor;
@@ -59,16 +58,7 @@ public abstract class AbstractTest {
@Before
public void before() {
postProcessorRegistry = new PostProcessorDescriptorRegistryImpl<String>();
- postProcessorRegistry.put(
- UMLPostProcessor.class.getName(),
- new TestPostProcessor.TestPostProcessorDescriptor(Pattern
- .compile("http://www.eclipse.org/uml2/\\d.0.0/UML"),
- null, new UMLPostProcessor(), 20));
- postProcessorRegistry
- .put(CompareDiagramPostProcessor.class.getName(),
- new TestPostProcessor.TestPostProcessorDescriptor(
- Pattern.compile("http://www.eclipse.org/gmf/runtime/\\d.\\d.\\d/notation"),
- null, new CompareDiagramPostProcessor(), 30));
+ registerPostProcessors();
emfCompare = EMFCompare.builder()
.setPostProcessorRegistry(postProcessorRegistry).build();
mergerRegistry = IMerger.RegistryImpl.createStandaloneInstance();
@@ -80,6 +70,19 @@ public abstract class AbstractTest {
mergerRegistry.add(diagramMerger);
}
+ protected void registerPostProcessors() {
+ getPostProcessorRegistry().put(
+ UMLPostProcessor.class.getName(),
+ new TestPostProcessor.TestPostProcessorDescriptor(Pattern
+ .compile("http://www.eclipse.org/uml2/\\d.0.0/UML"),
+ null, new UMLPostProcessor(), 20));
+ getPostProcessorRegistry()
+ .put(CompareDiagramPostProcessor.class.getName(),
+ new TestPostProcessor.TestPostProcessorDescriptor(
+ Pattern.compile("http://www.eclipse.org/gmf/runtime/\\d.\\d.\\d/notation"),
+ null, new CompareDiagramPostProcessor(), 30));
+ }
+
protected EMFCompare getCompare() {
return emfCompare;
}
@@ -87,7 +90,7 @@ public abstract class AbstractTest {
/**
* @return the postProcessorRegistry
*/
- protected IPostProcessor.Descriptor.Registry<?> getPostProcessorRegistry() {
+ protected PostProcessorDescriptorRegistryImpl<String> getPostProcessorRegistry() {
return postProcessorRegistry;
}
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/DiagramInputData.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/DiagramInputData.java
index e81ba5d54..7614225e6 100644
--- a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/DiagramInputData.java
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/DiagramInputData.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2014 Obeo.
+ * Copyright (c) 2012, 2015 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
@@ -10,12 +10,27 @@
*******************************************************************************/
package org.eclipse.emf.compare.diagram.papyrus.tests;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.Set;
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.compare.tests.framework.AbstractInputData;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.internal.resource.UMLResourceFactoryImpl;
+@SuppressWarnings("restriction")
public class DiagramInputData extends AbstractInputData {
/** Store the set of the resource sets of the input data. */
@@ -28,4 +43,36 @@ public class DiagramInputData extends AbstractInputData {
return sets;
}
+ @Override
+ protected Resource loadFromClassLoader(String string) throws IOException {
+ final URL fileURL = getClass().getResource(string);
+ final InputStream str = fileURL.openStream();
+ final URI uri = URI.createURI(fileURL.toString());
+
+ ResourceSet resourceSet = new ResourceSetImpl();
+ getSets().add(resourceSet);
+
+ if (!EMFPlugin.IS_RESOURCES_BUNDLE_AVAILABLE) {
+ resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
+ .put("uml", new UMLResourceFactoryImpl());
+ resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
+ .put("notation", new GMFResourceFactory());
+ EPackage.Registry.INSTANCE.put(UMLPackage.eNS_URI,
+ UMLPackage.eINSTANCE);
+ EPackage.Registry.INSTANCE.put(NotationPackage.eNS_URI,
+ NotationPackage.eINSTANCE);
+ // EPackage.Registry.INSTANCE.put(StylePackage.eNS_URI,
+ // NotationPackage.eINSTANCE);
+ }
+
+ Resource resource = resourceSet.createResource(uri);
+
+ resource.load(str, Collections.emptyMap());
+ str.close();
+
+ EcoreUtil.resolveAll(resourceSet);
+
+ return resource;
+ }
+
}
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/groups/PapyrusDifferencesOrderTest.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/groups/PapyrusDifferencesOrderTest.java
index d55db2d5b..d1de8eceb 100644
--- a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/groups/PapyrusDifferencesOrderTest.java
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/groups/PapyrusDifferencesOrderTest.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2014 Obeo.
+ * Copyright (c) 2014, 2015 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
@@ -15,15 +15,10 @@ import static com.google.common.base.Predicates.alwaysTrue;
import com.google.common.collect.Lists;
import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Collections;
import java.util.List;
import java.util.regex.Pattern;
-import org.eclipse.emf.common.EMFPlugin;
import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.compare.diagram.ide.ui.internal.structuremergeviewer.filters.GMFRefinedElementsFilter;
import org.eclipse.emf.compare.diagram.internal.CompareDiagramPostProcessor;
import org.eclipse.emf.compare.diagram.internal.extensions.provider.spec.ExtensionsItemProviderAdapterFactorySpec;
@@ -47,26 +42,19 @@ import org.eclipse.emf.compare.uml2.internal.provider.decorator.UMLCompareItemPr
import org.eclipse.emf.compare.uml2.rcp.ui.internal.structuremergeviewer.filters.UMLRefinedElementsFilter;
import org.eclipse.emf.compare.uml2.rcp.ui.tests.groups.AbstractDifferenceOrderTest;
import org.eclipse.emf.compare.uml2.rcp.ui.tests.groups.NotifierScopeProvider;
-import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
import org.eclipse.emf.edit.tree.TreeNode;
-import org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory;
-import org.eclipse.gmf.runtime.notation.NotationPackage;
import org.eclipse.gmf.runtime.notation.provider.NotationItemProviderAdapterFactory;
import org.eclipse.gmf.runtime.notation.util.NotationAdapterFactory;
-import org.eclipse.uml2.uml.UMLPackage;
import org.eclipse.uml2.uml.edit.providers.UMLItemProviderAdapterFactory;
-import org.eclipse.uml2.uml.internal.resource.UMLResourceFactoryImpl;
import org.junit.Before;
import org.junit.Test;
/**
- * Tests the order of the differences they would be displayed in the structure merge viewer for MDT Papyrus
- * model.
+ * Tests the order of the differences they would be displayed in the structure
+ * merge viewer for MDT Papyrus model.
*
* @author <a href="mailto:arthur.daussy@obeo.fr">Arthur Daussy</a>
*/
@@ -93,15 +81,17 @@ public class PapyrusDifferencesOrderTest extends AbstractDifferenceOrderTest {
@Override
protected Registry<?> getPostProcessorRegistry() {
PostProcessorDescriptorRegistryImpl<Object> postProcessorRegistry = new PostProcessorDescriptorRegistryImpl<Object>();
- //Adds UML post processor
+ // Adds UML post processor
BasicPostProcessorDescriptorImpl descriptor = new BasicPostProcessorDescriptorImpl(
- new UMLPostProcessor(), Pattern.compile("http://www.eclipse.org/uml2/\\d.0.0/UML"), null); //$NON-NLS-1$
+ new UMLPostProcessor(),
+ Pattern.compile("http://www.eclipse.org/uml2/\\d.0.0/UML"), null); //$NON-NLS-1$
postProcessorRegistry.put(UMLPostProcessor.class.getName(), descriptor);
- //Adds Diagram post processor
+ // Adds Diagram post processor
BasicPostProcessorDescriptorImpl descriptor2 = new BasicPostProcessorDescriptorImpl(
- new CompareDiagramPostProcessor(), Pattern
- .compile("http://www.eclipse.org/gmf/runtime/\\d.\\d.\\d/notation"), null); //$NON-NLS-1$
- postProcessorRegistry.put(CompareDiagramPostProcessor.class.getName(), descriptor2);
+ new CompareDiagramPostProcessor(),
+ Pattern.compile("http://www.eclipse.org/gmf/runtime/\\d.\\d.\\d/notation"), null); //$NON-NLS-1$
+ postProcessorRegistry.put(CompareDiagramPostProcessor.class.getName(),
+ descriptor2);
return postProcessorRegistry;
}
@@ -112,12 +102,17 @@ public class PapyrusDifferencesOrderTest extends AbstractDifferenceOrderTest {
@Override
protected List<AdapterFactory> getAdaptersFactory() {
- return Lists.<AdapterFactory> newArrayList(new CompareItemProviderAdapterFactorySpec(),
- new TreeItemProviderAdapterFactorySpec(), new UMLCompareCustomItemProviderAdapterFactory(),
- new UMLItemProviderAdapterFactory(), new UMLCompareItemProviderDecoratorAdapterFactory(),
- new ReflectiveItemProviderAdapterFactory(), new NotationAdapterFactory(),
+ return Lists.<AdapterFactory> newArrayList(
+ new CompareItemProviderAdapterFactorySpec(),
+ new TreeItemProviderAdapterFactorySpec(),
+ new UMLCompareCustomItemProviderAdapterFactory(),
+ new UMLItemProviderAdapterFactory(),
+ new UMLCompareItemProviderDecoratorAdapterFactory(),
+ new ReflectiveItemProviderAdapterFactory(),
+ new NotationAdapterFactory(),
new ExtensionsItemProviderAdapterFactorySpec(),
- new DiagramCompareItemProviderAdapterFactorySpec(), new NotationItemProviderAdapterFactory());
+ new DiagramCompareItemProviderAdapterFactorySpec(),
+ new NotationItemProviderAdapterFactory());
}
@Test
@@ -125,15 +120,17 @@ public class PapyrusDifferencesOrderTest extends AbstractDifferenceOrderTest {
GMFRefinedElementsFilter diagramFilter = new GMFRefinedElementsFilter();
getFilter().removeFilter(diagramFilter);
- IDifferenceGroup group = new BasicDifferenceGroupImpl(getComparison(), alwaysTrue(),
- getCrossReferenceAdapter());
+ IDifferenceGroup group = new BasicDifferenceGroupImpl(getComparison(),
+ alwaysTrue(), getCrossReferenceAdapter());
List<? extends TreeNode> roots = group.getChildren();
// Uncomment the following lines to reserialize the expected model
// TestWriterHelper writerHelper = createTestHelper();
- // writerHelper.createExpectedModel(PATH_TO_MODEL_FILE+"/expectedResult_DiagRefineOff.nodes", roots,false);
+ // writerHelper.createExpectedModel(PATH_TO_MODEL_FILE+"/expectedResult_DiagRefineOff.nodes",
+ // roots,false);
- compareTree(expectedResultData.getExpectedReseultWithFilterOff(), roots, false);
+ compareTree(expectedResultData.getExpectedReseultWithFilterOff(),
+ roots, false);
}
@Test
@@ -141,15 +138,17 @@ public class PapyrusDifferencesOrderTest extends AbstractDifferenceOrderTest {
GMFRefinedElementsFilter diagramFilter = new GMFRefinedElementsFilter();
getFilter().addFilter(diagramFilter);
- IDifferenceGroup group = new BasicDifferenceGroupImpl(getComparison(), alwaysTrue(),
- getCrossReferenceAdapter());
+ IDifferenceGroup group = new BasicDifferenceGroupImpl(getComparison(),
+ alwaysTrue(), getCrossReferenceAdapter());
List<? extends TreeNode> roots = group.getChildren();
// Uncomment the following lines to reserialize the expected model
// TestWriterHelper writerHelper = createTestHelper();
- // writerHelper.createExpectedModel(PATH_TO_MODEL_FILE+"/expectedResult_DiagRefineOn.nodes", roots);
+ // writerHelper.createExpectedModel(PATH_TO_MODEL_FILE+"/expectedResult_DiagRefineOn.nodes",
+ // roots);
- compareTree(expectedResultData.getExpectedReseultWithFilterOn(), roots,false);
+ compareTree(expectedResultData.getExpectedReseultWithFilterOn(), roots,
+ false);
}
/**
@@ -173,46 +172,22 @@ public class PapyrusDifferencesOrderTest extends AbstractDifferenceOrderTest {
*
* @author <a href="mailto:arthur.daussy@obeo.fr">Arthur Daussy</a>
*/
- private static final class InputData extends DiagramInputData implements NotifierScopeProvider {
+ private static final class InputData extends DiagramInputData implements
+ NotifierScopeProvider {
public ResourceSet getLeft() throws IOException {
- return loadFromClassLoader("data/a1/left.notation").getResourceSet();
+ return loadFromClassLoader("data/a1/left.notation")
+ .getResourceSet();
}
public ResourceSet getRight() throws IOException {
- return loadFromClassLoader("data/a1/right.notation").getResourceSet();
+ return loadFromClassLoader("data/a1/right.notation")
+ .getResourceSet();
}
public ResourceSet getOrigin() throws IOException {
- return loadFromClassLoader("data/a1/origin.notation").getResourceSet();
- }
-
- @Override
- protected Resource loadFromClassLoader(String string) throws IOException {
- final URL fileURL = getClass().getResource(string);
- final InputStream str = fileURL.openStream();
- final URI uri = URI.createURI(fileURL.toString());
-
- ResourceSet resourceSet = new ResourceSetImpl();
- getSets().add(resourceSet);
-
- if (!EMFPlugin.IS_RESOURCES_BUNDLE_AVAILABLE) {
- resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("uml",
- new UMLResourceFactoryImpl());
- resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("notation",
- new GMFResourceFactory());
- EPackage.Registry.INSTANCE.put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
- EPackage.Registry.INSTANCE.put(NotationPackage.eNS_URI, NotationPackage.eINSTANCE);
- }
-
- Resource resource = resourceSet.createResource(uri);
-
- resource.load(str, Collections.emptyMap());
- str.close();
-
- EcoreUtil.resolveAll(resourceSet);
-
- return resource;
+ return loadFromClassLoader("data/a1/origin.notation")
+ .getResourceSet();
}
}
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/AssocMergeTest.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/AssocMergeTest.java
new file mode 100644
index 000000000..3d2170fef
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/AssocMergeTest.java
@@ -0,0 +1,594 @@
+/*******************************************************************************
+ * Copyright (c) 2015 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.diagram.papyrus.tests.merge;
+
+import static com.google.common.base.Predicates.and;
+import static com.google.common.collect.Iterables.filter;
+import static com.google.common.collect.Iterables.find;
+import static com.google.common.collect.Iterables.size;
+import static org.eclipse.emf.compare.DifferenceSource.LEFT;
+import static org.eclipse.emf.compare.DifferenceSource.RIGHT;
+import static org.eclipse.emf.compare.utils.EMFComparePredicates.fromSide;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import com.google.common.base.Predicate;
+
+import java.io.IOException;
+import java.util.regex.Pattern;
+
+import org.eclipse.emf.common.util.BasicMonitor;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.compare.Comparison;
+import org.eclipse.emf.compare.Diff;
+import org.eclipse.emf.compare.DifferenceKind;
+import org.eclipse.emf.compare.DifferenceSource;
+import org.eclipse.emf.compare.ReferenceChange;
+import org.eclipse.emf.compare.diagram.papyrus.internal.PapyrusDiagramPostProcessor;
+import org.eclipse.emf.compare.diagram.papyrus.tests.AbstractTest;
+import org.eclipse.emf.compare.diagram.papyrus.tests.DiagramInputData;
+import org.eclipse.emf.compare.diagram.papyrus.tests.merge.data.AssocMergeInputData;
+import org.eclipse.emf.compare.tests.postprocess.data.TestPostProcessor;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Shape;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.State;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.junit.Test;
+
+@SuppressWarnings("nls")
+public class AssocMergeTest extends AbstractTest {
+ private AssocMergeInputData input = new AssocMergeInputData();
+
+ /**
+ * Tests that merging a diff of a Connector that represents an association
+ * and whose target changes also merges the "equivalent" change of the
+ * related property whose type has changed accordingly.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void test2WayA1LeftToRight() throws IOException {
+ final Resource left = input.get2WayA1Left();
+ final Resource right = input.get2WayA1Right();
+
+ Comparison comparison = buildComparison(left, right);
+
+ EList<Diff> diffs = comparison.getDifferences();
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("Class3"))));
+
+ // ** MERGE **
+ Diff node = find(diffs, edgeTargetChangeTo("Class3"));
+ getMergerRegistry().getHighestRankingMerger(node).copyLeftToRight(node,
+ new BasicMonitor());
+
+ // ** MERGE CHECKING **
+ comparison = buildComparison(left, right);
+ assertTrue(comparison.getDifferences().isEmpty());
+ }
+
+ /**
+ * Tests that merging a diff of a Connector that represents an association
+ * and whose target changes also merges the "equivalent" change of the
+ * related property whose type has changed accordingly.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void test2WayA1RightToLeft() throws IOException {
+ final Resource left = input.get2WayA1Left();
+ final Resource right = input.get2WayA1Right();
+
+ Comparison comparison = buildComparison(left, right);
+
+ EList<Diff> diffs = comparison.getDifferences();
+ assertEquals(25, diffs.size());
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("Class3"))));
+
+ // ** MERGE **
+ Diff node = find(diffs, edgeTargetChangeTo("Class3"));
+ getMergerRegistry().getHighestRankingMerger(node).copyRightToLeft(node,
+ new BasicMonitor());
+
+ // ** MERGE CHECKING **
+ comparison = buildComparison(left, right);
+ // 2 diffs must have been merged
+ assertEquals(23, comparison.getDifferences().size());
+ }
+
+ /**
+ * Tests that merging a diff of a Connector that represents an association
+ * and whose target changes also merges the "equivalent" change of the
+ * related property whose type has changed accordingly. The association owns
+ * both ends (contrary to A1).
+ *
+ * @throws IOException
+ */
+ @Test
+ public void test2WayA2LeftToRight() throws IOException {
+ final Resource left = input.get2WayA2Left();
+ final Resource right = input.get2WayA2Right();
+
+ Comparison comparison = buildComparison(left, right);
+
+ EList<Diff> diffs = comparison.getDifferences();
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("Class3"))));
+
+ // ** MERGE **
+ Diff node = find(diffs, edgeTargetChangeTo("Class3"));
+ getMergerRegistry().getHighestRankingMerger(node).copyLeftToRight(node,
+ new BasicMonitor());
+
+ // ** MERGE CHECKING **
+ comparison = buildComparison(left, right);
+ assertTrue(comparison.getDifferences().isEmpty());
+ }
+
+ /**
+ * Tests that merging a diff of a Connector that represents an association
+ * and whose target changes also merges the "equivalent" change of the
+ * related property whose type has changed accordingly. The association owns
+ * both ends (contrary to A1).
+ *
+ * @throws IOException
+ */
+ @Test
+ public void test2WayA2RightToLeft() throws IOException {
+ final Resource left = input.get2WayA2Left();
+ final Resource right = input.get2WayA2Right();
+
+ Comparison comparison = buildComparison(left, right);
+
+ EList<Diff> diffs = comparison.getDifferences();
+ assertEquals(25, diffs.size());
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("Class3"))));
+
+ // ** MERGE **
+ Diff node = find(diffs, edgeTargetChangeTo("Class3"));
+ getMergerRegistry().getHighestRankingMerger(node).copyRightToLeft(node,
+ new BasicMonitor());
+
+ // ** MERGE CHECKING **
+ comparison = buildComparison(left, right);
+ // 2 diffs must have been merged
+ assertEquals(23, comparison.getDifferences().size());
+ }
+
+ /**
+ * Tests that merging a diff of an edge that represents a transition and
+ * whose target changes also merges the "equivalent" change of the related
+ * transition whose type has changed accordingly.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void test2WayT1LeftToRight() throws IOException {
+ final Resource left = input.get2WayT1Left();
+ final Resource right = input.get2WayT1Right();
+
+ Comparison comparison = buildComparison(left, right);
+
+ EList<Diff> diffs = comparison.getDifferences();
+ assertEquals(4, diffs.size());
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("State2"))));
+
+ // ** MERGE **
+ Diff node = find(diffs, edgeTargetChangeTo("State2"));
+ getMergerRegistry().getHighestRankingMerger(node).copyLeftToRight(node,
+ new BasicMonitor());
+
+ // ** MERGE CHECKING **
+ comparison = buildComparison(left, right);
+ assertEquals(2, comparison.getDifferences().size());
+ }
+
+ /**
+ * Tests that merging a diff of an edge that represents a transition and
+ * whose target changes also merges the "equivalent" change of the related
+ * transition whose type has changed accordingly.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void test2WayT1RightToLeft() throws IOException {
+ final Resource left = input.get2WayT1Left();
+ final Resource right = input.get2WayT1Right();
+
+ Comparison comparison = buildComparison(left, right);
+
+ EList<Diff> diffs = comparison.getDifferences();
+ assertEquals(4, diffs.size());
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("State2"))));
+
+ // ** MERGE **
+ Diff node = find(diffs, edgeTargetChangeTo("State2"));
+ getMergerRegistry().getHighestRankingMerger(node).copyRightToLeft(node,
+ new BasicMonitor());
+
+ // ** MERGE CHECKING **
+ comparison = buildComparison(left, right);
+ assertEquals(2, comparison.getDifferences().size());
+ }
+
+ /**
+ * Tests that merging a diff of an edge that represents a transition and
+ * whose target changes also merges the "equivalent" change of the related
+ * transition whose type has changed accordingly, and reject the 2
+ * conflicts.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testConflictC1LeftToRight() throws IOException {
+ final Resource ancestor = input.getConflictC1Ancestor();
+ final Resource left = input.getConflictC1Left();
+ final Resource right = input.getConflictC1Right();
+
+ Comparison comparison = buildComparison(left, right, ancestor);
+
+ EList<Diff> diffs = comparison.getDifferences();
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("Class1", LEFT))));
+ assertEquals(1,
+ size(filter(diffs, edgeTargetChangeTo("Class2", RIGHT))));
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("Class3", LEFT))));
+ assertEquals(1,
+ size(filter(diffs, edgeTargetChangeTo("Class4", RIGHT))));
+
+ // ** MERGE **
+ Diff node = find(diffs, edgeTargetChangeTo("Class1", LEFT));
+ getMergerRegistry().getHighestRankingMerger(node).copyLeftToRight(node,
+ new BasicMonitor());
+ node = find(diffs, edgeTargetChangeTo("Class3", LEFT));
+ getMergerRegistry().getHighestRankingMerger(node).copyLeftToRight(node,
+ new BasicMonitor());
+
+ // ** MERGE CHECKING **
+ // left and right must now be equal
+ comparison = buildComparison(left, right);
+ assertTrue(comparison.getDifferences().isEmpty());
+ }
+
+ /**
+ * Tests that merging a diff of an edge that represents a transition and
+ * whose target changes also merges the "equivalent" change of the related
+ * transition whose type has changed accordingly, and reject the 2
+ * conflicts.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testConflictC1RightToLeft() throws IOException {
+ final Resource ancestor = input.getConflictC1Ancestor();
+ final Resource left = input.getConflictC1Left();
+ final Resource right = input.getConflictC1Right();
+
+ Comparison comparison = buildComparison(left, right, ancestor);
+
+ EList<Diff> diffs = comparison.getDifferences();
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("Class1", LEFT))));
+ assertEquals(1,
+ size(filter(diffs, edgeTargetChangeTo("Class2", RIGHT))));
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("Class3", LEFT))));
+ assertEquals(1,
+ size(filter(diffs, edgeTargetChangeTo("Class4", RIGHT))));
+
+ // ** MERGE **
+ Diff node = find(diffs, edgeTargetChangeTo("Class2", RIGHT));
+ getMergerRegistry().getHighestRankingMerger(node).copyRightToLeft(node,
+ new BasicMonitor());
+ node = find(diffs, edgeTargetChangeTo("Class4", RIGHT));
+ getMergerRegistry().getHighestRankingMerger(node).copyRightToLeft(node,
+ new BasicMonitor());
+
+ // ** MERGE CHECKING **
+ // left and right must now be equal
+ comparison = buildComparison(left, right);
+ assertTrue(comparison.getDifferences().isEmpty());
+ }
+
+ /**
+ * Tests that merging a diff of an edge that represents a transition and
+ * whose target changes also merges the "equivalent" change of the related
+ * transition whose type has changed accordingly, and reject the 2
+ * conflicts.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testConflictT1LeftToRight() throws IOException {
+ final Resource ancestor = input.getConflictT1Ancestor();
+ final Resource left = input.getConflictT1Left();
+ final Resource right = input.getConflictT1Right();
+
+ Comparison comparison = buildComparison(left, right, ancestor);
+
+ EList<Diff> diffs = comparison.getDifferences();
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("State3"))));
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("State4"))));
+ assertEquals(1, size(filter(diffs, transitionTargetToState("State3"))));
+ assertEquals(1, size(filter(diffs, transitionTargetToState("State4"))));
+
+ // ** MERGE **
+ Diff node = find(diffs, edgeTargetChangeTo("State3"));
+ getMergerRegistry().getHighestRankingMerger(node).copyLeftToRight(node,
+ new BasicMonitor());
+
+ // ** MERGE CHECKING **
+ // left and right must now be equal
+ comparison = buildComparison(left, right);
+ assertTrue(comparison.getDifferences().isEmpty());
+ }
+
+ /**
+ * Tests that merging a diff of an edge that represents a transition and
+ * whose target changes also merges the "equivalent" change of the related
+ * transition whose type has changed accordingly, and reject the 2
+ * conflicts.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testConflictT1RightToLeft() throws IOException {
+ final Resource ancestor = input.getConflictT1Ancestor();
+ final Resource left = input.getConflictT1Left();
+ final Resource right = input.getConflictT1Right();
+
+ Comparison comparison = buildComparison(left, right, ancestor);
+
+ EList<Diff> diffs = comparison.getDifferences();
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("State3"))));
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("State4"))));
+ assertEquals(1, size(filter(diffs, transitionTargetToState("State3"))));
+ assertEquals(1, size(filter(diffs, transitionTargetToState("State4"))));
+
+ // ** MERGE **
+ Diff node = find(diffs, edgeTargetChangeTo("State4"));
+ getMergerRegistry().getHighestRankingMerger(node).copyRightToLeft(node,
+ new BasicMonitor());
+
+ // ** MERGE CHECKING **
+ // left and right must now be equal
+ comparison = buildComparison(left, right);
+ assertTrue(comparison.getDifferences().isEmpty());
+ }
+
+ /**
+ * Tests that merging a diff of an edge that represents a transition and
+ * whose target changes also merges the "equivalent" change of the related
+ * transition whose type has changed accordingly.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void test3WayT1LeftToRight() throws IOException {
+ final Resource ancestor = input.get3WayT1Ancestor();
+ final Resource left = input.get3WayT1Left();
+ final Resource right = input.get3WayT1Right();
+
+ Comparison comparison = buildComparison(left, right, ancestor);
+
+ EList<Diff> diffs = comparison.getDifferences();
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("State3", LEFT))));
+ assertEquals(1,
+ size(filter(diffs, edgeSourceChangeTo("State3", RIGHT))));
+
+ // ** MERGE **
+ Diff node = find(diffs, edgeTargetChangeTo("State3", LEFT));
+ getMergerRegistry().getHighestRankingMerger(node).copyLeftToRight(node,
+ new BasicMonitor());
+ node = find(diffs, edgeSourceChangeTo("State3", RIGHT));
+ getMergerRegistry().getHighestRankingMerger(node).copyLeftToRight(node,
+ new BasicMonitor());
+
+ // ** MERGE CHECKING **
+ // left and right must now be equal
+ comparison = buildComparison(left, right);
+ assertTrue(comparison.getDifferences().isEmpty());
+ }
+
+ /**
+ * Tests that merging a diff of an edge that represents a transition and
+ * whose target changes also merges the "equivalent" change of the related
+ * transition whose type has changed accordingly.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void test3WayC1LeftToRight() throws IOException {
+ final Resource ancestor = input.get3WayC1Ancestor();
+ final Resource left = input.get3WayC1Left();
+ final Resource right = input.get3WayC1Right();
+
+ Comparison comparison = buildComparison(left, right, ancestor);
+
+ EList<Diff> diffs = comparison.getDifferences();
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("Class3", LEFT))));
+ assertEquals(1,
+ size(filter(diffs, edgeTargetChangeTo("Class1", RIGHT))));
+
+ // ** MERGE **
+ Diff node = find(diffs, edgeTargetChangeTo("Class3", LEFT));
+ getMergerRegistry().getHighestRankingMerger(node).copyLeftToRight(node,
+ new BasicMonitor());
+ node = find(diffs, edgeTargetChangeTo("Class1", RIGHT));
+ getMergerRegistry().getHighestRankingMerger(node).copyLeftToRight(node,
+ new BasicMonitor());
+
+ // ** MERGE CHECKING **
+ // left and right must now be equal
+ comparison = buildComparison(left, right);
+ assertTrue(comparison.getDifferences().isEmpty());
+ }
+
+ /**
+ * Tests that merging a diff of an edge that represents a transition and
+ * whose target changes also merges the "equivalent" change of the related
+ * transition whose type has changed accordingly.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void test3WayC1RightToLeft() throws IOException {
+ final Resource ancestor = input.get3WayC1Ancestor();
+ final Resource left = input.get3WayC1Left();
+ final Resource right = input.get3WayC1Right();
+
+ Comparison comparison = buildComparison(left, right, ancestor);
+
+ EList<Diff> diffs = comparison.getDifferences();
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("Class3", LEFT))));
+ assertEquals(1,
+ size(filter(diffs, edgeTargetChangeTo("Class1", RIGHT))));
+
+ // ** MERGE **
+ Diff node = find(diffs, edgeTargetChangeTo("Class3", LEFT));
+ getMergerRegistry().getHighestRankingMerger(node).copyRightToLeft(node,
+ new BasicMonitor());
+ node = find(diffs, edgeTargetChangeTo("Class1", RIGHT));
+ getMergerRegistry().getHighestRankingMerger(node).copyRightToLeft(node,
+ new BasicMonitor());
+
+ // ** MERGE CHECKING **
+ // left and right must now be equal
+ comparison = buildComparison(left, right);
+ assertTrue(comparison.getDifferences().isEmpty());
+ }
+
+ /**
+ * Tests that merging a diff of an edge that represents a transition and
+ * whose target changes also merges the "equivalent" change of the related
+ * transition whose type has changed accordingly.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void test3WayT1RightToLeft() throws IOException {
+ final Resource ancestor = input.get3WayT1Ancestor();
+ final Resource left = input.get3WayT1Left();
+ final Resource right = input.get3WayT1Right();
+
+ Comparison comparison = buildComparison(left, right, ancestor);
+
+ EList<Diff> diffs = comparison.getDifferences();
+ assertEquals(1, size(filter(diffs, edgeTargetChangeTo("State3", LEFT))));
+ assertEquals(1,
+ size(filter(diffs, edgeSourceChangeTo("State3", RIGHT))));
+
+ // ** MERGE **
+ Diff node = find(diffs, edgeTargetChangeTo("State3", LEFT));
+ getMergerRegistry().getHighestRankingMerger(node).copyRightToLeft(node,
+ new BasicMonitor());
+ node = find(diffs, edgeSourceChangeTo("State3", RIGHT));
+ getMergerRegistry().getHighestRankingMerger(node).copyRightToLeft(node,
+ new BasicMonitor());
+
+ // ** MERGE CHECKING **
+ // left and right must now be equal
+ comparison = buildComparison(left, right);
+ assertTrue(comparison.getDifferences().isEmpty());
+ }
+
+ private Predicate<Diff> edgeTargetChangeTo(String name,
+ final DifferenceSource source) {
+ return and(edgeTargetChangeTo(name), fromSide(source));
+ }
+
+ private Predicate<Diff> edgeSourceChangeTo(String name,
+ final DifferenceSource source) {
+ return and(edgeSourceChangeTo(name), fromSide(source));
+ }
+
+ private Predicate<Diff> edgeSourceChangeTo(String name) {
+ return and(
+ isReferenceChange(DifferenceKind.CHANGE,
+ NotationPackage.Literals.EDGE__SOURCE, Shape.class),
+ valueIsViewNamed(name));
+ }
+
+ private Predicate<Diff> edgeTargetChangeTo(String name) {
+ return and(
+ isReferenceChange(DifferenceKind.CHANGE,
+ NotationPackage.Literals.EDGE__TARGET, Shape.class),
+ valueIsViewNamed(name));
+ }
+
+ private Predicate<Diff> transitionTargetToState(String name) {
+ return and(
+ isReferenceChange(DifferenceKind.CHANGE,
+ UMLPackage.Literals.TRANSITION__TARGET, State.class),
+ valueIsElement(UMLPackage.Literals.STATE, name));
+ }
+
+ private Predicate<Diff> valueIsElement(final EClass eClass,
+ final String name) {
+ return new Predicate<Diff>() {
+ public boolean apply(Diff input) {
+ ReferenceChange refChange = (ReferenceChange) input;
+ EObject value = refChange.getValue();
+ return value instanceof NamedElement
+ && eClass.isInstance(value)
+ && name.equals(((NamedElement) value).getName());
+ }
+ };
+ }
+
+ private Predicate<Diff> isReferenceChange(final DifferenceKind kind,
+ final EReference ref, final Class<?> clazz) {
+ return new Predicate<Diff>() {
+ public boolean apply(Diff input) {
+ if (input instanceof ReferenceChange && input.getKind() == kind) {
+ ReferenceChange refChange = (ReferenceChange) input;
+ return refChange.getReference() == ref
+ && refChange.getValue() != null
+ && clazz.isAssignableFrom(refChange.getValue()
+ .getClass());
+ }
+ return false;
+ }
+ };
+ }
+
+ private Predicate<Diff> valueIsViewNamed(final String name) {
+ return new Predicate<Diff>() {
+ public boolean apply(Diff input) {
+ ReferenceChange refChange = (ReferenceChange) input;
+ if (refChange.getValue() instanceof View) {
+ View view = (View) refChange.getValue();
+ return view.getElement() instanceof NamedElement
+ && name.equals(((NamedElement) view.getElement())
+ .getName());
+ }
+ return false;
+ }
+ };
+ }
+
+ @Override
+ protected DiagramInputData getInput() {
+ return input;
+ }
+
+ @Override
+ public void registerPostProcessors() {
+ super.registerPostProcessors();
+ getPostProcessorRegistry()
+ .put(PapyrusDiagramPostProcessor.class.getName(),
+ new TestPostProcessor.TestPostProcessorDescriptor(
+ Pattern.compile("http://www.eclipse.org/gmf/runtime/\\d.\\d.\\d/notation"),
+ null, new PapyrusDiagramPostProcessor(), 35));
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/AssocMergeInputData.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/AssocMergeInputData.java
new file mode 100644
index 000000000..bacfa9eae
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/AssocMergeInputData.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright (c) 2015 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.diagram.papyrus.tests.merge.data;
+
+import java.io.IOException;
+
+import org.eclipse.emf.compare.diagram.papyrus.tests.DiagramInputData;
+import org.eclipse.emf.ecore.resource.Resource;
+
+/**
+ * Provides input models to the unit tests of the matching by id.
+ *
+ * @author <a href="mailto:laurent.delaigue@obeo.fr">Laurent Delaigue</a>
+ */
+@SuppressWarnings("nls")
+public class AssocMergeInputData extends DiagramInputData {
+
+ public Resource get2WayA1Left() throws IOException {
+ return loadFromClassLoader("assocs/twoway/a1/left.notation");
+ }
+
+ public Resource get2WayA1Right() throws IOException {
+ return loadFromClassLoader("assocs/twoway/a1/right.notation");
+ }
+
+ public Resource get2WayA2Left() throws IOException {
+ return loadFromClassLoader("assocs/twoway/a2/left.notation");
+ }
+
+ public Resource get2WayA2Right() throws IOException {
+ return loadFromClassLoader("assocs/twoway/a2/right.notation");
+ }
+
+ public Resource get2WayT1Left() throws IOException {
+ return loadFromClassLoader("assocs/twoway/t1/left.notation");
+ }
+
+ public Resource get2WayT1Right() throws IOException {
+ return loadFromClassLoader("assocs/twoway/t1/right.notation");
+ }
+
+ public Resource get3WayC1Ancestor() throws IOException {
+ return loadFromClassLoader("assocs/threeway/c1/ancestor.notation");
+ }
+
+ public Resource get3WayC1Left() throws IOException {
+ return loadFromClassLoader("assocs/threeway/c1/left.notation");
+ }
+
+ public Resource get3WayC1Right() throws IOException {
+ return loadFromClassLoader("assocs/threeway/c1/right.notation");
+ }
+
+ public Resource get3WayT1Ancestor() throws IOException {
+ return loadFromClassLoader("assocs/threeway/t1/ancestor.notation");
+ }
+
+ public Resource get3WayT1Left() throws IOException {
+ return loadFromClassLoader("assocs/threeway/t1/left.notation");
+ }
+
+ public Resource get3WayT1Right() throws IOException {
+ return loadFromClassLoader("assocs/threeway/t1/right.notation");
+ }
+
+ public Resource getConflictC1Ancestor() throws IOException {
+ return loadFromClassLoader("assocs/conflict/c1/ancestor.notation");
+ }
+
+ public Resource getConflictC1Left() throws IOException {
+ return loadFromClassLoader("assocs/conflict/c1/left.notation");
+ }
+
+ public Resource getConflictC1Right() throws IOException {
+ return loadFromClassLoader("assocs/conflict/c1/right.notation");
+ }
+
+ public Resource getConflictT1Ancestor() throws IOException {
+ return loadFromClassLoader("assocs/conflict/t1/ancestor.notation");
+ }
+
+ public Resource getConflictT1Left() throws IOException {
+ return loadFromClassLoader("assocs/conflict/t1/left.notation");
+ }
+
+ public Resource getConflictT1Right() throws IOException {
+ return loadFromClassLoader("assocs/conflict/t1/right.notation");
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/EdgeMergeInputData.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/EdgeMergeInputData.java
index ecc028b26..d80d39f49 100644
--- a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/EdgeMergeInputData.java
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/EdgeMergeInputData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2013 Obeo.
+ * Copyright (c) 2013, 2015 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
@@ -11,22 +11,9 @@
package org.eclipse.emf.compare.diagram.papyrus.tests.merge.data;
import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Collections;
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.compare.diagram.papyrus.tests.DiagramInputData;
-import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory;
-import org.eclipse.gmf.runtime.notation.NotationPackage;
-import org.eclipse.uml2.uml.UMLPackage;
-import org.eclipse.uml2.uml.internal.resource.UMLResourceFactoryImpl;
/**
* Provides input models to the unit tests of the matching by id.
@@ -35,7 +22,7 @@ import org.eclipse.uml2.uml.internal.resource.UMLResourceFactoryImpl;
*/
@SuppressWarnings("nls")
public class EdgeMergeInputData extends DiagramInputData {
-
+
public Resource getA1EdgeChangeLeft() throws IOException {
return loadFromClassLoader("edges/a1/left.notation");
}
@@ -43,7 +30,7 @@ public class EdgeMergeInputData extends DiagramInputData {
public Resource getA1EdgeChangeRight() throws IOException {
return loadFromClassLoader("edges/a1/right.notation");
}
-
+
public Resource getA2EdgeChangeLeft() throws IOException {
return loadFromClassLoader("edges/a2/left.notation");
}
@@ -51,7 +38,7 @@ public class EdgeMergeInputData extends DiagramInputData {
public Resource getA2EdgeChangeRight() throws IOException {
return loadFromClassLoader("edges/a2/right.notation");
}
-
+
public Resource getA3EdgeChangeLeft() throws IOException {
return loadFromClassLoader("edges/a3/left.notation");
}
@@ -59,7 +46,7 @@ public class EdgeMergeInputData extends DiagramInputData {
public Resource getA3EdgeChangeRight() throws IOException {
return loadFromClassLoader("edges/a3/right.notation");
}
-
+
public Resource getA4EdgeChangeLeft() throws IOException {
return loadFromClassLoader("edges/a4/left.notation");
}
@@ -67,7 +54,7 @@ public class EdgeMergeInputData extends DiagramInputData {
public Resource getA4EdgeChangeRight() throws IOException {
return loadFromClassLoader("edges/a4/right.notation");
}
-
+
public Resource getA5EdgeChangeLeft() throws IOException {
return loadFromClassLoader("edges/a5/left.notation");
}
@@ -75,7 +62,7 @@ public class EdgeMergeInputData extends DiagramInputData {
public Resource getA5EdgeChangeRight() throws IOException {
return loadFromClassLoader("edges/a5/right.notation");
}
-
+
public Resource getA6EdgeChangeLeft() throws IOException {
return loadFromClassLoader("edges/a6/left.notation");
}
@@ -83,7 +70,7 @@ public class EdgeMergeInputData extends DiagramInputData {
public Resource getA6EdgeChangeRight() throws IOException {
return loadFromClassLoader("edges/a6/right.notation");
}
-
+
public Resource getA7EdgeChangeLeft() throws IOException {
return loadFromClassLoader("edges/a7/left.notation");
}
@@ -91,32 +78,4 @@ public class EdgeMergeInputData extends DiagramInputData {
public Resource getA7EdgeChangeRight() throws IOException {
return loadFromClassLoader("edges/a7/right.notation");
}
-
- @Override
- protected Resource loadFromClassLoader(String string) throws IOException {
- final URL fileURL = getClass().getResource(string);
- final InputStream str = fileURL.openStream();
- final URI uri = URI.createURI(fileURL.toString());
-
- ResourceSet resourceSet = new ResourceSetImpl();
- getSets().add(resourceSet);
-
- if (!EMFPlugin.IS_RESOURCES_BUNDLE_AVAILABLE) {
- resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("uml",
- new UMLResourceFactoryImpl());
- resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("notation",
- new GMFResourceFactory());
- EPackage.Registry.INSTANCE.put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
- EPackage.Registry.INSTANCE.put(NotationPackage.eNS_URI, NotationPackage.eINSTANCE);
- }
-
- Resource resource = resourceSet.createResource(uri);
-
- resource.load(str, Collections.emptyMap());
- str.close();
-
- EcoreUtil.resolveAll(resourceSet);
-
- return resource;
- }
}
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/NodeMergeInputData.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/NodeMergeInputData.java
index 7d4992644..bcf5607e4 100644
--- a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/NodeMergeInputData.java
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/NodeMergeInputData.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2013 Obeo.
+ * Copyright (c) 2013, 2015 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
@@ -11,22 +11,9 @@
package org.eclipse.emf.compare.diagram.papyrus.tests.merge.data;
import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Collections;
-import org.eclipse.emf.common.EMFPlugin;
-import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.compare.diagram.papyrus.tests.DiagramInputData;
-import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory;
-import org.eclipse.gmf.runtime.notation.NotationPackage;
-import org.eclipse.uml2.uml.UMLPackage;
-import org.eclipse.uml2.uml.internal.resource.UMLResourceFactoryImpl;
/**
* Provides input models to the unit tests of the matching by id.
@@ -35,7 +22,7 @@ import org.eclipse.uml2.uml.internal.resource.UMLResourceFactoryImpl;
*/
@SuppressWarnings("nls")
public class NodeMergeInputData extends DiagramInputData {
-
+
public Resource getA1NodeChangeLeft() throws IOException {
return loadFromClassLoader("nodes/a1/left.notation");
}
@@ -43,7 +30,7 @@ public class NodeMergeInputData extends DiagramInputData {
public Resource getA1NodeChangeRight() throws IOException {
return loadFromClassLoader("nodes/a1/right.notation");
}
-
+
public Resource getA2NodeChangeLeft() throws IOException {
return loadFromClassLoader("nodes/a2/left.notation");
}
@@ -51,7 +38,7 @@ public class NodeMergeInputData extends DiagramInputData {
public Resource getA2NodeChangeRight() throws IOException {
return loadFromClassLoader("nodes/a2/right.notation");
}
-
+
public Resource getA3NodeChangeLeft() throws IOException {
return loadFromClassLoader("nodes/a3/left.notation");
}
@@ -59,7 +46,7 @@ public class NodeMergeInputData extends DiagramInputData {
public Resource getA3NodeChangeRight() throws IOException {
return loadFromClassLoader("nodes/a3/right.notation");
}
-
+
public Resource getA4NodeChangeLeft() throws IOException {
return loadFromClassLoader("nodes/a4/left.notation");
}
@@ -67,37 +54,8 @@ public class NodeMergeInputData extends DiagramInputData {
public Resource getA4NodeChangeRight() throws IOException {
return loadFromClassLoader("nodes/a4/right.notation");
}
-
+
public Resource getA4NodeChangeOrigin() throws IOException {
return loadFromClassLoader("nodes/a4/ancestor.notation");
}
-
-
- @Override
- protected Resource loadFromClassLoader(String string) throws IOException {
- final URL fileURL = getClass().getResource(string);
- final InputStream str = fileURL.openStream();
- final URI uri = URI.createURI(fileURL.toString());
-
- ResourceSet resourceSet = new ResourceSetImpl();
- getSets().add(resourceSet);
-
- if (!EMFPlugin.IS_RESOURCES_BUNDLE_AVAILABLE) {
- resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("uml",
- new UMLResourceFactoryImpl());
- resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("notation",
- new GMFResourceFactory());
- EPackage.Registry.INSTANCE.put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
- EPackage.Registry.INSTANCE.put(NotationPackage.eNS_URI, NotationPackage.eINSTANCE);
- }
-
- Resource resource = resourceSet.createResource(uri);
-
- resource.load(str, Collections.emptyMap());
- str.close();
-
- EcoreUtil.resolveAll(resourceSet);
-
- return resource;
- }
}
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/ancestor.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/ancestor.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/ancestor.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/ancestor.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/ancestor.notation
new file mode 100644
index 000000000..a71be0536
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/ancestor.notation
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_zmK1oM7cEeSqqOMGqhj_Zg" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_0noSoM7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0npgwM7cEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="ancestor.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0nqH0M7cEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="ancestor.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0nqH0c7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV8M7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV8s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV887cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV9M7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV9c7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV9s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV987cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV-M7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV-c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nr9AM7cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nr9Ac7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nr9As7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nr9A87cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nr9BM7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="ancestor.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0noSoc7cEeSqqOMGqhj_Zg" x="81" y="74"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1K6l4M7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l4s7cEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="ancestor.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l487cEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="ancestor.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1K6l5M7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l5c7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l5s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l587cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l6M7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l6c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l6s7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l687cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l7M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l7c7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l7s7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l787cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l8M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l8s7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l887cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="ancestor.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l4c7cEeSqqOMGqhj_Zg" x="350" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TX4o4M7fEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4o4s7fEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="ancestor.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4o487fEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="ancestor.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TX4o5M7fEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o5c7fEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o5s7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o587fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o6M7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o6c7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o6s7fEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o687fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o7M7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o7c7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o7s7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o787fEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o8M7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o8c7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o8s7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o887fEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="ancestor.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o4c7fEeSqqOMGqhj_Zg" x="349" y="243"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CkYvcM_wEeS6X8bMfB-bzg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CkakoM_wEeS6X8bMfB-bzg" type="5029">
+ <element xmi:type="uml:Class" href="ancestor.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ckakoc_wEeS6X8bMfB-bzg" type="8510">
+ <element xmi:type="uml:Class" href="ancestor.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ckakos_wEeS6X8bMfB-bzg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLsM_wEeS6X8bMfB-bzg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLsc_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLss_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLs8_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLtM_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLtc_wEeS6X8bMfB-bzg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLts_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLt8_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLuM_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLuc_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLus_wEeS6X8bMfB-bzg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLu8_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLvM_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLvc_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLvs_wEeS6X8bMfB-bzg"/>
+ </children>
+ <element xmi:type="uml:Class" href="ancestor.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkYvcc_wEeS6X8bMfB-bzg" x="83" y="249"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_zmK1oc7cEeSqqOMGqhj_Zg" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zmK1os7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_zmK1o87cEeSqqOMGqhj_Zg">
+ <owner xmi:type="uml:Model" href="ancestor.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="ancestor.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_38pGoM7cEeSqqOMGqhj_Zg" type="4001" source="_0noSoM7cEeSqqOMGqhj_Zg" target="_1K6l4M7cEeSqqOMGqhj_Zg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGo87cEeSqqOMGqhj_Zg" type="6001">
+ <element xmi:type="uml:Association" href="ancestor.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGpM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGpc7cEeSqqOMGqhj_Zg" type="6002">
+ <element xmi:type="uml:Association" href="ancestor.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGps7cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGp87cEeSqqOMGqhj_Zg" type="6003">
+ <element xmi:type="uml:Association" href="ancestor.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGqM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptsM7cEeSqqOMGqhj_Zg" type="6005">
+ <element xmi:type="uml:Association" href="ancestor.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38ptsc7cEeSqqOMGqhj_Zg" x="-14" y="31"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptss7cEeSqqOMGqhj_Zg" type="6033">
+ <element xmi:type="uml:Association" href="ancestor.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pts87cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pttM7cEeSqqOMGqhj_Zg" type="6034">
+ <element xmi:type="uml:Association" href="ancestor.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pttc7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_38pGoc7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Association" href="ancestor.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_38pGos7cEeSqqOMGqhj_Zg" points="[50, -8, -219, -6]$[219, -8, -50, -6]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Wp4vkNLZEeSzBO7rhIZWOw" type="4001" source="_CkYvcM_wEeS6X8bMfB-bzg" target="_TX4o4M7fEeSqqOMGqhj_Zg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WoNLZEeSzBO7rhIZWOw" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5WodLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WotLZEeSzBO7rhIZWOw" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5Wo9LZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WpNLZEeSzBO7rhIZWOw" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5WpdLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59sNLZEeSzBO7rhIZWOw" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59sdLZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59stLZEeSzBO7rhIZWOw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59s9LZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59tNLZEeSzBO7rhIZWOw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59tdLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Wp4vkdLZEeSzBO7rhIZWOw"/>
+ <element xmi:type="uml:Association" href="ancestor.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Wp4vktLZEeSzBO7rhIZWOw" points="[50, -3, -216, 3]$[269, -56, 3, -50]"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_SsK80NLZEeSzBO7rhIZWOw"/>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/ancestor.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/ancestor.uml
new file mode 100644
index 000000000..aa48ba775
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/ancestor.uml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_soPaMM7cEeSqqOMGqhj_Zg" name="model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0nM00M7cEeSqqOMGqhj_Zg" name="Class1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1K5XwM7cEeSqqOMGqhj_Zg" name="Class2"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_38mDUM7cEeSqqOMGqhj_Zg" memberEnd="_38mDUc7cEeSqqOMGqhj_Zg _38lcQM7cEeSqqOMGqhj_Zg">
+ <name xsi:nil="true"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38mDUc7cEeSqqOMGqhj_Zg" name="class1" type="_0nM00M7cEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38mDUs7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38mDU87cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38lcQM7cEeSqqOMGqhj_Zg" name="someRole" type="_1K5XwM7cEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38lcQc7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38lcQs7cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TX3awM7fEeSqqOMGqhj_Zg" name="Class3"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Cha7AM_wEeS6X8bMfB-bzg" name="Class4">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Wpl0oNLZEeSzBO7rhIZWOw" name="otherRole" type="_TX3awM7fEeSqqOMGqhj_Zg" association="_WpmbsNLZEeSzBO7rhIZWOw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Wpl0odLZEeSzBO7rhIZWOw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Wpl0otLZEeSzBO7rhIZWOw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_WpmbsNLZEeSzBO7rhIZWOw" memberEnd="_WpmbsdLZEeSzBO7rhIZWOw _Wpl0oNLZEeSzBO7rhIZWOw">
+ <name xsi:nil="true"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_WpmbsdLZEeSzBO7rhIZWOw" name="class4" type="_Cha7AM_wEeS6X8bMfB-bzg" association="_WpmbsNLZEeSzBO7rhIZWOw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WpmbstLZEeSzBO7rhIZWOw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Wpmbs9LZEeSzBO7rhIZWOw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/left.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/left.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/left.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/left.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/left.notation
new file mode 100644
index 000000000..36b8f3e13
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/left.notation
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_zmK1oM7cEeSqqOMGqhj_Zg" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_0noSoM7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0npgwM7cEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="left.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0nqH0M7cEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="left.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0nqH0c7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV8M7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV8s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV887cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV9M7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV9c7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV9s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV987cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV-M7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV-c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nr9AM7cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nr9Ac7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nr9As7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nr9A87cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nr9BM7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="left.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0noSoc7cEeSqqOMGqhj_Zg" x="81" y="74"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1K6l4M7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l4s7cEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="left.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l487cEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="left.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1K6l5M7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l5c7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l5s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l587cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l6M7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l6c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l6s7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l687cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l7M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l7c7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l7s7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l787cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l8M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l8s7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l887cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="left.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l4c7cEeSqqOMGqhj_Zg" x="350" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TX4o4M7fEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4o4s7fEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="left.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4o487fEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="left.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TX4o5M7fEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o5c7fEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o5s7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o587fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o6M7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o6c7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o6s7fEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o687fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o7M7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o7c7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o7s7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o787fEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o8M7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o8c7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o8s7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o887fEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="left.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o4c7fEeSqqOMGqhj_Zg" x="349" y="243"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CkYvcM_wEeS6X8bMfB-bzg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CkakoM_wEeS6X8bMfB-bzg" type="5029">
+ <element xmi:type="uml:Class" href="left.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ckakoc_wEeS6X8bMfB-bzg" type="8510">
+ <element xmi:type="uml:Class" href="left.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ckakos_wEeS6X8bMfB-bzg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLsM_wEeS6X8bMfB-bzg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLsc_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLss_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLs8_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="left.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLtM_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLtc_wEeS6X8bMfB-bzg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLts_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLt8_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLuM_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="left.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLuc_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLus_wEeS6X8bMfB-bzg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLu8_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLvM_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLvc_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="left.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLvs_wEeS6X8bMfB-bzg"/>
+ </children>
+ <element xmi:type="uml:Class" href="left.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkYvcc_wEeS6X8bMfB-bzg" x="83" y="249"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_zmK1oc7cEeSqqOMGqhj_Zg" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zmK1os7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_zmK1o87cEeSqqOMGqhj_Zg">
+ <owner xmi:type="uml:Model" href="left.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="left.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_38pGoM7cEeSqqOMGqhj_Zg" type="4001" source="_0noSoM7cEeSqqOMGqhj_Zg" target="_TX4o4M7fEeSqqOMGqhj_Zg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGo87cEeSqqOMGqhj_Zg" type="6001">
+ <element xmi:type="uml:Association" href="left.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGpM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGpc7cEeSqqOMGqhj_Zg" type="6002">
+ <element xmi:type="uml:Association" href="left.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGps7cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGp87cEeSqqOMGqhj_Zg" type="6003">
+ <element xmi:type="uml:Association" href="left.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGqM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptsM7cEeSqqOMGqhj_Zg" type="6005">
+ <element xmi:type="uml:Association" href="left.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38ptsc7cEeSqqOMGqhj_Zg" x="-14" y="31"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptss7cEeSqqOMGqhj_Zg" type="6033">
+ <element xmi:type="uml:Association" href="left.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pts87cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pttM7cEeSqqOMGqhj_Zg" type="6034">
+ <element xmi:type="uml:Association" href="left.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pttc7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_38pGoc7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Association" href="left.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_38pGos7cEeSqqOMGqhj_Zg" points="[50, -8, -219, -6]$[219, -8, -50, -6]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Wp4vkNLZEeSzBO7rhIZWOw" type="4001" source="_CkYvcM_wEeS6X8bMfB-bzg" target="_0noSoM7cEeSqqOMGqhj_Zg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WoNLZEeSzBO7rhIZWOw" type="6001">
+ <element xmi:type="uml:Association" href="left.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5WodLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WotLZEeSzBO7rhIZWOw" type="6002">
+ <element xmi:type="uml:Association" href="left.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5Wo9LZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WpNLZEeSzBO7rhIZWOw" type="6003">
+ <element xmi:type="uml:Association" href="left.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5WpdLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59sNLZEeSzBO7rhIZWOw" type="6005">
+ <element xmi:type="uml:Association" href="left.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59sdLZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59stLZEeSzBO7rhIZWOw" type="6033">
+ <element xmi:type="uml:Association" href="left.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59s9LZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59tNLZEeSzBO7rhIZWOw" type="6034">
+ <element xmi:type="uml:Association" href="left.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59tdLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Wp4vkdLZEeSzBO7rhIZWOw"/>
+ <element xmi:type="uml:Association" href="left.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Wp4vktLZEeSzBO7rhIZWOw" points="[50, -3, -216, 3]$[269, -56, 3, -50]"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_SsK80NLZEeSzBO7rhIZWOw"/>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/left.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/left.uml
new file mode 100644
index 000000000..b4be95a58
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/left.uml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_soPaMM7cEeSqqOMGqhj_Zg" name="model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0nM00M7cEeSqqOMGqhj_Zg" name="Class1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1K5XwM7cEeSqqOMGqhj_Zg" name="Class2"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_38mDUM7cEeSqqOMGqhj_Zg" memberEnd="_38mDUc7cEeSqqOMGqhj_Zg _38lcQM7cEeSqqOMGqhj_Zg">
+ <name xsi:nil="true"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38mDUc7cEeSqqOMGqhj_Zg" name="class1" type="_0nM00M7cEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38mDUs7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38mDU87cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38lcQM7cEeSqqOMGqhj_Zg" name="someRole" type="_TX3awM7fEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38lcQc7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38lcQs7cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TX3awM7fEeSqqOMGqhj_Zg" name="Class3"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Cha7AM_wEeS6X8bMfB-bzg" name="Class4">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Wpl0oNLZEeSzBO7rhIZWOw" name="otherRole" type="_0nM00M7cEeSqqOMGqhj_Zg" association="_WpmbsNLZEeSzBO7rhIZWOw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Wpl0odLZEeSzBO7rhIZWOw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Wpl0otLZEeSzBO7rhIZWOw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_WpmbsNLZEeSzBO7rhIZWOw" memberEnd="_WpmbsdLZEeSzBO7rhIZWOw _Wpl0oNLZEeSzBO7rhIZWOw">
+ <name xsi:nil="true"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_WpmbsdLZEeSzBO7rhIZWOw" name="class4" type="_Cha7AM_wEeS6X8bMfB-bzg" association="_WpmbsNLZEeSzBO7rhIZWOw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WpmbstLZEeSzBO7rhIZWOw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Wpmbs9LZEeSzBO7rhIZWOw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/package-info.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/package-info.java
new file mode 100644
index 000000000..0dfb6114a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/package-info.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2015 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
+ *******************************************************************************/
+
+/**
+ * This package contains test data about conflicts in association changes,
+ * where an existing association is reconnected in 2 branches.
+ * @author <a href="mailto:laurent.delaigue@obeo.fr">Laurent Delaigue</a>
+ */
+package org.eclipse.emf.compare.diagram.papyrus.tests.merge.data.assocs.conflict.c1; \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/right.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/right.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/right.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/right.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/right.notation
new file mode 100644
index 000000000..491cecb4a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/right.notation
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_zmK1oM7cEeSqqOMGqhj_Zg" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_0noSoM7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0npgwM7cEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="right.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0nqH0M7cEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="right.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0nqH0c7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV8M7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV8s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV887cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV9M7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV9c7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV9s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV987cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV-M7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV-c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nr9AM7cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nr9Ac7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nr9As7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nr9A87cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nr9BM7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="right.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0noSoc7cEeSqqOMGqhj_Zg" x="81" y="74"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1K6l4M7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l4s7cEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="right.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l487cEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="right.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1K6l5M7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l5c7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l5s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l587cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l6M7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l6c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l6s7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l687cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l7M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l7c7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l7s7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l787cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l8M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l8s7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l887cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="right.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l4c7cEeSqqOMGqhj_Zg" x="350" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TX4o4M7fEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4o4s7fEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="right.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4o487fEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="right.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TX4o5M7fEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o5c7fEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o5s7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o587fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o6M7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o6c7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o6s7fEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o687fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o7M7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o7c7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o7s7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o787fEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o8M7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o8c7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o8s7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o887fEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="right.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o4c7fEeSqqOMGqhj_Zg" x="349" y="243"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CkYvcM_wEeS6X8bMfB-bzg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CkakoM_wEeS6X8bMfB-bzg" type="5029">
+ <element xmi:type="uml:Class" href="right.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ckakoc_wEeS6X8bMfB-bzg" type="8510">
+ <element xmi:type="uml:Class" href="right.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ckakos_wEeS6X8bMfB-bzg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLsM_wEeS6X8bMfB-bzg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLsc_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLss_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLs8_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="right.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLtM_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLtc_wEeS6X8bMfB-bzg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLts_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLt8_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLuM_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="right.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLuc_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLus_wEeS6X8bMfB-bzg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLu8_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLvM_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLvc_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="right.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLvs_wEeS6X8bMfB-bzg"/>
+ </children>
+ <element xmi:type="uml:Class" href="right.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkYvcc_wEeS6X8bMfB-bzg" x="83" y="249"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_zmK1oc7cEeSqqOMGqhj_Zg" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zmK1os7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_zmK1o87cEeSqqOMGqhj_Zg">
+ <owner xmi:type="uml:Model" href="right.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="right.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_38pGoM7cEeSqqOMGqhj_Zg" type="4001" source="_0noSoM7cEeSqqOMGqhj_Zg" target="_CkYvcM_wEeS6X8bMfB-bzg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGo87cEeSqqOMGqhj_Zg" type="6001">
+ <element xmi:type="uml:Association" href="right.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGpM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGpc7cEeSqqOMGqhj_Zg" type="6002">
+ <element xmi:type="uml:Association" href="right.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGps7cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGp87cEeSqqOMGqhj_Zg" type="6003">
+ <element xmi:type="uml:Association" href="right.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGqM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptsM7cEeSqqOMGqhj_Zg" type="6005">
+ <element xmi:type="uml:Association" href="right.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38ptsc7cEeSqqOMGqhj_Zg" x="-14" y="31"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptss7cEeSqqOMGqhj_Zg" type="6033">
+ <element xmi:type="uml:Association" href="right.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pts87cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pttM7cEeSqqOMGqhj_Zg" type="6034">
+ <element xmi:type="uml:Association" href="right.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pttc7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_38pGoc7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Association" href="right.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_38pGos7cEeSqqOMGqhj_Zg" points="[50, -8, -219, -6]$[219, -8, -50, -6]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Wp4vkNLZEeSzBO7rhIZWOw" type="4001" source="_CkYvcM_wEeS6X8bMfB-bzg" target="_1K6l4M7cEeSqqOMGqhj_Zg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WoNLZEeSzBO7rhIZWOw" type="6001">
+ <element xmi:type="uml:Association" href="right.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5WodLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WotLZEeSzBO7rhIZWOw" type="6002">
+ <element xmi:type="uml:Association" href="right.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5Wo9LZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WpNLZEeSzBO7rhIZWOw" type="6003">
+ <element xmi:type="uml:Association" href="right.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5WpdLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59sNLZEeSzBO7rhIZWOw" type="6005">
+ <element xmi:type="uml:Association" href="right.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59sdLZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59stLZEeSzBO7rhIZWOw" type="6033">
+ <element xmi:type="uml:Association" href="right.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59s9LZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59tNLZEeSzBO7rhIZWOw" type="6034">
+ <element xmi:type="uml:Association" href="right.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59tdLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Wp4vkdLZEeSzBO7rhIZWOw"/>
+ <element xmi:type="uml:Association" href="right.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Wp4vktLZEeSzBO7rhIZWOw" points="[50, -3, -216, 3]$[269, -56, 3, -50]"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_SsK80NLZEeSzBO7rhIZWOw"/>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/right.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/right.uml
new file mode 100644
index 000000000..02cbc56d2
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/c1/right.uml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_soPaMM7cEeSqqOMGqhj_Zg" name="model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0nM00M7cEeSqqOMGqhj_Zg" name="Class1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1K5XwM7cEeSqqOMGqhj_Zg" name="Class2"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_38mDUM7cEeSqqOMGqhj_Zg" memberEnd="_38mDUc7cEeSqqOMGqhj_Zg _38lcQM7cEeSqqOMGqhj_Zg">
+ <name xsi:nil="true"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38mDUc7cEeSqqOMGqhj_Zg" name="class1" type="_0nM00M7cEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38mDUs7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38mDU87cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38lcQM7cEeSqqOMGqhj_Zg" name="someRole" type="_Cha7AM_wEeS6X8bMfB-bzg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38lcQc7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38lcQs7cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TX3awM7fEeSqqOMGqhj_Zg" name="Class3"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Cha7AM_wEeS6X8bMfB-bzg" name="Class4">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Wpl0oNLZEeSzBO7rhIZWOw" name="otherRole" type="_1K5XwM7cEeSqqOMGqhj_Zg" association="_WpmbsNLZEeSzBO7rhIZWOw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Wpl0odLZEeSzBO7rhIZWOw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Wpl0otLZEeSzBO7rhIZWOw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_WpmbsNLZEeSzBO7rhIZWOw" memberEnd="_WpmbsdLZEeSzBO7rhIZWOw _Wpl0oNLZEeSzBO7rhIZWOw">
+ <name xsi:nil="true"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_WpmbsdLZEeSzBO7rhIZWOw" name="class4" type="_Cha7AM_wEeS6X8bMfB-bzg" association="_WpmbsNLZEeSzBO7rhIZWOw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WpmbstLZEeSzBO7rhIZWOw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Wpmbs9LZEeSzBO7rhIZWOw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/ancestor.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/ancestor.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/ancestor.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/ancestor.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/ancestor.notation
new file mode 100644
index 000000000..80cd661bb
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/ancestor.notation
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_qC9nsLwdEeSIRf-5f0gG0g" type="PapyrusUMLStateMachineDiagram" name="NewDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_qC9nsbwdEeSIRf-5f0gG0g" type="2000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9nsrwdEeSIRf-5f0gG0g" type="2001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9ns7wdEeSIRf-5f0gG0g" width="700" height="30"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9ntLwdEeSIRf-5f0gG0g" type="2002">
+ <children xmi:type="notation:Shape" xmi:id="_qC9ntbwdEeSIRf-5f0gG0g" type="3000">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qC9ntrwdEeSIRf-5f0gG0g" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qC9nt7wdEeSIRf-5f0gG0g" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9nuLwdEeSIRf-5f0gG0g" type="3002">
+ <children xmi:type="notation:Shape" xmi:id="_zf4R0MjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zf5f8MjFEeSlR5E9fXQsvA" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1aMCYMjFEeSlR5E9fXQsvA" width="203"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zf5f8cjFEeSlR5E9fXQsvA" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zf5f8sjFEeSlR5E9fXQsvA" y="-1" width="203"/>
+ </children>
+ <element xmi:type="uml:State" href="ancestor.uml#_zfvH4MjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zf4R0cjFEeSlR5E9fXQsvA" x="112" y="66" width="203" height="69"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1w1AwMjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w1n0MjFEeSlR5E9fXQsvA" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2GKXkMjFEeSlR5E9fXQsvA" width="169"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w1n0cjFEeSlR5E9fXQsvA" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w1n0sjFEeSlR5E9fXQsvA" y="-1" width="169"/>
+ </children>
+ <element xmi:type="uml:State" href="ancestor.uml#_1wykgMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w1AwcjFEeSlR5E9fXQsvA" x="397" y="12" width="169" height="62"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3noKUMjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3noKUsjFEeSlR5E9fXQsvA" type="6001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3noxYMjFEeSlR5E9fXQsvA" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3noxYcjFEeSlR5E9fXQsvA"/>
+ </children>
+ <element xmi:type="uml:State" href="ancestor.uml#_3nluEMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3noKUcjFEeSlR5E9fXQsvA" x="401" y="113" width="157" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_l32-YNIEEeSvO5owlqm60A" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34MgNIEEeSvO5owlqm60A" type="6001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34MgdIEEeSvO5owlqm60A" type="19003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l34zkNIEEeSvO5owlqm60A" x="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34zkdIEEeSvO5owlqm60A" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l34zktIEEeSvO5owlqm60A"/>
+ </children>
+ <element xmi:type="uml:State" href="ancestor.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l32-YdIEEeSvO5owlqm60A" x="157" y="183" width="154" height="74"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nubwdEeSIRf-5f0gG0g"/>
+ </children>
+ <element xmi:type="uml:Region" href="ancestor.uml#_qC4IILwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nurwdEeSIRf-5f0gG0g" width="700" height="287"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nu7wdEeSIRf-5f0gG0g" y="30" width="700" height="287"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="ancestor.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nvLwdEeSIRf-5f0gG0g" x="30" y="30" width="700" height="317"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qC9nvbwdEeSIRf-5f0gG0g" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_qC9nvrwdEeSIRf-5f0gG0g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_qC9nv7wdEeSIRf-5f0gG0g">
+ <owner xmi:type="uml:Model" href="ancestor.uml#_qBqAILwdEeSIRf-5f0gG0g"/>
+ </styles>
+ <element xmi:type="uml:StateMachine" href="ancestor.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <edges xmi:type="notation:Connector" xmi:id="_4tqlUMjFEeSlR5E9fXQsvA" type="7000" source="_zf4R0MjFEeSlR5E9fXQsvA" target="_1w1AwMjFEeSlR5E9fXQsvA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trMYMjFEeSlR5E9fXQsvA" type="7001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzcMjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trzccjFEeSlR5E9fXQsvA" type="7002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzcsjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trzc8jFEeSlR5E9fXQsvA" type="7003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzdMjFEeSlR5E9fXQsvA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4tqlUcjFEeSlR5E9fXQsvA"/>
+ <element xmi:type="uml:Transition" href="ancestor.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4tqlUsjFEeSlR5E9fXQsvA" points="[8, -3, -98, 33]$[90, -33, -16, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4uHRQMjFEeSlR5E9fXQsvA" id="(0.9605911330049262,0.43478260869565216)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4uHRQcjFEeSlR5E9fXQsvA" id="(0.09467455621301775,0.7741935483870968)"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_ksNDkNIEEeSvO5owlqm60A"/>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/ancestor.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/ancestor.uml
new file mode 100644
index 000000000..acfbf9374
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/ancestor.uml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qBqAILwdEeSIRf-5f0gG0g" name="model">
+ <packagedElement xmi:type="uml:StateMachine" xmi:id="_qCgUsLwdEeSIRf-5f0gG0g" name="StateMachine1">
+ <region xmi:type="uml:Region" xmi:id="_qC4IILwdEeSIRf-5f0gG0g" name="Region1">
+ <transition xmi:type="uml:Transition" xmi:id="_4rv5wMjFEeSlR5E9fXQsvA" source="_zfvH4MjFEeSlR5E9fXQsvA" target="_1wykgMjFEeSlR5E9fXQsvA"/>
+ <subvertex xmi:type="uml:State" xmi:id="_zfvH4MjFEeSlR5E9fXQsvA" name="State1"/>
+ <subvertex xmi:type="uml:State" xmi:id="_1wykgMjFEeSlR5E9fXQsvA" name="State2"/>
+ <subvertex xmi:type="uml:State" xmi:id="_3nluEMjFEeSlR5E9fXQsvA" name="State3"/>
+ <subvertex xmi:type="uml:State" xmi:id="_l3kqgNIEEeSvO5owlqm60A" name="State4"/>
+ </region>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/left.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/left.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/left.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/left.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/left.notation
new file mode 100644
index 000000000..c4cef80f3
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/left.notation
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_qC9nsLwdEeSIRf-5f0gG0g" type="PapyrusUMLStateMachineDiagram" name="NewDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_qC9nsbwdEeSIRf-5f0gG0g" type="2000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9nsrwdEeSIRf-5f0gG0g" type="2001">
+ <element xmi:type="uml:StateMachine" href="left.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9ns7wdEeSIRf-5f0gG0g" width="700" height="30"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9ntLwdEeSIRf-5f0gG0g" type="2002">
+ <children xmi:type="notation:Shape" xmi:id="_qC9ntbwdEeSIRf-5f0gG0g" type="3000">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qC9ntrwdEeSIRf-5f0gG0g" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qC9nt7wdEeSIRf-5f0gG0g" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9nuLwdEeSIRf-5f0gG0g" type="3002">
+ <children xmi:type="notation:Shape" xmi:id="_zf4R0MjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zf5f8MjFEeSlR5E9fXQsvA" type="6001">
+ <element xmi:type="uml:State" href="left.uml#_zfvH4MjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1aMCYMjFEeSlR5E9fXQsvA" width="203"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zf5f8cjFEeSlR5E9fXQsvA" type="6002">
+ <element xmi:type="uml:State" href="left.uml#_zfvH4MjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zf5f8sjFEeSlR5E9fXQsvA" y="-1" width="203"/>
+ </children>
+ <element xmi:type="uml:State" href="left.uml#_zfvH4MjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zf4R0cjFEeSlR5E9fXQsvA" x="112" y="66" width="203" height="69"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1w1AwMjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w1n0MjFEeSlR5E9fXQsvA" type="6001">
+ <element xmi:type="uml:State" href="left.uml#_1wykgMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2GKXkMjFEeSlR5E9fXQsvA" width="169"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w1n0cjFEeSlR5E9fXQsvA" type="6002">
+ <element xmi:type="uml:State" href="left.uml#_1wykgMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w1n0sjFEeSlR5E9fXQsvA" y="-1" width="169"/>
+ </children>
+ <element xmi:type="uml:State" href="left.uml#_1wykgMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w1AwcjFEeSlR5E9fXQsvA" x="397" y="12" width="169" height="62"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3noKUMjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3noKUsjFEeSlR5E9fXQsvA" type="6001">
+ <element xmi:type="uml:State" href="left.uml#_3nluEMjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3noxYMjFEeSlR5E9fXQsvA" type="6002">
+ <element xmi:type="uml:State" href="left.uml#_3nluEMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3noxYcjFEeSlR5E9fXQsvA"/>
+ </children>
+ <element xmi:type="uml:State" href="left.uml#_3nluEMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3noKUcjFEeSlR5E9fXQsvA" x="401" y="113" width="157" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_l32-YNIEEeSvO5owlqm60A" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34MgNIEEeSvO5owlqm60A" type="6001">
+ <element xmi:type="uml:State" href="left.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34MgdIEEeSvO5owlqm60A" type="19003">
+ <element xmi:type="uml:State" href="left.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l34zkNIEEeSvO5owlqm60A" x="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34zkdIEEeSvO5owlqm60A" type="6002">
+ <element xmi:type="uml:State" href="left.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l34zktIEEeSvO5owlqm60A"/>
+ </children>
+ <element xmi:type="uml:State" href="left.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l32-YdIEEeSvO5owlqm60A" x="157" y="183" width="154" height="74"/>
+ </children>
+ <element xmi:type="uml:Region" href="left.uml#_qC4IILwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nubwdEeSIRf-5f0gG0g"/>
+ </children>
+ <element xmi:type="uml:Region" href="left.uml#_qC4IILwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nurwdEeSIRf-5f0gG0g" width="700" height="287"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="left.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nu7wdEeSIRf-5f0gG0g" y="30" width="700" height="287"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="left.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nvLwdEeSIRf-5f0gG0g" x="30" y="30" width="700" height="317"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qC9nvbwdEeSIRf-5f0gG0g" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_qC9nvrwdEeSIRf-5f0gG0g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_qC9nv7wdEeSIRf-5f0gG0g">
+ <owner xmi:type="uml:Model" href="left.uml#_qBqAILwdEeSIRf-5f0gG0g"/>
+ </styles>
+ <element xmi:type="uml:StateMachine" href="left.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <edges xmi:type="notation:Connector" xmi:id="_4tqlUMjFEeSlR5E9fXQsvA" type="7000" source="_zf4R0MjFEeSlR5E9fXQsvA" target="_3noKUMjFEeSlR5E9fXQsvA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trMYMjFEeSlR5E9fXQsvA" type="7001">
+ <element xmi:type="uml:Transition" href="left.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzcMjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trzccjFEeSlR5E9fXQsvA" type="7002">
+ <element xmi:type="uml:Transition" href="left.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzcsjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trzc8jFEeSlR5E9fXQsvA" type="7003">
+ <element xmi:type="uml:Transition" href="left.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzdMjFEeSlR5E9fXQsvA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4tqlUcjFEeSlR5E9fXQsvA"/>
+ <element xmi:type="uml:Transition" href="left.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4tqlUsjFEeSlR5E9fXQsvA" points="[8, -3, -98, 33]$[90, -33, -16, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4uHRQMjFEeSlR5E9fXQsvA" id="(0.9605911330049262,0.43478260869565216)"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_ksNDkNIEEeSvO5owlqm60A"/>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/left.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/left.uml
new file mode 100644
index 000000000..ff0ee7300
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/left.uml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qBqAILwdEeSIRf-5f0gG0g" name="model">
+ <packagedElement xmi:type="uml:StateMachine" xmi:id="_qCgUsLwdEeSIRf-5f0gG0g" name="StateMachine1">
+ <region xmi:type="uml:Region" xmi:id="_qC4IILwdEeSIRf-5f0gG0g" name="Region1">
+ <transition xmi:type="uml:Transition" xmi:id="_4rv5wMjFEeSlR5E9fXQsvA" source="_zfvH4MjFEeSlR5E9fXQsvA" target="_3nluEMjFEeSlR5E9fXQsvA"/>
+ <subvertex xmi:type="uml:State" xmi:id="_zfvH4MjFEeSlR5E9fXQsvA" name="State1"/>
+ <subvertex xmi:type="uml:State" xmi:id="_1wykgMjFEeSlR5E9fXQsvA" name="State2"/>
+ <subvertex xmi:type="uml:State" xmi:id="_3nluEMjFEeSlR5E9fXQsvA" name="State3"/>
+ <subvertex xmi:type="uml:State" xmi:id="_l3kqgNIEEeSvO5owlqm60A" name="State4"/>
+ </region>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/package-info.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/package-info.java
new file mode 100644
index 000000000..b18bf94b0
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/package-info.java
@@ -0,0 +1,18 @@
+/*******************************************************************************
+ * Copyright (c) 2015 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
+ *******************************************************************************/
+
+/**
+ * This package contains test data for the case of a conflict
+ * on an existing transition whose target is change din 2 branches.
+ *
+ * @author <a href="mailto:laurent.delaigue@obeo.fr">Laurent Delaigue</a>
+ */
+package org.eclipse.emf.compare.diagram.papyrus.tests.merge.data.assocs.conflict.t1; \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/right.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/right.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/right.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/right.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/right.notation
new file mode 100644
index 000000000..65c973780
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/right.notation
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_qC9nsLwdEeSIRf-5f0gG0g" type="PapyrusUMLStateMachineDiagram" name="NewDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_qC9nsbwdEeSIRf-5f0gG0g" type="2000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9nsrwdEeSIRf-5f0gG0g" type="2001">
+ <element xmi:type="uml:StateMachine" href="right.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9ns7wdEeSIRf-5f0gG0g" width="700" height="30"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9ntLwdEeSIRf-5f0gG0g" type="2002">
+ <children xmi:type="notation:Shape" xmi:id="_qC9ntbwdEeSIRf-5f0gG0g" type="3000">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qC9ntrwdEeSIRf-5f0gG0g" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qC9nt7wdEeSIRf-5f0gG0g" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9nuLwdEeSIRf-5f0gG0g" type="3002">
+ <children xmi:type="notation:Shape" xmi:id="_zf4R0MjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zf5f8MjFEeSlR5E9fXQsvA" type="6001">
+ <element xmi:type="uml:State" href="right.uml#_zfvH4MjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1aMCYMjFEeSlR5E9fXQsvA" width="203"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zf5f8cjFEeSlR5E9fXQsvA" type="6002">
+ <element xmi:type="uml:State" href="right.uml#_zfvH4MjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zf5f8sjFEeSlR5E9fXQsvA" y="-1" width="203"/>
+ </children>
+ <element xmi:type="uml:State" href="right.uml#_zfvH4MjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zf4R0cjFEeSlR5E9fXQsvA" x="112" y="66" width="203" height="69"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1w1AwMjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w1n0MjFEeSlR5E9fXQsvA" type="6001">
+ <element xmi:type="uml:State" href="right.uml#_1wykgMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2GKXkMjFEeSlR5E9fXQsvA" width="169"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w1n0cjFEeSlR5E9fXQsvA" type="6002">
+ <element xmi:type="uml:State" href="right.uml#_1wykgMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w1n0sjFEeSlR5E9fXQsvA" y="-1" width="169"/>
+ </children>
+ <element xmi:type="uml:State" href="right.uml#_1wykgMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w1AwcjFEeSlR5E9fXQsvA" x="397" y="12" width="169" height="62"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3noKUMjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3noKUsjFEeSlR5E9fXQsvA" type="6001">
+ <element xmi:type="uml:State" href="right.uml#_3nluEMjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3noxYMjFEeSlR5E9fXQsvA" type="6002">
+ <element xmi:type="uml:State" href="right.uml#_3nluEMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3noxYcjFEeSlR5E9fXQsvA"/>
+ </children>
+ <element xmi:type="uml:State" href="right.uml#_3nluEMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3noKUcjFEeSlR5E9fXQsvA" x="401" y="113" width="157" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_l32-YNIEEeSvO5owlqm60A" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34MgNIEEeSvO5owlqm60A" type="6001">
+ <element xmi:type="uml:State" href="right.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34MgdIEEeSvO5owlqm60A" type="19003">
+ <element xmi:type="uml:State" href="right.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l34zkNIEEeSvO5owlqm60A" x="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34zkdIEEeSvO5owlqm60A" type="6002">
+ <element xmi:type="uml:State" href="right.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l34zktIEEeSvO5owlqm60A"/>
+ </children>
+ <element xmi:type="uml:State" href="right.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l32-YdIEEeSvO5owlqm60A" x="157" y="183" width="154" height="74"/>
+ </children>
+ <element xmi:type="uml:Region" href="right.uml#_qC4IILwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nubwdEeSIRf-5f0gG0g"/>
+ </children>
+ <element xmi:type="uml:Region" href="right.uml#_qC4IILwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nurwdEeSIRf-5f0gG0g" width="700" height="287"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="right.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nu7wdEeSIRf-5f0gG0g" y="30" width="700" height="287"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="right.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nvLwdEeSIRf-5f0gG0g" x="30" y="30" width="700" height="317"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qC9nvbwdEeSIRf-5f0gG0g" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_qC9nvrwdEeSIRf-5f0gG0g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_qC9nv7wdEeSIRf-5f0gG0g">
+ <owner xmi:type="uml:Model" href="right.uml#_qBqAILwdEeSIRf-5f0gG0g"/>
+ </styles>
+ <element xmi:type="uml:StateMachine" href="right.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <edges xmi:type="notation:Connector" xmi:id="_4tqlUMjFEeSlR5E9fXQsvA" type="7000" source="_zf4R0MjFEeSlR5E9fXQsvA" target="_l32-YNIEEeSvO5owlqm60A">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trMYMjFEeSlR5E9fXQsvA" type="7001">
+ <element xmi:type="uml:Transition" href="right.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzcMjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trzccjFEeSlR5E9fXQsvA" type="7002">
+ <element xmi:type="uml:Transition" href="right.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzcsjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trzc8jFEeSlR5E9fXQsvA" type="7003">
+ <element xmi:type="uml:Transition" href="right.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzdMjFEeSlR5E9fXQsvA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4tqlUcjFEeSlR5E9fXQsvA"/>
+ <element xmi:type="uml:Transition" href="right.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4tqlUsjFEeSlR5E9fXQsvA" points="[8, -3, -98, 33]$[90, -33, -16, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4uHRQMjFEeSlR5E9fXQsvA" id="(0.9605911330049262,0.43478260869565216)"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_ksNDkNIEEeSvO5owlqm60A"/>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/right.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/right.uml
new file mode 100644
index 000000000..683f60d79
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/conflict/t1/right.uml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qBqAILwdEeSIRf-5f0gG0g" name="model">
+ <packagedElement xmi:type="uml:StateMachine" xmi:id="_qCgUsLwdEeSIRf-5f0gG0g" name="StateMachine1">
+ <region xmi:type="uml:Region" xmi:id="_qC4IILwdEeSIRf-5f0gG0g" name="Region1">
+ <transition xmi:type="uml:Transition" xmi:id="_4rv5wMjFEeSlR5E9fXQsvA" source="_zfvH4MjFEeSlR5E9fXQsvA" target="_l3kqgNIEEeSvO5owlqm60A"/>
+ <subvertex xmi:type="uml:State" xmi:id="_zfvH4MjFEeSlR5E9fXQsvA" name="State1"/>
+ <subvertex xmi:type="uml:State" xmi:id="_1wykgMjFEeSlR5E9fXQsvA" name="State2"/>
+ <subvertex xmi:type="uml:State" xmi:id="_3nluEMjFEeSlR5E9fXQsvA" name="State3"/>
+ <subvertex xmi:type="uml:State" xmi:id="_l3kqgNIEEeSvO5owlqm60A" name="State4"/>
+ </region>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/ancestor.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/ancestor.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/ancestor.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/ancestor.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/ancestor.notation
new file mode 100644
index 000000000..a71be0536
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/ancestor.notation
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_zmK1oM7cEeSqqOMGqhj_Zg" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_0noSoM7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0npgwM7cEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="ancestor.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0nqH0M7cEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="ancestor.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0nqH0c7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV8M7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV8s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV887cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV9M7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV9c7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV9s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV987cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV-M7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV-c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nr9AM7cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nr9Ac7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nr9As7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nr9A87cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nr9BM7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="ancestor.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0noSoc7cEeSqqOMGqhj_Zg" x="81" y="74"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1K6l4M7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l4s7cEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="ancestor.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l487cEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="ancestor.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1K6l5M7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l5c7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l5s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l587cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l6M7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l6c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l6s7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l687cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l7M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l7c7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l7s7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l787cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l8M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l8s7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l887cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="ancestor.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l4c7cEeSqqOMGqhj_Zg" x="350" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TX4o4M7fEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4o4s7fEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="ancestor.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4o487fEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="ancestor.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TX4o5M7fEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o5c7fEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o5s7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o587fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o6M7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o6c7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o6s7fEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o687fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o7M7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o7c7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o7s7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o787fEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o8M7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o8c7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o8s7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o887fEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="ancestor.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o4c7fEeSqqOMGqhj_Zg" x="349" y="243"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CkYvcM_wEeS6X8bMfB-bzg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CkakoM_wEeS6X8bMfB-bzg" type="5029">
+ <element xmi:type="uml:Class" href="ancestor.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ckakoc_wEeS6X8bMfB-bzg" type="8510">
+ <element xmi:type="uml:Class" href="ancestor.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ckakos_wEeS6X8bMfB-bzg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLsM_wEeS6X8bMfB-bzg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLsc_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLss_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLs8_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLtM_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLtc_wEeS6X8bMfB-bzg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLts_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLt8_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLuM_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLuc_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLus_wEeS6X8bMfB-bzg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLu8_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLvM_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLvc_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="ancestor.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLvs_wEeS6X8bMfB-bzg"/>
+ </children>
+ <element xmi:type="uml:Class" href="ancestor.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkYvcc_wEeS6X8bMfB-bzg" x="83" y="249"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_zmK1oc7cEeSqqOMGqhj_Zg" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zmK1os7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_zmK1o87cEeSqqOMGqhj_Zg">
+ <owner xmi:type="uml:Model" href="ancestor.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="ancestor.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_38pGoM7cEeSqqOMGqhj_Zg" type="4001" source="_0noSoM7cEeSqqOMGqhj_Zg" target="_1K6l4M7cEeSqqOMGqhj_Zg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGo87cEeSqqOMGqhj_Zg" type="6001">
+ <element xmi:type="uml:Association" href="ancestor.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGpM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGpc7cEeSqqOMGqhj_Zg" type="6002">
+ <element xmi:type="uml:Association" href="ancestor.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGps7cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGp87cEeSqqOMGqhj_Zg" type="6003">
+ <element xmi:type="uml:Association" href="ancestor.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGqM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptsM7cEeSqqOMGqhj_Zg" type="6005">
+ <element xmi:type="uml:Association" href="ancestor.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38ptsc7cEeSqqOMGqhj_Zg" x="-14" y="31"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptss7cEeSqqOMGqhj_Zg" type="6033">
+ <element xmi:type="uml:Association" href="ancestor.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pts87cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pttM7cEeSqqOMGqhj_Zg" type="6034">
+ <element xmi:type="uml:Association" href="ancestor.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pttc7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_38pGoc7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Association" href="ancestor.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_38pGos7cEeSqqOMGqhj_Zg" points="[50, -8, -219, -6]$[219, -8, -50, -6]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Wp4vkNLZEeSzBO7rhIZWOw" type="4001" source="_CkYvcM_wEeS6X8bMfB-bzg" target="_TX4o4M7fEeSqqOMGqhj_Zg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WoNLZEeSzBO7rhIZWOw" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5WodLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WotLZEeSzBO7rhIZWOw" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5Wo9LZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WpNLZEeSzBO7rhIZWOw" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5WpdLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59sNLZEeSzBO7rhIZWOw" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59sdLZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59stLZEeSzBO7rhIZWOw" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59s9LZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59tNLZEeSzBO7rhIZWOw" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59tdLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Wp4vkdLZEeSzBO7rhIZWOw"/>
+ <element xmi:type="uml:Association" href="ancestor.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Wp4vktLZEeSzBO7rhIZWOw" points="[50, -3, -216, 3]$[269, -56, 3, -50]"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_SsK80NLZEeSzBO7rhIZWOw"/>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/ancestor.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/ancestor.uml
new file mode 100644
index 000000000..aa48ba775
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/ancestor.uml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_soPaMM7cEeSqqOMGqhj_Zg" name="model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0nM00M7cEeSqqOMGqhj_Zg" name="Class1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1K5XwM7cEeSqqOMGqhj_Zg" name="Class2"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_38mDUM7cEeSqqOMGqhj_Zg" memberEnd="_38mDUc7cEeSqqOMGqhj_Zg _38lcQM7cEeSqqOMGqhj_Zg">
+ <name xsi:nil="true"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38mDUc7cEeSqqOMGqhj_Zg" name="class1" type="_0nM00M7cEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38mDUs7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38mDU87cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38lcQM7cEeSqqOMGqhj_Zg" name="someRole" type="_1K5XwM7cEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38lcQc7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38lcQs7cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TX3awM7fEeSqqOMGqhj_Zg" name="Class3"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Cha7AM_wEeS6X8bMfB-bzg" name="Class4">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Wpl0oNLZEeSzBO7rhIZWOw" name="otherRole" type="_TX3awM7fEeSqqOMGqhj_Zg" association="_WpmbsNLZEeSzBO7rhIZWOw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Wpl0odLZEeSzBO7rhIZWOw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Wpl0otLZEeSzBO7rhIZWOw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_WpmbsNLZEeSzBO7rhIZWOw" memberEnd="_WpmbsdLZEeSzBO7rhIZWOw _Wpl0oNLZEeSzBO7rhIZWOw">
+ <name xsi:nil="true"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_WpmbsdLZEeSzBO7rhIZWOw" name="class4" type="_Cha7AM_wEeS6X8bMfB-bzg" association="_WpmbsNLZEeSzBO7rhIZWOw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WpmbstLZEeSzBO7rhIZWOw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Wpmbs9LZEeSzBO7rhIZWOw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/left.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/left.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/left.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/left.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/left.notation
new file mode 100644
index 000000000..f233ae0c0
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/left.notation
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_zmK1oM7cEeSqqOMGqhj_Zg" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_0noSoM7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0npgwM7cEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="left.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0nqH0M7cEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="left.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0nqH0c7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV8M7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV8s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV887cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV9M7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV9c7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV9s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV987cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV-M7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV-c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nr9AM7cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nr9Ac7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nr9As7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nr9A87cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nr9BM7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="left.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0noSoc7cEeSqqOMGqhj_Zg" x="81" y="74"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1K6l4M7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l4s7cEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="left.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l487cEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="left.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1K6l5M7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l5c7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l5s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l587cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l6M7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l6c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l6s7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l687cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l7M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l7c7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l7s7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l787cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l8M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l8s7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l887cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="left.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l4c7cEeSqqOMGqhj_Zg" x="350" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TX4o4M7fEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4o4s7fEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="left.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4o487fEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="left.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TX4o5M7fEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o5c7fEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o5s7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o587fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o6M7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o6c7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o6s7fEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o687fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o7M7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o7c7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o7s7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o787fEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o8M7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o8c7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o8s7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="left.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o887fEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="left.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o4c7fEeSqqOMGqhj_Zg" x="349" y="243"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CkYvcM_wEeS6X8bMfB-bzg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CkakoM_wEeS6X8bMfB-bzg" type="5029">
+ <element xmi:type="uml:Class" href="left.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ckakoc_wEeS6X8bMfB-bzg" type="8510">
+ <element xmi:type="uml:Class" href="left.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ckakos_wEeS6X8bMfB-bzg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLsM_wEeS6X8bMfB-bzg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLsc_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLss_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLs8_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="left.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLtM_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLtc_wEeS6X8bMfB-bzg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLts_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLt8_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLuM_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="left.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLuc_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLus_wEeS6X8bMfB-bzg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLu8_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLvM_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLvc_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="left.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLvs_wEeS6X8bMfB-bzg"/>
+ </children>
+ <element xmi:type="uml:Class" href="left.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkYvcc_wEeS6X8bMfB-bzg" x="83" y="249"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_zmK1oc7cEeSqqOMGqhj_Zg" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zmK1os7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_zmK1o87cEeSqqOMGqhj_Zg">
+ <owner xmi:type="uml:Model" href="left.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="left.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_38pGoM7cEeSqqOMGqhj_Zg" type="4001" source="_0noSoM7cEeSqqOMGqhj_Zg" target="_TX4o4M7fEeSqqOMGqhj_Zg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGo87cEeSqqOMGqhj_Zg" type="6001">
+ <element xmi:type="uml:Association" href="left.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGpM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGpc7cEeSqqOMGqhj_Zg" type="6002">
+ <element xmi:type="uml:Association" href="left.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGps7cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGp87cEeSqqOMGqhj_Zg" type="6003">
+ <element xmi:type="uml:Association" href="left.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGqM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptsM7cEeSqqOMGqhj_Zg" type="6005">
+ <element xmi:type="uml:Association" href="left.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38ptsc7cEeSqqOMGqhj_Zg" x="-14" y="31"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptss7cEeSqqOMGqhj_Zg" type="6033">
+ <element xmi:type="uml:Association" href="left.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pts87cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pttM7cEeSqqOMGqhj_Zg" type="6034">
+ <element xmi:type="uml:Association" href="left.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pttc7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_38pGoc7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Association" href="left.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_38pGos7cEeSqqOMGqhj_Zg" points="[50, -8, -219, -6]$[219, -8, -50, -6]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Wp4vkNLZEeSzBO7rhIZWOw" type="4001" source="_CkYvcM_wEeS6X8bMfB-bzg" target="_TX4o4M7fEeSqqOMGqhj_Zg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WoNLZEeSzBO7rhIZWOw" type="6001">
+ <element xmi:type="uml:Association" href="left.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5WodLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WotLZEeSzBO7rhIZWOw" type="6002">
+ <element xmi:type="uml:Association" href="left.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5Wo9LZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WpNLZEeSzBO7rhIZWOw" type="6003">
+ <element xmi:type="uml:Association" href="left.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5WpdLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59sNLZEeSzBO7rhIZWOw" type="6005">
+ <element xmi:type="uml:Association" href="left.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59sdLZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59stLZEeSzBO7rhIZWOw" type="6033">
+ <element xmi:type="uml:Association" href="left.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59s9LZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59tNLZEeSzBO7rhIZWOw" type="6034">
+ <element xmi:type="uml:Association" href="left.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59tdLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Wp4vkdLZEeSzBO7rhIZWOw"/>
+ <element xmi:type="uml:Association" href="left.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Wp4vktLZEeSzBO7rhIZWOw" points="[50, -3, -216, 3]$[269, -56, 3, -50]"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_SsK80NLZEeSzBO7rhIZWOw"/>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/left.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/left.uml
new file mode 100644
index 000000000..e56d84d13
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/left.uml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_soPaMM7cEeSqqOMGqhj_Zg" name="model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0nM00M7cEeSqqOMGqhj_Zg" name="Class1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1K5XwM7cEeSqqOMGqhj_Zg" name="Class2"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_38mDUM7cEeSqqOMGqhj_Zg" memberEnd="_38mDUc7cEeSqqOMGqhj_Zg _38lcQM7cEeSqqOMGqhj_Zg">
+ <name xsi:nil="true"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38mDUc7cEeSqqOMGqhj_Zg" name="class1" type="_0nM00M7cEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38mDUs7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38mDU87cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38lcQM7cEeSqqOMGqhj_Zg" name="someRole" type="_TX3awM7fEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38lcQc7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38lcQs7cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TX3awM7fEeSqqOMGqhj_Zg" name="Class3"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Cha7AM_wEeS6X8bMfB-bzg" name="Class4">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Wpl0oNLZEeSzBO7rhIZWOw" name="otherRole" type="_TX3awM7fEeSqqOMGqhj_Zg" association="_WpmbsNLZEeSzBO7rhIZWOw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Wpl0odLZEeSzBO7rhIZWOw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Wpl0otLZEeSzBO7rhIZWOw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_WpmbsNLZEeSzBO7rhIZWOw" memberEnd="_WpmbsdLZEeSzBO7rhIZWOw _Wpl0oNLZEeSzBO7rhIZWOw">
+ <name xsi:nil="true"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_WpmbsdLZEeSzBO7rhIZWOw" name="class4" type="_Cha7AM_wEeS6X8bMfB-bzg" association="_WpmbsNLZEeSzBO7rhIZWOw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WpmbstLZEeSzBO7rhIZWOw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Wpmbs9LZEeSzBO7rhIZWOw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/package-info.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/package-info.java
new file mode 100644
index 000000000..abcb1b9c3
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/package-info.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2015 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
+ *******************************************************************************/
+
+/**
+ * This package contains test data about association changes,
+ * where an existing association is reconnected in 2 branches.
+ * @author <a href="mailto:laurent.delaigue@obeo.fr">Laurent Delaigue</a>
+ */
+package org.eclipse.emf.compare.diagram.papyrus.tests.merge.data.assocs.threeway.c1; \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/right.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/right.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/right.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/right.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/right.notation
new file mode 100644
index 000000000..978c5e57d
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/right.notation
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_zmK1oM7cEeSqqOMGqhj_Zg" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_0noSoM7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0npgwM7cEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="right.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0nqH0M7cEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="right.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0nqH0c7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV8M7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV8s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV887cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV9M7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV9c7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV9s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV987cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV-M7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV-c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nr9AM7cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nr9Ac7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nr9As7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nr9A87cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nr9BM7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="right.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0noSoc7cEeSqqOMGqhj_Zg" x="81" y="74"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1K6l4M7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l4s7cEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="right.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l487cEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="right.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1K6l5M7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l5c7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l5s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l587cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l6M7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l6c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l6s7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l687cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l7M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l7c7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l7s7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l787cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l8M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l8s7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l887cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="right.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l4c7cEeSqqOMGqhj_Zg" x="350" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TX4o4M7fEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4o4s7fEeSqqOMGqhj_Zg" type="5029">
+ <element xmi:type="uml:Class" href="right.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4o487fEeSqqOMGqhj_Zg" type="8510">
+ <element xmi:type="uml:Class" href="right.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TX4o5M7fEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o5c7fEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o5s7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o587fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o6M7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o6c7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o6s7fEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o687fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o7M7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o7c7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o7s7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o787fEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o8M7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o8c7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o8s7fEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Class" href="right.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o887fEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="right.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o4c7fEeSqqOMGqhj_Zg" x="349" y="243"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CkYvcM_wEeS6X8bMfB-bzg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CkakoM_wEeS6X8bMfB-bzg" type="5029">
+ <element xmi:type="uml:Class" href="right.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ckakoc_wEeS6X8bMfB-bzg" type="8510">
+ <element xmi:type="uml:Class" href="right.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ckakos_wEeS6X8bMfB-bzg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLsM_wEeS6X8bMfB-bzg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLsc_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLss_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLs8_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="right.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLtM_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLtc_wEeS6X8bMfB-bzg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLts_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLt8_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLuM_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="right.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLuc_wEeS6X8bMfB-bzg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CkbLus_wEeS6X8bMfB-bzg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CkbLu8_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CkbLvM_wEeS6X8bMfB-bzg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CkbLvc_wEeS6X8bMfB-bzg"/>
+ <element xmi:type="uml:Class" href="right.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkbLvs_wEeS6X8bMfB-bzg"/>
+ </children>
+ <element xmi:type="uml:Class" href="right.uml#_Cha7AM_wEeS6X8bMfB-bzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CkYvcc_wEeS6X8bMfB-bzg" x="83" y="249"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_zmK1oc7cEeSqqOMGqhj_Zg" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zmK1os7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_zmK1o87cEeSqqOMGqhj_Zg">
+ <owner xmi:type="uml:Model" href="right.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="right.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_38pGoM7cEeSqqOMGqhj_Zg" type="4001" source="_0noSoM7cEeSqqOMGqhj_Zg" target="_1K6l4M7cEeSqqOMGqhj_Zg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGo87cEeSqqOMGqhj_Zg" type="6001">
+ <element xmi:type="uml:Association" href="right.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGpM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGpc7cEeSqqOMGqhj_Zg" type="6002">
+ <element xmi:type="uml:Association" href="right.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGps7cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGp87cEeSqqOMGqhj_Zg" type="6003">
+ <element xmi:type="uml:Association" href="right.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGqM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptsM7cEeSqqOMGqhj_Zg" type="6005">
+ <element xmi:type="uml:Association" href="right.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38ptsc7cEeSqqOMGqhj_Zg" x="-14" y="31"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptss7cEeSqqOMGqhj_Zg" type="6033">
+ <element xmi:type="uml:Association" href="right.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pts87cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pttM7cEeSqqOMGqhj_Zg" type="6034">
+ <element xmi:type="uml:Association" href="right.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pttc7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_38pGoc7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Association" href="right.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_38pGos7cEeSqqOMGqhj_Zg" points="[50, -8, -219, -6]$[219, -8, -50, -6]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Wp4vkNLZEeSzBO7rhIZWOw" type="4001" source="_CkYvcM_wEeS6X8bMfB-bzg" target="_0noSoM7cEeSqqOMGqhj_Zg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WoNLZEeSzBO7rhIZWOw" type="6001">
+ <element xmi:type="uml:Association" href="right.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5WodLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WotLZEeSzBO7rhIZWOw" type="6002">
+ <element xmi:type="uml:Association" href="right.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5Wo9LZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp5WpNLZEeSzBO7rhIZWOw" type="6003">
+ <element xmi:type="uml:Association" href="right.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp5WpdLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59sNLZEeSzBO7rhIZWOw" type="6005">
+ <element xmi:type="uml:Association" href="right.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59sdLZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59stLZEeSzBO7rhIZWOw" type="6033">
+ <element xmi:type="uml:Association" href="right.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59s9LZEeSzBO7rhIZWOw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wp59tNLZEeSzBO7rhIZWOw" type="6034">
+ <element xmi:type="uml:Association" href="right.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Wp59tdLZEeSzBO7rhIZWOw" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Wp4vkdLZEeSzBO7rhIZWOw"/>
+ <element xmi:type="uml:Association" href="right.uml#_WpmbsNLZEeSzBO7rhIZWOw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Wp4vktLZEeSzBO7rhIZWOw" points="[50, -3, -216, 3]$[269, -56, 3, -50]"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_SsK80NLZEeSzBO7rhIZWOw"/>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/right.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/right.uml
new file mode 100644
index 000000000..3a88004dd
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/c1/right.uml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_soPaMM7cEeSqqOMGqhj_Zg" name="model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0nM00M7cEeSqqOMGqhj_Zg" name="Class1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1K5XwM7cEeSqqOMGqhj_Zg" name="Class2"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_38mDUM7cEeSqqOMGqhj_Zg" memberEnd="_38mDUc7cEeSqqOMGqhj_Zg _38lcQM7cEeSqqOMGqhj_Zg">
+ <name xsi:nil="true"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38mDUc7cEeSqqOMGqhj_Zg" name="class1" type="_0nM00M7cEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38mDUs7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38mDU87cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38lcQM7cEeSqqOMGqhj_Zg" name="someRole" type="_1K5XwM7cEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38lcQc7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38lcQs7cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TX3awM7fEeSqqOMGqhj_Zg" name="Class3"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Cha7AM_wEeS6X8bMfB-bzg" name="Class4">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Wpl0oNLZEeSzBO7rhIZWOw" name="otherRole" type="_0nM00M7cEeSqqOMGqhj_Zg" association="_WpmbsNLZEeSzBO7rhIZWOw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Wpl0odLZEeSzBO7rhIZWOw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Wpl0otLZEeSzBO7rhIZWOw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_WpmbsNLZEeSzBO7rhIZWOw" memberEnd="_WpmbsdLZEeSzBO7rhIZWOw _Wpl0oNLZEeSzBO7rhIZWOw">
+ <name xsi:nil="true"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_WpmbsdLZEeSzBO7rhIZWOw" name="class4" type="_Cha7AM_wEeS6X8bMfB-bzg" association="_WpmbsNLZEeSzBO7rhIZWOw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WpmbstLZEeSzBO7rhIZWOw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Wpmbs9LZEeSzBO7rhIZWOw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/ancestor.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/ancestor.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/ancestor.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/ancestor.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/ancestor.notation
new file mode 100644
index 000000000..7b7e6d304
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/ancestor.notation
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_qC9nsLwdEeSIRf-5f0gG0g" type="PapyrusUMLStateMachineDiagram" name="NewDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_qC9nsbwdEeSIRf-5f0gG0g" type="2000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9nsrwdEeSIRf-5f0gG0g" type="2001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9ns7wdEeSIRf-5f0gG0g" width="700" height="30"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9ntLwdEeSIRf-5f0gG0g" type="2002">
+ <children xmi:type="notation:Shape" xmi:id="_qC9ntbwdEeSIRf-5f0gG0g" type="3000">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qC9ntrwdEeSIRf-5f0gG0g" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qC9nt7wdEeSIRf-5f0gG0g" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9nuLwdEeSIRf-5f0gG0g" type="3002">
+ <children xmi:type="notation:Shape" xmi:id="_zf4R0MjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zf5f8MjFEeSlR5E9fXQsvA" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1aMCYMjFEeSlR5E9fXQsvA" width="203"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zf5f8cjFEeSlR5E9fXQsvA" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zf5f8sjFEeSlR5E9fXQsvA" y="-1" width="203"/>
+ </children>
+ <element xmi:type="uml:State" href="ancestor.uml#_zfvH4MjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zf4R0cjFEeSlR5E9fXQsvA" x="112" y="66" width="203" height="69"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1w1AwMjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w1n0MjFEeSlR5E9fXQsvA" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2GKXkMjFEeSlR5E9fXQsvA" width="169"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w1n0cjFEeSlR5E9fXQsvA" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w1n0sjFEeSlR5E9fXQsvA" y="-1" width="169"/>
+ </children>
+ <element xmi:type="uml:State" href="ancestor.uml#_1wykgMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w1AwcjFEeSlR5E9fXQsvA" x="397" y="12" width="169" height="62"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3noKUMjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3noKUsjFEeSlR5E9fXQsvA" type="6001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3noxYMjFEeSlR5E9fXQsvA" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3noxYcjFEeSlR5E9fXQsvA"/>
+ </children>
+ <element xmi:type="uml:State" href="ancestor.uml#_3nluEMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3noKUcjFEeSlR5E9fXQsvA" x="401" y="113" width="157" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_l32-YNIEEeSvO5owlqm60A" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34MgNIEEeSvO5owlqm60A" type="6001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34MgdIEEeSvO5owlqm60A" type="19003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l34zkNIEEeSvO5owlqm60A" x="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34zkdIEEeSvO5owlqm60A" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l34zktIEEeSvO5owlqm60A"/>
+ </children>
+ <element xmi:type="uml:State" href="ancestor.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l32-YdIEEeSvO5owlqm60A" x="157" y="183" width="154" height="74"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nubwdEeSIRf-5f0gG0g"/>
+ </children>
+ <element xmi:type="uml:Region" href="ancestor.uml#_qC4IILwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nurwdEeSIRf-5f0gG0g" width="700" height="287"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nu7wdEeSIRf-5f0gG0g" y="30" width="700" height="287"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="ancestor.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nvLwdEeSIRf-5f0gG0g" x="30" y="30" width="700" height="317"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qC9nvbwdEeSIRf-5f0gG0g" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_qC9nvrwdEeSIRf-5f0gG0g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_qC9nv7wdEeSIRf-5f0gG0g">
+ <owner xmi:type="uml:Model" href="ancestor.uml#_qBqAILwdEeSIRf-5f0gG0g"/>
+ </styles>
+ <element xmi:type="uml:StateMachine" href="ancestor.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <edges xmi:type="notation:Connector" xmi:id="_4tqlUMjFEeSlR5E9fXQsvA" type="7000" source="_zf4R0MjFEeSlR5E9fXQsvA" target="_1w1AwMjFEeSlR5E9fXQsvA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trMYMjFEeSlR5E9fXQsvA" type="7001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzcMjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trzccjFEeSlR5E9fXQsvA" type="7002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzcsjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trzc8jFEeSlR5E9fXQsvA" type="7003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzdMjFEeSlR5E9fXQsvA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4tqlUcjFEeSlR5E9fXQsvA"/>
+ <element xmi:type="uml:Transition" href="ancestor.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4tqlUsjFEeSlR5E9fXQsvA" points="[8, -3, -98, 33]$[90, -33, -16, 3]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_62v1QNLXEeSzBO7rhIZWOw" type="7000" source="_zf4R0MjFEeSlR5E9fXQsvA" target="_l32-YNIEEeSvO5owlqm60A">
+ <children xmi:type="notation:DecorationNode" xmi:id="_62v1Q9LXEeSzBO7rhIZWOw" type="7001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_62v1RNLXEeSzBO7rhIZWOw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_62v1RdLXEeSzBO7rhIZWOw" type="7002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_62v1RtLXEeSzBO7rhIZWOw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_62wcUNLXEeSzBO7rhIZWOw" type="7003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_62wcUdLXEeSzBO7rhIZWOw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_62v1QdLXEeSzBO7rhIZWOw"/>
+ <element xmi:type="uml:Transition" href="ancestor.uml#_62rj0NLXEeSzBO7rhIZWOw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_62v1QtLXEeSzBO7rhIZWOw" points="[7, 35, -14, -85]$[26, 157, 5, 37]"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_ksNDkNIEEeSvO5owlqm60A"/>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/ancestor.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/ancestor.uml
new file mode 100644
index 000000000..03e0efcdc
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/ancestor.uml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qBqAILwdEeSIRf-5f0gG0g" name="model">
+ <packagedElement xmi:type="uml:StateMachine" xmi:id="_qCgUsLwdEeSIRf-5f0gG0g" name="StateMachine1">
+ <region xmi:type="uml:Region" xmi:id="_qC4IILwdEeSIRf-5f0gG0g" name="Region1">
+ <transition xmi:type="uml:Transition" xmi:id="_4rv5wMjFEeSlR5E9fXQsvA" source="_zfvH4MjFEeSlR5E9fXQsvA" target="_1wykgMjFEeSlR5E9fXQsvA"/>
+ <transition xmi:type="uml:Transition" xmi:id="_62rj0NLXEeSzBO7rhIZWOw" source="_zfvH4MjFEeSlR5E9fXQsvA" target="_l3kqgNIEEeSvO5owlqm60A"/>
+ <subvertex xmi:type="uml:State" xmi:id="_zfvH4MjFEeSlR5E9fXQsvA" name="State1"/>
+ <subvertex xmi:type="uml:State" xmi:id="_1wykgMjFEeSlR5E9fXQsvA" name="State2"/>
+ <subvertex xmi:type="uml:State" xmi:id="_3nluEMjFEeSlR5E9fXQsvA" name="State3"/>
+ <subvertex xmi:type="uml:State" xmi:id="_l3kqgNIEEeSvO5owlqm60A" name="State4"/>
+ </region>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/left.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/left.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/left.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/left.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/left.notation
new file mode 100644
index 000000000..984b832d0
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/left.notation
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_qC9nsLwdEeSIRf-5f0gG0g" type="PapyrusUMLStateMachineDiagram" name="NewDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_qC9nsbwdEeSIRf-5f0gG0g" type="2000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9nsrwdEeSIRf-5f0gG0g" type="2001">
+ <element xmi:type="uml:StateMachine" href="left.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9ns7wdEeSIRf-5f0gG0g" width="700" height="30"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9ntLwdEeSIRf-5f0gG0g" type="2002">
+ <children xmi:type="notation:Shape" xmi:id="_qC9ntbwdEeSIRf-5f0gG0g" type="3000">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qC9ntrwdEeSIRf-5f0gG0g" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qC9nt7wdEeSIRf-5f0gG0g" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9nuLwdEeSIRf-5f0gG0g" type="3002">
+ <children xmi:type="notation:Shape" xmi:id="_zf4R0MjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zf5f8MjFEeSlR5E9fXQsvA" type="6001">
+ <element xmi:type="uml:State" href="left.uml#_zfvH4MjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1aMCYMjFEeSlR5E9fXQsvA" width="203"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zf5f8cjFEeSlR5E9fXQsvA" type="6002">
+ <element xmi:type="uml:State" href="left.uml#_zfvH4MjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zf5f8sjFEeSlR5E9fXQsvA" y="-1" width="203"/>
+ </children>
+ <element xmi:type="uml:State" href="left.uml#_zfvH4MjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zf4R0cjFEeSlR5E9fXQsvA" x="112" y="66" width="203" height="69"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1w1AwMjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w1n0MjFEeSlR5E9fXQsvA" type="6001">
+ <element xmi:type="uml:State" href="left.uml#_1wykgMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2GKXkMjFEeSlR5E9fXQsvA" width="169"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w1n0cjFEeSlR5E9fXQsvA" type="6002">
+ <element xmi:type="uml:State" href="left.uml#_1wykgMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w1n0sjFEeSlR5E9fXQsvA" y="-1" width="169"/>
+ </children>
+ <element xmi:type="uml:State" href="left.uml#_1wykgMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w1AwcjFEeSlR5E9fXQsvA" x="397" y="12" width="169" height="62"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3noKUMjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3noKUsjFEeSlR5E9fXQsvA" type="6001">
+ <element xmi:type="uml:State" href="left.uml#_3nluEMjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3noxYMjFEeSlR5E9fXQsvA" type="6002">
+ <element xmi:type="uml:State" href="left.uml#_3nluEMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3noxYcjFEeSlR5E9fXQsvA"/>
+ </children>
+ <element xmi:type="uml:State" href="left.uml#_3nluEMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3noKUcjFEeSlR5E9fXQsvA" x="401" y="113" width="157" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_l32-YNIEEeSvO5owlqm60A" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34MgNIEEeSvO5owlqm60A" type="6001">
+ <element xmi:type="uml:State" href="left.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34MgdIEEeSvO5owlqm60A" type="19003">
+ <element xmi:type="uml:State" href="left.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l34zkNIEEeSvO5owlqm60A" x="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34zkdIEEeSvO5owlqm60A" type="6002">
+ <element xmi:type="uml:State" href="left.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l34zktIEEeSvO5owlqm60A"/>
+ </children>
+ <element xmi:type="uml:State" href="left.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l32-YdIEEeSvO5owlqm60A" x="157" y="183" width="154" height="74"/>
+ </children>
+ <element xmi:type="uml:Region" href="left.uml#_qC4IILwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nubwdEeSIRf-5f0gG0g"/>
+ </children>
+ <element xmi:type="uml:Region" href="left.uml#_qC4IILwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nurwdEeSIRf-5f0gG0g" width="700" height="287"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="left.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nu7wdEeSIRf-5f0gG0g" y="30" width="700" height="287"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="left.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nvLwdEeSIRf-5f0gG0g" x="30" y="30" width="700" height="317"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qC9nvbwdEeSIRf-5f0gG0g" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_qC9nvrwdEeSIRf-5f0gG0g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_qC9nv7wdEeSIRf-5f0gG0g">
+ <owner xmi:type="uml:Model" href="left.uml#_qBqAILwdEeSIRf-5f0gG0g"/>
+ </styles>
+ <element xmi:type="uml:StateMachine" href="left.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <edges xmi:type="notation:Connector" xmi:id="_4tqlUMjFEeSlR5E9fXQsvA" type="7000" source="_zf4R0MjFEeSlR5E9fXQsvA" target="_3noKUMjFEeSlR5E9fXQsvA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trMYMjFEeSlR5E9fXQsvA" type="7001">
+ <element xmi:type="uml:Transition" href="left.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzcMjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trzccjFEeSlR5E9fXQsvA" type="7002">
+ <element xmi:type="uml:Transition" href="left.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzcsjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trzc8jFEeSlR5E9fXQsvA" type="7003">
+ <element xmi:type="uml:Transition" href="left.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzdMjFEeSlR5E9fXQsvA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4tqlUcjFEeSlR5E9fXQsvA"/>
+ <element xmi:type="uml:Transition" href="left.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4tqlUsjFEeSlR5E9fXQsvA" points="[8, -3, -98, 33]$[90, -33, -16, 3]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_62v1QNLXEeSzBO7rhIZWOw" type="7000" source="_zf4R0MjFEeSlR5E9fXQsvA" target="_l32-YNIEEeSvO5owlqm60A">
+ <children xmi:type="notation:DecorationNode" xmi:id="_62v1Q9LXEeSzBO7rhIZWOw" type="7001">
+ <element xmi:type="uml:Transition" href="left.uml#_62rj0NLXEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_62v1RNLXEeSzBO7rhIZWOw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_62v1RdLXEeSzBO7rhIZWOw" type="7002">
+ <element xmi:type="uml:Transition" href="left.uml#_62rj0NLXEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_62v1RtLXEeSzBO7rhIZWOw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_62wcUNLXEeSzBO7rhIZWOw" type="7003">
+ <element xmi:type="uml:Transition" href="left.uml#_62rj0NLXEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_62wcUdLXEeSzBO7rhIZWOw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_62v1QdLXEeSzBO7rhIZWOw"/>
+ <element xmi:type="uml:Transition" href="left.uml#_62rj0NLXEeSzBO7rhIZWOw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_62v1QtLXEeSzBO7rhIZWOw" points="[7, 35, -14, -85]$[26, 157, 5, 37]"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_ksNDkNIEEeSvO5owlqm60A"/>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/left.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/left.uml
new file mode 100644
index 000000000..0a94bbc75
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/left.uml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qBqAILwdEeSIRf-5f0gG0g" name="model">
+ <packagedElement xmi:type="uml:StateMachine" xmi:id="_qCgUsLwdEeSIRf-5f0gG0g" name="StateMachine1">
+ <region xmi:type="uml:Region" xmi:id="_qC4IILwdEeSIRf-5f0gG0g" name="Region1">
+ <transition xmi:type="uml:Transition" xmi:id="_4rv5wMjFEeSlR5E9fXQsvA" source="_zfvH4MjFEeSlR5E9fXQsvA" target="_3nluEMjFEeSlR5E9fXQsvA"/>
+ <transition xmi:type="uml:Transition" xmi:id="_62rj0NLXEeSzBO7rhIZWOw" source="_zfvH4MjFEeSlR5E9fXQsvA" target="_l3kqgNIEEeSvO5owlqm60A"/>
+ <subvertex xmi:type="uml:State" xmi:id="_zfvH4MjFEeSlR5E9fXQsvA" name="State1"/>
+ <subvertex xmi:type="uml:State" xmi:id="_1wykgMjFEeSlR5E9fXQsvA" name="State2"/>
+ <subvertex xmi:type="uml:State" xmi:id="_3nluEMjFEeSlR5E9fXQsvA" name="State3"/>
+ <subvertex xmi:type="uml:State" xmi:id="_l3kqgNIEEeSvO5owlqm60A" name="State4"/>
+ </region>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/package-info.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/package-info.java
new file mode 100644
index 000000000..94f60256e
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/package-info.java
@@ -0,0 +1,18 @@
+/*******************************************************************************
+ * Copyright (c) 2015 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
+ *******************************************************************************/
+
+/**
+ * This package contains test data for the case of an existing transition whose source
+ * or target is changed in a branch.
+ *
+ * @author <a href="mailto:laurent.delaigue@obeo.fr">Laurent Delaigue</a>
+ */
+package org.eclipse.emf.compare.diagram.papyrus.tests.merge.data.assocs.threeway.t1; \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/right.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/right.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/right.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/right.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/right.notation
new file mode 100644
index 000000000..52addc825
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/right.notation
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_qC9nsLwdEeSIRf-5f0gG0g" type="PapyrusUMLStateMachineDiagram" name="NewDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_qC9nsbwdEeSIRf-5f0gG0g" type="2000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9nsrwdEeSIRf-5f0gG0g" type="2001">
+ <element xmi:type="uml:StateMachine" href="right.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9ns7wdEeSIRf-5f0gG0g" width="700" height="30"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9ntLwdEeSIRf-5f0gG0g" type="2002">
+ <children xmi:type="notation:Shape" xmi:id="_qC9ntbwdEeSIRf-5f0gG0g" type="3000">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qC9ntrwdEeSIRf-5f0gG0g" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qC9nt7wdEeSIRf-5f0gG0g" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9nuLwdEeSIRf-5f0gG0g" type="3002">
+ <children xmi:type="notation:Shape" xmi:id="_zf4R0MjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zf5f8MjFEeSlR5E9fXQsvA" type="6001">
+ <element xmi:type="uml:State" href="right.uml#_zfvH4MjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1aMCYMjFEeSlR5E9fXQsvA" width="203"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zf5f8cjFEeSlR5E9fXQsvA" type="6002">
+ <element xmi:type="uml:State" href="right.uml#_zfvH4MjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zf5f8sjFEeSlR5E9fXQsvA" y="-1" width="203"/>
+ </children>
+ <element xmi:type="uml:State" href="right.uml#_zfvH4MjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zf4R0cjFEeSlR5E9fXQsvA" x="112" y="66" width="203" height="69"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1w1AwMjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w1n0MjFEeSlR5E9fXQsvA" type="6001">
+ <element xmi:type="uml:State" href="right.uml#_1wykgMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2GKXkMjFEeSlR5E9fXQsvA" width="169"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w1n0cjFEeSlR5E9fXQsvA" type="6002">
+ <element xmi:type="uml:State" href="right.uml#_1wykgMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w1n0sjFEeSlR5E9fXQsvA" y="-1" width="169"/>
+ </children>
+ <element xmi:type="uml:State" href="right.uml#_1wykgMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w1AwcjFEeSlR5E9fXQsvA" x="397" y="12" width="169" height="62"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3noKUMjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3noKUsjFEeSlR5E9fXQsvA" type="6001">
+ <element xmi:type="uml:State" href="right.uml#_3nluEMjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3noxYMjFEeSlR5E9fXQsvA" type="6002">
+ <element xmi:type="uml:State" href="right.uml#_3nluEMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3noxYcjFEeSlR5E9fXQsvA"/>
+ </children>
+ <element xmi:type="uml:State" href="right.uml#_3nluEMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3noKUcjFEeSlR5E9fXQsvA" x="401" y="113" width="157" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_l32-YNIEEeSvO5owlqm60A" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34MgNIEEeSvO5owlqm60A" type="6001">
+ <element xmi:type="uml:State" href="right.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34MgdIEEeSvO5owlqm60A" type="19003">
+ <element xmi:type="uml:State" href="right.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l34zkNIEEeSvO5owlqm60A" x="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l34zkdIEEeSvO5owlqm60A" type="6002">
+ <element xmi:type="uml:State" href="right.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l34zktIEEeSvO5owlqm60A"/>
+ </children>
+ <element xmi:type="uml:State" href="right.uml#_l3kqgNIEEeSvO5owlqm60A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l32-YdIEEeSvO5owlqm60A" x="157" y="183" width="154" height="74"/>
+ </children>
+ <element xmi:type="uml:Region" href="right.uml#_qC4IILwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nubwdEeSIRf-5f0gG0g"/>
+ </children>
+ <element xmi:type="uml:Region" href="right.uml#_qC4IILwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nurwdEeSIRf-5f0gG0g" width="700" height="287"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="right.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nu7wdEeSIRf-5f0gG0g" y="30" width="700" height="287"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="right.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nvLwdEeSIRf-5f0gG0g" x="30" y="30" width="700" height="317"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qC9nvbwdEeSIRf-5f0gG0g" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_qC9nvrwdEeSIRf-5f0gG0g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_qC9nv7wdEeSIRf-5f0gG0g">
+ <owner xmi:type="uml:Model" href="right.uml#_qBqAILwdEeSIRf-5f0gG0g"/>
+ </styles>
+ <element xmi:type="uml:StateMachine" href="right.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <edges xmi:type="notation:Connector" xmi:id="_4tqlUMjFEeSlR5E9fXQsvA" type="7000" source="_zf4R0MjFEeSlR5E9fXQsvA" target="_1w1AwMjFEeSlR5E9fXQsvA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trMYMjFEeSlR5E9fXQsvA" type="7001">
+ <element xmi:type="uml:Transition" href="right.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzcMjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trzccjFEeSlR5E9fXQsvA" type="7002">
+ <element xmi:type="uml:Transition" href="right.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzcsjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trzc8jFEeSlR5E9fXQsvA" type="7003">
+ <element xmi:type="uml:Transition" href="right.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzdMjFEeSlR5E9fXQsvA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4tqlUcjFEeSlR5E9fXQsvA"/>
+ <element xmi:type="uml:Transition" href="right.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4tqlUsjFEeSlR5E9fXQsvA" points="[8, -3, -98, 33]$[90, -33, -16, 3]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_62v1QNLXEeSzBO7rhIZWOw" type="7000" source="_3noKUMjFEeSlR5E9fXQsvA" target="_l32-YNIEEeSvO5owlqm60A">
+ <children xmi:type="notation:DecorationNode" xmi:id="_62v1Q9LXEeSzBO7rhIZWOw" type="7001">
+ <element xmi:type="uml:Transition" href="right.uml#_62rj0NLXEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_62v1RNLXEeSzBO7rhIZWOw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_62v1RdLXEeSzBO7rhIZWOw" type="7002">
+ <element xmi:type="uml:Transition" href="right.uml#_62rj0NLXEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_62v1RtLXEeSzBO7rhIZWOw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_62wcUNLXEeSzBO7rhIZWOw" type="7003">
+ <element xmi:type="uml:Transition" href="right.uml#_62rj0NLXEeSzBO7rhIZWOw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_62wcUdLXEeSzBO7rhIZWOw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_62v1QdLXEeSzBO7rhIZWOw"/>
+ <element xmi:type="uml:Transition" href="right.uml#_62rj0NLXEeSzBO7rhIZWOw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_62v1QtLXEeSzBO7rhIZWOw" points="[7, 35, -14, -85]$[26, 157, 5, 37]"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_ksNDkNIEEeSvO5owlqm60A"/>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/right.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/right.uml
new file mode 100644
index 000000000..9048c9649
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/threeway/t1/right.uml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qBqAILwdEeSIRf-5f0gG0g" name="model">
+ <packagedElement xmi:type="uml:StateMachine" xmi:id="_qCgUsLwdEeSIRf-5f0gG0g" name="StateMachine1">
+ <region xmi:type="uml:Region" xmi:id="_qC4IILwdEeSIRf-5f0gG0g" name="Region1">
+ <transition xmi:type="uml:Transition" xmi:id="_4rv5wMjFEeSlR5E9fXQsvA" source="_zfvH4MjFEeSlR5E9fXQsvA" target="_1wykgMjFEeSlR5E9fXQsvA"/>
+ <transition xmi:type="uml:Transition" xmi:id="_62rj0NLXEeSzBO7rhIZWOw" source="_3nluEMjFEeSlR5E9fXQsvA" target="_l3kqgNIEEeSvO5owlqm60A"/>
+ <subvertex xmi:type="uml:State" xmi:id="_zfvH4MjFEeSlR5E9fXQsvA" name="State1"/>
+ <subvertex xmi:type="uml:State" xmi:id="_1wykgMjFEeSlR5E9fXQsvA" name="State2"/>
+ <subvertex xmi:type="uml:State" xmi:id="_3nluEMjFEeSlR5E9fXQsvA" name="State3"/>
+ <subvertex xmi:type="uml:State" xmi:id="_l3kqgNIEEeSvO5owlqm60A" name="State4"/>
+ </region>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/left.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/left.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/left.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/left.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/left.notation
new file mode 100644
index 000000000..7163f436e
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/left.notation
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_zmK1oM7cEeSqqOMGqhj_Zg" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_0noSoM7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0npgwM7cEeSqqOMGqhj_Zg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0nqH0M7cEeSqqOMGqhj_Zg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0nqH0c7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV8M7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV8s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV887cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV9M7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV9c7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV9s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV987cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV-M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV-c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nr9AM7cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nr9Ac7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nr9As7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nr9A87cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nr9BM7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="left.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0noSoc7cEeSqqOMGqhj_Zg" x="81" y="74"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1K6l4M7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l4s7cEeSqqOMGqhj_Zg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l487cEeSqqOMGqhj_Zg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1K6l5M7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l5c7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l5s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l587cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l6M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l6c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l6s7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l687cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l7M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l7c7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l7s7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l787cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l8M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l8s7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l887cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="left.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l4c7cEeSqqOMGqhj_Zg" x="350" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TX4o4M7fEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4o4s7fEeSqqOMGqhj_Zg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4o487fEeSqqOMGqhj_Zg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TX4o5M7fEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o5c7fEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o5s7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o587fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o6M7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o6c7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o6s7fEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o687fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o7M7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o7c7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o7s7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o787fEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o8M7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o8c7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o8s7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o887fEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="left.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o4c7fEeSqqOMGqhj_Zg" x="349" y="243"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_zmK1oc7cEeSqqOMGqhj_Zg" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zmK1os7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_zmK1o87cEeSqqOMGqhj_Zg">
+ <owner xmi:type="uml:Model" href="left.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="left.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_38pGoM7cEeSqqOMGqhj_Zg" type="4001" source="_0noSoM7cEeSqqOMGqhj_Zg" target="_TX4o4M7fEeSqqOMGqhj_Zg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGo87cEeSqqOMGqhj_Zg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGpM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGpc7cEeSqqOMGqhj_Zg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGps7cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGp87cEeSqqOMGqhj_Zg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGqM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptsM7cEeSqqOMGqhj_Zg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38ptsc7cEeSqqOMGqhj_Zg" x="-21" y="31"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptss7cEeSqqOMGqhj_Zg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pts87cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pttM7cEeSqqOMGqhj_Zg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pttc7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_38pGoc7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Association" href="left.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_38pGos7cEeSqqOMGqhj_Zg" points="[50, -8, -219, -6]$[219, -8, -50, -6]"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/left.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/left.uml
new file mode 100644
index 000000000..912ac1d40
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/left.uml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_soPaMM7cEeSqqOMGqhj_Zg" name="model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0nM00M7cEeSqqOMGqhj_Zg" name="Class1">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_38lcQM7cEeSqqOMGqhj_Zg" name="someRole" type="_TX3awM7fEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38lcQc7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38lcQs7cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1K5XwM7cEeSqqOMGqhj_Zg" name="Class2"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_38mDUM7cEeSqqOMGqhj_Zg" memberEnd="_38mDUc7cEeSqqOMGqhj_Zg _38lcQM7cEeSqqOMGqhj_Zg">
+ <name xsi:nil="true"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38mDUc7cEeSqqOMGqhj_Zg" name="class1" type="_0nM00M7cEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38mDUs7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38mDU87cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TX3awM7fEeSqqOMGqhj_Zg" name="Class3"/>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/package-info.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/package-info.java
new file mode 100644
index 000000000..8e99c2f4f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/package-info.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2015 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
+ *******************************************************************************/
+
+/**
+ * Contains data for the following test case: Two classes C1 and C2 exist, and an association C1 -> C2 exists.
+ * The target property of this assoc is owned by class C1, whereas its source property is owned by the association itself.
+ * In the other model, a class C3 is added, and the association is reconnected to the new class C3.
+ *
+ * @author <a href="mailto:laurent.delaigue@obeo.fr">Laurent Delaigue</a>
+ */
+package org.eclipse.emf.compare.diagram.papyrus.tests.merge.data.assocs.twoway.a1; \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/right.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/right.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/right.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/right.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/right.notation
new file mode 100644
index 000000000..fa66bfe3f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/right.notation
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_zmK1oM7cEeSqqOMGqhj_Zg" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_0noSoM7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0npgwM7cEeSqqOMGqhj_Zg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0nqH0M7cEeSqqOMGqhj_Zg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0nqH0c7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV8M7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV8s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV887cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV9M7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV9c7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV9s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV987cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV-M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV-c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nr9AM7cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nr9Ac7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nr9As7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nr9A87cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nr9BM7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="right.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0noSoc7cEeSqqOMGqhj_Zg" x="81" y="74"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1K6l4M7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l4s7cEeSqqOMGqhj_Zg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l487cEeSqqOMGqhj_Zg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1K6l5M7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l5c7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l5s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l587cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l6M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l6c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l6s7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l687cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l7M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l7c7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l7s7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l787cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l8M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l8s7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l887cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="right.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l4c7cEeSqqOMGqhj_Zg" x="350" y="72"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_zmK1oc7cEeSqqOMGqhj_Zg" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zmK1os7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_zmK1o87cEeSqqOMGqhj_Zg">
+ <owner xmi:type="uml:Model" href="right.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="right.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_38pGoM7cEeSqqOMGqhj_Zg" type="4001" source="_0noSoM7cEeSqqOMGqhj_Zg" target="_1K6l4M7cEeSqqOMGqhj_Zg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGo87cEeSqqOMGqhj_Zg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGpM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGpc7cEeSqqOMGqhj_Zg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGps7cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGp87cEeSqqOMGqhj_Zg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGqM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptsM7cEeSqqOMGqhj_Zg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38ptsc7cEeSqqOMGqhj_Zg" x="-21" y="31"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptss7cEeSqqOMGqhj_Zg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pts87cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pttM7cEeSqqOMGqhj_Zg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pttc7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_38pGoc7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Association" href="right.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_38pGos7cEeSqqOMGqhj_Zg" points="[50, -8, -219, -6]$[219, -8, -50, -6]"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/right.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/right.uml
new file mode 100644
index 000000000..cdf730634
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a1/right.uml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_soPaMM7cEeSqqOMGqhj_Zg" name="model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0nM00M7cEeSqqOMGqhj_Zg" name="Class1">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_38lcQM7cEeSqqOMGqhj_Zg" name="someRole" type="_1K5XwM7cEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38lcQc7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38lcQs7cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1K5XwM7cEeSqqOMGqhj_Zg" name="Class2"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_38mDUM7cEeSqqOMGqhj_Zg" memberEnd="_38mDUc7cEeSqqOMGqhj_Zg _38lcQM7cEeSqqOMGqhj_Zg">
+ <name xsi:nil="true"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38mDUc7cEeSqqOMGqhj_Zg" name="class1" type="_0nM00M7cEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38mDUs7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38mDU87cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/left.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/left.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/left.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/left.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/left.notation
new file mode 100644
index 000000000..7163f436e
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/left.notation
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_zmK1oM7cEeSqqOMGqhj_Zg" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_0noSoM7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0npgwM7cEeSqqOMGqhj_Zg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0nqH0M7cEeSqqOMGqhj_Zg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0nqH0c7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV8M7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV8s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV887cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV9M7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV9c7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV9s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV987cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV-M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV-c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nr9AM7cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nr9Ac7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nr9As7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nr9A87cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nr9BM7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="left.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0noSoc7cEeSqqOMGqhj_Zg" x="81" y="74"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1K6l4M7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l4s7cEeSqqOMGqhj_Zg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l487cEeSqqOMGqhj_Zg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1K6l5M7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l5c7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l5s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l587cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l6M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l6c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l6s7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l687cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l7M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l7c7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l7s7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l787cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l8M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l8s7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l887cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="left.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l4c7cEeSqqOMGqhj_Zg" x="350" y="72"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TX4o4M7fEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4o4s7fEeSqqOMGqhj_Zg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TX4o487fEeSqqOMGqhj_Zg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TX4o5M7fEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o5c7fEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o5s7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o587fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o6M7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o6c7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o6s7fEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o687fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o7M7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o7c7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o7s7fEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TX4o787fEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TX4o8M7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TX4o8c7fEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TX4o8s7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o887fEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="left.uml#_TX3awM7fEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TX4o4c7fEeSqqOMGqhj_Zg" x="349" y="243"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_zmK1oc7cEeSqqOMGqhj_Zg" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zmK1os7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_zmK1o87cEeSqqOMGqhj_Zg">
+ <owner xmi:type="uml:Model" href="left.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="left.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_38pGoM7cEeSqqOMGqhj_Zg" type="4001" source="_0noSoM7cEeSqqOMGqhj_Zg" target="_TX4o4M7fEeSqqOMGqhj_Zg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGo87cEeSqqOMGqhj_Zg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGpM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGpc7cEeSqqOMGqhj_Zg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGps7cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGp87cEeSqqOMGqhj_Zg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGqM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptsM7cEeSqqOMGqhj_Zg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38ptsc7cEeSqqOMGqhj_Zg" x="-21" y="31"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptss7cEeSqqOMGqhj_Zg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pts87cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pttM7cEeSqqOMGqhj_Zg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pttc7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_38pGoc7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Association" href="left.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_38pGos7cEeSqqOMGqhj_Zg" points="[50, -8, -219, -6]$[219, -8, -50, -6]"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/left.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/left.uml
new file mode 100644
index 000000000..846af7ea5
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/left.uml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_soPaMM7cEeSqqOMGqhj_Zg" name="model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0nM00M7cEeSqqOMGqhj_Zg" name="Class1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1K5XwM7cEeSqqOMGqhj_Zg" name="Class2"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_38mDUM7cEeSqqOMGqhj_Zg" memberEnd="_38mDUc7cEeSqqOMGqhj_Zg _38lcQM7cEeSqqOMGqhj_Zg">
+ <name xsi:nil="true"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38mDUc7cEeSqqOMGqhj_Zg" name="class1" type="_0nM00M7cEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38mDUs7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38mDU87cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38lcQM7cEeSqqOMGqhj_Zg" name="someRole" type="_TX3awM7fEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38lcQc7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38lcQs7cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TX3awM7fEeSqqOMGqhj_Zg" name="Class3"/>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/package-info.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/package-info.java
new file mode 100644
index 000000000..42a581137
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/package-info.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2015 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
+ *******************************************************************************/
+
+/**
+ * Contains data for the following test case: Two classes C1 and C2 exist, and an association C1 -> C2 exists.
+ * Both target and source properties of this assoc are owned by the association itself.
+ * In the other model, a class C3 is added, and the association is reconnected to the new class C3.
+ *
+ * @author <a href="mailto:laurent.delaigue@obeo.fr">Laurent Delaigue</a>
+ */
+package org.eclipse.emf.compare.diagram.papyrus.tests.merge.data.assocs.twoway.a2; \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/right.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/right.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/right.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/right.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/right.notation
new file mode 100644
index 000000000..fa66bfe3f
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/right.notation
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_zmK1oM7cEeSqqOMGqhj_Zg" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_0noSoM7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0npgwM7cEeSqqOMGqhj_Zg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0nqH0M7cEeSqqOMGqhj_Zg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0nqH0c7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV8M7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV8s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV887cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV9M7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nrV9c7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nrV9s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nrV987cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nrV-M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nrV-c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0nr9AM7cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0nr9Ac7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0nr9As7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0nr9A87cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0nr9BM7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="right.uml#_0nM00M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0noSoc7cEeSqqOMGqhj_Zg" x="81" y="74"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1K6l4M7cEeSqqOMGqhj_Zg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l4s7cEeSqqOMGqhj_Zg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1K6l487cEeSqqOMGqhj_Zg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1K6l5M7cEeSqqOMGqhj_Zg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l5c7cEeSqqOMGqhj_Zg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l5s7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l587cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l6M7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l6c7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l6s7cEeSqqOMGqhj_Zg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l687cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l7M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l7c7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l7s7cEeSqqOMGqhj_Zg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1K6l787cEeSqqOMGqhj_Zg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1K6l8M7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1K6l8c7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1K6l8s7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l887cEeSqqOMGqhj_Zg"/>
+ </children>
+ <element xmi:type="uml:Class" href="right.uml#_1K5XwM7cEeSqqOMGqhj_Zg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1K6l4c7cEeSqqOMGqhj_Zg" x="350" y="72"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_zmK1oc7cEeSqqOMGqhj_Zg" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zmK1os7cEeSqqOMGqhj_Zg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_zmK1o87cEeSqqOMGqhj_Zg">
+ <owner xmi:type="uml:Model" href="right.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="right.uml#_soPaMM7cEeSqqOMGqhj_Zg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_38pGoM7cEeSqqOMGqhj_Zg" type="4001" source="_0noSoM7cEeSqqOMGqhj_Zg" target="_1K6l4M7cEeSqqOMGqhj_Zg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGo87cEeSqqOMGqhj_Zg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGpM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGpc7cEeSqqOMGqhj_Zg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGps7cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pGp87cEeSqqOMGqhj_Zg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pGqM7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptsM7cEeSqqOMGqhj_Zg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38ptsc7cEeSqqOMGqhj_Zg" x="-21" y="31"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38ptss7cEeSqqOMGqhj_Zg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pts87cEeSqqOMGqhj_Zg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_38pttM7cEeSqqOMGqhj_Zg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_38pttc7cEeSqqOMGqhj_Zg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_38pGoc7cEeSqqOMGqhj_Zg"/>
+ <element xmi:type="uml:Association" href="right.uml#_38mDUM7cEeSqqOMGqhj_Zg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_38pGos7cEeSqqOMGqhj_Zg" points="[50, -8, -219, -6]$[219, -8, -50, -6]"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/right.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/right.uml
new file mode 100644
index 000000000..d5e3e6e55
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/a2/right.uml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_soPaMM7cEeSqqOMGqhj_Zg" name="model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0nM00M7cEeSqqOMGqhj_Zg" name="Class1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_1K5XwM7cEeSqqOMGqhj_Zg" name="Class2"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_38mDUM7cEeSqqOMGqhj_Zg" memberEnd="_38mDUc7cEeSqqOMGqhj_Zg _38lcQM7cEeSqqOMGqhj_Zg">
+ <name xsi:nil="true"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38mDUc7cEeSqqOMGqhj_Zg" name="class1" type="_0nM00M7cEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38mDUs7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38mDU87cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_38lcQM7cEeSqqOMGqhj_Zg" name="someRole" type="_1K5XwM7cEeSqqOMGqhj_Zg" association="_38mDUM7cEeSqqOMGqhj_Zg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_38lcQc7cEeSqqOMGqhj_Zg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_38lcQs7cEeSqqOMGqhj_Zg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/left.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/left.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/left.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/left.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/left.notation
new file mode 100644
index 000000000..5faca7b6c
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/left.notation
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qC9nsLwdEeSIRf-5f0gG0g" type="PapyrusUMLStateMachineDiagram" name="NewDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_qC9nsbwdEeSIRf-5f0gG0g" type="2000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9nsrwdEeSIRf-5f0gG0g" type="2001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9ns7wdEeSIRf-5f0gG0g" width="700" height="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9ntLwdEeSIRf-5f0gG0g" type="2002">
+ <children xmi:type="notation:Shape" xmi:id="_qC9ntbwdEeSIRf-5f0gG0g" type="3000">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qC9ntrwdEeSIRf-5f0gG0g" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qC9nt7wdEeSIRf-5f0gG0g" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9nuLwdEeSIRf-5f0gG0g" type="3002">
+ <children xmi:type="notation:Shape" xmi:id="_zf4R0MjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zf5f8MjFEeSlR5E9fXQsvA" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1aMCYMjFEeSlR5E9fXQsvA" width="203"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zf5f8cjFEeSlR5E9fXQsvA" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zf5f8sjFEeSlR5E9fXQsvA" y="-1" width="203"/>
+ </children>
+ <element xmi:type="uml:State" href="left.uml#_zfvH4MjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zf4R0cjFEeSlR5E9fXQsvA" x="112" y="66" width="203" height="69"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1w1AwMjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w1n0MjFEeSlR5E9fXQsvA" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2GKXkMjFEeSlR5E9fXQsvA" width="169"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w1n0cjFEeSlR5E9fXQsvA" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w1n0sjFEeSlR5E9fXQsvA" y="-1" width="169"/>
+ </children>
+ <element xmi:type="uml:State" href="left.uml#_1wykgMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w1AwcjFEeSlR5E9fXQsvA" x="397" y="12" width="169" height="62"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3noKUMjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3noKUsjFEeSlR5E9fXQsvA" type="6001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3noxYMjFEeSlR5E9fXQsvA" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3noxYcjFEeSlR5E9fXQsvA"/>
+ </children>
+ <element xmi:type="uml:State" href="left.uml#_3nluEMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3noKUcjFEeSlR5E9fXQsvA" x="401" y="113" width="157" height="73"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nubwdEeSIRf-5f0gG0g"/>
+ </children>
+ <element xmi:type="uml:Region" href="left.uml#_qC4IILwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nurwdEeSIRf-5f0gG0g" width="700" height="287"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nu7wdEeSIRf-5f0gG0g" y="20" width="700" height="287"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="left.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nvLwdEeSIRf-5f0gG0g" x="30" y="30" width="700" height="307"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qC9nvbwdEeSIRf-5f0gG0g" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_qC9nvrwdEeSIRf-5f0gG0g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_qC9nv7wdEeSIRf-5f0gG0g">
+ <owner xmi:type="uml:Model" href="left.uml#_qBqAILwdEeSIRf-5f0gG0g"/>
+ </styles>
+ <element xmi:type="uml:StateMachine" href="left.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <edges xmi:type="notation:Connector" xmi:id="_4tqlUMjFEeSlR5E9fXQsvA" type="7000" source="_zf4R0MjFEeSlR5E9fXQsvA" target="_1w1AwMjFEeSlR5E9fXQsvA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trMYMjFEeSlR5E9fXQsvA" type="7001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzcMjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trzccjFEeSlR5E9fXQsvA" type="7002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzcsjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trzc8jFEeSlR5E9fXQsvA" type="7003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzdMjFEeSlR5E9fXQsvA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4tqlUcjFEeSlR5E9fXQsvA"/>
+ <element xmi:type="uml:Transition" href="left.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4tqlUsjFEeSlR5E9fXQsvA" points="[8, -3, -98, 33]$[90, -33, -16, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4uHRQMjFEeSlR5E9fXQsvA" id="(0.9605911330049262,0.43478260869565216)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4uHRQcjFEeSlR5E9fXQsvA" id="(0.09467455621301775,0.7741935483870968)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/left.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/left.uml
new file mode 100644
index 000000000..bb52e6394
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/left.uml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qBqAILwdEeSIRf-5f0gG0g" name="model">
+ <packagedElement xmi:type="uml:StateMachine" xmi:id="_qCgUsLwdEeSIRf-5f0gG0g" name="StateMachine1">
+ <region xmi:type="uml:Region" xmi:id="_qC4IILwdEeSIRf-5f0gG0g" name="Region1">
+ <transition xmi:type="uml:Transition" xmi:id="_4rv5wMjFEeSlR5E9fXQsvA" source="_zfvH4MjFEeSlR5E9fXQsvA" target="_1wykgMjFEeSlR5E9fXQsvA"/>
+ <subvertex xmi:type="uml:State" xmi:id="_zfvH4MjFEeSlR5E9fXQsvA" name="State1"/>
+ <subvertex xmi:type="uml:State" xmi:id="_1wykgMjFEeSlR5E9fXQsvA" name="State2"/>
+ <subvertex xmi:type="uml:State" xmi:id="_3nluEMjFEeSlR5E9fXQsvA" name="State3"/>
+ </region>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/package-info.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/package-info.java
new file mode 100644
index 000000000..7d956b494
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/package-info.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2015 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
+ *******************************************************************************/
+
+/**
+ * <p>This package contains test data for checkging reconnection of a transition.
+ * An existing transition's target is changed.</p>
+ * See <a href="http://eclip.se/450096">bug 450096</a>
+ *
+ * @author <a href="mailto:laurent.delaigue@obeo.fr">Laurent Delaigue</a>
+ */
+package org.eclipse.emf.compare.diagram.papyrus.tests.merge.data.assocs.twoway.t1; \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/right.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/right.di
new file mode 100644
index 000000000..8634d4c00
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/right.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/right.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/right.notation
new file mode 100644
index 000000000..79cacc70c
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/right.notation
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qC9nsLwdEeSIRf-5f0gG0g" type="PapyrusUMLStateMachineDiagram" name="NewDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_qC9nsbwdEeSIRf-5f0gG0g" type="2000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9nsrwdEeSIRf-5f0gG0g" type="2001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9ns7wdEeSIRf-5f0gG0g" width="700" height="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9ntLwdEeSIRf-5f0gG0g" type="2002">
+ <children xmi:type="notation:Shape" xmi:id="_qC9ntbwdEeSIRf-5f0gG0g" type="3000">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qC9ntrwdEeSIRf-5f0gG0g" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qC9nt7wdEeSIRf-5f0gG0g" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC9nuLwdEeSIRf-5f0gG0g" type="3002">
+ <children xmi:type="notation:Shape" xmi:id="_zf4R0MjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zf5f8MjFEeSlR5E9fXQsvA" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1aMCYMjFEeSlR5E9fXQsvA" width="203"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zf5f8cjFEeSlR5E9fXQsvA" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zf5f8sjFEeSlR5E9fXQsvA" y="-1" width="203"/>
+ </children>
+ <element xmi:type="uml:State" href="right.uml#_zfvH4MjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zf4R0cjFEeSlR5E9fXQsvA" x="112" y="66" width="203" height="69"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1w1AwMjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w1n0MjFEeSlR5E9fXQsvA" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2GKXkMjFEeSlR5E9fXQsvA" width="169"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w1n0cjFEeSlR5E9fXQsvA" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w1n0sjFEeSlR5E9fXQsvA" y="-1" width="169"/>
+ </children>
+ <element xmi:type="uml:State" href="right.uml#_1wykgMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w1AwcjFEeSlR5E9fXQsvA" x="397" y="12" width="169" height="62"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3noKUMjFEeSlR5E9fXQsvA" type="6000">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3noKUsjFEeSlR5E9fXQsvA" type="6001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3noxYMjFEeSlR5E9fXQsvA" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3noxYcjFEeSlR5E9fXQsvA"/>
+ </children>
+ <element xmi:type="uml:State" href="right.uml#_3nluEMjFEeSlR5E9fXQsvA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3noKUcjFEeSlR5E9fXQsvA" x="401" y="113" width="157" height="73"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nubwdEeSIRf-5f0gG0g"/>
+ </children>
+ <element xmi:type="uml:Region" href="right.uml#_qC4IILwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nurwdEeSIRf-5f0gG0g" width="700" height="287"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nu7wdEeSIRf-5f0gG0g" y="20" width="700" height="287"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="right.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qC9nvLwdEeSIRf-5f0gG0g" x="30" y="30" width="700" height="307"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qC9nvbwdEeSIRf-5f0gG0g" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_qC9nvrwdEeSIRf-5f0gG0g"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_qC9nv7wdEeSIRf-5f0gG0g">
+ <owner xmi:type="uml:Model" href="right.uml#_qBqAILwdEeSIRf-5f0gG0g"/>
+ </styles>
+ <element xmi:type="uml:StateMachine" href="right.uml#_qCgUsLwdEeSIRf-5f0gG0g"/>
+ <edges xmi:type="notation:Connector" xmi:id="_4tqlUMjFEeSlR5E9fXQsvA" type="7000" source="_zf4R0MjFEeSlR5E9fXQsvA" target="_3noKUMjFEeSlR5E9fXQsvA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trMYMjFEeSlR5E9fXQsvA" type="7001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzcMjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trzccjFEeSlR5E9fXQsvA" type="7002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzcsjFEeSlR5E9fXQsvA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4trzc8jFEeSlR5E9fXQsvA" type="7003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4trzdMjFEeSlR5E9fXQsvA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4tqlUcjFEeSlR5E9fXQsvA"/>
+ <element xmi:type="uml:Transition" href="right.uml#_4rv5wMjFEeSlR5E9fXQsvA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4tqlUsjFEeSlR5E9fXQsvA" points="[8, -3, -98, 33]$[90, -33, -16, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4uHRQMjFEeSlR5E9fXQsvA" id="(0.9605911330049262,0.43478260869565216)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4uHRQcjFEeSlR5E9fXQsvA" id="(0.19745222929936307,0.5753424657534246)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/right.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/right.uml
new file mode 100644
index 000000000..844c728eb
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/merge/data/assocs/twoway/t1/right.uml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_qBqAILwdEeSIRf-5f0gG0g" name="model">
+ <packagedElement xmi:type="uml:StateMachine" xmi:id="_qCgUsLwdEeSIRf-5f0gG0g" name="StateMachine1">
+ <region xmi:type="uml:Region" xmi:id="_qC4IILwdEeSIRf-5f0gG0g" name="Region1">
+ <transition xmi:type="uml:Transition" xmi:id="_4rv5wMjFEeSlR5E9fXQsvA" source="_zfvH4MjFEeSlR5E9fXQsvA" target="_3nluEMjFEeSlR5E9fXQsvA"/>
+ <subvertex xmi:type="uml:State" xmi:id="_zfvH4MjFEeSlR5E9fXQsvA" name="State1"/>
+ <subvertex xmi:type="uml:State" xmi:id="_1wykgMjFEeSlR5E9fXQsvA" name="State2"/>
+ <subvertex xmi:type="uml:State" xmi:id="_3nluEMjFEeSlR5E9fXQsvA" name="State3"/>
+ </region>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/suite/AllTests.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/suite/AllTests.java
index e680ec845..2cca78cca 100644
--- a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/suite/AllTests.java
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests/src/org/eclipse/emf/compare/diagram/papyrus/tests/suite/AllTests.java
@@ -17,6 +17,7 @@ import junit.textui.TestRunner;
import org.eclipse.emf.compare.ComparePackage;
import org.eclipse.emf.compare.diagram.internal.extensions.ExtensionsPackage;
+import org.eclipse.emf.compare.diagram.papyrus.tests.merge.AssocMergeTest;
import org.eclipse.emf.compare.diagram.papyrus.tests.merge.EdgeMergeTest;
import org.eclipse.emf.compare.diagram.papyrus.tests.merge.NodeMergeTest;
import org.eclipse.emf.compare.diagram.papyrus.tests.modelextension.ModelExtensionUtilTest;
@@ -45,7 +46,7 @@ import org.junit.runners.Suite.SuiteClasses;
*/
@SuppressWarnings("restriction")
@RunWith(Suite.class)
-@SuiteClasses({ EdgeMergeTest.class, NodeMergeTest.class,
+@SuiteClasses({AssocMergeTest.class, EdgeMergeTest.class, NodeMergeTest.class,
ModelExtensionUtilTest.class, SaveParameterHookTest.class,
SaveParameterHookIntegrationTest.class,
MergeRenamingMatchResource2WayTest.class,

Back to the top