From cceb551ff9a0ef879bbc748c14ea8e28de7ad162 Mon Sep 17 00:00:00 2001
From: Vincent Aravantinos <aravantinos@fortiss.org>
Date: Thu, 28 Apr 2016 12:31:26 +0000
Subject: [PATCH] adds ConstraintsUtils.setVerificationStatus refs 2553

---
 .../kernel/utils/ConstraintsUtils.java        | 26 +++++++++++++++----
 1 file changed, 21 insertions(+), 5 deletions(-)

diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/utils/ConstraintsUtils.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/utils/ConstraintsUtils.java
index 17ed3b20b..64c1891a6 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/utils/ConstraintsUtils.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/utils/ConstraintsUtils.java
@@ -22,6 +22,7 @@ import org.fortiss.tooling.kernel.model.constraints.ErrorVerificationStatus;
 import org.fortiss.tooling.kernel.model.constraints.FailVerificationStatus;
 import org.fortiss.tooling.kernel.model.constraints.IConstrained;
 import org.fortiss.tooling.kernel.model.constraints.IConstraint;
+import org.fortiss.tooling.kernel.model.constraints.IConstraintVerificationStatus;
 import org.fortiss.tooling.kernel.model.constraints.OutdatedVerificationStatus;
 import org.fortiss.tooling.kernel.model.constraints.SuccessVerificationStatus;
 import org.fortiss.tooling.kernel.service.IConstraintVerificationService;
@@ -32,7 +33,7 @@ import org.fortiss.tooling.kernel.service.IConstraintVerificationService;
  * @author aravantinos
  * @author $Author$
  * @version $Rev$
- * @ConQAT.Rating YELLOW Hash: 16AE39268EA05749A3262EFCF0601695
+ * @ConQAT.Rating YELLOW Hash: 27D40FEDD5231775D755E9781D21C0C9
  */
 public class ConstraintsUtils {
 	/**
@@ -67,6 +68,21 @@ public class ConstraintsUtils {
 		}
 	}
 
+	/**
+	 * @param c
+	 * @param s
+	 *            Set the verification status of <code>c</code> to <code>s</code> and the constraint
+	 *            of <code>s</code> to <code>c</code>.
+	 *            IConstraint.setVerificationStatus should not be explicitly used!!!
+	 *            Unfortunately, EMF does not let us override the setter in a satisfactory way.
+	 *            If you read this comment, please check that IConstraint.setVerificationStatus is
+	 *            not used somewhere else and that the utility method below is used instead.
+	 */
+	public static void setVerificationStatus(IConstraint c, IConstraintVerificationStatus s) {
+		s.setConstraint(c);
+		c.setVerificationStatus(s);
+	}
+
 	/**
 	 * @param c
 	 * @return A "success" verification status for <code>c</code>.
@@ -74,7 +90,7 @@ public class ConstraintsUtils {
 	public static SuccessVerificationStatus createSuccessVerificationStatus(IConstraint c) {
 		SuccessVerificationStatus s =
 				ConstraintsFactory.eINSTANCE.createSuccessVerificationStatus();
-		c.setVerificationStatus(s);
+		setVerificationStatus(c, s);
 		return s;
 	}
 
@@ -85,7 +101,7 @@ public class ConstraintsUtils {
 	public static OutdatedVerificationStatus createOutdatedVerificationStatus(IConstraint c) {
 		OutdatedVerificationStatus status =
 				ConstraintsFactory.eINSTANCE.createOutdatedVerificationStatus();
-		c.setVerificationStatus(status);
+		setVerificationStatus(c, status);
 		return status;
 	}
 
@@ -95,7 +111,7 @@ public class ConstraintsUtils {
 	 */
 	public static FailVerificationStatus createFailVerificationStatus(IConstraint c) {
 		FailVerificationStatus status = ConstraintsFactory.eINSTANCE.createFailVerificationStatus();
-		c.setVerificationStatus(status);
+		setVerificationStatus(c, status);
 		return status;
 	}
 
@@ -106,7 +122,7 @@ public class ConstraintsUtils {
 	public static ErrorVerificationStatus createErrorVerificationStatus(IConstraint c) {
 		ErrorVerificationStatus status =
 				ConstraintsFactory.eINSTANCE.createErrorVerificationStatus();
-		c.setVerificationStatus(status);
+		setVerificationStatus(c, status);
 		return status;
 	}
 
-- 
GitLab