|
@@ -55,6 +55,9 @@ class InvalidMode(ModelverseException):
|
|
|
class InterfaceMismatch(ModelverseException):
|
|
|
pass
|
|
|
|
|
|
+class UnknownMetamodellingHierarchy(ModelverseException):
|
|
|
+ pass
|
|
|
+
|
|
|
# Helper functions and configuration: do not use yourself!
|
|
|
taskname = None
|
|
|
address = None
|
|
@@ -365,14 +368,24 @@ def model_list_full():
|
|
|
|
|
|
return lst
|
|
|
|
|
|
-def verify(model, metamodel):
|
|
|
+def verify(model_name, metamodel_name=None):
|
|
|
"""Verify if a model conforms to its metamodel."""
|
|
|
_goto_mode(MODE_MODELLING)
|
|
|
- _input(["verify", model, metamodel])
|
|
|
+
|
|
|
+ if metamodel_name is None:
|
|
|
+ global registered_metamodels
|
|
|
+
|
|
|
+ if model_name not in registered_metamodels:
|
|
|
+ raise UnknownMetamodellingHierarchy(model_name)
|
|
|
+
|
|
|
+ metamodel_name = registered_metamodels[model_name]
|
|
|
+
|
|
|
+ _input(["verify", model_name, metamodel_name])
|
|
|
return _handle_output("Success: ", split=" ")
|
|
|
|
|
|
-def model_overwrite(model_name, metamodel_name, new_model=None):
|
|
|
+def model_overwrite(model_name, new_model=None, metamodel_name=None):
|
|
|
"""Upload a new model and overwrite an existing model."""
|
|
|
+ global registered_metamodels
|
|
|
if mode not in [MODE_MODELLING, MODE_MODIFY, MODE_MANUAL]:
|
|
|
raise InvalidMode()
|
|
|
|
|
@@ -387,6 +400,9 @@ def model_overwrite(model_name, metamodel_name, new_model=None):
|
|
|
if mode == MODE_MODIFY:
|
|
|
_goto_mode(MODE_MODELLING)
|
|
|
|
|
|
+ if metamodel_name is None:
|
|
|
+ metamodel_name = registered_metamodels[model_name]
|
|
|
+
|
|
|
if mode == MODE_MODELLING:
|
|
|
_input(["model_overwrite", model_name, metamodel_name])
|
|
|
elif mode == MODE_MANUAL:
|
|
@@ -398,7 +414,6 @@ def model_overwrite(model_name, metamodel_name, new_model=None):
|
|
|
_input(compiled)
|
|
|
_output("Success")
|
|
|
|
|
|
- global registered_metamodels
|
|
|
registered_metamodels[model_name] = metamodel_name
|
|
|
|
|
|
def user_logout():
|