|
@@ -67,6 +67,13 @@ prev_mode = None
|
|
|
current_model = None
|
|
|
registered_metamodels = {}
|
|
|
|
|
|
+def _get_metamodel(model):
|
|
|
+ global registered_metamodels
|
|
|
+ try:
|
|
|
+ return registered_metamodels[model]
|
|
|
+ except KeyError:
|
|
|
+ raise UnkownMetamodellingHierarchy(model)
|
|
|
+
|
|
|
def _check_type(value):
|
|
|
if not isinstance(value, (int, long, float, str, unicode, bool)):
|
|
|
raise UnsupportedValue("%s : %s" % (value, str(type(value))))
|
|
@@ -79,7 +86,6 @@ def _dict_to_list(python_dict):
|
|
|
|
|
|
def _goto_mode(new_mode, model_name=None):
|
|
|
global mode
|
|
|
- global registered_metamodels
|
|
|
|
|
|
if mode == MODE_MANUAL and new_mode == MODE_MODIFY:
|
|
|
if model_name != None and current_model != model_name:
|
|
@@ -88,15 +94,12 @@ def _goto_mode(new_mode, model_name=None):
|
|
|
return
|
|
|
elif mode == MODE_MODELLING and new_mode == MODE_MODIFY:
|
|
|
# Are in root view, but want to modify a model
|
|
|
- if model_name not in registered_metamodels:
|
|
|
- raise UnfamiliarMetamodel(model_name)
|
|
|
- _model_modify(model_name, registered_metamodels[model_name])
|
|
|
+ _model_modify(model_name, _get_metamodel(model_name))
|
|
|
elif mode == MODE_MODIFY and new_mode == MODE_MODIFY and model_name != None and current_model != model_name:
|
|
|
# Are in modify mode, but want to modify a different model
|
|
|
- if model_name not in registered_metamodels:
|
|
|
- raise UnfamiliarMetamodel(model_name)
|
|
|
+ mm = _get_metamodel(model_name)
|
|
|
_model_exit()
|
|
|
- _model_modify(model_name, registered_metamodels[model_name])
|
|
|
+ _model_modify(model_name, mm)
|
|
|
elif mode == MODE_MODIFY and new_mode == MODE_MODELLING:
|
|
|
_model_exit()
|
|
|
elif mode == new_mode:
|
|
@@ -374,19 +377,13 @@ def verify(model_name, metamodel_name=None):
|
|
|
_goto_mode(MODE_MODELLING)
|
|
|
|
|
|
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]
|
|
|
+ metamodel_name = _get_metamodel(model_name)
|
|
|
|
|
|
_input(["verify", model_name, metamodel_name])
|
|
|
return _handle_output("Success: ", split=" ")
|
|
|
|
|
|
def model_overwrite(model_name, new_model=None, metamodel_name=None):
|
|
|
"""Upload a new model and overwrite an existing model."""
|
|
|
- global registered_metamodels
|
|
|
_goto_mode(MODE_MODIFY, model_name)
|
|
|
|
|
|
if new_model is not None:
|
|
@@ -403,6 +400,7 @@ def model_overwrite(model_name, new_model=None, metamodel_name=None):
|
|
|
_output("Success")
|
|
|
|
|
|
if metamodel_name is not None:
|
|
|
+ global registered_metamodels
|
|
|
registered_metamodels[model_name] = metamodel_name
|
|
|
|
|
|
def user_logout():
|
|
@@ -942,8 +940,7 @@ def element_list_nice(model_name):
|
|
|
"""Fetches a nice representation of models."""
|
|
|
_goto_mode(MODE_MODELLING)
|
|
|
|
|
|
- global registered_metamodels
|
|
|
- _input(["element_list_nice", model_name, registered_metamodels[model_name]])
|
|
|
+ _input(["element_list_nice", model_name, _get_metamodel(model_name)])
|
|
|
|
|
|
return json.loads(_handle_output("Success: ", split=" "))
|
|
|
|