diff --git a/org.framed.orm.transformation/epsilon/CompartmentType.etl b/org.framed.orm.transformation/epsilon/CompartmentType.etl index 32ca75e4f07a3da442d16f043dcd50b15512e4d2..c1ad43acb0e49610b38581f6e16acd03872aac6e 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 5fca692541c29ca81807df995ec3e1d2c50ac659..32a695243fbbb825c4bdb4f76df67652c5974b81 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 819088390723aa0a436286435f9eb629b5c62e0d..0b0f93c2c67dc54d743713ef556cfc4eda05f928 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);