Bug 494659 - [SysML IBD] Unable to create IBD for existing Block
- use the new reference for the stereotypes
- add unit test to avoid regression
Change-Id: I0b4a1a4913df7bff4cdd8ad2d1ed85a5465193b3
Signed-off-by: Benoit Maggi <benoit.maggi@cea.fr>
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition.tests/src/org/eclipse/papyrus/sysml14/diagram/blockdefinition/tests/resources/ViewpointModelTest.java b/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition.tests/src/org/eclipse/papyrus/sysml14/diagram/blockdefinition/tests/resources/ViewpointModelTest.java
index a539811..39d7960 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition.tests/src/org/eclipse/papyrus/sysml14/diagram/blockdefinition/tests/resources/ViewpointModelTest.java
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition.tests/src/org/eclipse/papyrus/sysml14/diagram/blockdefinition/tests/resources/ViewpointModelTest.java
@@ -14,10 +14,15 @@
package org.eclipse.papyrus.sysml14.diagram.blockdefinition.tests.resources;
import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.util.Diagnostician;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule;
import org.eclipse.papyrus.sysml14.diagram.blockdefinition.Activator;
import org.junit.Assert;
import org.junit.Ignore;
@@ -29,9 +34,10 @@
*
* @author Benoit Maggi
*/
+@SuppressWarnings("nls")
public class ViewpointModelTest {
- public static final String VIEWPOINT_MODEL_PATH = Activator.PLUGIN_ID+"/resources/configuration/blockDefinitionDiagram.configuration"; //$NON-NLS-1$
+ public static final String VIEWPOINT_MODEL_PATH = Activator.PLUGIN_ID+"/resources/configuration/blockDefinitionDiagram.configuration";
/**
* Validate the model with the rules defined in the meta-model tooling
@@ -42,7 +48,29 @@
URI createPlatformPluginURI = URI.createPlatformPluginURI(VIEWPOINT_MODEL_PATH, true);
Resource resource = new ResourceSetImpl().getResource(createPlatformPluginURI, true);
Diagnostic diagnostic = Diagnostician.INSTANCE.validate(resource.getContents().get(0));
- Assert.assertEquals("The blockDefinitionDiagram.configuration model is not valid ", Diagnostic.OK, diagnostic.getSeverity()); //$NON-NLS-1$
+ Assert.assertEquals("The blockDefinitionDiagram.configuration model is not valid ", Diagnostic.OK, diagnostic.getSeverity());
}
+
+ /**
+ * Check that the stereotypes are correctly referenced
+ * Can be removed once the validation is working
+ */
+ @Test
+ public void checkStereotype() {
+ URI createPlatformPluginURI = URI.createPlatformPluginURI(VIEWPOINT_MODEL_PATH, true);
+ ResourceSetImpl resourceSetImpl = new ResourceSetImpl();
+ Resource resource = resourceSetImpl.getResource(createPlatformPluginURI, true);
+ TreeIterator<EObject> allContents = resource.getAllContents();
+ while (allContents.hasNext()) {
+ EObject eObject = (EObject) allContents.next();
+ if (eObject instanceof ModelRule) { // PapyrusConfiguration
+ ModelRule modelRule = (ModelRule) eObject;
+ EList<EClass> stereotypes = modelRule.getStereotypes();
+ for (EClass eClass : stereotypes) {
+ Assert.assertFalse(eClass.eIsProxy());
+ }
+ }
+ }
+ }
}
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/configuration/blockDefinitionDiagram.configuration b/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/configuration/blockDefinitionDiagram.configuration
index ef909e9..c6aa0b6 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/configuration/blockDefinitionDiagram.configuration
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.blockdefinition/resources/configuration/blockDefinitionDiagram.configuration
@@ -20,22 +20,22 @@
</modelRules>
<modelRules xmi:id="_d1wI8DEWEeWBaOAEtkgP6w">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML/Blocks#//Block"/>
+ <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks/Block"/>
</modelRules>
<modelRules xmi:id="_tom7sDEsEeWJxc-KaJbwrw">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML/ConstraintBlocks#//ConstraintBlock"/>
+ <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//constraintblocks/ConstraintBlock"/>
</modelRules>
<owningRules xmi:id="_ZrBf45aBEeS8eNvSwD0lgA">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</owningRules>
<owningRules xmi:id="_aYehEDEnEeWu9rf11ohCng">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML/Blocks#//Block"/>
+ <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks/Block"/>
</owningRules>
<owningRules xmi:id="_x62M8DEsEeWJxc-KaJbwrw">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML/ConstraintBlocks#//ConstraintBlock"/>
+ <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//constraintblocks/ConstraintBlock"/>
</owningRules>
<childRules xmi:id="_ZrBf5ZaBEeS8eNvSwD0lgA"/>
<paletteRules xmi:id="_N4GzIKFQEeSx6MYdei1rKA" permit="false" element="clazz.group.*"/>
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock.tests/src/org/eclipse/papyrus/sysml14/diagram/blockdefinition/tests/resources/ViewpointModelTest.java b/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock.tests/src/org/eclipse/papyrus/sysml14/diagram/blockdefinition/tests/resources/ViewpointModelTest.java
index 7e2e8da..1e78074 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock.tests/src/org/eclipse/papyrus/sysml14/diagram/blockdefinition/tests/resources/ViewpointModelTest.java
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock.tests/src/org/eclipse/papyrus/sysml14/diagram/blockdefinition/tests/resources/ViewpointModelTest.java
@@ -14,10 +14,15 @@
package org.eclipse.papyrus.sysml14.diagram.blockdefinition.tests.resources;
import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.util.Diagnostician;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule;
import org.eclipse.papyrus.sysml14.diagram.internalblock.Activator;
import org.junit.Assert;
import org.junit.Ignore;
@@ -45,4 +50,25 @@
Assert.assertEquals("The internalBlockDiagram.configuration model is not valid ", Diagnostic.OK, diagnostic.getSeverity()); //$NON-NLS-1$
}
+ /**
+ * Check that the stereotypes are correctly referenced
+ * Can be removed once the validation is working
+ */
+ @Test
+ public void checkStereotype() {
+ URI createPlatformPluginURI = URI.createPlatformPluginURI(VIEWPOINT_MODEL_PATH, true);
+ ResourceSetImpl resourceSetImpl = new ResourceSetImpl();
+ Resource resource = resourceSetImpl.getResource(createPlatformPluginURI, true);
+ TreeIterator<EObject> allContents = resource.getAllContents();
+ while (allContents.hasNext()) {
+ EObject eObject = (EObject) allContents.next();
+ if (eObject instanceof ModelRule) { // PapyrusConfiguration
+ ModelRule modelRule = (ModelRule) eObject;
+ EList<EClass> stereotypes = modelRule.getStereotypes();
+ for (EClass eClass : stereotypes) {
+ Assert.assertFalse(eClass.eIsProxy());
+ }
+ }
+ }
+ }
}
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/configuration/internalBlockDiagram.configuration b/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/configuration/internalBlockDiagram.configuration
index 6ab4374..ee4f2bb 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/configuration/internalBlockDiagram.configuration
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.internalblock/resources/configuration/internalBlockDiagram.configuration
@@ -17,19 +17,19 @@
<profiles href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#/"/>
<modelRules xmi:id="_ZrBf4ZaBEeS8eNvSwD0lgA">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML/Blocks#//Block"/>
+ <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks/Block"/>
</modelRules>
<modelRules xmi:id="__1p68DEsEeWJxc-KaJbwrw">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML/ConstraintBlocks#//ConstraintBlock"/>
+ <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//constraintblocks/ConstraintBlock"/>
</modelRules>
<owningRules xmi:id="_ZrBf45aBEeS8eNvSwD0lgA">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML/Blocks#//Block"/>
+ <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks/Block"/>
</owningRules>
<owningRules xmi:id="_BkuE0DEtEeWJxc-KaJbwrw">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML/ConstraintBlocks#//ConstraintBlock"/>
+ <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//constraintblocks/ConstraintBlock"/>
</owningRules>
<owningRules xmi:id="_mIEUsDEnEeWu9rf11ohCng">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.parametric.tests/src/org/eclipse/papyrus/sysml14/diagram/parametric/tests/resources/ViewpointModelTest.java b/diagram/org.eclipse.papyrus.sysml14.diagram.parametric.tests/src/org/eclipse/papyrus/sysml14/diagram/parametric/tests/resources/ViewpointModelTest.java
index 5b0f848..c4e9060 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.parametric.tests/src/org/eclipse/papyrus/sysml14/diagram/parametric/tests/resources/ViewpointModelTest.java
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.parametric.tests/src/org/eclipse/papyrus/sysml14/diagram/parametric/tests/resources/ViewpointModelTest.java
@@ -14,10 +14,15 @@
package org.eclipse.papyrus.sysml14.diagram.parametric.tests.resources;
import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.util.Diagnostician;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule;
import org.eclipse.papyrus.sysml14.diagram.parametric.Activator;
import org.junit.Assert;
import org.junit.Ignore;
@@ -45,4 +50,25 @@
Assert.assertEquals("The parametricDiagram.configuration viewpoint model is not valid ", Diagnostic.OK, diagnostic.getSeverity()); //$NON-NLS-1$
}
+ /**
+ * Check that the stereotypes are correctly referenced
+ * Can be removed once the validation is working
+ */
+ @Test
+ public void checkStereotype() {
+ URI createPlatformPluginURI = URI.createPlatformPluginURI(VIEWPOINT_MODEL_PATH, true);
+ ResourceSetImpl resourceSetImpl = new ResourceSetImpl();
+ Resource resource = resourceSetImpl.getResource(createPlatformPluginURI, true);
+ TreeIterator<EObject> allContents = resource.getAllContents();
+ while (allContents.hasNext()) {
+ EObject eObject = (EObject) allContents.next();
+ if (eObject instanceof ModelRule) { // PapyrusConfiguration
+ ModelRule modelRule = (ModelRule) eObject;
+ EList<EClass> stereotypes = modelRule.getStereotypes();
+ for (EClass eClass : stereotypes) {
+ Assert.assertFalse(eClass.eIsProxy());
+ }
+ }
+ }
+ }
}
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/resources/configuration/parametricDiagram.configuration b/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/resources/configuration/parametricDiagram.configuration
index d2ab805..05f58b9 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/resources/configuration/parametricDiagram.configuration
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.parametric/resources/configuration/parametricDiagram.configuration
@@ -5,19 +5,19 @@
<profiles href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#/"/>
<modelRules xmi:id="_SUm70TEoEeWu9rf11ohCng">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML/Blocks#//Block"/>
+ <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks/Block"/>
</modelRules>
<modelRules xmi:id="_SMsV8TEoEeWu9rf11ohCng">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML/ConstraintBlocks#//ConstraintBlock"/>
+ <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//constraintblocks/ConstraintBlock"/>
</modelRules>
<owningRules xmi:id="_iyse4DEoEeWu9rf11ohCng">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML/Blocks#//Block"/>
+ <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks/Block"/>
</owningRules>
<owningRules xmi:id="_SMsV8jEoEeWu9rf11ohCng">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML/ConstraintBlocks#//ConstraintBlock"/>
+ <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//constraintblocks/ConstraintBlock"/>
</owningRules>
<owningRules xmi:id="_ZrBf45aBEeS8eNvSwD0lgA">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.requirement.tests/src/org/eclipse/papyrus/sysml14/diagram/requirement/tests/resources/ViewpointModelTest.java b/diagram/org.eclipse.papyrus.sysml14.diagram.requirement.tests/src/org/eclipse/papyrus/sysml14/diagram/requirement/tests/resources/ViewpointModelTest.java
index f79e418..2b609f0 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.requirement.tests/src/org/eclipse/papyrus/sysml14/diagram/requirement/tests/resources/ViewpointModelTest.java
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.requirement.tests/src/org/eclipse/papyrus/sysml14/diagram/requirement/tests/resources/ViewpointModelTest.java
@@ -14,10 +14,15 @@
package org.eclipse.papyrus.sysml14.diagram.requirement.tests.resources;
import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.util.Diagnostician;
+import org.eclipse.papyrus.infra.viewpoints.configuration.ModelRule;
import org.eclipse.papyrus.sysml14.diagram.requirement.Activator;
import org.junit.Assert;
import org.junit.Ignore;
@@ -45,4 +50,25 @@
Assert.assertEquals("The requirementDiagram.configuration viewpoint model is not valid ", Diagnostic.OK, diagnostic.getSeverity()); //$NON-NLS-1$
}
+ /**
+ * Check that the stereotypes are correctly referenced
+ * Can be removed once the validation is working
+ */
+ @Test
+ public void checkStereotype() {
+ URI createPlatformPluginURI = URI.createPlatformPluginURI(VIEWPOINT_MODEL_PATH, true);
+ ResourceSetImpl resourceSetImpl = new ResourceSetImpl();
+ Resource resource = resourceSetImpl.getResource(createPlatformPluginURI, true);
+ TreeIterator<EObject> allContents = resource.getAllContents();
+ while (allContents.hasNext()) {
+ EObject eObject = (EObject) allContents.next();
+ if (eObject instanceof ModelRule) { // PapyrusConfiguration
+ ModelRule modelRule = (ModelRule) eObject;
+ EList<EClass> stereotypes = modelRule.getStereotypes();
+ for (EClass eClass : stereotypes) {
+ Assert.assertFalse(eClass.eIsProxy());
+ }
+ }
+ }
+ }
}
diff --git a/diagram/org.eclipse.papyrus.sysml14.diagram.requirement/resources/configuration/requirementDiagram.configuration b/diagram/org.eclipse.papyrus.sysml14.diagram.requirement/resources/configuration/requirementDiagram.configuration
index 2503d56..2c889ed 100644
--- a/diagram/org.eclipse.papyrus.sysml14.diagram.requirement/resources/configuration/requirementDiagram.configuration
+++ b/diagram/org.eclipse.papyrus.sysml14.diagram.requirement/resources/configuration/requirementDiagram.configuration
@@ -1,30 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (c) 2015 CEA LIST.
-
- 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:
- Benoit Maggi (CEA LIST) benoit.maggi@cea.fr - Initial API and implementation
-
--->
<configuration:PapyrusConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" xmi:id="_ko07IErbEeSdQKzSRatBjg">
<viewpoints xsi:type="configuration:PapyrusViewpoint" xmi:id="_xogdoErbEeSdQKzSRatBjg" name="Default Papyrus Viewpoint">
<modelKinds xsi:type="configuration:PapyrusDiagram" xmi:id="_ZrBf4JaBEeS8eNvSwD0lgA" name="SysML 1.4 Requirement" icon="platform:/plugin/org.eclipse.papyrus.sysml14.diagram.requirement/resources/icons/obj16/Diagram_Requirement.gif" implementationID="PapyrusUMLClassDiagram" categories="_lfthYMykEeSuYbPdZwWlyw" customPalette="platform:/plugin/org.eclipse.papyrus.sysml14.diagram.requirement/resources/palette/requirementDiagram.paletteconfiguration" customStyle="platform:/plugin/org.eclipse.papyrus.sysml14.diagram.requirement/resources/style/requirementDiagram.css">
<profiles href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#/"/>
<modelRules xmi:id="_SErQIDEtEeWJxc-KaJbwrw">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML/Requirements#//Requirement"/>
+ <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//requirements/Requirement"/>
</modelRules>
<modelRules xmi:id="_ZrBf4ZaBEeS8eNvSwD0lgA">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
</modelRules>
<owningRules xmi:id="_VV2F8DEtEeWJxc-KaJbwrw">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
- <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML/Requirements#//Requirement"/>
+ <stereotypes href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//requirements/Requirement"/>
</owningRules>
<owningRules xmi:id="_ZrBf45aBEeS8eNvSwD0lgA">
<element href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>