From 23345fba4ff04fdb17e1158517e2783a48a760ce Mon Sep 17 00:00:00 2001
From: Kevin Kassin <kevinkassin@gmx.de>
Date: Tue, 19 Sep 2017 16:36:57 +0200
Subject: [PATCH] Commit 19.9 16:40

enabled relations in groups,
implemented fulfillments for roles in compartment types
---
 .../epsilon/CompartmentType.etl                     | 13 +++++++++----
 .../epsilon/Fulfillment.etl                         |  2 +-
 org.framed.orm.transformation/epsilon/Group.etl     |  3 +--
 3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/org.framed.orm.transformation/epsilon/CompartmentType.etl b/org.framed.orm.transformation/epsilon/CompartmentType.etl
index 32ca75e4..c1ad43ac 100644
--- a/org.framed.orm.transformation/epsilon/CompartmentType.etl
+++ b/org.framed.orm.transformation/epsilon/CompartmentType.etl
@@ -23,8 +23,9 @@ rule CompartmentType
 	
 		// iterate over all children of the compartment type	
 		for (elem : source!ModelElement in children.elements) {
-			
+			elem.println();
 			var e = elem.equivalent();
+			e.println();
 			
 			if (e == null) { continue; }
 			if (e.instanceOf(target!AbstractRole)) { 			// ROLE
@@ -51,14 +52,18 @@ rule CompartmentType
 				n.getContains.add(e);
 				if(not(t.~features.get("Contains_Compartments"))) n.getContains.remove(e);
 			} else if (e.instanceOf(target!RelationshipImplication) or e.instanceOf(target!RelationshipExclusion)) { // INTER_RELATIONSHIP_CONSTRAINT
-				n.getConstraints().add(e);	//add CONSTRAINTS as well			
+				n.getConstraints().add(e);				
 			} else if ( e.instanceOf(target!Constraint)) {		// CONSTRAINT
 				n.getConstraints().add(e);
 			} else if ( e.instanceOf(target!Relationship)) {	// RELATIONSHIP
 				n.getRelationships().add(e);
-			} else if ( e.instanceOf(target!RoleInheritance)) {
+			} else if ( e.instanceOf(target!RoleInheritance)) { //INHERITANCE
 				t.~parent.relations.add(e);
-			} 
+			} else if ( e.instanceOf(Sequence)) {		//FULFILLMENT
+				for(ob in e) {	
+					n.getFulfillments.add(ob);
+				}	
+			}
 		}
 	}
 	
diff --git a/org.framed.orm.transformation/epsilon/Fulfillment.etl b/org.framed.orm.transformation/epsilon/Fulfillment.etl
index 5fca6925..32a69524 100644
--- a/org.framed.orm.transformation/epsilon/Fulfillment.etl
+++ b/org.framed.orm.transformation/epsilon/Fulfillment.etl
@@ -6,7 +6,7 @@ operation toTransform(t : source!Relation) : Boolean {
 					if((t.source==t.target and t.~features.get("Playable_by_Defining_Compartment"))) return true;
 				}
 		case 1: return true;
-		//case 2: if(t.~features.get("Roles")) return true;
+		case 2: if(t.~features.get("Roles")) return true;
 		case 3: if(t.~features.get("Dates")) return true;
 	}
 	return false;
diff --git a/org.framed.orm.transformation/epsilon/Group.etl b/org.framed.orm.transformation/epsilon/Group.etl
index 81908839..0b0f93c2 100644
--- a/org.framed.orm.transformation/epsilon/Group.etl
+++ b/org.framed.orm.transformation/epsilon/Group.etl
@@ -11,8 +11,7 @@ rule Group
 		for (e in children.elements) e.~features=s.~features;
 		for (elem : source!ModelElement in children.elements) {
 			var e = elem.equivalent();
-			if(e.instanceOf(target!Inheritance) or
-			   e.instanceOf(target!Fulfillment)) {
+			if(e.instanceOf(target!Relation)) {
 				if(not(e==null)) t.getRelations().add(e);	
 			} else {
 				if(not(e==null)) t.getElements().add(e);
-- 
GitLab