Sfoglia il codice sorgente

Patches for model_add and the UnknownM3 exception

Yentl Van Tendeloo 7 anni fa
parent
commit
752e1e50ba

+ 10 - 10
bootstrap/core_algorithm.alc

@@ -550,7 +550,7 @@ Element function merge_models(models_dict : Element, operation_name : String):
 		merged_metamodel = get_full_model(merged_metamodel_id, get_entry_id("SimpleClassDiagrams"))
 		if (element_eq(merged_metamodel, read_root())):
 			log("Merged metamodel in operation is not of type SimpleClassDiagrams")
-			output("Merged metamodel in operation is not of type SimpleClassDiagrams")
+			output("Type cannot be typed as formalisms/SimpleClassDiagrams: 'merged'")
 			return read_root()!
 
 		return model_join(model_tuples, merged_metamodel, read_root())!
@@ -571,7 +571,7 @@ Element function split_model(model : Element, metamodels_dict : Element):
 		mm = get_full_model(get_entry_id(metamodels_dict[key]), get_entry_id("SimpleClassDiagrams"))
 		if (element_eq(mm, read_root())):
 			log("Output metamodel cannot be interpreted using SimpleClassDiagrams: " + key)
-			output("Output metamodel cannot be interpreted using SimpleClassDiagrams: " + key)
+			output("Type cannot be typed as formalisms/SimpleClassDiagrams: " + key)
 			return read_root()!
 		set_add_node(model_tuples, create_tuple(key, mm))
 
@@ -694,7 +694,7 @@ Element function execute_operation(operation_id : String, input_models : Element
 		merged_metamodel = get_full_model(merged_metamodel_id, get_entry_id("formalisms/SimpleClassDiagrams"))
 		if (element_eq(merged_metamodel, read_root())):
 			log("Merged metamodel in operation is not of type formalisms/SimpleClassDiagrams")
-			output("Merged metamodel in operation is not of type formalisms/SimpleClassDiagrams")
+			output("Type cannot be typed as formalisms/SimpleClassDiagrams: 'merged'")
 			return read_root()!
 
 		merged_model = model_join(model_tuples, merged_metamodel, tracability_model)
@@ -775,7 +775,7 @@ Element function execute_operation(operation_id : String, input_models : Element
 			mm = get_full_model(get_entry_id(output_metamodels[key]), get_entry_id("formalisms/SimpleClassDiagrams"))
 			if (element_eq(mm, read_root())):
 				log("Output metamodel cannot be interpreted using formalisms/SimpleClassDiagrams: " + key)
-				output("Output metamodel cannot be interpreted using formalisms/SimpleClassDiagrams: " + key)
+				output("Type cannot be typed as formalisms/SimpleClassDiagrams: " + key)
 				return read_root()!
 			set_add_node(model_tuples, create_tuple(key, mm))
 
@@ -1384,7 +1384,7 @@ String function cmd_model_render(model_name : String, mapper_name : String, rend
 						Element rendered
 						rendered = get_full_model(ID_rendered_MM, ID_SCD)
 						if (element_eq(rendered, read_root())):
-							return "Rendered metamodel doesn't conform to formalisms/SimpleClassDiagrams"!
+							return "Type cannot be typed as formalisms/SimpleClassDiagrams: 'rendered'"!
 
 						rendered_model = instantiate_model(rendered)
 
@@ -1641,7 +1641,7 @@ String function cmd_model_overwrite(model_name : String, metamodel_name : String
 				Element mm
 				mm = get_full_model(get_entry_id(metamodel_name), get_entry_id("formalisms/SimpleClassDiagrams"))
 				if (element_eq(mm, read_root())):
-					return "Metamodel does not conform to formalisms/SimpleClassDiagrams: " + metamodel_name!
+					return "Type cannot be typed as formalisms/SimpleClassDiagrams: " + metamodel_name!
 
 				output("Waiting for model constructors...")
 				new_model = compile_model(input(), mm)
@@ -1808,7 +1808,7 @@ String function transformation_add(source_models : Element, target_models : Elem
 					dict_add(source, key, model_id)
 					mm = get_full_model(model_id, get_entry_id("formalisms/SimpleClassDiagrams"))
 					if (element_eq(mm, read_root())):
-						return "Transformation source type not in formalisms/SimpleClassDiagrams hierarchy: " + key!
+						return "Type cannot be typed as formalisms/SimpleClassDiagrams: " + key!
 
 					if (bool_not(set_in(fused, key))):
 						set_add_node(formalism_map, create_tuple(key, mm))
@@ -1834,7 +1834,7 @@ String function transformation_add(source_models : Element, target_models : Elem
 					dict_add(target, key, model_id)
 					mm = get_full_model(model_id, get_entry_id("formalisms/SimpleClassDiagrams"))
 					if (element_eq(mm, read_root())):
-						return "Transformation target type not in formalisms/SimpleClassDiagrams hierarchy: " + key!
+						return "Type cannot be typed as formalisms/SimpleClassDiagrams: " + key!
 
 					if (bool_not(set_in(fused, key))):
 						set_add_node(formalism_map, create_tuple(key, mm))
@@ -1958,7 +1958,7 @@ String function cmd_transformation_add_MT(source_models : Element, target_models
 						dict_add(source, key, model_id)
 						mm = get_full_model(model_id, get_entry_id("formalisms/SimpleClassDiagrams"))
 						if (element_eq(mm, read_root())):
-							return "ModelTransformation source type not in formalisms/SimpleClassDiagrams hierarchy: " + name!
+							return "Type cannot be typed as formalisms/SimpleClassDiagrams: " + name!
 						set_add_node(to_ramify, create_tuple(key, mm))
 					else:
 						return "Name was already assigned a metamodel: " + key!
@@ -1988,7 +1988,7 @@ String function cmd_transformation_add_MT(source_models : Element, target_models
 							dict_add(target, key, model_id)
 							mm = get_full_model(model_id, get_entry_id("formalisms/SimpleClassDiagrams"))
 							if (element_eq(mm, read_root())):
-								return "ModelTransformation target type not in formalisms/SimpleClassDiagrams hierarchy: " + name!
+								return "Type cannot be typed as formalisms/SimpleClassDiagrams: " + name!
 							set_add_node(to_ramify, create_tuple(key, mm))
 					else:
 						return "Name was already assigned a metamodel: " + key!

+ 2 - 2
wrappers/classes/modelverse.xml

@@ -1384,7 +1384,7 @@
                         </raise>
                     </transition>
 
-                    <transition cond="self.expect_response_partial('Type is not typed by formalisms/SimpleClassDiagrams: ', pop=False)" target="../wait_for_action/history">
+                    <transition cond="self.expect_response_partial('Type cannot be typed as formalisms/SimpleClassDiagrams: ', pop=False)" target="../wait_for_action/history">
                         <raise event="exception">
                             <parameter expr="'UnknownM3'"/>
                             <parameter expr="self.split_response(self.responses.pop(0))[0]"/>
@@ -1477,7 +1477,7 @@
 
                     <transition cond="self.expect_response_partial('', pop=False)" target="../wait_for_action/history">
                         <script>
-                            #print("Unknown Error: " + self.responses[0])
+                            print("Unknown Error: " + self.responses[0])
                             pass
                         </script>
                         <raise event="exception">

+ 2 - 2
wrappers/modelverse_SCCD.py

@@ -2188,7 +2188,7 @@ class Modelverse(RuntimeClassBase):
         self.raiseInternalEvent(Event("exception", None, ['UnknownM3', self.split_response(self.responses.pop(0))[0]]))
     
     def _initialized_behaviour_operations_4_guard(self, parameters):
-        return self.expect_response_partial('Type is not typed by formalisms/SimpleClassDiagrams: ', pop=False)
+        return self.expect_response_partial('Type cannot be typed as formalisms/SimpleClassDiagrams: ', pop=False)
     
     def _initialized_behaviour_operations_5_exec(self, parameters):
         self.raiseInternalEvent(Event("exception", None, ['ElementExists', self.split_response(self.responses.pop(0))[0]]))
@@ -2263,7 +2263,7 @@ class Modelverse(RuntimeClassBase):
         return self.expect_response_partial('Conformance hierarchy unknown for: ', pop=False)
     
     def _initialized_behaviour_operations_17_exec(self, parameters):
-        #print("Unknown Error: " + self.responses[0])
+        print("Unknown Error: " + self.responses[0])
         pass
         self.raiseInternalEvent(Event("exception", None, ['UnknownError', 'Error: %s' % self.responses.pop(0)]))