Merge "Bug 512529 - Papyrus Viewpoint must be supported"
diff --git a/plugins/compare/bundles/org.eclipse.papyrus.compare.diagram.ide.ui/META-INF/MANIFEST.MF b/plugins/compare/bundles/org.eclipse.papyrus.compare.diagram.ide.ui/META-INF/MANIFEST.MF
index ae909a8..bc9ee57 100644
--- a/plugins/compare/bundles/org.eclipse.papyrus.compare.diagram.ide.ui/META-INF/MANIFEST.MF
+++ b/plugins/compare/bundles/org.eclipse.papyrus.compare.diagram.ide.ui/META-INF/MANIFEST.MF
@@ -31,7 +31,8 @@
  org.eclipse.papyrus.infra.services.labelprovider,
  org.eclipse.ui.navigator,
  org.eclipse.emf.compare.edit,
- org.eclipse.papyrus.compare.diagram;bundle-version="1.2.0"
+ org.eclipse.papyrus.compare.diagram;bundle-version="1.2.0",
+ org.eclipse.papyrus.compare.uml2;bundle-version="[2.5.1,3.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
  com.google.common.collect;version="[15.0.0,22.0.0)",
@@ -41,6 +42,7 @@
  org.eclipse.papyrus.compare.diagram.ide.ui.dependency,
  org.eclipse.papyrus.compare.diagram.ide.ui.internal,
  org.eclipse.papyrus.compare.diagram.ide.ui.internal.context,
+ org.eclipse.papyrus.compare.diagram.ide.ui.internal.helper;x-internal:=true,
  org.eclipse.papyrus.compare.diagram.ide.ui.internal.logical.view,
  org.eclipse.papyrus.compare.diagram.ide.ui.internal.structuremergeviewer.filters;x-internal:=true,
  org.eclipse.papyrus.compare.diagram.ide.ui.util
diff --git a/plugins/compare/bundles/org.eclipse.papyrus.compare.diagram.ide.ui/plugin.xml b/plugins/compare/bundles/org.eclipse.papyrus.compare.diagram.ide.ui/plugin.xml
index a5d151a..421173d 100644
--- a/plugins/compare/bundles/org.eclipse.papyrus.compare.diagram.ide.ui/plugin.xml
+++ b/plugins/compare/bundles/org.eclipse.papyrus.compare.diagram.ide.ui/plugin.xml
@@ -12,6 +12,7 @@
      Obeo - initial API and implementation
      Stefan Dirix - Bugs 456699, 474723
      Camille Letavernier - Bug 515373
+     Christian W. Damus - bug 512529
 -->
 
 <plugin>
@@ -117,4 +118,11 @@
             label="Papyrus diagram technical elements">
       </filter>
    </extension>
+   <extension
+         point="org.eclipse.papyrus.infra.viewpoints.policy.viewType">
+      <helper
+            class="org.eclipse.papyrus.compare.diagram.ide.ui.internal.helper.CompareDiagramViewTypeHelper"
+            priority="50">
+      </helper>
+   </extension>
 </plugin>
diff --git a/plugins/compare/bundles/org.eclipse.papyrus.compare.diagram.ide.ui/src/org/eclipse/papyrus/compare/diagram/ide/ui/internal/helper/CompareDiagramViewTypeHelper.java b/plugins/compare/bundles/org.eclipse.papyrus.compare.diagram.ide.ui/src/org/eclipse/papyrus/compare/diagram/ide/ui/internal/helper/CompareDiagramViewTypeHelper.java
new file mode 100644
index 0000000..7a5b0de
--- /dev/null
+++ b/plugins/compare/bundles/org.eclipse.papyrus.compare.diagram.ide.ui/src/org/eclipse/papyrus/compare/diagram/ide/ui/internal/helper/CompareDiagramViewTypeHelper.java
@@ -0,0 +1,190 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Christian W. Damus 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:
+ *     Christian W. Damus - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.ide.ui.internal.helper;
+
+import java.util.Collection;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.papyrus.compare.diagram.ide.ui.internal.CompareDiagramIDEUIPapyrusPlugin;
+import org.eclipse.papyrus.compare.uml2.internal.hook.migration.ModelSetWrapper;
+import org.eclipse.papyrus.infra.architecture.ArchitectureDescriptionUtils;
+import org.eclipse.papyrus.infra.core.architecture.merged.MergedArchitectureViewpoint;
+import org.eclipse.papyrus.infra.core.resource.BadStateException;
+import org.eclipse.papyrus.infra.core.resource.ModelIdentifiers;
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.resource.sasheditor.DiModel;
+import org.eclipse.papyrus.infra.core.resource.sasheditor.SashModel;
+import org.eclipse.papyrus.infra.gmfdiag.common.helper.GMFDiagramViewTypeHelper;
+import org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker;
+
+/**
+ * View-type helper that can query the Architecture Context view type associations in {@link ResourceSet}s
+ * that are not {@link ModelSet}s.
+ *
+ * @author Christian W. Damus
+ */
+public class CompareDiagramViewTypeHelper extends GMFDiagramViewTypeHelper {
+
+	/**
+	 * Initializes me.
+	 */
+	public CompareDiagramViewTypeHelper() {
+		super();
+	}
+
+	@Override
+	public boolean isSupported(EObject view) {
+		if (!(view instanceof Diagram)) {
+			return false;
+		}
+
+		Resource resource = view.eResource();
+		if (resource != null) {
+			// Don't need our implementation if the resource is in a native ModelSet
+			ResourceSet rset = resource.getResourceSet();
+			return rset != null && !(rset instanceof ModelSet);
+		}
+
+		return false;
+	}
+
+	/**
+	 * Obtains the most appropriate policy checker for a given {@code view}.
+	 * 
+	 * @param diagram
+	 *            a diagram
+	 * @return its policy checker
+	 */
+	@Override
+	protected PolicyChecker getPolicyChecker(EObject view) {
+		ModelSet modelSet = getModelSet(view);
+		Collection<MergedArchitectureViewpoint> viewpoints = new ArchitectureDescriptionUtils(modelSet)
+				.getArchitectureViewpoints();
+		return PolicyChecker.getFor(viewpoints);
+	}
+
+	protected ModelSet getModelSet(EObject view) {
+		ModelSet result;
+
+		// We already checked that it's in a resource
+		Resource resource = view.eResource();
+		ModelSetAdapter adapter = (ModelSetAdapter)EcoreUtil.getExistingAdapter(resource,
+				ModelSetAdapter.class);
+		if (adapter != null) {
+			result = adapter.getModelSet();
+		} else {
+			result = createModelSet(resource);
+			resource.eAdapters().add(new ModelSetAdapter(result));
+		}
+
+		return result;
+	}
+
+	protected ModelSet createModelSet(Resource resource) {
+		// We already checked that it's in a resource set
+		ResourceSet rset = resource.getResourceSet();
+		ModelSetWrapper result = new ModelSetWrapper(rset);
+
+		result.setURIWithoutExtension(resource.getURI().trimFileExtension());
+		result.registerModel(new DiModel());
+		result.registerModel(new SashModel());
+
+		for (String next : getArchitectureModels()) {
+			try {
+				result.loadModel(next);
+			} catch (BadStateException e) {
+				CompareDiagramIDEUIPapyrusPlugin.getDefault().getLog()
+						.log(new Status(IStatus.WARNING, CompareDiagramIDEUIPapyrusPlugin.PLUGIN_ID,
+								"Failed to load Papyrus model " + next, e)); //$NON-NLS-1$
+			}
+		}
+
+		return result;
+	}
+
+	protected ModelIdentifiers getArchitectureModels() {
+		return new ModelIdentifiers(DiModel.DI_MODEL_ID, SashModel.MODEL_ID);
+	}
+
+	//
+	// Nested types
+	//
+
+	/**
+	 * Cache of fake model-sets for view-type helping on diagrams.
+	 *
+	 * @author Christian W. Damus
+	 */
+	private static class ModelSetAdapter extends AdapterImpl {
+		private final ModelSet modelSet;
+
+		ModelSetAdapter(ModelSet modelSet) {
+			super();
+
+			this.modelSet = modelSet;
+		}
+
+		ModelSet getModelSet() {
+			return modelSet;
+		}
+
+		@Override
+		public boolean isAdapterForType(Object type) {
+			return type == ModelSetAdapter.class;
+		}
+
+		@Override
+		public void unsetTarget(Notifier oldTarget) {
+			super.unsetTarget(oldTarget);
+
+			if (getTarget() == null) {
+				if (modelSet instanceof ModelSetWrapper) {
+					// First, detach for safe clean-up of shared resources
+					// to avoid unloading them
+					((ModelSetWrapper)modelSet).detach();
+				}
+
+				modelSet.unload();
+			}
+		}
+
+		@Override
+		public void notifyChanged(Notification msg) {
+			if (msg.isTouch()) {
+				return;
+			}
+
+			if (msg.getNotifier() instanceof Resource) {
+				switch (msg.getFeatureID(Resource.class)) {
+					case Resource.RESOURCE__IS_LOADED:
+						if (!msg.getNewBooleanValue()) {
+							// We have done with this resource
+							((Resource)msg.getNotifier()).eAdapters().remove(this);
+						}
+						break;
+					default:
+						// Pass
+						break;
+				}
+			}
+		}
+	}
+}
diff --git a/plugins/compare/bundles/org.eclipse.papyrus.compare.uml2/src/org/eclipse/papyrus/compare/uml2/internal/hook/migration/ModelSetWrapper.java b/plugins/compare/bundles/org.eclipse.papyrus.compare.uml2/src/org/eclipse/papyrus/compare/uml2/internal/hook/migration/ModelSetWrapper.java
index aef732c..d63cb2d 100644
--- a/plugins/compare/bundles/org.eclipse.papyrus.compare.uml2/src/org/eclipse/papyrus/compare/uml2/internal/hook/migration/ModelSetWrapper.java
+++ b/plugins/compare/bundles/org.eclipse.papyrus.compare.uml2/src/org/eclipse/papyrus/compare/uml2/internal/hook/migration/ModelSetWrapper.java
@@ -8,6 +8,7 @@
  * Contributors:
  *     Martin Fleck - initial API and implementation
  *     Christian W. Damus - bug 526932
+ *     Christian W. Damus - bug 512529
  *******************************************************************************/
 package org.eclipse.papyrus.compare.uml2.internal.hook.migration;
 
@@ -130,10 +131,22 @@
 	/**
 	 * Detaches me from the resource-set that I wrap.
 	 */
-	void detach() {
+	public void detach() {
 		((ProxyingResourceList)resources).detach();
 	}
 
+	/**
+	 * Directly set the model-set's URI without initializing the entire pluggable models and snippets
+	 * infrastructure.
+	 * 
+	 * @param uriWithoutExtension
+	 *            the URI without the file extension
+	 */
+	@Override
+	public void setURIWithoutExtension(URI uriWithoutExtension) {
+		super.setURIWithoutExtension(uriWithoutExtension);
+	}
+
 	//
 	// Nested types
 	//
diff --git a/plugins/compare/targetplatforms/compare.tests-nightly.target b/plugins/compare/targetplatforms/compare.tests-nightly.target
index f23bb9e..db5c021 100644
--- a/plugins/compare/targetplatforms/compare.tests-nightly.target
+++ b/plugins/compare/targetplatforms/compare.tests-nightly.target
@@ -57,8 +57,8 @@
       <repository location="https://hudson.eclipse.org/papyrus/job/Papyrus-Master-Developer/lastSuccessfulBuild/artifact/repository/"/>
     </location>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.eclipse.papyrus.sysml14" version="0.0.0"/>
-      <repository id="sysml" location="http://download.eclipse.org/modeling/mdt/papyrus/components/sysml14/oxygen"/>
+      <unit id="org.eclipse.papyrus.sysml14.feature.feature.group" version="0.0.0"/>
+      <repository id="sysml" location="https://hudson.eclipse.org/papyrus/job/papyrus-sysml-oxygen/lastStableBuild/artifact/releng/org.eclipse.papyrus.sysml14.p2/target/repository/"/>
     </location>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.emf.compare.rcp.ui.source.feature.group" version="0.0.0"/>
diff --git a/plugins/compare/targetplatforms/compare.tests-nightly.tpd b/plugins/compare/targetplatforms/compare.tests-nightly.tpd
index a96a928..351ada4 100755
--- a/plugins/compare/targetplatforms/compare.tests-nightly.tpd
+++ b/plugins/compare/targetplatforms/compare.tests-nightly.tpd
@@ -7,10 +7,13 @@
 	org.eclipse.papyrus.junit.framework lazy
 }
 
-//required for Compare test ProfileMigrationTest 
-
-location sysml "http://download.eclipse.org/modeling/mdt/papyrus/components/sysml14/oxygen" {
-	org.eclipse.papyrus.sysml14 lazy
+// Required for Compare test ProfileMigrationTest and Architecture Framework support tests
+// Required for Compare test ProfileMigrationTest and Architecture Framework support tests
+// NOTE that this is a volatile Hudson build archive. It should be replaced by a stable
+// milestone or release build ASAP!  This is only even remote feasible because it is a
+// tests-only dependency.
+location sysml "https://hudson.eclipse.org/papyrus/job/papyrus-sysml-oxygen/lastStableBuild/artifact/releng/org.eclipse.papyrus.sysml14.p2/target/repository/" {
+	org.eclipse.papyrus.sysml14.feature.feature.group lazy
 }
 
 location emfCompare "http://download.eclipse.org/modeling/emf/compare/updates/logical/emf.compare/nightly/latest/" {
diff --git a/plugins/compare/targetplatforms/compare.tests-release.target b/plugins/compare/targetplatforms/compare.tests-release.target
index c1fed4e..e344a3b 100644
--- a/plugins/compare/targetplatforms/compare.tests-release.target
+++ b/plugins/compare/targetplatforms/compare.tests-release.target
@@ -61,8 +61,8 @@
       <repository id="xwt" location="http://download.eclipse.org/xwt/updates"/>
     </location>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.eclipse.papyrus.sysml14" version="1.0.0"/>
-      <repository id="sysml" location="http://download.eclipse.org/modeling/mdt/papyrus/components/sysml14/oxygen"/>
+      <unit id="org.eclipse.papyrus.sysml14.feature.feature.group" version="0.0.0"/>
+      <repository id="sysml" location="https://hudson.eclipse.org/papyrus/job/papyrus-sysml-oxygen/lastStableBuild/artifact/releng/org.eclipse.papyrus.sysml14.p2/target/repository/"/>
     </location>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.emf.compare.tests.source.feature.group" version="0.0.0"/>
diff --git a/plugins/compare/targetplatforms/compare.tests-release.tpd b/plugins/compare/targetplatforms/compare.tests-release.tpd
index 9431f38..8b0b3fa 100755
--- a/plugins/compare/targetplatforms/compare.tests-release.tpd
+++ b/plugins/compare/targetplatforms/compare.tests-release.tpd
@@ -24,12 +24,14 @@
 }
 
 
-//required for Compare test ProfileMigrationTest 
-location sysml "http://download.eclipse.org/modeling/mdt/papyrus/components/sysml14/oxygen" {
-	org.eclipse.papyrus.sysml14 
+// Required for Compare test ProfileMigrationTest and Architecture Framework support tests
+// NOTE that this is a volatile Hudson build archive. It should be replaced by a release
+// build ASAP!  This is only even remote feasible because it is a tests-only dependency.
+location sysml "https://hudson.eclipse.org/papyrus/job/papyrus-sysml-oxygen/lastStableBuild/artifact/releng/org.eclipse.papyrus.sysml14.p2/target/repository/" {
+	org.eclipse.papyrus.sysml14.feature.feature.group lazy
 }
 
 location emfCompare "http://download.eclipse.org/modeling/emf/compare/updates/logical/emf.compare/integration/" {
 	org.eclipse.emf.compare.tests.source.feature.group lazy
 	org.eclipse.emf.compare.uml2.source.feature.group lazy
-}
\ No newline at end of file
+}
diff --git a/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/META-INF/MANIFEST.MF b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/META-INF/MANIFEST.MF
index cd5f527..59cdde6 100644
--- a/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/META-INF/MANIFEST.MF
+++ b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/META-INF/MANIFEST.MF
@@ -40,7 +40,8 @@
  org.eclipse.emf.compare.uml2.rcp.ui.tests;bundle-version="2.2.0",
  org.eclipse.emf.compare.uml2.ide.tests,
  org.eclipse.emf.compare.ide.ui.tests.framework,
- org.eclipse.papyrus.sysml14
+ org.eclipse.papyrus.sysml14;bundle-version="1.0.0",
+ org.eclipse.papyrus.sysml14.architecture;bundle-version="1.0.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-Vendor: %providerName
 Import-Package: com.google.common.base;version="[15.0.0,22.0.0)",
diff --git a/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/DiagramInputDataWithResourceSetHooks.java b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/DiagramInputDataWithResourceSetHooks.java
new file mode 100644
index 0000000..51a337d
--- /dev/null
+++ b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/DiagramInputDataWithResourceSetHooks.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Christian W. Damus 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:
+ *     Christian W. Damus - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests;
+
+import static com.google.common.collect.Iterables.transform;
+import static com.google.common.collect.Lists.newArrayList;
+
+import com.google.common.base.Function;
+import com.google.common.collect.ImmutableSet;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.Collection;
+
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.compare.ide.EMFCompareIDEPlugin;
+import org.eclipse.emf.compare.ide.hook.IResourceSetHook;
+import org.eclipse.emf.compare.ide.internal.hook.ResourceSetHookRegistry;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.internal.resource.UMLResourceFactoryImpl;
+
+@SuppressWarnings({"nls", "restriction" })
+public class DiagramInputDataWithResourceSetHooks extends DiagramInputData {
+
+	private ResourceSetHookRegistry hooks = EMFCompareIDEPlugin.getDefault().getResourceSetHookRegistry();
+
+	@Override
+	protected Resource loadFromClassLoader(String string) throws IOException {
+		final URL url = getClass().getResource(string);
+		final URI uri = URI.createURI(url.toString(), true);
+
+		final Collection<URI> uris = ImmutableSet.of(uri.trimFileExtension().appendFileExtension("di"),
+				uri.trimFileExtension().appendFileExtension("uml"),
+				uri.trimFileExtension().appendFileExtension("notation"));
+
+		ResourceSet resourceSet = createResourceSet(uris);
+		getSets().add(resourceSet);
+
+		if (!EMFPlugin.IS_RESOURCES_BUNDLE_AVAILABLE) {
+			resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("uml",
+					new UMLResourceFactoryImpl());
+			resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("notation",
+					new GMFResourceFactory());
+			EPackage.Registry.INSTANCE.put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
+			EPackage.Registry.INSTANCE.put(NotationPackage.eNS_URI, NotationPackage.eINSTANCE);
+		}
+
+		for (URI next : uris) {
+			if (resourceSet.getURIConverter().exists(next, null)) {
+				resourceSet.getResource(next, true);
+			}
+		}
+
+		postLoad(resourceSet);
+
+		EcoreUtil.resolveAll(resourceSet);
+
+		return resourceSet.getResource(uri, false);
+	}
+
+	protected ResourceSet createResourceSet(Collection<URI> resourceURIs) {
+		ResourceSet result = new ResourceSetImpl();
+
+		preLoad(result, resourceURIs);
+
+		return result;
+	}
+
+	protected void preLoad(ResourceSet rset, Collection<URI> uris) {
+		for (IResourceSetHook hook : hooks.getResourceSetHooks()) {
+			if (hook.isHookFor(uris)) {
+				hook.preLoadingHook(rset, uris);
+			}
+		}
+	}
+
+	protected void postLoad(ResourceSet rset) {
+		Collection<URI> uris = getURIs(rset);
+
+		for (IResourceSetHook hook : hooks.getResourceSetHooks()) {
+			if (hook.isHookFor(uris)) {
+				hook.postLoadingHook(rset, uris);
+			}
+		}
+	}
+
+	Collection<URI> getURIs(ResourceSet rset) {
+		return newArrayList(transform(rset.getResources(), new Function<Resource, URI>() {
+			public URI apply(Resource input) {
+				return input.getURI();
+			}
+		}));
+	}
+}
diff --git a/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/CSSTest.java b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/CSSTest.java
new file mode 100644
index 0000000..b542d13
--- /dev/null
+++ b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/CSSTest.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Christian W. Damus 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:
+ *     Christian W. Damus - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.css;
+
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import java.io.IOException;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.papyrus.compare.diagram.tests.AbstractTest;
+import org.eclipse.papyrus.compare.diagram.tests.DiagramInputData;
+import org.eclipse.papyrus.compare.diagram.tests.css.data.CSSInputData;
+import org.eclipse.papyrus.infra.viewpoints.policy.ViewPrototype;
+import org.junit.Test;
+
+/**
+ * Test cases for CSS and other {@link ViewPrototype}-related concerns.
+ *
+ * @author Christian W. Damus
+ */
+@SuppressWarnings({"nls", "boxing" })
+public class CSSTest extends AbstractTest {
+
+	private final CSSInputData input = new CSSInputData();
+
+	/**
+	 * Verify that Papyrusfinds the correct view prototype for the compared diagrams.
+	 */
+	@Test
+	public void viewPrototype() throws IOException {
+		Resource left = input.getLeft();
+		Resource right = input.getRight();
+
+		buildComparison(left, right);
+
+		Diagram diagram = (Diagram)EcoreUtil.getObjectByType(left.getContents(),
+				NotationPackage.Literals.DIAGRAM);
+		ViewPrototype proto = ViewPrototype.get(diagram);
+		assertThat("View prototype not found", proto.isUnavailable(), is(false));
+		assertThat(proto.getRepresentationKind().getId(), containsString("sysml14"));
+	}
+
+	//
+	// Test framework
+	//
+
+	@Override
+	protected DiagramInputData getInput() {
+		return input;
+	}
+
+}
diff --git a/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/CSSInputData.java b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/CSSInputData.java
new file mode 100644
index 0000000..7332da3
--- /dev/null
+++ b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/CSSInputData.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Christian W. Damus 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:
+ *     Christian W. Damus - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.diagram.tests.css.data;
+
+import java.io.IOException;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.papyrus.compare.diagram.tests.DiagramInputDataWithResourceSetHooks;
+
+@SuppressWarnings("nls")
+public class CSSInputData extends DiagramInputDataWithResourceSetHooks {
+
+	public Resource getLeft() throws IOException {
+		return loadFromClassLoader("left.notation");
+	}
+
+	public Resource getRight() throws IOException {
+		return loadFromClassLoader("right.notation");
+	}
+
+}
diff --git a/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/left.di b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/left.di
new file mode 100644
index 0000000..f784d67
--- /dev/null
+++ b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/left.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrus.sysml.architecture.SysML14"/>
diff --git a/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/left.notation b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/left.notation
new file mode 100644
index 0000000..d6591a2
--- /dev/null
+++ b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/left.notation
@@ -0,0 +1,465 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+  <notation:Diagram xmi:id="_oLySQMOMEeewAZDu5xuR4A" type="PapyrusUMLClassDiagram" name="Plant Definition" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_vLf2YMOMEeewAZDu5xuR4A" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_vL1NkMOMEeewAZDu5xuR4A" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_vL1NkcOMEeewAZDu5xuR4A" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_vL1NksOMEeewAZDu5xuR4A" y="5"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_vL10oMOMEeewAZDu5xuR4A" type="Class_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_vL10ocOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_vL10osOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_vL10o8OMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vL10pMOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_vL10pcOMEeewAZDu5xuR4A" type="Class_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_vL10psOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_vL10p8OMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_vL10qMOMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vL10qcOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_vL10qsOMEeewAZDu5xuR4A" type="Class_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_vL10q8OMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_vL10rMOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_vL10rcOMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vL10rsOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_vOlmoMOMEeewAZDu5xuR4A" type="StereotypeLabel">
+        <styles xmi:type="notation:StringValueStyle" xmi:id="_vOlmocOMEeewAZDu5xuR4A" name="stereotype" stringValue="SysML::Blocks::Block"/>
+        <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_Block"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vOlmosOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_vOmNsMOMEeewAZDu5xuR4A" type="StereotypeBrace">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_vOmNscOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:StringValueStyle" xmi:id="_vOmNssOMEeewAZDu5xuR4A" name="stereotype" stringValue="SysML::Blocks::Block"/>
+        <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_Block"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vOmNs8OMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:Compartment" xmi:id="_vOrGMMOMEeewAZDu5xuR4A" type="Flow Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_vOrtQMOMEeewAZDu5xuR4A" type="constraints"/>
+      <children xmi:type="notation:Compartment" xmi:id="_vOsUUMOMEeewAZDu5xuR4A" type="Parts"/>
+      <children xmi:type="notation:Compartment" xmi:id="_vOsUUcOMEeewAZDu5xuR4A" type="Proxy Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_vOs7YMOMEeewAZDu5xuR4A" type="Full Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_vOs7YcOMEeewAZDu5xuR4A" type="References"/>
+      <children xmi:type="notation:Compartment" xmi:id="_vOs7YsOMEeewAZDu5xuR4A" type="Flow Properties"/>
+      <children xmi:type="notation:Compartment" xmi:id="_vOs7Y8OMEeewAZDu5xuR4A" type="Parameters"/>
+      <element xmi:type="uml:Class" href="Plant.uml#_u0gSsMOMEeewAZDu5xuR4A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vLf2YcOMEeewAZDu5xuR4A" x="360" y="40"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_vOv-sMOMEeewAZDu5xuR4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_vOv-scOMEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_vOv-s8OMEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_u0gSsMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vOv-ssOMEeewAZDu5xuR4A" x="200"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_xm0CQMOMEeewAZDu5xuR4A" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_xm0pUMOMEeewAZDu5xuR4A" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_xm0pUcOMEeewAZDu5xuR4A" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_xm0pUsOMEeewAZDu5xuR4A" y="5"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xm0pU8OMEeewAZDu5xuR4A" type="Class_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_xm0pVMOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_xm0pVcOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_xm0pVsOMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xm0pV8OMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xm0pWMOMEeewAZDu5xuR4A" type="Class_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_xm0pWcOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_xm0pWsOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_xm0pW8OMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xm0pXMOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xm0pXcOMEeewAZDu5xuR4A" type="Class_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_xm0pXsOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_xm0pX8OMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_xm0pYMOMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xm0pYcOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_xm9zQMOMEeewAZDu5xuR4A" type="StereotypeLabel">
+        <styles xmi:type="notation:StringValueStyle" xmi:id="_xm9zQcOMEeewAZDu5xuR4A" name="stereotype" stringValue="SysML::Blocks::Block"/>
+        <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_Block"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xm9zQsOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xm-aUMOMEeewAZDu5xuR4A" type="StereotypeBrace">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_xm-aUcOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:StringValueStyle" xmi:id="_xm-aUsOMEeewAZDu5xuR4A" name="stereotype" stringValue="SysML::Blocks::Block"/>
+        <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_Block"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xm-aU8OMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:Compartment" xmi:id="_xm_ocMOMEeewAZDu5xuR4A" type="Flow Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_xnAPgMOMEeewAZDu5xuR4A" type="constraints"/>
+      <children xmi:type="notation:Compartment" xmi:id="_xnAPgcOMEeewAZDu5xuR4A" type="Parts"/>
+      <children xmi:type="notation:Compartment" xmi:id="_xnAPgsOMEeewAZDu5xuR4A" type="Proxy Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_xnAPg8OMEeewAZDu5xuR4A" type="Full Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_xnA2kMOMEeewAZDu5xuR4A" type="References"/>
+      <children xmi:type="notation:Compartment" xmi:id="_xnA2kcOMEeewAZDu5xuR4A" type="Flow Properties"/>
+      <children xmi:type="notation:Compartment" xmi:id="_xnCEsMOMEeewAZDu5xuR4A" type="Parameters"/>
+      <element xmi:type="uml:Class" href="Plant.uml#_xmYkcMOMEeewAZDu5xuR4A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xm0CQcOMEeewAZDu5xuR4A" x="321" y="318" width="177"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_xnCrwMOMEeewAZDu5xuR4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_xnCrwcOMEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_xnCrw8OMEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_xmYkcMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xnCrwsOMEeewAZDu5xuR4A" x="200"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_22ZskMOMEeewAZDu5xuR4A" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_22aToMOMEeewAZDu5xuR4A" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_22aTocOMEeewAZDu5xuR4A" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_22aTosOMEeewAZDu5xuR4A" y="5"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_22aTo8OMEeewAZDu5xuR4A" type="Class_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_22aTpMOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_22aTpcOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_22aTpsOMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_22aTp8OMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_22aTqMOMEeewAZDu5xuR4A" type="Class_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_22aTqcOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_22aTqsOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_22aTq8OMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_22aTrMOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_22aTrcOMEeewAZDu5xuR4A" type="Class_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_22aTrsOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_22aTr8OMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_22aTsMOMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_22aTscOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_22hBUMOMEeewAZDu5xuR4A" type="StereotypeLabel">
+        <styles xmi:type="notation:StringValueStyle" xmi:id="_22hBUcOMEeewAZDu5xuR4A" name="stereotype" stringValue="SysML::Blocks::Block"/>
+        <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_Block"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_22hBUsOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_22hoYMOMEeewAZDu5xuR4A" type="StereotypeBrace">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_22hoYcOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:StringValueStyle" xmi:id="_22hoYsOMEeewAZDu5xuR4A" name="stereotype" stringValue="SysML::Blocks::Block"/>
+        <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_Block"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_22hoY8OMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:Compartment" xmi:id="_22i2gMOMEeewAZDu5xuR4A" type="Flow Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_22i2gcOMEeewAZDu5xuR4A" type="constraints"/>
+      <children xmi:type="notation:Compartment" xmi:id="_22jdkMOMEeewAZDu5xuR4A" type="Parts"/>
+      <children xmi:type="notation:Compartment" xmi:id="_22jdkcOMEeewAZDu5xuR4A" type="Proxy Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_22jdksOMEeewAZDu5xuR4A" type="Full Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_22jdk8OMEeewAZDu5xuR4A" type="References"/>
+      <children xmi:type="notation:Compartment" xmi:id="_22kEoMOMEeewAZDu5xuR4A" type="Flow Properties"/>
+      <children xmi:type="notation:Compartment" xmi:id="_22kEocOMEeewAZDu5xuR4A" type="Parameters"/>
+      <element xmi:type="uml:Class" href="Plant.uml#_21-OwMOMEeewAZDu5xuR4A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_22ZskcOMEeewAZDu5xuR4A" x="78" y="264" width="139"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_22krsMOMEeewAZDu5xuR4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_22krscOMEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_22krs8OMEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_21-OwMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_22krssOMEeewAZDu5xuR4A" x="200"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_6IAnQMOMEeewAZDu5xuR4A" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_6IAnQsOMEeewAZDu5xuR4A" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_6IAnQ8OMEeewAZDu5xuR4A" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_6IAnRMOMEeewAZDu5xuR4A" y="5"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_6IBOUMOMEeewAZDu5xuR4A" type="Class_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_6IBOUcOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_6IBOUsOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_6IBOU8OMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6IBOVMOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_6IBOVcOMEeewAZDu5xuR4A" type="Class_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_6IBOVsOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_6IBOV8OMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_6IBOWMOMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6IBOWcOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_6IBOWsOMEeewAZDu5xuR4A" type="Class_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_6IBOW8OMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_6IBOXMOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_6IBOXcOMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6IBOXsOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_6IHU8MOMEeewAZDu5xuR4A" type="StereotypeLabel">
+        <styles xmi:type="notation:StringValueStyle" xmi:id="_6IHU8cOMEeewAZDu5xuR4A" name="stereotype" stringValue="SysML::Blocks::Block"/>
+        <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_Block"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6IHU8sOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_6IHU88OMEeewAZDu5xuR4A" type="StereotypeBrace">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_6IHU9MOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:StringValueStyle" xmi:id="_6IHU9cOMEeewAZDu5xuR4A" name="stereotype" stringValue="SysML::Blocks::Block"/>
+        <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_Block"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6IHU9sOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:Compartment" xmi:id="_6IH8AMOMEeewAZDu5xuR4A" type="Flow Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_6IH8AcOMEeewAZDu5xuR4A" type="constraints"/>
+      <children xmi:type="notation:Compartment" xmi:id="_6IH8AsOMEeewAZDu5xuR4A" type="Parts"/>
+      <children xmi:type="notation:Compartment" xmi:id="_6IIjEMOMEeewAZDu5xuR4A" type="Proxy Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_6IIjEcOMEeewAZDu5xuR4A" type="Full Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_6IIjEsOMEeewAZDu5xuR4A" type="References"/>
+      <children xmi:type="notation:Compartment" xmi:id="_6IIjE8OMEeewAZDu5xuR4A" type="Flow Properties"/>
+      <children xmi:type="notation:Compartment" xmi:id="_6IIjFMOMEeewAZDu5xuR4A" type="Parameters"/>
+      <element xmi:type="uml:Class" href="Plant.uml#_6Hm-oMOMEeewAZDu5xuR4A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6IAnQcOMEeewAZDu5xuR4A" x="580" y="264" width="149"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_6IJKIMOMEeewAZDu5xuR4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_6IJKIcOMEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_6IJKI8OMEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_6Hm-oMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6IJKIsOMEeewAZDu5xuR4A" x="200"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_oLySQcOMEeewAZDu5xuR4A" name="diagram_compatibility_version" stringValue="1.3.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_oLySQsOMEeewAZDu5xuR4A"/>
+    <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_oLySQ8OMEeewAZDu5xuR4A" diagramKindId="org.eclipse.papyrus.sysml14.diagram.blockdefinition">
+      <owner xmi:type="uml:Model" href="Plant.uml#_nt4OQMOMEeewAZDu5xuR4A"/>
+    </styles>
+    <styles xmi:type="notation:BooleanValueStyle" xmi:id="_zr7UoMOMEeewAZDu5xuR4A" name="rulergrid.snaptogeometry" booleanValue="true"/>
+    <styles xmi:type="notation:BooleanValueStyle" xmi:id="_zxHWoMOMEeewAZDu5xuR4A" name="rulergrid.snaptogrid"/>
+    <element xmi:type="uml:Model" href="Plant.uml#_nt4OQMOMEeewAZDu5xuR4A"/>
+    <edges xmi:type="notation:Connector" xmi:id="_vOwlwMOMEeewAZDu5xuR4A" type="StereotypeCommentLink" source="_vLf2YMOMEeewAZDu5xuR4A" target="_vOv-sMOMEeewAZDu5xuR4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_vOwlwcOMEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_vOxM0sOMEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_u0gSsMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vOwlwsOMEeewAZDu5xuR4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vOxM0MOMEeewAZDu5xuR4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vOxM0cOMEeewAZDu5xuR4A"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_xnCrxMOMEeewAZDu5xuR4A" type="StereotypeCommentLink" source="_xm0CQMOMEeewAZDu5xuR4A" target="_xnCrwMOMEeewAZDu5xuR4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_xnCrxcOMEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_xnDS0MOMEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_xmYkcMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xnCrxsOMEeewAZDu5xuR4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xnCrx8OMEeewAZDu5xuR4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xnCryMOMEeewAZDu5xuR4A"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_22krtMOMEeewAZDu5xuR4A" type="StereotypeCommentLink" source="_22ZskMOMEeewAZDu5xuR4A" target="_22krsMOMEeewAZDu5xuR4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_22krtcOMEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_22lSwMOMEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_21-OwMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_22krtsOMEeewAZDu5xuR4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_22krt8OMEeewAZDu5xuR4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_22kruMOMEeewAZDu5xuR4A"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_6IJKJMOMEeewAZDu5xuR4A" type="StereotypeCommentLink" source="_6IAnQMOMEeewAZDu5xuR4A" target="_6IJKIMOMEeewAZDu5xuR4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_6IJKJcOMEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_6IJKKcOMEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_6Hm-oMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6IJKJsOMEeewAZDu5xuR4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6IJKJ8OMEeewAZDu5xuR4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6IJKKMOMEeewAZDu5xuR4A"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="__KEL4MOMEeewAZDu5xuR4A" type="Association_Edge" source="_vLf2YMOMEeewAZDu5xuR4A" target="_22ZskMOMEeewAZDu5xuR4A">
+      <children xmi:type="notation:DecorationNode" xmi:id="__KEy8sOMEeewAZDu5xuR4A" type="Association_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CYWs0MONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="__KEy88OMEeewAZDu5xuR4A" y="-19"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="__KEy9MOMEeewAZDu5xuR4A" type="Association_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CYq14MONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="__KFaAMOMEeewAZDu5xuR4A" x="-1" y="18"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="__KFaAcOMEeewAZDu5xuR4A" type="Association_TargetRoleLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CZCCQMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="__KFaAsOMEeewAZDu5xuR4A" x="55" y="-20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="__KFaA8OMEeewAZDu5xuR4A" type="Association_SourceRoleLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CZUWIMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="__KFaBMOMEeewAZDu5xuR4A" x="-38" y="72"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="__KFaBcOMEeewAZDu5xuR4A" type="Association_SourceMultiplicityLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CZi_oMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="__KFaBsOMEeewAZDu5xuR4A" x="55" y="17"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="__KFaB8OMEeewAZDu5xuR4A" type="Association_TargetMultiplicityLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CZ1TgMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="__KFaCMOMEeewAZDu5xuR4A" x="-40" y="-21"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="__KEy8MOMEeewAZDu5xuR4A"/>
+      <element xmi:type="uml:Association" href="Plant.uml#__Jp8MMOMEeewAZDu5xuR4A"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__KEy8cOMEeewAZDu5xuR4A" points="[360, 153, -643984, -643984]$[151, 139, -643984, -643984]$[151, 297, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__LyDIMOMEeewAZDu5xuR4A" id="(0.0,0.8504672897196262)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__LyqMMOMEeewAZDu5xuR4A" id="(0.5251798561151079,0.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_BVZbAMONEeewAZDu5xuR4A" type="Association_Edge" source="_vLf2YMOMEeewAZDu5xuR4A" target="_6IAnQMOMEeewAZDu5xuR4A">
+      <children xmi:type="notation:DecorationNode" xmi:id="_BVaCEMONEeewAZDu5xuR4A" type="Association_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Et0vYMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_BVaCEcONEeewAZDu5xuR4A" x="1" y="-18"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_BVaCEsONEeewAZDu5xuR4A" type="Association_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EuEnAMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_BVaCE8ONEeewAZDu5xuR4A" y="19"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_BVaCFMONEeewAZDu5xuR4A" type="Association_TargetRoleLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EuRbUMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_BVaCFcONEeewAZDu5xuR4A" x="52" y="-18"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_BVaCFsONEeewAZDu5xuR4A" type="Association_SourceRoleLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EugE0MONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_BVaCF8ONEeewAZDu5xuR4A" x="-30" y="-74"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_BVaCGMONEeewAZDu5xuR4A" type="Association_SourceMultiplicityLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EuxKkMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_BVaCGcONEeewAZDu5xuR4A" x="52" y="19"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_BVaCGsONEeewAZDu5xuR4A" type="Association_TargetMultiplicityLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EvCQUMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_BVaCG8ONEeewAZDu5xuR4A" x="-29" y="26"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_BVZbAcONEeewAZDu5xuR4A"/>
+      <element xmi:type="uml:Association" href="Plant.uml#_BVBAgMONEeewAZDu5xuR4A"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BVZbAsONEeewAZDu5xuR4A" points="[460, 150, -643984, -643984]$[656, 139, -643984, -643984]$[656, 297, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BWRkwMONEeewAZDu5xuR4A" id="(1.0,0.8504672897196262)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BWRkwcONEeewAZDu5xuR4A" id="(0.5033557046979866,0.0)"/>
+    </edges>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_xCfXwMONEeewAZDu5xuR4A" type="CompositeStructure" name="Plant Internal Composition" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_xCibEMONEeewAZDu5xuR4A" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_xCjCIMONEeewAZDu5xuR4A" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_xCjCIcONEeewAZDu5xuR4A" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_xCjCIsONEeewAZDu5xuR4A" y="15"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xCjCI8ONEeewAZDu5xuR4A" type="Class_StructureCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_1XUqAMONEeewAZDu5xuR4A" type="Property_Shape">
+          <children xmi:type="notation:DecorationNode" xmi:id="_1XUqAsONEeewAZDu5xuR4A" type="Property_NameLabel"/>
+          <children xmi:type="notation:DecorationNode" xmi:id="_1XUqA8ONEeewAZDu5xuR4A" type="Property_FloatingNameLabel">
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_1XUqBMONEeewAZDu5xuR4A" y="15"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_1XVREMONEeewAZDu5xuR4A" type="Property_StructureCompartment">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_1XVREcONEeewAZDu5xuR4A"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1XVREsONEeewAZDu5xuR4A"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_1Yg80MONEeewAZDu5xuR4A" type="compartment_shape_display">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_1Yg80cONEeewAZDu5xuR4A"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1Yg80sONEeewAZDu5xuR4A"/>
+          </children>
+          <children xmi:type="notation:Shape" xmi:id="_6PocwMONEeewAZDu5xuR4A" type="Port_Shape">
+            <children xmi:type="notation:DecorationNode" xmi:id="_6PocwsONEeewAZDu5xuR4A" type="Port_NameLabel">
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_6Pocw8ONEeewAZDu5xuR4A" x="32" y="20"/>
+            </children>
+            <children xmi:type="notation:DecorationNode" xmi:id="_6PocxMONEeewAZDu5xuR4A" type="Port_StereotypeLabel">
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_6PocxcONEeewAZDu5xuR4A" x="25" y="-10"/>
+            </children>
+            <element xmi:type="uml:Port" href="Plant.uml#_6PVh0MONEeewAZDu5xuR4A"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6PocwcONEeewAZDu5xuR4A" x="148" y="30"/>
+          </children>
+          <element xmi:type="uml:Property" href="Plant.uml#__JsYcMOMEeewAZDu5xuR4A"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1XUqAcONEeewAZDu5xuR4A" x="104" y="29" width="329"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_3nTvoMONEeewAZDu5xuR4A" type="Property_Shape">
+          <children xmi:type="notation:DecorationNode" xmi:id="_3nTvosONEeewAZDu5xuR4A" type="Property_NameLabel"/>
+          <children xmi:type="notation:DecorationNode" xmi:id="_3nTvo8ONEeewAZDu5xuR4A" type="Property_FloatingNameLabel">
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_3nUWsMONEeewAZDu5xuR4A" y="15"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_3nUWscONEeewAZDu5xuR4A" type="Property_StructureCompartment">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_3nUWssONEeewAZDu5xuR4A"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3nUWs8ONEeewAZDu5xuR4A"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_3nZPMMONEeewAZDu5xuR4A" type="compartment_shape_display">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_3nZPMcONEeewAZDu5xuR4A"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3nZPMsONEeewAZDu5xuR4A"/>
+          </children>
+          <children xmi:type="notation:Shape" xmi:id="_Lz49sMOOEeewAZDu5xuR4A" type="Port_Shape">
+            <children xmi:type="notation:DecorationNode" xmi:id="_Lz49ssOOEeewAZDu5xuR4A" type="Port_NameLabel">
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Lz49s8OOEeewAZDu5xuR4A" x="40" y="-10"/>
+            </children>
+            <children xmi:type="notation:DecorationNode" xmi:id="_Lz49tMOOEeewAZDu5xuR4A" type="Port_StereotypeLabel">
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Lz49tcOOEeewAZDu5xuR4A" x="25" y="-10"/>
+            </children>
+            <element xmi:type="uml:Port" href="Plant.uml#_Lzi_cMOOEeewAZDu5xuR4A"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lz49scOOEeewAZDu5xuR4A" x="150" y="-10"/>
+          </children>
+          <element xmi:type="uml:Property" href="Plant.uml#_BVBnkMONEeewAZDu5xuR4A"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3nTvocONEeewAZDu5xuR4A" x="104" y="169" width="341"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_TzBXcMOOEeewAZDu5xuR4A" type="StereotypeComment">
+          <styles xmi:type="notation:TitleStyle" xmi:id="_TzBXccOOEeewAZDu5xuR4A"/>
+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_TzBXc8OOEeewAZDu5xuR4A" name="BASE_ELEMENT">
+            <eObjectValue xmi:type="uml:InformationFlow" href="Plant.uml#_TyZFUMOOEeewAZDu5xuR4A"/>
+          </styles>
+          <element xsi:nil="true"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TzBXcsOOEeewAZDu5xuR4A" x="100" y="100"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_Vp4qEMOcEeeX_6ccon9chQ" type="Property_Shape">
+          <children xmi:type="notation:DecorationNode" xmi:id="_Vp5RIMOcEeeX_6ccon9chQ" type="Property_NameLabel"/>
+          <children xmi:type="notation:DecorationNode" xmi:id="_Vp5RIcOcEeeX_6ccon9chQ" type="Property_FloatingNameLabel">
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_Vp54MMOcEeeX_6ccon9chQ" y="15"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_Vp54McOcEeeX_6ccon9chQ" type="Property_StructureCompartment">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_Vp54MsOcEeeX_6ccon9chQ"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vp54M8OcEeeX_6ccon9chQ"/>
+          </children>
+          <element xmi:type="uml:Property" href="Plant.uml#_T0SaYMOcEeeX_6ccon9chQ"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vp4qEcOcEeeX_6ccon9chQ" x="164" y="289" width="361"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_xCjCJMONEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xCjCJcONEeewAZDu5xuR4A"/>
+      </children>
+      <element xmi:type="uml:Class" href="Plant.uml#_u0gSsMOMEeewAZDu5xuR4A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xCibEcONEeewAZDu5xuR4A" x="40" y="40" width="701" height="451"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_xGUH0MONEeewAZDu5xuR4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_xGUH0cONEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_xGUH08ONEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_u0gSsMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xGUH0sONEeewAZDu5xuR4A" x="240" y="40"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_xCfXwcONEeewAZDu5xuR4A" name="diagram_compatibility_version" stringValue="1.3.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_xCfXwsONEeewAZDu5xuR4A"/>
+    <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_xCfXw8ONEeewAZDu5xuR4A" diagramKindId="org.eclipse.papyrus.sysml14.diagram.internalblock">
+      <owner xmi:type="uml:Class" href="Plant.uml#_u0gSsMOMEeewAZDu5xuR4A"/>
+    </styles>
+    <styles xmi:type="notation:DoubleValueStyle" xmi:id="_RfKecMOOEeewAZDu5xuR4A" name="rulergrid.gridspacing" doubleValue="10.0"/>
+    <element xmi:type="uml:Class" href="Plant.uml#_u0gSsMOMEeewAZDu5xuR4A"/>
+    <edges xmi:type="notation:Connector" xmi:id="_xGUH1MONEeewAZDu5xuR4A" type="StereotypeCommentLink" source="_xCibEMONEeewAZDu5xuR4A" target="_xGUH0MONEeewAZDu5xuR4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_xGUH1cONEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_xGUH2cONEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_u0gSsMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xGUH1sONEeewAZDu5xuR4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xGUH18ONEeewAZDu5xuR4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xGUH2MONEeewAZDu5xuR4A"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_TyyG4MOOEeewAZDu5xuR4A" type="InformationFlow_Edge" source="_6PocwMONEeewAZDu5xuR4A" target="_Lz49sMOOEeewAZDu5xuR4A">
+      <children xmi:type="notation:DecorationNode" xmi:id="_Tyyt8MOOEeewAZDu5xuR4A" type="InformationFlow_ConveyedLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_p828YMOOEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Tyyt8cOOEeewAZDu5xuR4A" x="-1" y="28"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_Tyyt8sOOEeewAZDu5xuR4A" type="InformationFlow_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_p89qEMOOEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Tyyt88OOEeewAZDu5xuR4A" x="2" y="-56"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_Tyyt9MOOEeewAZDu5xuR4A" type="InformationFlow_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_p9G0AMOOEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Tyyt9cOOEeewAZDu5xuR4A" x="-8" y="39"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_TyyG4cOOEeewAZDu5xuR4A"/>
+      <element xmi:type="uml:InformationFlow" href="Plant.uml#_TyZFUMOOEeewAZDu5xuR4A"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TyyG4sOOEeewAZDu5xuR4A" points="[309, 160, -643984, -643984]$[310, 250, -643984, -643984]"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_TzBXdMOOEeewAZDu5xuR4A" type="StereotypeCommentLink" source="_TyyG4MOOEeewAZDu5xuR4A" target="_TzBXcMOOEeewAZDu5xuR4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_TzBXdcOOEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_TzBXecOOEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:InformationFlow" href="Plant.uml#_TyZFUMOOEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TzBXdsOOEeewAZDu5xuR4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TzBXd8OOEeewAZDu5xuR4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TzBXeMOOEeewAZDu5xuR4A"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>
diff --git a/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/left.uml b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/left.uml
new file mode 100644
index 0000000..d30d586
--- /dev/null
+++ b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/left.uml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Blocks="http://www.eclipse.org/papyrus/sysml/1.4/SysML/Blocks" xmlns:PortsAndFlows="http://www.eclipse.org/papyrus/sysml/1.4/SysML/PortsAndFlows" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/sysml/1.4/SysML/Blocks http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks http://www.eclipse.org/papyrus/sysml/1.4/SysML/PortsAndFlows http://www.eclipse.org/papyrus/sysml/1.4/SysML#//portsandflows">
+  <uml:Model xmi:id="_nt4OQMOMEeewAZDu5xuR4A" name="Plant">
+    <packageImport xmi:type="uml:PackageImport" xmi:id="_oGcfQMOMEeewAZDu5xuR4A">
+      <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+    </packageImport>
+    <packageImport xmi:type="uml:PackageImport" xmi:id="_oG3WAMOMEeewAZDu5xuR4A">
+      <importedPackage xmi:type="uml:Package" href="pathmap://SysML14_LIBRARIES/SysML-Standard-Library.uml#SysML.package_packagedElement_Libraries"/>
+    </packageImport>
+    <packageImport xmi:type="uml:PackageImport" xmi:id="_oPLkgMOMEeewAZDu5xuR4A">
+      <importedPackage xmi:type="uml:Package" href="pathmap://SysML14_LIBRARIES/QUDV.uml#QUDV"/>
+    </packageImport>
+    <packagedElement xmi:type="uml:Class" xmi:id="_u0gSsMOMEeewAZDu5xuR4A" name="Plant">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="__JsYcMOMEeewAZDu5xuR4A" name="controlsubsystem" type="_21-OwMOMEeewAZDu5xuR4A" aggregation="composite" association="__Jp8MMOMEeewAZDu5xuR4A">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__JtmkMOMEeewAZDu5xuR4A" value="1"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__JtmkcOMEeewAZDu5xuR4A" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_BVBnkMONEeewAZDu5xuR4A" name="physicalsubsystem" type="_6Hm-oMOMEeewAZDu5xuR4A" aggregation="composite" association="_BVBAgMONEeewAZDu5xuR4A">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BVBnkcONEeewAZDu5xuR4A" value="1"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BVBnksONEeewAZDu5xuR4A" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_T0SaYMOcEeeX_6ccon9chQ" name="supervisorysubsystem" type="_xmYkcMOMEeewAZDu5xuR4A" aggregation="composite" association="_VpoycMOcEeeX_6ccon9chQ"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_xmYkcMOMEeewAZDu5xuR4A" name="Supervisory Subsystem"/>
+    <packagedElement xmi:type="uml:Class" xmi:id="_21-OwMOMEeewAZDu5xuR4A" name="ControlSubsystem">
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_6PVh0MONEeewAZDu5xuR4A" name="out : Plant" type="_u0gSsMOMEeewAZDu5xuR4A" aggregation="composite"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_6Hm-oMOMEeewAZDu5xuR4A" name="Physical Subsystem">
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_Lzi_cMOOEeewAZDu5xuR4A" name="in : ControlSubsystem" type="_21-OwMOMEeewAZDu5xuR4A" aggregation="composite"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="__Jp8MMOMEeewAZDu5xuR4A" memberEnd="__JsYcMOMEeewAZDu5xuR4A __JuNoMOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__JrKUMOMEeewAZDu5xuR4A" source="org.eclipse.papyrus">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__JrxYMOMEeewAZDu5xuR4A" key="nature" value="UML_Nature"/>
+      </eAnnotations>
+      <ownedEnd xmi:type="uml:Property" xmi:id="__JuNoMOMEeewAZDu5xuR4A" name="plant" type="_u0gSsMOMEeewAZDu5xuR4A" association="__Jp8MMOMEeewAZDu5xuR4A">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T4I9cMONEeewAZDu5xuR4A"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T4LZsMONEeewAZDu5xuR4A" value="1"/>
+      </ownedEnd>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_BVBAgMONEeewAZDu5xuR4A" memberEnd="_BVBnkMONEeewAZDu5xuR4A _BVCOoMONEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BVBAgcONEeewAZDu5xuR4A" source="org.eclipse.papyrus">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BVBAgsONEeewAZDu5xuR4A" key="nature" value="UML_Nature"/>
+      </eAnnotations>
+      <ownedEnd xmi:type="uml:Property" xmi:id="_BVCOoMONEeewAZDu5xuR4A" name="plant" type="_u0gSsMOMEeewAZDu5xuR4A" association="_BVBAgMONEeewAZDu5xuR4A">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WSqfIMONEeewAZDu5xuR4A"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WSsUUMONEeewAZDu5xuR4A" value="1"/>
+      </ownedEnd>
+    </packagedElement>
+    <packagedElement xmi:type="uml:InformationFlow" xmi:id="_TyZFUMOOEeewAZDu5xuR4A" name="ItemFlow1" informationSource="_6PVh0MONEeewAZDu5xuR4A" informationTarget="_Lzi_cMOOEeewAZDu5xuR4A"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VpoycMOcEeeX_6ccon9chQ" memberEnd="_T0SaYMOcEeeX_6ccon9chQ _Vpr1wMOcEeeX_6ccon9chQ">
+      <ownedEnd xmi:type="uml:Property" xmi:id="_Vpr1wMOcEeeX_6ccon9chQ" type="_u0gSsMOMEeewAZDu5xuR4A" association="_VpoycMOcEeeX_6ccon9chQ"/>
+    </packagedElement>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGHIEMOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGNOsMOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#/"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGRgIMOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGSHMMOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//activities"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Activities"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGVKgMOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGVxkMOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//allocations"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Allocations"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGVxkcOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGWYoMOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGW_sMOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGW_scOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//constraintblocks"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_ConstraintBlocks"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGXmwMOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGXmwcOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//deprecatedelements"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_DeprecatedElements"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGYN0MOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGYN0cOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//modelelements"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_ModelElements"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGY04MOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGZb8MOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//portsandflows"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGZb8cOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGaDAMOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//requirements"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Requirements"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGaqEMOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGbRIMOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_Xd3JIMOcEeeX_6ccon9chQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xd6McMOcEeeX_6ccon9chQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+    </profileApplication>
+  </uml:Model>
+  <Blocks:Block xmi:id="_vK2WIMOMEeewAZDu5xuR4A" base_Class="_u0gSsMOMEeewAZDu5xuR4A"/>
+  <Blocks:Block xmi:id="_xmjjkMOMEeewAZDu5xuR4A" base_Class="_xmYkcMOMEeewAZDu5xuR4A"/>
+  <Blocks:Block xmi:id="_22JN4MOMEeewAZDu5xuR4A" base_Class="_21-OwMOMEeewAZDu5xuR4A"/>
+  <PortsAndFlows:ItemFlow xmi:id="_TyiPQMOOEeewAZDu5xuR4A" base_InformationFlow="_TyZFUMOOEeewAZDu5xuR4A"/>
+  <Blocks:Block xmi:id="_6HzL4MOMEeewAZDu5xuR4A" base_Class="_6Hm-oMOMEeewAZDu5xuR4A"/>
+</xmi:XMI>
diff --git a/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/right.di b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/right.di
new file mode 100644
index 0000000..f784d67
--- /dev/null
+++ b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/right.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrus.sysml.architecture.SysML14"/>
diff --git a/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/right.notation b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/right.notation
new file mode 100644
index 0000000..c998461
--- /dev/null
+++ b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/right.notation
@@ -0,0 +1,465 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+  <notation:Diagram xmi:id="_oLySQMOMEeewAZDu5xuR4A" type="PapyrusUMLClassDiagram" name="Plant Definition" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_vLf2YMOMEeewAZDu5xuR4A" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_vL1NkMOMEeewAZDu5xuR4A" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_vL1NkcOMEeewAZDu5xuR4A" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_vL1NksOMEeewAZDu5xuR4A" y="5"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_vL10oMOMEeewAZDu5xuR4A" type="Class_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_vL10ocOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_vL10osOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_vL10o8OMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vL10pMOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_vL10pcOMEeewAZDu5xuR4A" type="Class_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_vL10psOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_vL10p8OMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_vL10qMOMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vL10qcOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_vL10qsOMEeewAZDu5xuR4A" type="Class_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_vL10q8OMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_vL10rMOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_vL10rcOMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vL10rsOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_vOlmoMOMEeewAZDu5xuR4A" type="StereotypeLabel">
+        <styles xmi:type="notation:StringValueStyle" xmi:id="_vOlmocOMEeewAZDu5xuR4A" name="stereotype" stringValue="SysML::Blocks::Block"/>
+        <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_Block"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vOlmosOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_vOmNsMOMEeewAZDu5xuR4A" type="StereotypeBrace">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_vOmNscOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:StringValueStyle" xmi:id="_vOmNssOMEeewAZDu5xuR4A" name="stereotype" stringValue="SysML::Blocks::Block"/>
+        <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_Block"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vOmNs8OMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:Compartment" xmi:id="_vOrGMMOMEeewAZDu5xuR4A" type="Flow Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_vOrtQMOMEeewAZDu5xuR4A" type="constraints"/>
+      <children xmi:type="notation:Compartment" xmi:id="_vOsUUMOMEeewAZDu5xuR4A" type="Parts"/>
+      <children xmi:type="notation:Compartment" xmi:id="_vOsUUcOMEeewAZDu5xuR4A" type="Proxy Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_vOs7YMOMEeewAZDu5xuR4A" type="Full Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_vOs7YcOMEeewAZDu5xuR4A" type="References"/>
+      <children xmi:type="notation:Compartment" xmi:id="_vOs7YsOMEeewAZDu5xuR4A" type="Flow Properties"/>
+      <children xmi:type="notation:Compartment" xmi:id="_vOs7Y8OMEeewAZDu5xuR4A" type="Parameters"/>
+      <element xmi:type="uml:Class" href="Plant.uml#_u0gSsMOMEeewAZDu5xuR4A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vLf2YcOMEeewAZDu5xuR4A" x="360" y="40"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_vOv-sMOMEeewAZDu5xuR4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_vOv-scOMEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_vOv-s8OMEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_u0gSsMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vOv-ssOMEeewAZDu5xuR4A" x="200"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_xm0CQMOMEeewAZDu5xuR4A" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_xm0pUMOMEeewAZDu5xuR4A" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_xm0pUcOMEeewAZDu5xuR4A" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_xm0pUsOMEeewAZDu5xuR4A" y="5"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xm0pU8OMEeewAZDu5xuR4A" type="Class_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_xm0pVMOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_xm0pVcOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_xm0pVsOMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xm0pV8OMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xm0pWMOMEeewAZDu5xuR4A" type="Class_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_xm0pWcOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_xm0pWsOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_xm0pW8OMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xm0pXMOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xm0pXcOMEeewAZDu5xuR4A" type="Class_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_xm0pXsOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_xm0pX8OMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_xm0pYMOMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xm0pYcOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_xm9zQMOMEeewAZDu5xuR4A" type="StereotypeLabel">
+        <styles xmi:type="notation:StringValueStyle" xmi:id="_xm9zQcOMEeewAZDu5xuR4A" name="stereotype" stringValue="SysML::Blocks::Block"/>
+        <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_Block"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xm9zQsOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xm-aUMOMEeewAZDu5xuR4A" type="StereotypeBrace">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_xm-aUcOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:StringValueStyle" xmi:id="_xm-aUsOMEeewAZDu5xuR4A" name="stereotype" stringValue="SysML::Blocks::Block"/>
+        <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_Block"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xm-aU8OMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:Compartment" xmi:id="_xm_ocMOMEeewAZDu5xuR4A" type="Flow Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_xnAPgMOMEeewAZDu5xuR4A" type="constraints"/>
+      <children xmi:type="notation:Compartment" xmi:id="_xnAPgcOMEeewAZDu5xuR4A" type="Parts"/>
+      <children xmi:type="notation:Compartment" xmi:id="_xnAPgsOMEeewAZDu5xuR4A" type="Proxy Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_xnAPg8OMEeewAZDu5xuR4A" type="Full Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_xnA2kMOMEeewAZDu5xuR4A" type="References"/>
+      <children xmi:type="notation:Compartment" xmi:id="_xnA2kcOMEeewAZDu5xuR4A" type="Flow Properties"/>
+      <children xmi:type="notation:Compartment" xmi:id="_xnCEsMOMEeewAZDu5xuR4A" type="Parameters"/>
+      <element xmi:type="uml:Class" href="Plant.uml#_xmYkcMOMEeewAZDu5xuR4A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xm0CQcOMEeewAZDu5xuR4A" x="321" y="244" width="177"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_xnCrwMOMEeewAZDu5xuR4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_xnCrwcOMEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_xnCrw8OMEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_xmYkcMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xnCrwsOMEeewAZDu5xuR4A" x="200"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_22ZskMOMEeewAZDu5xuR4A" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_22aToMOMEeewAZDu5xuR4A" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_22aTocOMEeewAZDu5xuR4A" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_22aTosOMEeewAZDu5xuR4A" y="5"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_22aTo8OMEeewAZDu5xuR4A" type="Class_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_22aTpMOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_22aTpcOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_22aTpsOMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_22aTp8OMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_22aTqMOMEeewAZDu5xuR4A" type="Class_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_22aTqcOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_22aTqsOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_22aTq8OMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_22aTrMOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_22aTrcOMEeewAZDu5xuR4A" type="Class_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_22aTrsOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_22aTr8OMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_22aTsMOMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_22aTscOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_22hBUMOMEeewAZDu5xuR4A" type="StereotypeLabel">
+        <styles xmi:type="notation:StringValueStyle" xmi:id="_22hBUcOMEeewAZDu5xuR4A" name="stereotype" stringValue="SysML::Blocks::Block"/>
+        <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_Block"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_22hBUsOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_22hoYMOMEeewAZDu5xuR4A" type="StereotypeBrace">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_22hoYcOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:StringValueStyle" xmi:id="_22hoYsOMEeewAZDu5xuR4A" name="stereotype" stringValue="SysML::Blocks::Block"/>
+        <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_Block"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_22hoY8OMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:Compartment" xmi:id="_22i2gMOMEeewAZDu5xuR4A" type="Flow Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_22i2gcOMEeewAZDu5xuR4A" type="constraints"/>
+      <children xmi:type="notation:Compartment" xmi:id="_22jdkMOMEeewAZDu5xuR4A" type="Parts"/>
+      <children xmi:type="notation:Compartment" xmi:id="_22jdkcOMEeewAZDu5xuR4A" type="Proxy Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_22jdksOMEeewAZDu5xuR4A" type="Full Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_22jdk8OMEeewAZDu5xuR4A" type="References"/>
+      <children xmi:type="notation:Compartment" xmi:id="_22kEoMOMEeewAZDu5xuR4A" type="Flow Properties"/>
+      <children xmi:type="notation:Compartment" xmi:id="_22kEocOMEeewAZDu5xuR4A" type="Parameters"/>
+      <element xmi:type="uml:Class" href="Plant.uml#_21-OwMOMEeewAZDu5xuR4A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_22ZskcOMEeewAZDu5xuR4A" x="78" y="297" width="139"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_22krsMOMEeewAZDu5xuR4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_22krscOMEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_22krs8OMEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_21-OwMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_22krssOMEeewAZDu5xuR4A" x="200"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_6IAnQMOMEeewAZDu5xuR4A" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_6IAnQsOMEeewAZDu5xuR4A" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_6IAnQ8OMEeewAZDu5xuR4A" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_6IAnRMOMEeewAZDu5xuR4A" y="5"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_6IBOUMOMEeewAZDu5xuR4A" type="Class_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_6IBOUcOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_6IBOUsOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_6IBOU8OMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6IBOVMOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_6IBOVcOMEeewAZDu5xuR4A" type="Class_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_6IBOVsOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_6IBOV8OMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_6IBOWMOMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6IBOWcOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_6IBOWsOMEeewAZDu5xuR4A" type="Class_NestedClassifierCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_6IBOW8OMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_6IBOXMOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_6IBOXcOMEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6IBOXsOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_6IHU8MOMEeewAZDu5xuR4A" type="StereotypeLabel">
+        <styles xmi:type="notation:StringValueStyle" xmi:id="_6IHU8cOMEeewAZDu5xuR4A" name="stereotype" stringValue="SysML::Blocks::Block"/>
+        <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_Block"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6IHU8sOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_6IHU88OMEeewAZDu5xuR4A" type="StereotypeBrace">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_6IHU9MOMEeewAZDu5xuR4A"/>
+        <styles xmi:type="notation:StringValueStyle" xmi:id="_6IHU9cOMEeewAZDu5xuR4A" name="stereotype" stringValue="SysML::Blocks::Block"/>
+        <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks.stereotype_packagedElement_Block"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6IHU9sOMEeewAZDu5xuR4A"/>
+      </children>
+      <children xmi:type="notation:Compartment" xmi:id="_6IH8AMOMEeewAZDu5xuR4A" type="Flow Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_6IH8AcOMEeewAZDu5xuR4A" type="constraints"/>
+      <children xmi:type="notation:Compartment" xmi:id="_6IH8AsOMEeewAZDu5xuR4A" type="Parts"/>
+      <children xmi:type="notation:Compartment" xmi:id="_6IIjEMOMEeewAZDu5xuR4A" type="Proxy Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_6IIjEcOMEeewAZDu5xuR4A" type="Full Ports"/>
+      <children xmi:type="notation:Compartment" xmi:id="_6IIjEsOMEeewAZDu5xuR4A" type="References"/>
+      <children xmi:type="notation:Compartment" xmi:id="_6IIjE8OMEeewAZDu5xuR4A" type="Flow Properties"/>
+      <children xmi:type="notation:Compartment" xmi:id="_6IIjFMOMEeewAZDu5xuR4A" type="Parameters"/>
+      <element xmi:type="uml:Class" href="Plant.uml#_6Hm-oMOMEeewAZDu5xuR4A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6IAnQcOMEeewAZDu5xuR4A" x="581" y="297" width="149"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_6IJKIMOMEeewAZDu5xuR4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_6IJKIcOMEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_6IJKI8OMEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_6Hm-oMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6IJKIsOMEeewAZDu5xuR4A" x="200"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_oLySQcOMEeewAZDu5xuR4A" name="diagram_compatibility_version" stringValue="1.3.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_oLySQsOMEeewAZDu5xuR4A"/>
+    <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_oLySQ8OMEeewAZDu5xuR4A" diagramKindId="org.eclipse.papyrus.sysml14.diagram.blockdefinition">
+      <owner xmi:type="uml:Model" href="Plant.uml#_nt4OQMOMEeewAZDu5xuR4A"/>
+    </styles>
+    <styles xmi:type="notation:BooleanValueStyle" xmi:id="_zr7UoMOMEeewAZDu5xuR4A" name="rulergrid.snaptogeometry" booleanValue="true"/>
+    <styles xmi:type="notation:BooleanValueStyle" xmi:id="_zxHWoMOMEeewAZDu5xuR4A" name="rulergrid.snaptogrid"/>
+    <element xmi:type="uml:Model" href="Plant.uml#_nt4OQMOMEeewAZDu5xuR4A"/>
+    <edges xmi:type="notation:Connector" xmi:id="_vOwlwMOMEeewAZDu5xuR4A" type="StereotypeCommentLink" source="_vLf2YMOMEeewAZDu5xuR4A" target="_vOv-sMOMEeewAZDu5xuR4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_vOwlwcOMEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_vOxM0sOMEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_u0gSsMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vOwlwsOMEeewAZDu5xuR4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vOxM0MOMEeewAZDu5xuR4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vOxM0cOMEeewAZDu5xuR4A"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_xnCrxMOMEeewAZDu5xuR4A" type="StereotypeCommentLink" source="_xm0CQMOMEeewAZDu5xuR4A" target="_xnCrwMOMEeewAZDu5xuR4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_xnCrxcOMEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_xnDS0MOMEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_xmYkcMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xnCrxsOMEeewAZDu5xuR4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xnCrx8OMEeewAZDu5xuR4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xnCryMOMEeewAZDu5xuR4A"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_22krtMOMEeewAZDu5xuR4A" type="StereotypeCommentLink" source="_22ZskMOMEeewAZDu5xuR4A" target="_22krsMOMEeewAZDu5xuR4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_22krtcOMEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_22lSwMOMEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_21-OwMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_22krtsOMEeewAZDu5xuR4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_22krt8OMEeewAZDu5xuR4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_22kruMOMEeewAZDu5xuR4A"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_6IJKJMOMEeewAZDu5xuR4A" type="StereotypeCommentLink" source="_6IAnQMOMEeewAZDu5xuR4A" target="_6IJKIMOMEeewAZDu5xuR4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_6IJKJcOMEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_6IJKKcOMEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_6Hm-oMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6IJKJsOMEeewAZDu5xuR4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6IJKJ8OMEeewAZDu5xuR4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6IJKKMOMEeewAZDu5xuR4A"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="__KEL4MOMEeewAZDu5xuR4A" type="Association_Edge" source="_vLf2YMOMEeewAZDu5xuR4A" target="_22ZskMOMEeewAZDu5xuR4A">
+      <children xmi:type="notation:DecorationNode" xmi:id="__KEy8sOMEeewAZDu5xuR4A" type="Association_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CYWs0MONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="__KEy88OMEeewAZDu5xuR4A" y="-19"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="__KEy9MOMEeewAZDu5xuR4A" type="Association_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CYq14MONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="__KFaAMOMEeewAZDu5xuR4A" x="-1" y="18"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="__KFaAcOMEeewAZDu5xuR4A" type="Association_TargetRoleLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CZCCQMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="__KFaAsOMEeewAZDu5xuR4A" x="55" y="-20"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="__KFaA8OMEeewAZDu5xuR4A" type="Association_SourceRoleLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CZUWIMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="__KFaBMOMEeewAZDu5xuR4A" x="-38" y="72"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="__KFaBcOMEeewAZDu5xuR4A" type="Association_SourceMultiplicityLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CZi_oMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="__KFaBsOMEeewAZDu5xuR4A" x="55" y="17"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="__KFaB8OMEeewAZDu5xuR4A" type="Association_TargetMultiplicityLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CZ1TgMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="__KFaCMOMEeewAZDu5xuR4A" x="-40" y="-21"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="__KEy8MOMEeewAZDu5xuR4A"/>
+      <element xmi:type="uml:Association" href="Plant.uml#__Jp8MMOMEeewAZDu5xuR4A"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__KEy8cOMEeewAZDu5xuR4A" points="[360, 153, -643984, -643984]$[151, 139, -643984, -643984]$[151, 297, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__LyDIMOMEeewAZDu5xuR4A" id="(0.0,0.853448275862069)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__LyqMMOMEeewAZDu5xuR4A" id="(0.5251798561151079,0.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_BVZbAMONEeewAZDu5xuR4A" type="Association_Edge" source="_vLf2YMOMEeewAZDu5xuR4A" target="_6IAnQMOMEeewAZDu5xuR4A">
+      <children xmi:type="notation:DecorationNode" xmi:id="_BVaCEMONEeewAZDu5xuR4A" type="Association_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Et0vYMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_BVaCEcONEeewAZDu5xuR4A" x="1" y="-18"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_BVaCEsONEeewAZDu5xuR4A" type="Association_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EuEnAMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_BVaCE8ONEeewAZDu5xuR4A" y="19"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_BVaCFMONEeewAZDu5xuR4A" type="Association_TargetRoleLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EuRbUMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_BVaCFcONEeewAZDu5xuR4A" x="52" y="-18"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_BVaCFsONEeewAZDu5xuR4A" type="Association_SourceRoleLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EugE0MONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_BVaCF8ONEeewAZDu5xuR4A" x="-30" y="-74"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_BVaCGMONEeewAZDu5xuR4A" type="Association_SourceMultiplicityLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EuxKkMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_BVaCGcONEeewAZDu5xuR4A" x="52" y="19"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_BVaCGsONEeewAZDu5xuR4A" type="Association_TargetMultiplicityLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EvCQUMONEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_BVaCG8ONEeewAZDu5xuR4A" x="-29" y="26"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_BVZbAcONEeewAZDu5xuR4A"/>
+      <element xmi:type="uml:Association" href="Plant.uml#_BVBAgMONEeewAZDu5xuR4A"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BVZbAsONEeewAZDu5xuR4A" points="[460, 150, -643984, -643984]$[656, 139, -643984, -643984]$[656, 297, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BWRkwMONEeewAZDu5xuR4A" id="(1.0,0.853448275862069)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BWRkwcONEeewAZDu5xuR4A" id="(0.5033557046979866,0.0)"/>
+    </edges>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_xCfXwMONEeewAZDu5xuR4A" type="CompositeStructure" name="Plant Internal Composition" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_xCibEMONEeewAZDu5xuR4A" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_xCjCIMONEeewAZDu5xuR4A" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_xCjCIcONEeewAZDu5xuR4A" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_xCjCIsONEeewAZDu5xuR4A" y="15"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_xCjCI8ONEeewAZDu5xuR4A" type="Class_StructureCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_1XUqAMONEeewAZDu5xuR4A" type="Property_Shape">
+          <children xmi:type="notation:DecorationNode" xmi:id="_1XUqAsONEeewAZDu5xuR4A" type="Property_NameLabel"/>
+          <children xmi:type="notation:DecorationNode" xmi:id="_1XUqA8ONEeewAZDu5xuR4A" type="Property_FloatingNameLabel">
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_1XUqBMONEeewAZDu5xuR4A" y="15"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_1XVREMONEeewAZDu5xuR4A" type="Property_StructureCompartment">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_1XVREcONEeewAZDu5xuR4A"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1XVREsONEeewAZDu5xuR4A"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_1Yg80MONEeewAZDu5xuR4A" type="compartment_shape_display">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_1Yg80cONEeewAZDu5xuR4A"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1Yg80sONEeewAZDu5xuR4A"/>
+          </children>
+          <children xmi:type="notation:Shape" xmi:id="_6PocwMONEeewAZDu5xuR4A" type="Port_Shape">
+            <children xmi:type="notation:DecorationNode" xmi:id="_6PocwsONEeewAZDu5xuR4A" type="Port_NameLabel">
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_6Pocw8ONEeewAZDu5xuR4A" x="32" y="20"/>
+            </children>
+            <children xmi:type="notation:DecorationNode" xmi:id="_6PocxMONEeewAZDu5xuR4A" type="Port_StereotypeLabel">
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_6PocxcONEeewAZDu5xuR4A" x="25" y="-10"/>
+            </children>
+            <element xmi:type="uml:Port" href="Plant.uml#_6PVh0MONEeewAZDu5xuR4A"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6PocwcONEeewAZDu5xuR4A" x="148" y="30"/>
+          </children>
+          <element xmi:type="uml:Property" href="Plant.uml#__JsYcMOMEeewAZDu5xuR4A"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1XUqAcONEeewAZDu5xuR4A" x="104" y="29" width="329"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_3nTvoMONEeewAZDu5xuR4A" type="Property_Shape">
+          <children xmi:type="notation:DecorationNode" xmi:id="_3nTvosONEeewAZDu5xuR4A" type="Property_NameLabel"/>
+          <children xmi:type="notation:DecorationNode" xmi:id="_3nTvo8ONEeewAZDu5xuR4A" type="Property_FloatingNameLabel">
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_3nUWsMONEeewAZDu5xuR4A" y="15"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_3nUWscONEeewAZDu5xuR4A" type="Property_StructureCompartment">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_3nUWssONEeewAZDu5xuR4A"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3nUWs8ONEeewAZDu5xuR4A"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_3nZPMMONEeewAZDu5xuR4A" type="compartment_shape_display">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_3nZPMcONEeewAZDu5xuR4A"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3nZPMsONEeewAZDu5xuR4A"/>
+          </children>
+          <children xmi:type="notation:Shape" xmi:id="_Lz49sMOOEeewAZDu5xuR4A" type="Port_Shape">
+            <children xmi:type="notation:DecorationNode" xmi:id="_Lz49ssOOEeewAZDu5xuR4A" type="Port_NameLabel">
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Lz49s8OOEeewAZDu5xuR4A" x="40" y="-10"/>
+            </children>
+            <children xmi:type="notation:DecorationNode" xmi:id="_Lz49tMOOEeewAZDu5xuR4A" type="Port_StereotypeLabel">
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_Lz49tcOOEeewAZDu5xuR4A" x="25" y="-10"/>
+            </children>
+            <element xmi:type="uml:Port" href="Plant.uml#_Lzi_cMOOEeewAZDu5xuR4A"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lz49scOOEeewAZDu5xuR4A" x="150" y="-10"/>
+          </children>
+          <element xmi:type="uml:Property" href="Plant.uml#_BVBnkMONEeewAZDu5xuR4A"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3nTvocONEeewAZDu5xuR4A" x="104" y="169" width="341"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_TzBXcMOOEeewAZDu5xuR4A" type="StereotypeComment">
+          <styles xmi:type="notation:TitleStyle" xmi:id="_TzBXccOOEeewAZDu5xuR4A"/>
+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_TzBXc8OOEeewAZDu5xuR4A" name="BASE_ELEMENT">
+            <eObjectValue xmi:type="uml:InformationFlow" href="Plant.uml#_TyZFUMOOEeewAZDu5xuR4A"/>
+          </styles>
+          <element xsi:nil="true"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TzBXcsOOEeewAZDu5xuR4A" x="100" y="100"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_Vp4qEMOcEeeX_6ccon9chQ" type="Property_Shape">
+          <children xmi:type="notation:DecorationNode" xmi:id="_Vp5RIMOcEeeX_6ccon9chQ" type="Property_NameLabel"/>
+          <children xmi:type="notation:DecorationNode" xmi:id="_Vp5RIcOcEeeX_6ccon9chQ" type="Property_FloatingNameLabel">
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_Vp54MMOcEeeX_6ccon9chQ" y="15"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_Vp54McOcEeeX_6ccon9chQ" type="Property_StructureCompartment">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_Vp54MsOcEeeX_6ccon9chQ"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vp54M8OcEeeX_6ccon9chQ"/>
+          </children>
+          <element xmi:type="uml:Property" href="Plant.uml#_T0SaYMOcEeeX_6ccon9chQ"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vp4qEcOcEeeX_6ccon9chQ" x="164" y="289" width="361"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_xCjCJMONEeewAZDu5xuR4A"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xCjCJcONEeewAZDu5xuR4A"/>
+      </children>
+      <element xmi:type="uml:Class" href="Plant.uml#_u0gSsMOMEeewAZDu5xuR4A"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xCibEcONEeewAZDu5xuR4A" x="40" y="40" width="701" height="451"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_xGUH0MONEeewAZDu5xuR4A" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_xGUH0cONEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_xGUH08ONEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_u0gSsMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xGUH0sONEeewAZDu5xuR4A" x="240" y="40"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_xCfXwcONEeewAZDu5xuR4A" name="diagram_compatibility_version" stringValue="1.3.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_xCfXwsONEeewAZDu5xuR4A"/>
+    <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_xCfXw8ONEeewAZDu5xuR4A" diagramKindId="org.eclipse.papyrus.sysml14.diagram.internalblock">
+      <owner xmi:type="uml:Class" href="Plant.uml#_u0gSsMOMEeewAZDu5xuR4A"/>
+    </styles>
+    <styles xmi:type="notation:DoubleValueStyle" xmi:id="_RfKecMOOEeewAZDu5xuR4A" name="rulergrid.gridspacing" doubleValue="10.0"/>
+    <element xmi:type="uml:Class" href="Plant.uml#_u0gSsMOMEeewAZDu5xuR4A"/>
+    <edges xmi:type="notation:Connector" xmi:id="_xGUH1MONEeewAZDu5xuR4A" type="StereotypeCommentLink" source="_xCibEMONEeewAZDu5xuR4A" target="_xGUH0MONEeewAZDu5xuR4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_xGUH1cONEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_xGUH2cONEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="Plant.uml#_u0gSsMOMEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xGUH1sONEeewAZDu5xuR4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xGUH18ONEeewAZDu5xuR4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xGUH2MONEeewAZDu5xuR4A"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_TyyG4MOOEeewAZDu5xuR4A" type="InformationFlow_Edge" source="_6PocwMONEeewAZDu5xuR4A" target="_Lz49sMOOEeewAZDu5xuR4A">
+      <children xmi:type="notation:DecorationNode" xmi:id="_Tyyt8MOOEeewAZDu5xuR4A" type="InformationFlow_ConveyedLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_p828YMOOEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Tyyt8cOOEeewAZDu5xuR4A" x="-1" y="28"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_Tyyt8sOOEeewAZDu5xuR4A" type="InformationFlow_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_p89qEMOOEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Tyyt88OOEeewAZDu5xuR4A" x="2" y="-56"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_Tyyt9MOOEeewAZDu5xuR4A" type="InformationFlow_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_p9G0AMOOEeewAZDu5xuR4A" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Tyyt9cOOEeewAZDu5xuR4A" x="-8" y="39"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_TyyG4cOOEeewAZDu5xuR4A"/>
+      <element xmi:type="uml:InformationFlow" href="Plant.uml#_TyZFUMOOEeewAZDu5xuR4A"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TyyG4sOOEeewAZDu5xuR4A" points="[309, 160, -643984, -643984]$[310, 250, -643984, -643984]"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_TzBXdMOOEeewAZDu5xuR4A" type="StereotypeCommentLink" source="_TyyG4MOOEeewAZDu5xuR4A" target="_TzBXcMOOEeewAZDu5xuR4A">
+      <styles xmi:type="notation:FontStyle" xmi:id="_TzBXdcOOEeewAZDu5xuR4A"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_TzBXecOOEeewAZDu5xuR4A" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:InformationFlow" href="Plant.uml#_TyZFUMOOEeewAZDu5xuR4A"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TzBXdsOOEeewAZDu5xuR4A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TzBXd8OOEeewAZDu5xuR4A"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TzBXeMOOEeewAZDu5xuR4A"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>
diff --git a/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/right.uml b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/right.uml
new file mode 100644
index 0000000..d30d586
--- /dev/null
+++ b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/css/data/right.uml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Blocks="http://www.eclipse.org/papyrus/sysml/1.4/SysML/Blocks" xmlns:PortsAndFlows="http://www.eclipse.org/papyrus/sysml/1.4/SysML/PortsAndFlows" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/sysml/1.4/SysML/Blocks http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks http://www.eclipse.org/papyrus/sysml/1.4/SysML/PortsAndFlows http://www.eclipse.org/papyrus/sysml/1.4/SysML#//portsandflows">
+  <uml:Model xmi:id="_nt4OQMOMEeewAZDu5xuR4A" name="Plant">
+    <packageImport xmi:type="uml:PackageImport" xmi:id="_oGcfQMOMEeewAZDu5xuR4A">
+      <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+    </packageImport>
+    <packageImport xmi:type="uml:PackageImport" xmi:id="_oG3WAMOMEeewAZDu5xuR4A">
+      <importedPackage xmi:type="uml:Package" href="pathmap://SysML14_LIBRARIES/SysML-Standard-Library.uml#SysML.package_packagedElement_Libraries"/>
+    </packageImport>
+    <packageImport xmi:type="uml:PackageImport" xmi:id="_oPLkgMOMEeewAZDu5xuR4A">
+      <importedPackage xmi:type="uml:Package" href="pathmap://SysML14_LIBRARIES/QUDV.uml#QUDV"/>
+    </packageImport>
+    <packagedElement xmi:type="uml:Class" xmi:id="_u0gSsMOMEeewAZDu5xuR4A" name="Plant">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="__JsYcMOMEeewAZDu5xuR4A" name="controlsubsystem" type="_21-OwMOMEeewAZDu5xuR4A" aggregation="composite" association="__Jp8MMOMEeewAZDu5xuR4A">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__JtmkMOMEeewAZDu5xuR4A" value="1"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__JtmkcOMEeewAZDu5xuR4A" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_BVBnkMONEeewAZDu5xuR4A" name="physicalsubsystem" type="_6Hm-oMOMEeewAZDu5xuR4A" aggregation="composite" association="_BVBAgMONEeewAZDu5xuR4A">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BVBnkcONEeewAZDu5xuR4A" value="1"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BVBnksONEeewAZDu5xuR4A" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_T0SaYMOcEeeX_6ccon9chQ" name="supervisorysubsystem" type="_xmYkcMOMEeewAZDu5xuR4A" aggregation="composite" association="_VpoycMOcEeeX_6ccon9chQ"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_xmYkcMOMEeewAZDu5xuR4A" name="Supervisory Subsystem"/>
+    <packagedElement xmi:type="uml:Class" xmi:id="_21-OwMOMEeewAZDu5xuR4A" name="ControlSubsystem">
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_6PVh0MONEeewAZDu5xuR4A" name="out : Plant" type="_u0gSsMOMEeewAZDu5xuR4A" aggregation="composite"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_6Hm-oMOMEeewAZDu5xuR4A" name="Physical Subsystem">
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_Lzi_cMOOEeewAZDu5xuR4A" name="in : ControlSubsystem" type="_21-OwMOMEeewAZDu5xuR4A" aggregation="composite"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="__Jp8MMOMEeewAZDu5xuR4A" memberEnd="__JsYcMOMEeewAZDu5xuR4A __JuNoMOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__JrKUMOMEeewAZDu5xuR4A" source="org.eclipse.papyrus">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__JrxYMOMEeewAZDu5xuR4A" key="nature" value="UML_Nature"/>
+      </eAnnotations>
+      <ownedEnd xmi:type="uml:Property" xmi:id="__JuNoMOMEeewAZDu5xuR4A" name="plant" type="_u0gSsMOMEeewAZDu5xuR4A" association="__Jp8MMOMEeewAZDu5xuR4A">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T4I9cMONEeewAZDu5xuR4A"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T4LZsMONEeewAZDu5xuR4A" value="1"/>
+      </ownedEnd>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_BVBAgMONEeewAZDu5xuR4A" memberEnd="_BVBnkMONEeewAZDu5xuR4A _BVCOoMONEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BVBAgcONEeewAZDu5xuR4A" source="org.eclipse.papyrus">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BVBAgsONEeewAZDu5xuR4A" key="nature" value="UML_Nature"/>
+      </eAnnotations>
+      <ownedEnd xmi:type="uml:Property" xmi:id="_BVCOoMONEeewAZDu5xuR4A" name="plant" type="_u0gSsMOMEeewAZDu5xuR4A" association="_BVBAgMONEeewAZDu5xuR4A">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WSqfIMONEeewAZDu5xuR4A"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WSsUUMONEeewAZDu5xuR4A" value="1"/>
+      </ownedEnd>
+    </packagedElement>
+    <packagedElement xmi:type="uml:InformationFlow" xmi:id="_TyZFUMOOEeewAZDu5xuR4A" name="ItemFlow1" informationSource="_6PVh0MONEeewAZDu5xuR4A" informationTarget="_Lzi_cMOOEeewAZDu5xuR4A"/>
+    <packagedElement xmi:type="uml:Association" xmi:id="_VpoycMOcEeeX_6ccon9chQ" memberEnd="_T0SaYMOcEeeX_6ccon9chQ _Vpr1wMOcEeeX_6ccon9chQ">
+      <ownedEnd xmi:type="uml:Property" xmi:id="_Vpr1wMOcEeeX_6ccon9chQ" type="_u0gSsMOMEeewAZDu5xuR4A" association="_VpoycMOcEeeX_6ccon9chQ"/>
+    </packagedElement>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGHIEMOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGNOsMOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#/"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGRgIMOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGSHMMOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//activities"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Activities"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGVKgMOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGVxkMOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//allocations"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Allocations"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGVxkcOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGWYoMOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGW_sMOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGW_scOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//constraintblocks"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_ConstraintBlocks"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGXmwMOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGXmwcOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//deprecatedelements"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_DeprecatedElements"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGYN0MOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGYN0cOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//modelelements"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_ModelElements"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGY04MOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGZb8MOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//portsandflows"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGZb8cOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGaDAMOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//requirements"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Requirements"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_oGaqEMOMEeewAZDu5xuR4A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oGbRIMOMEeewAZDu5xuR4A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_Xd3JIMOcEeeX_6ccon9chQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xd6McMOcEeeX_6ccon9chQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+    </profileApplication>
+  </uml:Model>
+  <Blocks:Block xmi:id="_vK2WIMOMEeewAZDu5xuR4A" base_Class="_u0gSsMOMEeewAZDu5xuR4A"/>
+  <Blocks:Block xmi:id="_xmjjkMOMEeewAZDu5xuR4A" base_Class="_xmYkcMOMEeewAZDu5xuR4A"/>
+  <Blocks:Block xmi:id="_22JN4MOMEeewAZDu5xuR4A" base_Class="_21-OwMOMEeewAZDu5xuR4A"/>
+  <PortsAndFlows:ItemFlow xmi:id="_TyiPQMOOEeewAZDu5xuR4A" base_InformationFlow="_TyZFUMOOEeewAZDu5xuR4A"/>
+  <Blocks:Block xmi:id="_6HzL4MOMEeewAZDu5xuR4A" base_Class="_6Hm-oMOMEeewAZDu5xuR4A"/>
+</xmi:XMI>
diff --git a/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/suite/AllTests.java b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/suite/AllTests.java
index f695305..73a628b 100644
--- a/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/suite/AllTests.java
+++ b/plugins/compare/tests/org.eclipse.papyrus.compare.diagram.tests/src/org/eclipse/papyrus/compare/diagram/tests/suite/AllTests.java
@@ -10,6 +10,7 @@
  *     Stefan Dirix - add ModelExtensionUtil, SaveParameterHook and URIAttachment tests
  *     Philip Langer - add IngoreDiFileModelElementsTest
  *     Martin Fleck - add MergeNonConflictingCascadingDifferencesFilterTest
+ *     Christian W. Damus - bug 512529
  *******************************************************************************/
 package org.eclipse.papyrus.compare.diagram.tests.suite;
 
@@ -21,6 +22,7 @@
 import org.eclipse.gmf.runtime.notation.NotationPackage;
 import org.eclipse.papyrus.compare.diagram.tests.comparison.DiagramTooltipProviderTest;
 import org.eclipse.papyrus.compare.diagram.tests.context.PapyrusContextUtilTest;
+import org.eclipse.papyrus.compare.diagram.tests.css.CSSTest;
 import org.eclipse.papyrus.compare.diagram.tests.difile.IgnoreDiFilePostProcessorTest;
 import org.eclipse.papyrus.compare.diagram.tests.groups.PapyrusConflictsGroupProviderTests;
 import org.eclipse.papyrus.compare.diagram.tests.merge.AssocMergeTest;
@@ -52,7 +54,9 @@
 		SaveParameterHookTest.class, SaveParameterHookIntegrationTest.class, URIAttachmentTest.class,
 		DiagramTooltipProviderTest.class, PapyrusConflictsGroupProviderTests.class,
 		IgnoreDiFilePostProcessorTest.class, PapyrusContextUtilTest.class,
-		MergeNonConflictingCascadingFilterTest.class, MergeDiffInvolvingRefineDiffTest.class, })
+		MergeNonConflictingCascadingFilterTest.class, MergeDiffInvolvingRefineDiffTest.class, //
+		CSSTest.class, //
+})
 public class AllTests {
 
 	@BeforeClass