From 1428e81fd6dd8c842dfbeceefc6d393c3a630309 Mon Sep 17 00:00:00 2001
From: nullsub <chrisudeussen@gmail.com>
Date: Sun, 6 May 2018 22:50:59 +0200
Subject: [PATCH] update editpolicy rules

---
 .../core/standardPolicies.editpolicy          | 61 ++++++++++---------
 .../ui/editPolicy/ConstraintRuleVisitor.java  |  2 +-
 2 files changed, 33 insertions(+), 30 deletions(-)

diff --git a/org.framed.iorm.ui/core/standardPolicies.editpolicy b/org.framed.iorm.ui/core/standardPolicies.editpolicy
index 198b5487..bc9a9bbe 100644
--- a/org.framed.iorm.ui/core/standardPolicies.editpolicy
+++ b/org.framed.iorm.ui/core/standardPolicies.editpolicy
@@ -15,6 +15,10 @@
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Contains_Compartments"/>
     <constraintRule xsi:type="Editpolicymodel:InCompartment"/>
   </policies>
+  <policies actionType="CompartmentType">
+    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Contains_Compartments"/>
+    <constraintRule xsi:type="Editpolicymodel:InCompartment"/>
+  </policies>
   <policies action="Create_Property" actionType="CompartmentType">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartment_Properties"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
@@ -178,12 +182,25 @@
       <rule xsi:type="Editpolicymodel:IsFeature" featureName="Compartment_Types"/>
     </featureRule>
     <constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
+      <rules xsi:type="Editpolicymodel:NotConstraintRule">
+        <rule xsi:type="Editpolicymodel:InCompartment"/>
+      </rules>
       <rules xsi:type="Editpolicymodel:NotConstraintRule">
         <rule xsi:type="Editpolicymodel:ContainsCompartment"/>
       </rules>
+    </constraintRule>
+  </policies>
+  <policies actionType="CompartmentType">
+    <featureRule xsi:type="Editpolicymodel:NotFeatureRule">
+      <rule xsi:type="Editpolicymodel:IsFeature" featureName="Compartment_Types"/>
+    </featureRule>
+    <constraintRule xsi:type="Editpolicymodel:AndConstraintRule">
       <rules xsi:type="Editpolicymodel:NotConstraintRule">
         <rule xsi:type="Editpolicymodel:InCompartment"/>
       </rules>
+      <rules xsi:type="Editpolicymodel:NotConstraintRule">
+        <rule xsi:type="Editpolicymodel:ContainsCompartment"/>
+      </rules>
     </constraintRule>
   </policies>
   <policies action="Add" actionType="CompartmentType">
@@ -192,6 +209,12 @@
       <rule xsi:type="Editpolicymodel:InCompartment"/>
     </constraintRule>
   </policies>
+  <policies actionType="CompartmentType">
+    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartment_Types"/>
+    <constraintRule xsi:type="Editpolicymodel:NotConstraintRule">
+      <rule xsi:type="Editpolicymodel:InCompartment"/>
+    </constraintRule>
+  </policies>
   <policies action="Start" actionType="Relationship">
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="RoleType"/>
@@ -213,7 +236,11 @@
   </policies>
   <policies action="Add" actionType="RoleGroup">
     <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Group_Constraints"/>
-    <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
+    <constraintRule xsi:type="Editpolicymodel:InCompartment"/>
+  </policies>
+  <policies actionType="RoleGroup">
+    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Group_Constraints"/>
+    <constraintRule xsi:type="Editpolicymodel:InCompartment"/>
   </policies>
   <policies action="Add" actionType="NaturalType">
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
@@ -223,11 +250,11 @@
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
-  <policies actionType="CompartmentType">
+  <policies actionType="NaturalType">
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
-  <policies actionType="Relationship">
+  <policies actionType="Group">
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
@@ -239,40 +266,16 @@
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
-  <policies actionType="NaturalType">
-    <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
-    <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
-  </policies>
-  <policies actionType="Group">
-    <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
-    <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
-  </policies>
   <policies actionType="Inheritance">
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
-  <policies actionType="RoleGroup">
+  <policies actionType="Fulfillment">
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
-  <policies actionType="Fulfillment">
+  <policies actionType="Relationship">
     <featureRule xsi:type="Editpolicymodel:TrueFeatureRule"/>
     <constraintRule xsi:type="Editpolicymodel:TrueConstraintRule"/>
   </policies>
-  <policies action="Start" actionType="Fulfillment">
-    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Compartments"/>
-    <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="CompartmentType"/>
-  </policies>
-  <policies action="Start" actionType="Fulfillment">
-    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Naturals"/>
-    <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="NaturalType"/>
-  </policies>
-  <policies action="Start" actionType="Fulfillment">
-    <featureRule xsi:type="Editpolicymodel:IsFeature"/>
-    <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="RoleType"/>
-  </policies>
-  <policies action="Start" actionType="Fulfillment">
-    <featureRule xsi:type="Editpolicymodel:IsFeature" featureName="Dates"/>
-    <constraintRule xsi:type="Editpolicymodel:IsSourceType" type="DataType"/>
-  </policies>
 </Editpolicymodel:Model>
diff --git a/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/ConstraintRuleVisitor.java b/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/ConstraintRuleVisitor.java
index 061fab0d..a1591232 100644
--- a/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/ConstraintRuleVisitor.java
+++ b/org.framed.iorm.ui/src/org/framed/iorm/ui/editPolicy/ConstraintRuleVisitor.java
@@ -134,7 +134,7 @@ public class ConstraintRuleVisitor {
 				return true;
 		}
 		if(parent == null) {
-			System.out.println("Parent null. Wrong context InCompartment(): " + this.context.getClass());
+			//System.out.println("Parent null. Wrong context InCompartment(): " + this.context.getClass());
 			return false;
 		}
 
-- 
GitLab