Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Tessier2016-04-01 08:22:33 +0000
committerPatrick Tessier2016-04-01 08:24:20 +0000
commit79a072569c057da44ba5f20ffd50737cb40217de (patch)
tree947b0ff43099b4727e6e10ee1bda6c99499836b1 /extraplugins/requirements/org.eclipse.papyrus.requirements.sysml.verification
parentfa722c48bf546860332ba7f4ddc6bb017b56284b (diff)
downloadorg.eclipse.papyrus-79a072569c057da44ba5f20ffd50737cb40217de.tar.gz
org.eclipse.papyrus-79a072569c057da44ba5f20ffd50737cb40217de.tar.xz
org.eclipse.papyrus-79a072569c057da44ba5f20ffd50737cb40217de.zip
Bug 489570 - [Extra plugins][Requirements] The system shall allow to the
users to automatically verify SysML requirements models Change-Id: Ie7e7b867dc65e3748751bdf1618e06dae1728db2
Diffstat (limited to 'extraplugins/requirements/org.eclipse.papyrus.requirements.sysml.verification')
-rw-r--r--extraplugins/requirements/org.eclipse.papyrus.requirements.sysml.verification/plugin.xml19
-rw-r--r--extraplugins/requirements/org.eclipse.papyrus.requirements.sysml.verification/src/org/eclipse/papyrus/requirements/sysml/verfication/rules/AllRequirementsMustBeVerified.java49
2 files changed, 68 insertions, 0 deletions
diff --git a/extraplugins/requirements/org.eclipse.papyrus.requirements.sysml.verification/plugin.xml b/extraplugins/requirements/org.eclipse.papyrus.requirements.sysml.verification/plugin.xml
index 15a86df577c..2d26d3f9aa8 100644
--- a/extraplugins/requirements/org.eclipse.papyrus.requirements.sysml.verification/plugin.xml
+++ b/extraplugins/requirements/org.eclipse.papyrus.requirements.sysml.verification/plugin.xml
@@ -34,6 +34,25 @@
class="Class">
</target>
</constraint>
+ <constraint
+ class="org.eclipse.papyrus.requirements.sysml.verfication.rules.AllRequirementsMustBeVerified"
+ id="org.eclipse.papyrus.requirements.sysml.verfication.rules.AllRequirementsMustBeVerified"
+ isEnabledByDefault="true"
+ lang="Java"
+ mode="Batch"
+ name="Papyrus 4 Requirements - Rule 2: Are all the requirements verified"
+ severity="WARNING"
+ statusCode="2">
+ <message>
+ Papyrus 4 Requirements - Rule 1: {0}.
+ </message>
+ <description>
+ The requirement is not liked by any Element
+ </description>
+ <target
+ class="Class">
+ </target>
+ </constraint>
</constraints>
</constraintProvider>
</extension>
diff --git a/extraplugins/requirements/org.eclipse.papyrus.requirements.sysml.verification/src/org/eclipse/papyrus/requirements/sysml/verfication/rules/AllRequirementsMustBeVerified.java b/extraplugins/requirements/org.eclipse.papyrus.requirements.sysml.verification/src/org/eclipse/papyrus/requirements/sysml/verfication/rules/AllRequirementsMustBeVerified.java
new file mode 100644
index 00000000000..c2f75986526
--- /dev/null
+++ b/extraplugins/requirements/org.eclipse.papyrus.requirements.sysml.verification/src/org/eclipse/papyrus/requirements/sysml/verfication/rules/AllRequirementsMustBeVerified.java
@@ -0,0 +1,49 @@
+/*****************************************************************************
+ * Copyright (c) 2016 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:
+ *
+ * Mauricio Alferez (mauricio.alferez@cea.fr) CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.requirements.sysml.verfication.rules;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.validation.AbstractModelConstraint;
+import org.eclipse.emf.validation.EMFEventType;
+import org.eclipse.emf.validation.IValidationContext;
+import org.eclipse.papyrus.requirements.sysml.common.I_SysMLStereotype;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Stereotype;
+
+public class AllRequirementsMustBeVerified extends AbstractModelConstraint {
+
+ @Override
+ public IStatus validate(IValidationContext context) {
+ Class clazz = (Class)context.getTarget();
+ EMFEventType eType = context.getEventType();
+ // In the case of batch mode
+ if(eType == EMFEventType.NULL) {
+ if(clazz.getAppliedStereotype(I_SysMLStereotype.REQUIREMENT_STEREOTYPE) != null) {
+ Stereotype reqStereotype = clazz.getAppliedStereotype(I_SysMLStereotype.REQUIREMENT_STEREOTYPE);
+ Object listOfObjectsThatSatisfyRequirement = clazz.getValue(reqStereotype, "verifiedBy");
+ if(listOfObjectsThatSatisfyRequirement instanceof EList<?>) {
+ @SuppressWarnings("unchecked")
+ EList<EObject> list = (EList<EObject>)listOfObjectsThatSatisfyRequirement;
+ if(list.isEmpty()) {
+ return context.createFailureStatus(clazz.getName() + " must by verified.");
+ }
+ }
+ }
+ }
+ return context.createSuccessStatus();
+ }
+}

Back to the top