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