|
@@ -571,22 +571,35 @@ Boolean function enact_action(pm : Element, element : String, prefix : String, u
|
|
|
log("Transformation result: " + cast_b2s(result))
|
|
|
|
|
|
// 4) Split in different files depending on type
|
|
|
- String desired_metamodel_id
|
|
|
- Element split_off_model
|
|
|
-
|
|
|
+ model_tuples = create_node()
|
|
|
output_keys = dict_keys(outputs)
|
|
|
+
|
|
|
while (read_nr_out(output_keys) > 0):
|
|
|
key = set_pop(output_keys)
|
|
|
- desired_metamodel_id = get_model_id(key)
|
|
|
- split_off_model = model_split(merged_model, get_full_model(desired_metamodel_id), key + "/")
|
|
|
+ set_add(model_tuples, create_tuple(key, get_full_model(get_model_id(key))))
|
|
|
|
|
|
- // Check if the destination model already exists
|
|
|
+ Element splitted_models
|
|
|
+ splitted_models = model_split(merged_model, model_tuples)
|
|
|
+
|
|
|
+ Element keys
|
|
|
+ keys = dict_keys(splitted_models)
|
|
|
+ log("SPLITTED OK")
|
|
|
+ while (read_nr_out(keys) > 0):
|
|
|
+ key = set_pop(keys)
|
|
|
+ log("Write out model: " + key)
|
|
|
+ log("Data: " + cast_e2s(splitted_models[key]))
|
|
|
+
|
|
|
if (get_model_id(outputs[key]) == ""):
|
|
|
// New model
|
|
|
- model_create(split_off_model, outputs[key], user_id, desired_metamodel_id, "Model")
|
|
|
+ log("New model")
|
|
|
+ log("Outputs: " + cast_e2s(outputs[key]))
|
|
|
+ log("Model ID: " + cast_e2s(get_model_id(key)))
|
|
|
+ model_create(splitted_models[key], outputs[key], user_id, get_model_id(key), "Model")
|
|
|
else:
|
|
|
- // Model exists, so we overwrite
|
|
|
- model_overwrite(split_off_model, get_model_id(outputs[key]))
|
|
|
+ log("Existing model")
|
|
|
+ log("Value: " + cast_e2s(get_model_id(outputs[key])))
|
|
|
+ model_overwrite(splitted_models[key], get_model_id(outputs[key]))
|
|
|
+
|
|
|
else:
|
|
|
log("Intermediate not found")
|
|
|
|
|
@@ -668,22 +681,25 @@ Boolean function enact_action(pm : Element, element : String, prefix : String, u
|
|
|
|
|
|
// 4) Split in different files depending on type
|
|
|
|
|
|
- String desired_metamodel_id
|
|
|
- Element split_off_model
|
|
|
-
|
|
|
+ model_tuples = create_node()
|
|
|
output_keys = dict_keys(outputs)
|
|
|
+
|
|
|
while (read_nr_out(output_keys) > 0):
|
|
|
key = set_pop(output_keys)
|
|
|
- desired_metamodel_id = get_model_id(key)
|
|
|
- split_off_model = model_split(merged_model, get_full_model(desired_metamodel_id), key + "/")
|
|
|
+ set_add(model_tuples, create_tuple(key, get_full_model(get_model_id(key))))
|
|
|
|
|
|
- // Check if the destination model already exists
|
|
|
+ Element splitted_models
|
|
|
+ splitted_models = model_split(merged_model, model_tuples)
|
|
|
+
|
|
|
+ keys = dict_keys(splitted_models)
|
|
|
+ while (read_nr_out(keys) > 0):
|
|
|
+ key = set_pop(keys)
|
|
|
+
|
|
|
if (get_model_id(outputs[key]) == ""):
|
|
|
// New model
|
|
|
- model_create(split_off_model, outputs[key], user_id, desired_metamodel_id, "Model")
|
|
|
+ model_create(splitted_models[key], outputs[key], user_id, get_model_id(key), "Model")
|
|
|
else:
|
|
|
- // Model exists, so we overwrite
|
|
|
- model_overwrite(split_off_model, get_model_id(outputs[key]))
|
|
|
+ model_overwrite(splitted_models[key], get_model_id(outputs[key]))
|
|
|
else:
|
|
|
output("Could not find merged metamodel")
|
|
|
|
|
@@ -1006,22 +1022,25 @@ Void function user_function_skip_init(user_id : String):
|
|
|
|
|
|
// 4) Split in different files depending on type
|
|
|
|
|
|
- String desired_metamodel_id
|
|
|
- Element split_off_model
|
|
|
-
|
|
|
+ model_tuples = create_node()
|
|
|
output_keys = dict_keys(outputs)
|
|
|
+
|
|
|
while (read_nr_out(output_keys) > 0):
|
|
|
key = set_pop(output_keys)
|
|
|
- desired_metamodel_id = get_model_id(key)
|
|
|
- split_off_model = model_split(merged_model, get_full_model(desired_metamodel_id), key + "/")
|
|
|
+ set_add(model_tuples, create_tuple(key, get_full_model(get_model_id(key))))
|
|
|
|
|
|
- // Check if the destination model already exists
|
|
|
+ Element splitted_models
|
|
|
+ splitted_models = model_split(merged_model, model_tuples)
|
|
|
+
|
|
|
+ keys = dict_keys(splitted_models)
|
|
|
+ while (read_nr_out(keys) > 0):
|
|
|
+ key = set_pop(keys)
|
|
|
+
|
|
|
if (get_model_id(outputs[key]) == ""):
|
|
|
// New model
|
|
|
- model_create(split_off_model, outputs[key], user_id, desired_metamodel_id, "Model")
|
|
|
+ model_create(splitted_models[key], outputs[key], user_id, get_model_id(key), "Model")
|
|
|
else:
|
|
|
- // Model exists, so we overwrite
|
|
|
- model_overwrite(split_off_model, get_model_id(outputs[key]))
|
|
|
+ model_overwrite(splitted_models[key], get_model_id(outputs[key]))
|
|
|
else:
|
|
|
output("Could not resolve intermediate merged metamodel")
|
|
|
|
|
@@ -1100,22 +1119,25 @@ Void function user_function_skip_init(user_id : String):
|
|
|
|
|
|
// 4) Split in different files depending on type
|
|
|
|
|
|
- String desired_metamodel_id
|
|
|
- Element split_off_model
|
|
|
-
|
|
|
+ model_tuples = create_node()
|
|
|
output_keys = dict_keys(outputs)
|
|
|
+
|
|
|
while (read_nr_out(output_keys) > 0):
|
|
|
key = set_pop(output_keys)
|
|
|
- desired_metamodel_id = get_model_id(key)
|
|
|
- split_off_model = model_split(merged_model, get_full_model(desired_metamodel_id), key + "/")
|
|
|
+ set_add(model_tuples, create_tuple(key, get_full_model(get_model_id(key))))
|
|
|
+
|
|
|
+ Element splitted_models
|
|
|
+ splitted_models = model_split(merged_model, model_tuples)
|
|
|
|
|
|
- // Check if the destination model already exists
|
|
|
+ keys = dict_keys(splitted_models)
|
|
|
+ while (read_nr_out(keys) > 0):
|
|
|
+ key = set_pop(keys)
|
|
|
+
|
|
|
if (get_model_id(outputs[key]) == ""):
|
|
|
// New model
|
|
|
- model_create(split_off_model, outputs[key], user_id, desired_metamodel_id, "Model")
|
|
|
+ model_create(splitted_models[key], outputs[key], user_id, get_model_id(key), "Model")
|
|
|
else:
|
|
|
- // Model exists, so we overwrite
|
|
|
- model_overwrite(split_off_model, get_model_id(outputs[key]))
|
|
|
+ model_overwrite(splitted_models[key], get_model_id(outputs[key]))
|
|
|
else:
|
|
|
output("Could not find merged metamodel")
|
|
|
else:
|