Browse Source

Added tracability link for merge and RAMify

Yentl Van Tendeloo 8 years ago
parent
commit
7080a6ca90
2 changed files with 21 additions and 0 deletions
  1. 16 0
      core/core_algorithm.alc
  2. 5 0
      core/core_formalism.mvc

+ 16 - 0
core/core_algorithm.alc

@@ -422,6 +422,11 @@ Void function user_function_skip_init(user_id : String):
 					output("Name of the RAMified tranformation metamodel?")
 					name = input()
 					if (get_model_id(name) == ""):
+						String merged_formalism_id
+						String ramified_formalism_id
+						String source_formalism_id
+						String tracability_link
+
 						// New location is available, so write
 						merged_formalism = model_fuse(all_formalisms)
 
@@ -430,12 +435,19 @@ Void function user_function_skip_init(user_id : String):
 
 						// Manage meta-info
 						new_model_id = instantiate_node(core, "Model", "")
+						merged_formalism_id = new_model_id
 						instantiate_attribute(core, new_model_id, "name", "__merged_" + name)
 						instantiate_attribute(core, new_model_id, "location", location)
 						instantiate_attribute(core, new_model_id, "permissions", "200")
 						instantiate_link(core, "owner", "", new_model_id, user_id)
 						instantiate_link(core, "instanceOf", "", new_model_id, type_id)
 
+						// Add tracability links at this level
+						while (read_nr_out(all_formalisms) > 0):
+							source_formalism_id = list_read(set_pop(all_formalisms), 1)
+							tracability_link = instantiate_link(core, "tracability", "", merged_formalism_id, source_formalism_id)
+							instantiate_attribute(core, tracability_link, "type", "merged")
+
 						// Merge complete, now RAMify!
 						ramified_formalism = ramify(merged_formalism)
 
@@ -450,6 +462,10 @@ Void function user_function_skip_init(user_id : String):
 						instantiate_link(core, "owner", "", new_model_id, user_id)
 						instantiate_link(core, "instanceOf", "", new_model_id, type_id)
 
+						// Add tracability link at this level
+						tracability_link = instantiate_link(core, "tracability", "", ramified_formalism_id, merged_formalism_id)
+						instantiate_attribute(core, tracability_link, "type", "RAMified")
+
 					else:
 						output("Model already exists!")
 				else:

+ 5 - 0
core/core_formalism.mvc

@@ -80,10 +80,15 @@ SimpleClassDiagrams CoreFormalism {
     Association transformInput (Model, Transformation) {
         name : String
     }
+
     Association transformOutput (Transformation, Model) {
         name : String
         target_lower_cardinality = 1
     }
+
+    Association tracability (Model, Model) {
+        type : String
+    }
 }
 
 export CoreFormalism to models/CoreFormalism