Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilip Langer2015-09-21 16:21:49 +0000
committerLaurent Delaigue2015-10-23 07:37:23 +0000
commit1961b9118f4cfe2979682db0e318ca7f46b6276f (patch)
tree96475753b18a85d204cbcd8f397b78becc3c486b
parentd68d3195e0ca8bf508bbac164b12aeef26daa310 (diff)
downloadorg.eclipse.emf.compare-1961b9118f4cfe2979682db0e318ca7f46b6276f.tar.gz
org.eclipse.emf.compare-1961b9118f4cfe2979682db0e318ca7f46b6276f.tar.xz
org.eclipse.emf.compare-1961b9118f4cfe2979682db0e318ca7f46b6276f.zip
[475890] Add AbstractGitMergeTestCase and test case for 475890
This commit introduces AbstractGitMergeTestCase to ease creating further integration test cases with Papyrus and Git. The idea of this abstract test case is to be able to just add a merge scenario in the form of the models for the origin, left, and right side, implement the validation of the expected resulting merged model files and therewith create a test case that covers merge, rebase, and cherry-pick in both directions. As an example, this commit adds the test case for Bug 475890. This bug was fixed in previous changes, but this commit still adds the test case to avoid regression. Bug: 475890 Change-Id: I32e7c666a33f9cfb08024080f42852bc7b421da5 Signed-off-by: Philip Langer <planger@eclipsesource.com>
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/build.properties3
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/egit/AbstractGitMergeTestCase.java496
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/egit/ResourceAttachmentChangeAddGitMergeTest.java100
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/suite/PapyrusGitTests.java12
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/SomePackage.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/SomePackage.notation133
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/SomePackage.uml17
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/model.notation248
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/model.uml40
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/origin/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/origin/model.notation331
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/origin/model.uml34
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/right/model.di2
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/right/model.notation382
-rw-r--r--plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/right/model.uml42
16 files changed, 1840 insertions, 6 deletions
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/build.properties b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/build.properties
index cdd2db7f1..72078d412 100644
--- a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/build.properties
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/build.properties
@@ -3,5 +3,6 @@ output.. = bin/
bin.includes = META-INF/,\
.,\
about.html,\
- plugin.properties
+ plugin.properties,\
+ testmodels/
src.includes = about.html
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/egit/AbstractGitMergeTestCase.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/egit/AbstractGitMergeTestCase.java
new file mode 100644
index 000000000..37e5342ec
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/egit/AbstractGitMergeTestCase.java
@@ -0,0 +1,496 @@
+/*******************************************************************************
+ * Copyright (C) 2015 EclipseSource Munich Gmbh and Others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Philip Langer - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.diagram.papyrus.tests.egit;
+
+import static com.google.common.base.Predicates.and;
+import static com.google.common.collect.Iterables.filter;
+import static com.google.common.collect.Iterables.transform;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.channels.FileChannel;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.resources.mapping.IModelProviderDescriptor;
+import org.eclipse.core.resources.mapping.ModelProvider;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.egit.core.Activator;
+import org.eclipse.egit.core.GitCorePreferences;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.diagram.papyrus.tests.egit.fixture.GitTestRepository;
+import org.eclipse.emf.compare.diagram.papyrus.tests.egit.fixture.MockSystemReader;
+import org.eclipse.emf.compare.ide.ui.internal.EMFCompareIDEUIPlugin;
+import org.eclipse.emf.compare.ide.ui.internal.logical.EMFModelProvider;
+import org.eclipse.emf.compare.ide.ui.internal.logical.resolver.CrossReferenceResolutionScope;
+import org.eclipse.emf.compare.ide.ui.internal.preferences.EMFCompareUIPreferences;
+import org.eclipse.emf.compare.ide.ui.tests.workspace.TestProject;
+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.jface.preference.IPreferenceStore;
+import org.eclipse.jgit.lib.Constants;
+import org.eclipse.jgit.util.FileUtils;
+import org.eclipse.jgit.util.SystemReader;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+
+import com.google.common.base.Function;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Predicate;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableList.Builder;
+
+/**
+ * Abstract test case to assess the results of merging, rebasing, and
+ * cherry-picking of a particular merge scenario.
+ * <p>
+ * This abstract test case sets up the branches <em>left</em> and <em>right</em>
+ * with projects and models of a given directory specified by subclasses of this
+ * test case. Then it performs a merge, rebase, and cherry-pick in both
+ * directions and, for each case, calls the subclass to validate the result.
+ * </p>
+ *
+ * @author Philip Langer <planger@eclipsesource.com>
+ */
+@SuppressWarnings("restriction")
+public abstract class AbstractGitMergeTestCase {
+
+ protected static final String DEFAULT_PROJECT = "Project1";
+
+ protected static final String TEST_BUNDLE = "org.eclipse.emf.compare.diagram.papyrus.tests.git";
+
+ protected static final String MASTER_BRANCH = Constants.R_HEADS + Constants.MASTER;
+
+ protected static final String BRANCH_LEFT = Constants.R_HEADS + "branch_left";
+
+ protected static final String BRANCH_RIGHT = Constants.R_HEADS + "branch_right";
+
+ private static final Predicate<File> IS_EXISTING_FILE = new Predicate<File>() {
+ public boolean apply(File input) {
+ return input != null && input.exists() && input.isFile();
+ }
+ };
+
+ protected static String defaultResolutionScope;
+
+ protected GitTestRepository repository;
+
+ protected File gitDir;
+
+ @BeforeClass
+ public static void setUpClass() {
+ // suppress auto-ignoring and auto-sharing to avoid interference
+ final IEclipsePreferences eGitPreferences = InstanceScope.INSTANCE.getNode(Activator.getPluginId());
+ eGitPreferences.put(GitCorePreferences.core_preferredMergeStrategy, "model recursive");
+ eGitPreferences.putBoolean(GitCorePreferences.core_autoShareProjects, false);
+ // This is actually the value of
+ // "GitCorePreferences.core_autoIgnoreDerivedResources"... but it was
+ // not in Egit 2.1
+ eGitPreferences.putBoolean("core_autoIgnoreDerivedResources", false);
+ final IPreferenceStore store = EMFCompareIDEUIPlugin.getDefault().getPreferenceStore();
+ defaultResolutionScope = store.getString(EMFCompareUIPreferences.RESOLUTION_SCOPE_PREFERENCE);
+ store.setValue(EMFCompareUIPreferences.RESOLUTION_SCOPE_PREFERENCE, getResolutionScope().name());
+ }
+
+ @AfterClass
+ public static void tearDownClass() {
+ final IPreferenceStore store = EMFCompareIDEUIPlugin.getDefault().getPreferenceStore();
+ store.setValue(EMFCompareUIPreferences.RESOLUTION_SCOPE_PREFERENCE, defaultResolutionScope);
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ Activator.getDefault().getRepositoryCache().clear();
+ final MockSystemReader mockSystemReader = new MockSystemReader();
+ SystemReader.setInstance(mockSystemReader);
+ final IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+ final String gitRepoPath = workspaceRoot.getRawLocation().toFile() + File.separator + "repo";
+ mockSystemReader.setProperty(Constants.GIT_CEILING_DIRECTORIES_KEY, workspaceRoot.getLocation().toFile()
+ .getParentFile().getAbsoluteFile().toString());
+ gitDir = new File(gitRepoPath, Constants.DOT_GIT);
+ repository = new GitTestRepository(gitDir);
+ repository.ignore(workspaceRoot.getRawLocation().append(".metadata").toFile());
+ setUpRepository();
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ final IModelProviderDescriptor modelProviderDesc = ModelProvider
+ .getModelProviderDescriptor(EMFModelProvider.PROVIDER_ID);
+ final EMFModelProvider emfModelProvider = (EMFModelProvider) modelProviderDesc.getModelProvider();
+ emfModelProvider.clear();
+ repository.dispose();
+ Activator.getDefault().getRepositoryCache().clear();
+ if (gitDir.exists()) {
+ File gitRoot = gitDir.getParentFile();
+ if (gitRoot.exists()) {
+ FileUtils.delete(gitRoot, FileUtils.RECURSIVE | FileUtils.RETRY);
+ }
+ }
+ }
+
+ protected void setUpRepository() throws Exception {
+ final String testScenarioPath = getTestScenarioPath();
+ final File testScenarioDir = getTestScenarioFile(testScenarioPath);
+ Preconditions.checkState(testScenarioDir.isDirectory(), "Test scenario path must be a directory.");
+
+ final File testScenarioDirOrigin = getTestScenarioFile(testScenarioPath + "origin");
+ final File testScenarioDirLeft = getTestScenarioFile(testScenarioPath + "left");
+ final File testScenarioDirRight = getTestScenarioFile(testScenarioPath + "right");
+ Preconditions.checkState(testScenarioDirOrigin.exists() && testScenarioDirOrigin.isDirectory(),
+ "Test scenario directory must contain a directory called \"origin\".");
+ Preconditions.checkState(testScenarioDirLeft.exists() && testScenarioDirLeft.isDirectory(),
+ "Test scenario directory must contain a directory called \"left\".");
+ Preconditions.checkState(testScenarioDirRight.exists() && testScenarioDirRight.isDirectory(),
+ "Test scenario directory must contain a directory called \"right\".");
+
+ commitContentFrom(testScenarioDirOrigin, "initial-commit");
+ repository.createBranch(MASTER_BRANCH, BRANCH_LEFT);
+ repository.createBranch(MASTER_BRANCH, BRANCH_RIGHT);
+ repository.checkoutBranch(BRANCH_LEFT);
+ commitContentFrom(testScenarioDirLeft, "left-commit");
+ repository.checkoutBranch(BRANCH_RIGHT);
+ commitContentFrom(testScenarioDirRight, "right-commit");
+ }
+
+ private File getTestScenarioFile(String scenarioPath) throws IOException, URISyntaxException {
+ final Bundle bundle = Platform.getBundle(TEST_BUNDLE);
+ final URI fileUri = getFileUri(bundle.getEntry(scenarioPath));
+ return toFile(fileUri);
+ }
+
+ private URI getFileUri(URL bundleUrl) throws IOException {
+ return URI.createFileURI(FileLocator.toFileURL(bundleUrl).getPath());
+ }
+
+ private File toFile(URI fileUri) throws URISyntaxException {
+ return new File(fileUri.toFileString());
+ }
+
+ private void commitContentFrom(File rootDirectory, String commitMsg) throws Exception {
+ // TODO support multiple projects
+ final File workingDirectory = repository.getRepository().getWorkTree();
+ final TestProject testProject1 = new TestProject(DEFAULT_PROJECT, workingDirectory.getAbsolutePath());
+ final IProject iProject = testProject1.getProject();
+ final File projectDirectory = new File(iProject.getLocation().toOSString());
+ repository.connect(iProject);
+ copyDirectoryContents(rootDirectory, projectDirectory);
+ repository.addAllAndCommit(commitMsg, true);
+ }
+
+ private static void copyDirectoryContents(File rootDirectory, final File workingDirectory) throws IOException {
+ for (String child : rootDirectory.list()) {
+ copyDirectory(new File(rootDirectory, child), new File(workingDirectory, child));
+ }
+ }
+
+ private static void copyDirectory(File source, File destination) throws IOException {
+ if (source.isDirectory()) {
+ if (!destination.exists()) {
+ destination.mkdir();
+ }
+ for (String child : source.list()) {
+ copyDirectory(new File(source, child), new File(destination, child));
+ }
+ } else {
+ copyFile(source, destination);
+ }
+ }
+
+ private static void copyFile(File source, File dest) throws IOException {
+ FileChannel sourceChannel = null;
+ FileChannel destChannel = null;
+ FileInputStream fileInputStream = new FileInputStream(source);
+ sourceChannel = fileInputStream.getChannel();
+ FileOutputStream fileOutputStream = new FileOutputStream(dest);
+ destChannel = fileOutputStream.getChannel();
+ destChannel.transferFrom(sourceChannel, 0, sourceChannel.size());
+ sourceChannel.close();
+ destChannel.close();
+ fileInputStream.close();
+ fileOutputStream.close();
+ }
+
+ private Iterable<File> getAllContainedFiles(File workingDirectory) {
+ final Builder<File> builder = ImmutableList.builder();
+ for (File containedFile : workingDirectory.listFiles()) {
+ if (containedFile.isFile()) {
+ builder.add(containedFile);
+ } else if (containedFile.isDirectory()) {
+ builder.addAll(getAllContainedFiles(containedFile));
+ }
+ }
+ return builder.build();
+ }
+
+ /**
+ * Tests merging branch <em>left</em> into checked-out branch <em>right</em>
+ * and validates the result based on {@link #validateResult()}.
+ */
+ @Test
+ public void testMergeLeftIntoRight() throws Exception {
+ repository.checkoutBranch(BRANCH_RIGHT);
+ repository.mergeLogicalWithNewCommit(BRANCH_LEFT);
+ validate();
+ validateMergeLeftIntoRight();
+ }
+
+ /**
+ * Tests merging branch <em>right</em> into checked-out branch <em>left</em>
+ * and validates the result based on {@link #validateResult()}.
+ */
+ @Test
+ public void testMergeRightIntoLeft() throws Exception {
+ repository.checkoutBranch(BRANCH_LEFT);
+ repository.mergeLogicalWithNewCommit(BRANCH_RIGHT);
+ validate();
+ validateMergeRightIntoLeft();
+ }
+
+ /**
+ * Tests rebasing branch <em>left</em> onto checked-out branch
+ * <em>right</em> and validates the result based on
+ * {@link #validateResult()}.
+ */
+ @Test
+ public void testRebaseLeftOntoRight() throws Exception {
+ repository.checkoutBranch(BRANCH_RIGHT);
+ repository.rebaseLogical(BRANCH_LEFT);
+ validate();
+ validateRebaseLeftOntoRight();
+ }
+
+ /**
+ * Tests rebasing branch <em>right</em> onto checked-out branch
+ * <em>left</em> and then validates the result based on
+ * {@link #validateResult()} .
+ */
+ @Test
+ public void testRebaseRightOntoLeft() throws Exception {
+ repository.checkoutBranch(BRANCH_LEFT);
+ repository.rebaseLogical(BRANCH_RIGHT);
+ validate();
+ validateRebaseRightOntoLeft();
+ }
+
+ /**
+ * Tests cherry-picking branch <em>left</em> onto checked-out branch
+ * <em>right</em> and validates the result based on
+ * {@link #validateResult()}.
+ */
+ @Test
+ public void testCherryPickLeftOntoRight() throws Exception {
+ repository.checkoutBranch(BRANCH_RIGHT);
+ repository.cherryPickLogical(BRANCH_LEFT);
+ validate();
+ validateCherryPickLeftOntoRight();
+ }
+
+ /**
+ * Tests cherry-picking branch <em>right</em> onto checked-out branch
+ * <em>left</em> and then validates the result based on
+ * {@link #validateResult()} .
+ */
+ @Test
+ public void testCherryPickRightOntoLeft() throws Exception {
+ repository.checkoutBranch(BRANCH_LEFT);
+ repository.cherryPickLogical(BRANCH_RIGHT);
+ validate();
+ validateCherryPickRightOntoLeft();
+ }
+
+ protected void validate() throws Exception {
+ validateResult();
+ validateResources();
+ }
+
+ private void validateResources() throws Exception {
+ final ResourceSet resourceSet = new ResourceSetImpl();
+ final File workingDirectory = repository.getRepository().getWorkTree();
+ final Iterable<File> filesOfInterest = filter(getAllContainedFiles(workingDirectory),
+ and(IS_EXISTING_FILE, getFileOfInterestFilter()));
+ final Iterable<URI> urisOfInterest = transform(filesOfInterest, toUri(workingDirectory.getAbsolutePath()));
+ for (URI uriOfInterest : urisOfInterest) {
+ final Resource resource = resourceSet.getResource(uriOfInterest, true);
+ validateResult(resource);
+ }
+ }
+
+ private Function<File, URI> toUri(String string) {
+ return new Function<File, URI>() {
+ public URI apply(File input) {
+ return URI.createPlatformResourceURI(repository.getRepoRelativePath(input), true);
+ }
+ };
+ }
+
+ private Predicate<File> getFileOfInterestFilter() {
+ return new Predicate<File>() {
+ public boolean apply(File input) {
+ return !input.getAbsolutePath().startsWith(gitDir.getAbsolutePath()) && shouldValidate(input);
+ }
+ };
+ }
+
+ protected boolean isConflicting() throws Exception {
+ return repository.status().getConflicting().size() > 0;
+ }
+
+ protected boolean noConflict() throws Exception {
+ return !isConflicting();
+ }
+
+ protected boolean fileExists(String string) {
+ final File workTree = repository.getRepository().getWorkTree();
+ final File projectDirectory = new File(workTree, DEFAULT_PROJECT);
+ return new File(projectDirectory, string).exists();
+ }
+
+ /**
+ * Returns the resolution scope to be used for this test case.
+ * <p>
+ * The default value is {@link CrossReferenceResolutionScope#WORKSPACE}.
+ * Subclasses may override this method to provide a different resolution
+ * scope.
+ * </p>
+ *
+ * @return the resolution scope to be used for this test case.
+ */
+ protected static CrossReferenceResolutionScope getResolutionScope() {
+ return CrossReferenceResolutionScope.WORKSPACE;
+ }
+
+ /**
+ * Returns the path to the data of the test scenario.
+ *
+ * @return the path to the data of the test scenario.
+ */
+ protected abstract String getTestScenarioPath();
+
+ /**
+ * Specifies whether a given {@code file} should be validated in this test.
+ * <p>
+ * Clients may overwrite to include or exclude certain files from being
+ * validated with {@link #validateResult(Resource)}. The default is
+ * <code>true</code> for any file.
+ * </p>
+ *
+ * @param file
+ * The input in question.
+ * @return <code>true</code> if the given {@code file} should be validated,
+ * <code>false</code> otherwise.
+ */
+ protected boolean shouldValidate(File file) {
+ return true;
+ }
+
+ /**
+ * Validates the result after merging, rebasing, or cherry-picking in either
+ * direction.
+ *
+ * @throws Exception
+ * if something goes wrong during the validation of the
+ * assertions.
+ */
+ protected abstract void validateResult() throws Exception;
+
+ /**
+ * Validates contents of a single resource after merging, rebasing, or
+ * cherry-picking in either direction.
+ *
+ * @param resource
+ * The resource to validate.
+ * @throws Exception
+ * if something goes wrong during the validation of the
+ * assertions.
+ */
+ protected abstract void validateResult(Resource resource) throws Exception;
+
+ /**
+ * Validates the result of merging branch <em>left</em> into <em>right</em>.
+ * <p>
+ * This method it intended to be overwritten by sub-classes if the specific
+ * tests require specific validation.
+ * </p>
+ */
+ protected void validateMergeLeftIntoRight() {
+ // no validation by default, can be overwritten by sub-classes
+ }
+
+ /**
+ * Validates the result of merging branch <em>right</em> into <em>left</em>.
+ * <p>
+ * This method it intended to be overwritten by sub-classes if the specific
+ * tests require specific validation.
+ * </p>
+ */
+ protected void validateMergeRightIntoLeft() {
+ // no validation by default, can be overwritten by sub-classes
+ }
+
+ /**
+ * Validates the result of rebasing branch <em>left</em> onto <em>right</em>.
+ * <p>
+ * This method it intended to be overwritten by sub-classes if the specific
+ * tests require specific validation.
+ * </p>
+ */
+ protected void validateRebaseLeftOntoRight() {
+ // no validation by default, can be overwritten by sub-classes
+ }
+
+ /**
+ * Validates the result of rebasing branch <em>right</em> onto <em>left</em>.
+ * <p>
+ * This method it intended to be overwritten by sub-classes if the specific
+ * tests require specific validation.
+ * </p>
+ */
+ protected void validateRebaseRightOntoLeft() {
+ // no validation by default, can be overwritten by sub-classes
+ }
+
+ /**
+ * Validates the result of cherry-picking branch <em>left</em> onto <em>right</em>.
+ * <p>
+ * This method it intended to be overwritten by sub-classes if the specific
+ * tests require specific validation.
+ * </p>
+ */
+ protected void validateCherryPickLeftOntoRight() {
+ // no validation by default, can be overwritten by sub-classes
+ }
+
+ /**
+ * Validates the result of cherry-picking branch <em>right</em> onto <em>left</em>.
+ * <p>
+ * This method it intended to be overwritten by sub-classes if the specific
+ * tests require specific validation.
+ * </p>
+ */
+ protected void validateCherryPickRightOntoLeft() {
+ // no validation by default, can be overwritten by sub-classes
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/egit/ResourceAttachmentChangeAddGitMergeTest.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/egit/ResourceAttachmentChangeAddGitMergeTest.java
new file mode 100644
index 000000000..75c579b24
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/egit/ResourceAttachmentChangeAddGitMergeTest.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (C) 2015 EclipseSource Munich Gmbh and Others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Philip Langer - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.diagram.papyrus.tests.egit;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * Tests the extraction of a UML Package into a new sub-model with parallel
+ * changes to extracted UML Package. This scenario contains two diagrams, one
+ * for the root of the model and another for the extracted package.
+ * <dl>
+ * <dt>Origin:</dt>
+ * <dd>Given is a UML Class Diagram with two classes in the root model, as well
+ * as a package with two further classes. We have two diagrams, one showing the
+ * root model, the other the contained package.</dd>
+ * <dt>Left:</dt>
+ * <dd>The contained package is extracted into a new resource named
+ * <em>SomePackage</em> (di, uml, and notation). Note that also the diagram
+ * showing the extracted package is moved into the resource
+ * <em>SomePackage.notation</em>.</dd>
+ * <dt>Right:</dt>
+ * <dd>The root model undergoes a series of changes, such as a new class
+ * <em>Ax</em> is added to the root model, the type of property
+ * <em>RootElement/B/a</em> is changed to the new class <em>Ax</em>.</dd>
+ * </dl>
+ *
+ * @author Philip Langer <planger@eclipsesource.com>
+ */
+public class ResourceAttachmentChangeAddGitMergeTest extends AbstractGitMergeTestCase {
+
+ private static final String TEST_SCENARIO_PATH = "testmodels/resourceattachmentchange/add1/";
+ private static final String SOME_PACKAGE_UML = "SomePackage.uml";
+ private static final String MODEL_UML = "model.uml";
+
+ @Override
+ protected String getTestScenarioPath() {
+ return TEST_SCENARIO_PATH;
+ }
+
+ @Override
+ protected boolean shouldValidate(File file) {
+ return file.getName().equals(MODEL_UML) || file.getName().endsWith(SOME_PACKAGE_UML);
+ }
+
+ @Override
+ protected void validateResult() throws Exception {
+ assertTrue(noConflict());
+ assertTrue(fileExists("model.di"));
+ assertTrue(fileExists("model.notation"));
+ assertTrue(fileExists(MODEL_UML));
+ assertTrue(fileExists("SomePackage.di"));
+ assertTrue(fileExists("SomePackage.notation"));
+ assertTrue(fileExists(SOME_PACKAGE_UML));
+ }
+
+ @Override
+ protected void validateResult(Resource resource) throws Exception {
+ final String lastSegment = resource.getURI().lastSegment();
+ if (MODEL_UML.equals(lastSegment)) {
+ validateModelResource(resource);
+ } else if (SOME_PACKAGE_UML.equals(lastSegment)) {
+ validateSomePackageResource(resource);
+ }
+ }
+
+ private void validateModelResource(Resource resource) {
+ // assert changes of the right-hand side:
+ // Type of RootElement/B/a is Ax,
+ // which in turn has been added
+ final Model rootElement = (Model) resource.getContents().get(0);
+ final Property a = (Property) rootElement.getOwnedMember("B").getOwnedElements().get(0);
+ assertNotNull(rootElement.getOwnedMember("Ax"));
+ assertEquals(rootElement.getOwnedMember("Ax"), a.getType());
+ }
+
+ private void validateSomePackageResource(Resource resource) {
+ // assert changes of the left: package was extracted to SomePackage.uml
+ assertTrue(resource.getContents().size() == 1);
+ assertTrue(resource.getContents().get(0) instanceof org.eclipse.uml2.uml.Package);
+ assertEquals("SomePackage", ((org.eclipse.uml2.uml.Package) resource.getContents().get(0)).getName());
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/suite/PapyrusGitTests.java b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/suite/PapyrusGitTests.java
index 7af7f691f..4531ae7b1 100644
--- a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/suite/PapyrusGitTests.java
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/src/org/eclipse/emf/compare/diagram/papyrus/tests/suite/PapyrusGitTests.java
@@ -10,12 +10,9 @@
*******************************************************************************/
package org.eclipse.emf.compare.diagram.papyrus.tests.suite;
-import junit.framework.JUnit4TestAdapter;
-import junit.framework.Test;
-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.egit.ResourceAttachmentChangeAddGitMergeTest;
import org.eclipse.emf.compare.diagram.papyrus.tests.resourceattachmentchange.implication.AttachmentChangeImplicationTest;
import org.eclipse.emf.compare.diagram.papyrus.tests.resourceattachmentchange.move.ResourceAttachmentChangeMoveConflictTests;
import org.eclipse.emf.compare.diagram.papyrus.tests.resourceattachmentchange.move.ResourceAttachmentChangeMoveNoConflictTests;
@@ -32,10 +29,15 @@ import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
+import junit.framework.JUnit4TestAdapter;
+import junit.framework.Test;
+import junit.textui.TestRunner;
+
@SuppressWarnings("restriction")
@RunWith(Suite.class)
@SuiteClasses({ResourceAttachmentChangeMoveNoConflictTests.class,
- ResourceAttachmentChangeMoveConflictTests.class, AttachmentChangeImplicationTest.class
+ ResourceAttachmentChangeMoveConflictTests.class, AttachmentChangeImplicationTest.class,
+ ResourceAttachmentChangeAddGitMergeTest.class,
})
public class PapyrusGitTests {
/**
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/SomePackage.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/SomePackage.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/SomePackage.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.git/testmodels/resourceattachmentchange/add1/left/SomePackage.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/SomePackage.notation
new file mode 100644
index 000000000..6bc5eb6e8
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/SomePackage.notation
@@ -0,0 +1,133 @@
+<?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="_6jZ70EvTEeW_uLfHB0QPcg" type="PapyrusUMLClassDiagram" name="SubDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_64_xUEvTEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_65AYYEvTEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_65AYYUvTEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_65AYYkvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_65AYY0vTEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_65AYZEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_65AYZUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_65AYZkvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_65AYZ0vTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_65AYaEvTEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_65AYaUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_65AYakvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_65AYa0vTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_65AYbEvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_65AYbUvTEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_65AYbkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_65AYb0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_65AYcEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_65AYcUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="SomePackage.uml#_PeTd4EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_64_xUUvTEeW_uLfHB0QPcg" x="220" y="173"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7KFhUEvTEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7KFhUkvTEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7KFhU0vTEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7KFhVEvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7KFhVUvTEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7KFhVkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7KFhV0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7KFhWEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7KFhWUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7KGIYEvTEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7KGIYUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7KGIYkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7KGIY0vTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7KGIZEvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7KGIZUvTEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7KGIZkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7KGIZ0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7KGIaEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7KGIaUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="SomePackage.uml#_QedTUEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7KFhUUvTEeW_uLfHB0QPcg" x="524" y="168"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8b8x0EvTEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8b8x0kvTEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8b8x00vTEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8b8x1EvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8b8x1UvTEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8b8x1kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8b8x10vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8b8x2EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8b8x2UvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8b8x2kvTEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8b8x20vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8b8x3EvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8b8x3UvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8b8x3kvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8b9Y4EvTEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8b9Y4UvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8b9Y4kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8b9Y40vTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8b9Y5EvTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_NZP14EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8b8x0UvTEeW_uLfHB0QPcg" x="74" y="136"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_6jZ70UvTEeW_uLfHB0QPcg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_6jZ70kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_6jZ700vTEeW_uLfHB0QPcg">
+ <owner xmi:type="uml:Package" href="SomePackage.uml#_OHxv0EvTEeW_uLfHB0QPcg"/>
+ </styles>
+ <element xmi:type="uml:Package" href="SomePackage.uml#_OHxv0EvTEeW_uLfHB0QPcg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_8FD70EvTEeW_uLfHB0QPcg" type="4001" source="_7KFhUEvTEeW_uLfHB0QPcg" target="_64_xUEvTEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi4EvTEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi4UvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi4kvTEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi40vTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi5EvTEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi5UvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi5kvTEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi50vTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi6EvTEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi6UvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi6kvTEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi60vTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8FD70UvTEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_Rqr14EvTEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8FD70kvTEeW_uLfHB0QPcg" points="[-50, 5, 254, 0]$[-254, 0, 50, -5]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8cT-MEvTEeW_uLfHB0QPcg" type="4001" source="_64_xUEvTEeW_uLfHB0QPcg" target="_8b8x0EvTEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cT-M0vTEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cT-NEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cT-NUvTEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cUlQEvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cUlQUvTEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cUlQkvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cUlQ0vTEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cUlREvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cUlRUvTEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cUlRkvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cUlR0vTEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cUlSEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8cT-MUvTEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_RSexQEvTEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8cT-MkvTEeW_uLfHB0QPcg" points="[-50, -42, 220, 181]$[-270, -223, 0, 0]"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/SomePackage.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/SomePackage.uml
new file mode 100644
index 000000000..8663744b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/SomePackage.uml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Package 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="_OHxv0EvTEeW_uLfHB0QPcg" name="SomePackage">
+ <packagedElement xmi:type="uml:Class" xmi:id="_PeTd4EvTEeW_uLfHB0QPcg" name="C">
+ <ownedAttribute xmi:id="_RSfYU0vTEeW_uLfHB0QPcg" name="b">
+ <type xmi:type="uml:Class" href="model.uml#_NZP14EvTEeW_uLfHB0QPcg"/>
+ <association href="model.uml#_RSexQEvTEeW_uLfHB0QPcg"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_RqtEAUvTEeW_uLfHB0QPcg" name="d" type="_QedTUEvTEeW_uLfHB0QPcg">
+ <association href="model.uml#_Rqr14EvTEeW_uLfHB0QPcg"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_QedTUEvTEeW_uLfHB0QPcg" name="D">
+ <ownedAttribute xmi:id="_RqtrEEvTEeW_uLfHB0QPcg" name="c" type="_PeTd4EvTEeW_uLfHB0QPcg">
+ <association href="model.uml#_Rqr14EvTEeW_uLfHB0QPcg"/>
+ </ownedAttribute>
+ </packagedElement>
+</uml:Package>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/model.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.git/testmodels/resourceattachmentchange/add1/left/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/model.notation
new file mode 100644
index 000000000..9af302f7a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/model.notation
@@ -0,0 +1,248 @@
+<?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="_Mchu8EvTEeW_uLfHB0QPcg" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Mxf5YEvTEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MxggcEvTEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MxggcUvTEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MxggckvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mxggc0vTEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MxggdEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MxggdUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MxggdkvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mxggd0vTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MxggeEvTEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MxggeUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MxggekvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mxgge0vTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MxggfEvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MxggfUvTEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MxggfkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mxggf0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MxgggEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MxgggUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_MxfSUEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mxf5YUvTEeW_uLfHB0QPcg" x="45" y="116"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NZREAEvTEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_NZREAkvTEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NZREA0vTEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NZREBEvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NZREBUvTEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NZREBkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NZREB0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NZRECEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NZRECUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NZRECkvTEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NZREC0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NZREDEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NZREDUvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NZREDkvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NZRED0vTEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NZREEEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NZREEUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NZREEkvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NZREE0vTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_NZP14EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NZREAUvTEeW_uLfHB0QPcg" x="492" y="113"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OHyW4EvTEeW_uLfHB0QPcg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_OHy98EvTEeW_uLfHB0QPcg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OHy98UvTEeW_uLfHB0QPcg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_PeXvUEvTEeW_uLfHB0QPcg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PeXvUkvTEeW_uLfHB0QPcg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PeXvU0vTEeW_uLfHB0QPcg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PeXvVEvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PeXvVUvTEeW_uLfHB0QPcg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PeXvVkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PeXvV0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PeXvWEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PeXvWUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PeXvWkvTEeW_uLfHB0QPcg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PeXvW0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PeXvXEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PeXvXUvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PeXvXkvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PeXvX0vTEeW_uLfHB0QPcg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PeXvYEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PeXvYUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PeXvYkvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PeXvY0vTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="SomePackage.uml#_PeTd4EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PeXvUUvTEeW_uLfHB0QPcg" x="68" y="25"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Qeiy4EvTEeW_uLfHB0QPcg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QejZ8EvTEeW_uLfHB0QPcg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QejZ8UvTEeW_uLfHB0QPcg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QejZ8kvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QejZ80vTEeW_uLfHB0QPcg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QejZ9EvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QejZ9UvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QejZ9kvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QejZ90vTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QejZ-EvTEeW_uLfHB0QPcg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QejZ-UvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QejZ-kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QejZ-0vTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QejZ_EvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QejZ_UvTEeW_uLfHB0QPcg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QejZ_kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QejZ_0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QejaAEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QejaAUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="SomePackage.uml#_QedTUEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qeiy4UvTEeW_uLfHB0QPcg" x="243" y="45"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OHy98kvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OHy980vTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Package" href="SomePackage.uml#_OHxv0EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OHyW4UvTEeW_uLfHB0QPcg" x="707" y="84" width="409" height="261"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Z0PhgEvUEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z0QIkEvUEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z0QIkUvUEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z0QIkkvUEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Z0QIk0vUEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Z0QIlEvUEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Z0QIlUvUEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Z0QIlkvUEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z0QIl0vUEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Z0QImEvUEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Z0QImUvUEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Z0QImkvUEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Z0QIm0vUEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z0QInEvUEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Z0QInUvUEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Z0QInkvUEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Z0QIn0vUEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Z0QIoEvUEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z0QIoUvUEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_Z0NsUEvUEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z0PhgUvUEeW_uLfHB0QPcg" x="288" y="119"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Mchu8UvTEeW_uLfHB0QPcg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Mchu8kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Mchu80vTEeW_uLfHB0QPcg">
+ <owner xmi:type="uml:Model" href="model.uml#_LWcQoEvTEeW_uLfHB0QPcg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_LWcQoEvTEeW_uLfHB0QPcg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Q6CcEEvTEeW_uLfHB0QPcg" type="4001" source="_Mxf5YEvTEeW_uLfHB0QPcg" target="_Z0PhgEvUEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDIkvTEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDI0vTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDJEvTEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDJUvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDJkvTEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDJ0vTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDKEvTEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDKUvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDKkvTEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDK0vTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDLEvTEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDLUvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Q6DDIEvTEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_Q57HUEvTEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Q6DDIUvTEeW_uLfHB0QPcg" points="[50, 1, -139, 0]$[180, 2, -9, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q6u_oEvTEeW_uLfHB0QPcg" id="(1.0,0.53)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aqIAoEvUEeW_uLfHB0QPcg" id="(0.0,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_RSnUIEvTEeW_uLfHB0QPcg" type="4001" source="_NZREAEvTEeW_uLfHB0QPcg" target="_PeXvUEvTEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSnUI0vTEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSnUJEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSnUJUvTEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSnUJkvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSnUJ0vTEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSnUKEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSnUKUvTEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSnUKkvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSn7MEvTEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSn7MUvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSn7MkvTEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSn7M0vTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RSnUIUvTEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_RSexQEvTEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RSnUIkvTEeW_uLfHB0QPcg" points="[50, 5, -238, -19]$[291, 74, 3, 50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RTEnIEvTEeW_uLfHB0QPcg" id="(1.0,0.63)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RTEnIUvTEeW_uLfHB0QPcg" id="(0.0,0.54)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_RrDpUEvTEeW_uLfHB0QPcg" type="4001" source="_PeXvUEvTEeW_uLfHB0QPcg" target="_Qeiy4EvTEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrDpU0vTEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrDpVEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrDpVUvTEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrDpVkvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrDpV0vTEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrDpWEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrDpWUvTEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrEQYEvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrEQYUvTEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrEQYkvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrEQY0vTEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrEQZEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RrDpUUvTEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_Rqr14EvTEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RrDpUkvTEeW_uLfHB0QPcg" points="[50, 9, -125, -11]$[183, 70, 8, 50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RriKcEvTEeW_uLfHB0QPcg" id="(1.0,0.56)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RrixgEvTEeW_uLfHB0QPcg" id="(0.0,0.52)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_bATsAEvUEeW_uLfHB0QPcg" type="4001" source="_Z0PhgEvUEeW_uLfHB0QPcg" target="_NZREAEvTEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_bAUTEEvUEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bAUTEUvUEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bAUTEkvUEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bAUTE0vUEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bAUTFEvUEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bAUTFUvUEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bAUTFkvUEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bAUTF0vUEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bAUTGEvUEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bAUTGUvUEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bAUTGkvUEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bAUTG0vUEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_bATsAUvUEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_bAAKAEvUEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bATsAkvUEeW_uLfHB0QPcg" points="[50, 8, -154, 14]$[196, 44, -8, 50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bAq4YEvUEeW_uLfHB0QPcg" id="(1.0,0.51)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bAq4YUvUEeW_uLfHB0QPcg" id="(0.0,0.62)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/model.uml
new file mode 100644
index 000000000..38a38b4bc
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/left/model.uml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_LWcQoEvTEeW_uLfHB0QPcg" name="RootElement">
+ <packagedElement xmi:type="uml:Class" xmi:id="_MxfSUEvTEeW_uLfHB0QPcg" name="A"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_NZP14EvTEeW_uLfHB0QPcg" name="B">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Q58VcEvTEeW_uLfHB0QPcg" name="a" type="_Z0NsUEvUEeW_uLfHB0QPcg" association="_Q57HUEvTEeW_uLfHB0QPcg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RSfYUkvTEeW_uLfHB0QPcg" name="c" association="_RSexQEvTEeW_uLfHB0QPcg">
+ <type xmi:type="uml:Class" href="SomePackage.uml#_PeTd4EvTEeW_uLfHB0QPcg"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_bABYIkvUEeW_uLfHB0QPcg" name="ax" type="_Z0NsUEvUEeW_uLfHB0QPcg" association="_bAAKAEvUEeW_uLfHB0QPcg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" href="SomePackage.uml#_OHxv0EvTEeW_uLfHB0QPcg"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Q57HUEvTEeW_uLfHB0QPcg" memberEnd="_Q57uYkvTEeW_uLfHB0QPcg _Q58VcEvTEeW_uLfHB0QPcg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q57uYEvTEeW_uLfHB0QPcg" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Q57uYUvTEeW_uLfHB0QPcg" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_RSexQEvTEeW_uLfHB0QPcg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RSfYUEvTEeW_uLfHB0QPcg" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RSfYUUvTEeW_uLfHB0QPcg" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ <memberEnd xmi:type="uml:Property" href="#_RSfYUkvTEeW_uLfHB0QPcg"/>
+ <memberEnd xmi:type="uml:Property" href="SomePackage.uml#_RSfYU0vTEeW_uLfHB0QPcg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Rqr14EvTEeW_uLfHB0QPcg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Rqsc8EvTEeW_uLfHB0QPcg" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RqtEAEvTEeW_uLfHB0QPcg" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ <memberEnd xmi:type="uml:Property" href="SomePackage.uml#_RqtEAUvTEeW_uLfHB0QPcg"/>
+ <memberEnd xmi:type="uml:Property" href="SomePackage.uml#_RqtrEEvTEeW_uLfHB0QPcg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Z0NsUEvUEeW_uLfHB0QPcg" name="Ax">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Q57uYkvTEeW_uLfHB0QPcg" name="b" type="_NZP14EvTEeW_uLfHB0QPcg" association="_Q57HUEvTEeW_uLfHB0QPcg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_bABYIUvUEeW_uLfHB0QPcg" name="b" type="_NZP14EvTEeW_uLfHB0QPcg" association="_bAAKAEvUEeW_uLfHB0QPcg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_bAAKAEvUEeW_uLfHB0QPcg" memberEnd="_bABYIUvUEeW_uLfHB0QPcg _bABYIkvUEeW_uLfHB0QPcg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bAAxEEvUEeW_uLfHB0QPcg" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bABYIEvUEeW_uLfHB0QPcg" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/origin/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/origin/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/origin/model.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.git/testmodels/resourceattachmentchange/add1/origin/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/origin/model.notation
new file mode 100644
index 000000000..0b1049c8b
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/origin/model.notation
@@ -0,0 +1,331 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI 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">
+ <notation:Diagram xmi:id="_Mchu8EvTEeW_uLfHB0QPcg" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Mxf5YEvTEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MxggcEvTEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MxggcUvTEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MxggckvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mxggc0vTEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MxggdEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MxggdUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MxggdkvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mxggd0vTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MxggeEvTEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MxggeUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MxggekvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mxgge0vTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MxggfEvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MxggfUvTEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MxggfkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mxggf0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MxgggEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MxgggUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_MxfSUEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mxf5YUvTEeW_uLfHB0QPcg" x="262" y="117"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NZREAEvTEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_NZREAkvTEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NZREA0vTEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NZREBEvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NZREBUvTEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NZREBkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NZREB0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NZRECEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NZRECUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NZRECkvTEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NZREC0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NZREDEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NZREDUvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NZREDkvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NZRED0vTEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NZREEEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NZREEUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NZREEkvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NZREE0vTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_NZP14EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NZREAUvTEeW_uLfHB0QPcg" x="492" y="113"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OHyW4EvTEeW_uLfHB0QPcg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_OHy98EvTEeW_uLfHB0QPcg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OHy98UvTEeW_uLfHB0QPcg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_PeXvUEvTEeW_uLfHB0QPcg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PeXvUkvTEeW_uLfHB0QPcg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PeXvU0vTEeW_uLfHB0QPcg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PeXvVEvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PeXvVUvTEeW_uLfHB0QPcg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PeXvVkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PeXvV0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PeXvWEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PeXvWUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PeXvWkvTEeW_uLfHB0QPcg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PeXvW0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PeXvXEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PeXvXUvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PeXvXkvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PeXvX0vTEeW_uLfHB0QPcg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PeXvYEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PeXvYUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PeXvYkvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PeXvY0vTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_PeTd4EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PeXvUUvTEeW_uLfHB0QPcg" x="68" y="25"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Qeiy4EvTEeW_uLfHB0QPcg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QejZ8EvTEeW_uLfHB0QPcg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QejZ8UvTEeW_uLfHB0QPcg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QejZ8kvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QejZ80vTEeW_uLfHB0QPcg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QejZ9EvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QejZ9UvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QejZ9kvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QejZ90vTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QejZ-EvTEeW_uLfHB0QPcg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QejZ-UvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QejZ-kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QejZ-0vTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QejZ_EvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QejZ_UvTEeW_uLfHB0QPcg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QejZ_kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QejZ_0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QejaAEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QejaAUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_QedTUEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qeiy4UvTEeW_uLfHB0QPcg" x="243" y="45"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OHy98kvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OHy980vTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_OHxv0EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OHyW4UvTEeW_uLfHB0QPcg" x="707" y="84" width="409" height="261"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Mchu8UvTEeW_uLfHB0QPcg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Mchu8kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Mchu80vTEeW_uLfHB0QPcg">
+ <owner xmi:type="uml:Model" href="model.uml#_LWcQoEvTEeW_uLfHB0QPcg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_LWcQoEvTEeW_uLfHB0QPcg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Q6CcEEvTEeW_uLfHB0QPcg" type="4001" source="_Mxf5YEvTEeW_uLfHB0QPcg" target="_NZREAEvTEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDIkvTEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDI0vTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDJEvTEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDJUvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDJkvTEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDJ0vTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDKEvTEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDKUvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDKkvTEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDK0vTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDLEvTEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDLUvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Q6DDIEvTEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_Q57HUEvTEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Q6DDIUvTEeW_uLfHB0QPcg" points="[50, 1, -139, 0]$[180, 2, -9, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q6u_oEvTEeW_uLfHB0QPcg" id="(1.0,0.54)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q6u_oUvTEeW_uLfHB0QPcg" id="(0.0,0.55)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_RSnUIEvTEeW_uLfHB0QPcg" type="4001" source="_NZREAEvTEeW_uLfHB0QPcg" target="_PeXvUEvTEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSnUI0vTEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSnUJEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSnUJUvTEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSnUJkvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSnUJ0vTEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSnUKEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSnUKUvTEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSnUKkvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSn7MEvTEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSn7MUvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSn7MkvTEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSn7M0vTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RSnUIUvTEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_RSexQEvTEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RSnUIkvTEeW_uLfHB0QPcg" points="[50, 5, -238, -19]$[291, 74, 3, 50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RTEnIEvTEeW_uLfHB0QPcg" id="(1.0,0.63)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RTEnIUvTEeW_uLfHB0QPcg" id="(0.0,0.54)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_RrDpUEvTEeW_uLfHB0QPcg" type="4001" source="_PeXvUEvTEeW_uLfHB0QPcg" target="_Qeiy4EvTEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrDpU0vTEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrDpVEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrDpVUvTEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrDpVkvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrDpV0vTEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrDpWEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrDpWUvTEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrEQYEvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrEQYUvTEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrEQYkvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrEQY0vTEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrEQZEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RrDpUUvTEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_Rqr14EvTEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RrDpUkvTEeW_uLfHB0QPcg" points="[50, 9, -125, -11]$[183, 70, 8, 50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RriKcEvTEeW_uLfHB0QPcg" id="(1.0,0.56)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RrixgEvTEeW_uLfHB0QPcg" id="(0.0,0.52)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_6jZ70EvTEeW_uLfHB0QPcg" type="PapyrusUMLClassDiagram" name="SubDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_64_xUEvTEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_65AYYEvTEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_65AYYUvTEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_65AYYkvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_65AYY0vTEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_65AYZEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_65AYZUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_65AYZkvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_65AYZ0vTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_65AYaEvTEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_65AYaUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_65AYakvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_65AYa0vTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_65AYbEvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_65AYbUvTEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_65AYbkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_65AYb0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_65AYcEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_65AYcUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_PeTd4EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_64_xUUvTEeW_uLfHB0QPcg" x="220" y="173"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7KFhUEvTEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7KFhUkvTEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7KFhU0vTEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7KFhVEvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7KFhVUvTEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7KFhVkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7KFhV0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7KFhWEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7KFhWUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7KGIYEvTEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7KGIYUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7KGIYkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7KGIY0vTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7KGIZEvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7KGIZUvTEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7KGIZkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7KGIZ0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7KGIaEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7KGIaUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_QedTUEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7KFhUUvTEeW_uLfHB0QPcg" x="524" y="168"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8b8x0EvTEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8b8x0kvTEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8b8x00vTEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8b8x1EvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8b8x1UvTEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8b8x1kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8b8x10vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8b8x2EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8b8x2UvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8b8x2kvTEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8b8x20vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8b8x3EvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8b8x3UvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8b8x3kvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8b9Y4EvTEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8b9Y4UvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8b9Y4kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8b9Y40vTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8b9Y5EvTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_NZP14EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8b8x0UvTEeW_uLfHB0QPcg" x="74" y="136"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_6jZ70UvTEeW_uLfHB0QPcg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_6jZ70kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_6jZ700vTEeW_uLfHB0QPcg">
+ <owner xmi:type="uml:Package" href="model.uml#_OHxv0EvTEeW_uLfHB0QPcg"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model.uml#_OHxv0EvTEeW_uLfHB0QPcg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_8FD70EvTEeW_uLfHB0QPcg" type="4001" source="_7KFhUEvTEeW_uLfHB0QPcg" target="_64_xUEvTEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi4EvTEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi4UvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi4kvTEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi40vTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi5EvTEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi5UvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi5kvTEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi50vTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi6EvTEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi6UvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi6kvTEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi60vTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8FD70UvTEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_Rqr14EvTEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8FD70kvTEeW_uLfHB0QPcg" points="[-50, 5, 254, 0]$[-254, 0, 50, -5]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8cT-MEvTEeW_uLfHB0QPcg" type="4001" source="_64_xUEvTEeW_uLfHB0QPcg" target="_8b8x0EvTEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cT-M0vTEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cT-NEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cT-NUvTEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cUlQEvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cUlQUvTEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cUlQkvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cUlQ0vTEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cUlREvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cUlRUvTEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cUlRkvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cUlR0vTEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cUlSEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8cT-MUvTEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_RSexQEvTEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8cT-MkvTEeW_uLfHB0QPcg" points="[-50, -42, 220, 181]$[-270, -223, 0, 0]"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/origin/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/origin/model.uml
new file mode 100644
index 000000000..928acd519
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/origin/model.uml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_LWcQoEvTEeW_uLfHB0QPcg" name="RootElement">
+ <packagedElement xmi:type="uml:Class" xmi:id="_MxfSUEvTEeW_uLfHB0QPcg" name="A">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Q57uYkvTEeW_uLfHB0QPcg" name="b" type="_NZP14EvTEeW_uLfHB0QPcg" association="_Q57HUEvTEeW_uLfHB0QPcg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_NZP14EvTEeW_uLfHB0QPcg" name="B">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Q58VcEvTEeW_uLfHB0QPcg" name="a" type="_MxfSUEvTEeW_uLfHB0QPcg" association="_Q57HUEvTEeW_uLfHB0QPcg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RSfYUkvTEeW_uLfHB0QPcg" name="c" type="_PeTd4EvTEeW_uLfHB0QPcg" association="_RSexQEvTEeW_uLfHB0QPcg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_OHxv0EvTEeW_uLfHB0QPcg" name="SomePackage">
+ <packagedElement xmi:type="uml:Class" xmi:id="_PeTd4EvTEeW_uLfHB0QPcg" name="C">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RSfYU0vTEeW_uLfHB0QPcg" name="b" type="_NZP14EvTEeW_uLfHB0QPcg" association="_RSexQEvTEeW_uLfHB0QPcg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RqtEAUvTEeW_uLfHB0QPcg" name="d" type="_QedTUEvTEeW_uLfHB0QPcg" association="_Rqr14EvTEeW_uLfHB0QPcg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_QedTUEvTEeW_uLfHB0QPcg" name="D">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RqtrEEvTEeW_uLfHB0QPcg" name="c" type="_PeTd4EvTEeW_uLfHB0QPcg" association="_Rqr14EvTEeW_uLfHB0QPcg"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Q57HUEvTEeW_uLfHB0QPcg" memberEnd="_Q57uYkvTEeW_uLfHB0QPcg _Q58VcEvTEeW_uLfHB0QPcg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q57uYEvTEeW_uLfHB0QPcg" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Q57uYUvTEeW_uLfHB0QPcg" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_RSexQEvTEeW_uLfHB0QPcg" memberEnd="_RSfYUkvTEeW_uLfHB0QPcg _RSfYU0vTEeW_uLfHB0QPcg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RSfYUEvTEeW_uLfHB0QPcg" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RSfYUUvTEeW_uLfHB0QPcg" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Rqr14EvTEeW_uLfHB0QPcg" memberEnd="_RqtEAUvTEeW_uLfHB0QPcg _RqtrEEvTEeW_uLfHB0QPcg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Rqsc8EvTEeW_uLfHB0QPcg" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RqtEAEvTEeW_uLfHB0QPcg" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ </packagedElement>
+</uml:Model>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/right/model.di b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/right/model.di
new file mode 100644
index 000000000..bf9abab34
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/right/model.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.git/testmodels/resourceattachmentchange/add1/right/model.notation b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/right/model.notation
new file mode 100644
index 000000000..75b82d88a
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/right/model.notation
@@ -0,0 +1,382 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI 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">
+ <notation:Diagram xmi:id="_Mchu8EvTEeW_uLfHB0QPcg" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Mxf5YEvTEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MxggcEvTEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MxggcUvTEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MxggckvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mxggc0vTEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MxggdEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MxggdUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MxggdkvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mxggd0vTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MxggeEvTEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MxggeUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MxggekvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mxgge0vTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MxggfEvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MxggfUvTEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MxggfkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mxggf0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MxgggEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MxgggUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_MxfSUEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mxf5YUvTEeW_uLfHB0QPcg" x="45" y="116"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NZREAEvTEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_NZREAkvTEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NZREA0vTEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NZREBEvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NZREBUvTEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NZREBkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NZREB0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NZRECEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NZRECUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NZRECkvTEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NZREC0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NZREDEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NZREDUvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NZREDkvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NZRED0vTEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NZREEEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NZREEUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NZREEkvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NZREE0vTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_NZP14EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NZREAUvTEeW_uLfHB0QPcg" x="492" y="113"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OHyW4EvTEeW_uLfHB0QPcg" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_OHy98EvTEeW_uLfHB0QPcg" type="5026"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OHy98UvTEeW_uLfHB0QPcg" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_PeXvUEvTEeW_uLfHB0QPcg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PeXvUkvTEeW_uLfHB0QPcg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_PeXvU0vTEeW_uLfHB0QPcg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PeXvVEvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PeXvVUvTEeW_uLfHB0QPcg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PeXvVkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PeXvV0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PeXvWEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PeXvWUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PeXvWkvTEeW_uLfHB0QPcg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PeXvW0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PeXvXEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PeXvXUvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PeXvXkvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PeXvX0vTEeW_uLfHB0QPcg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PeXvYEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PeXvYUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PeXvYkvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PeXvY0vTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_PeTd4EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PeXvUUvTEeW_uLfHB0QPcg" x="68" y="25"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Qeiy4EvTEeW_uLfHB0QPcg" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QejZ8EvTEeW_uLfHB0QPcg" type="5014"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QejZ8UvTEeW_uLfHB0QPcg" type="8518">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QejZ8kvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QejZ80vTEeW_uLfHB0QPcg" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QejZ9EvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QejZ9UvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QejZ9kvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QejZ90vTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QejZ-EvTEeW_uLfHB0QPcg" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QejZ-UvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QejZ-kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QejZ-0vTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QejZ_EvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QejZ_UvTEeW_uLfHB0QPcg" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QejZ_kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QejZ_0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QejaAEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QejaAUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_QedTUEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qeiy4UvTEeW_uLfHB0QPcg" x="243" y="45"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OHy98kvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OHy980vTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Package" href="model.uml#_OHxv0EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OHyW4UvTEeW_uLfHB0QPcg" x="707" y="84" width="409" height="261"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Z0PhgEvUEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z0QIkEvUEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z0QIkUvUEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z0QIkkvUEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Z0QIk0vUEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Z0QIlEvUEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Z0QIlUvUEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Z0QIlkvUEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z0QIl0vUEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Z0QImEvUEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Z0QImUvUEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Z0QImkvUEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Z0QIm0vUEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z0QInEvUEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Z0QInUvUEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Z0QInkvUEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Z0QIn0vUEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Z0QIoEvUEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z0QIoUvUEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_Z0NsUEvUEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z0PhgUvUEeW_uLfHB0QPcg" x="288" y="119"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Mchu8UvTEeW_uLfHB0QPcg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Mchu8kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Mchu80vTEeW_uLfHB0QPcg">
+ <owner xmi:type="uml:Model" href="model.uml#_LWcQoEvTEeW_uLfHB0QPcg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="model.uml#_LWcQoEvTEeW_uLfHB0QPcg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Q6CcEEvTEeW_uLfHB0QPcg" type="4001" source="_Mxf5YEvTEeW_uLfHB0QPcg" target="_Z0PhgEvUEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDIkvTEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDI0vTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDJEvTEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDJUvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDJkvTEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDJ0vTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDKEvTEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDKUvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDKkvTEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDK0vTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q6DDLEvTEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q6DDLUvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Q6DDIEvTEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_Q57HUEvTEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Q6DDIUvTEeW_uLfHB0QPcg" points="[50, 1, -139, 0]$[180, 2, -9, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q6u_oEvTEeW_uLfHB0QPcg" id="(1.0,0.53)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aqIAoEvUEeW_uLfHB0QPcg" id="(0.0,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_RSnUIEvTEeW_uLfHB0QPcg" type="4001" source="_NZREAEvTEeW_uLfHB0QPcg" target="_PeXvUEvTEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSnUI0vTEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSnUJEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSnUJUvTEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSnUJkvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSnUJ0vTEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSnUKEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSnUKUvTEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSnUKkvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSn7MEvTEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSn7MUvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RSn7MkvTEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RSn7M0vTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RSnUIUvTEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_RSexQEvTEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RSnUIkvTEeW_uLfHB0QPcg" points="[50, 5, -238, -19]$[291, 74, 3, 50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RTEnIEvTEeW_uLfHB0QPcg" id="(1.0,0.63)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RTEnIUvTEeW_uLfHB0QPcg" id="(0.0,0.54)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_RrDpUEvTEeW_uLfHB0QPcg" type="4001" source="_PeXvUEvTEeW_uLfHB0QPcg" target="_Qeiy4EvTEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrDpU0vTEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrDpVEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrDpVUvTEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrDpVkvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrDpV0vTEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrDpWEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrDpWUvTEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrEQYEvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrEQYUvTEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrEQYkvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrEQY0vTEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RrEQZEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RrDpUUvTEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_Rqr14EvTEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RrDpUkvTEeW_uLfHB0QPcg" points="[50, 9, -125, -11]$[183, 70, 8, 50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RriKcEvTEeW_uLfHB0QPcg" id="(1.0,0.56)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RrixgEvTEeW_uLfHB0QPcg" id="(0.0,0.52)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_bATsAEvUEeW_uLfHB0QPcg" type="4001" source="_Z0PhgEvUEeW_uLfHB0QPcg" target="_NZREAEvTEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_bAUTEEvUEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bAUTEUvUEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bAUTEkvUEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bAUTE0vUEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bAUTFEvUEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bAUTFUvUEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bAUTFkvUEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bAUTF0vUEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bAUTGEvUEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bAUTGUvUEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bAUTGkvUEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bAUTG0vUEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_bATsAUvUEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_bAAKAEvUEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bATsAkvUEeW_uLfHB0QPcg" points="[50, 8, -154, 14]$[196, 44, -8, 50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bAq4YEvUEeW_uLfHB0QPcg" id="(1.0,0.51)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bAq4YUvUEeW_uLfHB0QPcg" id="(0.0,0.62)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_6jZ70EvTEeW_uLfHB0QPcg" type="PapyrusUMLClassDiagram" name="SubDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_64_xUEvTEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_65AYYEvTEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_65AYYUvTEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_65AYYkvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_65AYY0vTEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_65AYZEvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_65AYZUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_65AYZkvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_65AYZ0vTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_65AYaEvTEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_65AYaUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_65AYakvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_65AYa0vTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_65AYbEvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_65AYbUvTEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_65AYbkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_65AYb0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_65AYcEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_65AYcUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_PeTd4EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_64_xUUvTEeW_uLfHB0QPcg" x="220" y="173"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7KFhUEvTEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7KFhUkvTEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7KFhU0vTEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7KFhVEvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7KFhVUvTEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7KFhVkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7KFhV0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7KFhWEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7KFhWUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7KGIYEvTEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7KGIYUvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7KGIYkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7KGIY0vTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7KGIZEvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7KGIZUvTEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7KGIZkvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7KGIZ0vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7KGIaEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7KGIaUvTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_QedTUEvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7KFhUUvTEeW_uLfHB0QPcg" x="524" y="168"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8b8x0EvTEeW_uLfHB0QPcg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8b8x0kvTEeW_uLfHB0QPcg" type="5029"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8b8x00vTEeW_uLfHB0QPcg" type="8510">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8b8x1EvTEeW_uLfHB0QPcg" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8b8x1UvTEeW_uLfHB0QPcg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8b8x1kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8b8x10vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8b8x2EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8b8x2UvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8b8x2kvTEeW_uLfHB0QPcg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8b8x20vTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8b8x3EvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8b8x3UvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8b8x3kvTEeW_uLfHB0QPcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8b9Y4EvTEeW_uLfHB0QPcg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8b9Y4UvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8b9Y4kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8b9Y40vTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8b9Y5EvTEeW_uLfHB0QPcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_NZP14EvTEeW_uLfHB0QPcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8b8x0UvTEeW_uLfHB0QPcg" x="74" y="136"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_6jZ70UvTEeW_uLfHB0QPcg" name="diagram_compatibility_version" stringValue="1.1.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_6jZ70kvTEeW_uLfHB0QPcg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_6jZ700vTEeW_uLfHB0QPcg">
+ <owner xmi:type="uml:Package" href="model.uml#_OHxv0EvTEeW_uLfHB0QPcg"/>
+ </styles>
+ <element xmi:type="uml:Package" href="model.uml#_OHxv0EvTEeW_uLfHB0QPcg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_8FD70EvTEeW_uLfHB0QPcg" type="4001" source="_7KFhUEvTEeW_uLfHB0QPcg" target="_64_xUEvTEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi4EvTEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi4UvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi4kvTEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi40vTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi5EvTEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi5UvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi5kvTEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi50vTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi6EvTEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi6UvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FEi6kvTEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FEi60vTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8FD70UvTEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_Rqr14EvTEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8FD70kvTEeW_uLfHB0QPcg" points="[-50, 5, 254, 0]$[-254, 0, 50, -5]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8cT-MEvTEeW_uLfHB0QPcg" type="4001" source="_64_xUEvTEeW_uLfHB0QPcg" target="_8b8x0EvTEeW_uLfHB0QPcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cT-M0vTEeW_uLfHB0QPcg" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cT-NEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cT-NUvTEeW_uLfHB0QPcg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cUlQEvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cUlQUvTEeW_uLfHB0QPcg" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cUlQkvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cUlQ0vTEeW_uLfHB0QPcg" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cUlREvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cUlRUvTEeW_uLfHB0QPcg" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cUlRkvTEeW_uLfHB0QPcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8cUlR0vTEeW_uLfHB0QPcg" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8cUlSEvTEeW_uLfHB0QPcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8cT-MUvTEeW_uLfHB0QPcg"/>
+ <element xmi:type="uml:Association" href="model.uml#_RSexQEvTEeW_uLfHB0QPcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8cT-MkvTEeW_uLfHB0QPcg" points="[-50, -42, 220, 181]$[-270, -223, 0, 0]"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/right/model.uml b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/right/model.uml
new file mode 100644
index 000000000..cd1548e36
--- /dev/null
+++ b/plugins/org.eclipse.emf.compare.diagram.papyrus.tests.git/testmodels/resourceattachmentchange/add1/right/model.uml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_LWcQoEvTEeW_uLfHB0QPcg" name="RootElement">
+ <packagedElement xmi:type="uml:Class" xmi:id="_MxfSUEvTEeW_uLfHB0QPcg" name="A"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_NZP14EvTEeW_uLfHB0QPcg" name="B">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Q58VcEvTEeW_uLfHB0QPcg" name="a" type="_Z0NsUEvUEeW_uLfHB0QPcg" association="_Q57HUEvTEeW_uLfHB0QPcg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RSfYUkvTEeW_uLfHB0QPcg" name="c" type="_PeTd4EvTEeW_uLfHB0QPcg" association="_RSexQEvTEeW_uLfHB0QPcg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_bABYIkvUEeW_uLfHB0QPcg" name="ax" type="_Z0NsUEvUEeW_uLfHB0QPcg" association="_bAAKAEvUEeW_uLfHB0QPcg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_OHxv0EvTEeW_uLfHB0QPcg" name="SomePackage">
+ <packagedElement xmi:type="uml:Class" xmi:id="_PeTd4EvTEeW_uLfHB0QPcg" name="C">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RSfYU0vTEeW_uLfHB0QPcg" name="b" type="_NZP14EvTEeW_uLfHB0QPcg" association="_RSexQEvTEeW_uLfHB0QPcg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RqtEAUvTEeW_uLfHB0QPcg" name="d" type="_QedTUEvTEeW_uLfHB0QPcg" association="_Rqr14EvTEeW_uLfHB0QPcg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_QedTUEvTEeW_uLfHB0QPcg" name="D">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RqtrEEvTEeW_uLfHB0QPcg" name="c" type="_PeTd4EvTEeW_uLfHB0QPcg" association="_Rqr14EvTEeW_uLfHB0QPcg"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Q57HUEvTEeW_uLfHB0QPcg" memberEnd="_Q57uYkvTEeW_uLfHB0QPcg _Q58VcEvTEeW_uLfHB0QPcg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Q57uYEvTEeW_uLfHB0QPcg" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Q57uYUvTEeW_uLfHB0QPcg" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_RSexQEvTEeW_uLfHB0QPcg" memberEnd="_RSfYUkvTEeW_uLfHB0QPcg _RSfYU0vTEeW_uLfHB0QPcg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RSfYUEvTEeW_uLfHB0QPcg" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RSfYUUvTEeW_uLfHB0QPcg" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Rqr14EvTEeW_uLfHB0QPcg" memberEnd="_RqtEAUvTEeW_uLfHB0QPcg _RqtrEEvTEeW_uLfHB0QPcg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Rqsc8EvTEeW_uLfHB0QPcg" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RqtEAEvTEeW_uLfHB0QPcg" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Z0NsUEvUEeW_uLfHB0QPcg" name="Ax">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Q57uYkvTEeW_uLfHB0QPcg" name="b" type="_NZP14EvTEeW_uLfHB0QPcg" association="_Q57HUEvTEeW_uLfHB0QPcg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_bABYIUvUEeW_uLfHB0QPcg" name="b" type="_NZP14EvTEeW_uLfHB0QPcg" association="_bAAKAEvUEeW_uLfHB0QPcg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_bAAKAEvUEeW_uLfHB0QPcg" memberEnd="_bABYIUvUEeW_uLfHB0QPcg _bABYIkvUEeW_uLfHB0QPcg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bAAxEEvUEeW_uLfHB0QPcg" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bABYIEvUEeW_uLfHB0QPcg" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ </packagedElement>
+</uml:Model>

Back to the top