|
@@ -34,6 +34,8 @@ String function get_instanceOf_link(model_id : String, metamodel_id : String):
|
|
|
log("WARNING: multiple instanceOf relations were detected for this model; picking one at random!")
|
|
|
elif (read_nr_out(all_links) == 0):
|
|
|
log("ERROR: untyped model; crashing")
|
|
|
+ log("Instance model: " + cast_v2s(read_attribute(core, model_id, "name")))
|
|
|
+ log("Type model: " + cast_v2s(read_attribute(core, metamodel_id, "name")))
|
|
|
|
|
|
choice = set_pop(all_links)
|
|
|
|
|
@@ -389,7 +391,14 @@ Element function execute_operation(operation_id : String, input_models : Element
|
|
|
// 3) Transform
|
|
|
|
|
|
if (exact_type == "ModelTransformation"):
|
|
|
- result = transform(merged_model, get_full_model(operation_id, merged_metamodel_id))
|
|
|
+ trace_links = allOutgoingAssociationInstances(core, merged_metamodel_id, "tracability")
|
|
|
+ ramified_metamodel_id = ""
|
|
|
+ while (read_nr_out(trace_links) > 0):
|
|
|
+ trace_link_id = set_pop(trace_links)
|
|
|
+ if (value_eq(read_attribute(core, trace_link_id, "type"), "RAMified")):
|
|
|
+ ramified_metamodel_id = readAssociationDestination(core, trace_link_id)
|
|
|
+
|
|
|
+ result = transform(merged_model, get_full_model(operation_id, ramified_metamodel_id))
|
|
|
elif (exact_type == "ManualOperation"):
|
|
|
output("Please perform manual operation " + cast_v2s(read_attribute(core, operation_id, "name")))
|
|
|
modify(merged_model, True)
|
|
@@ -1253,6 +1262,10 @@ String function cmd_transformation_add_MT(user_id : String, source_models : Elem
|
|
|
tracability_link = instantiate_link(core, "tracability", "", model_id, merged_formalism_id)
|
|
|
instantiate_attribute(core, tracability_link, "type", "operatesOn")
|
|
|
|
|
|
+ // Add tracability links at this level
|
|
|
+ tracability_link = instantiate_link(core, "tracability", "", merged_formalism_id, ramified_metamodel_id)
|
|
|
+ instantiate_attribute(core, tracability_link, "type", "RAMified")
|
|
|
+
|
|
|
// Extend metadata with info on source and target
|
|
|
String link
|
|
|
String dst
|