Browse Source

Fix some more bugs in SCCD

Yentl Van Tendeloo 8 years ago
parent
commit
2e5a6820d5
5 changed files with 257 additions and 183 deletions
  1. 2 2
      bootstrap/mini_modify.alc
  2. 2 1
      unit/test_all.py
  3. 49 20
      wrappers/classes/modelverse.xml
  4. 8 2
      wrappers/modelverse.py
  5. 196 158
      wrappers/modelverse_SCCD.py

+ 2 - 2
bootstrap/mini_modify.alc

@@ -416,7 +416,7 @@ Element function modify(model : Element, write : Boolean):
 		elif (cmd == "list_full"):
 			output(cmd_list_full(model))
 		elif (cmd == "JSON"):
-			output(JSON_print(model))
+			output("Success: " + JSON_print(model))
 		elif (cmd == "read_outgoing"):
 			output(cmd_read_outgoing(model, single_input("Name?"), single_input("Type?")))
 		elif (cmd == "read_incoming"):
@@ -438,7 +438,7 @@ Element function modify(model : Element, write : Boolean):
 		elif (cmd == "define_attribute"):
 			output(cmd_define_attribute(write, model, single_input("On which element?"), single_input("Attribute name?"), single_input("Type?")))
 		else:
-			output("Unknown command while modelling: " + cast_v2s(cmd))
+			output("Unknown command while modelling: " + cmd)
 			output("Use command 'help' to get a list of available commands")
 	return model!
 

+ 2 - 1
unit/test_all.py

@@ -97,6 +97,7 @@ class TestModelverse(unittest.TestCase):
         model_delete("test")
         model_delete("type mappings/test")
         verify_clean()
+        pass
 
     def test_list_full(self):
         assert model_list_full("") == set([("formalisms/", "admin", "admin", "221"),
@@ -155,7 +156,7 @@ class TestModelverse(unittest.TestCase):
         instantiate("test/Empty", "Class", ID="A")
         assert element_list("test/Empty") == set([("A", "Class")])
 
-        model_overwrite("test/Empty")
+        model_overwrite("test/Empty", "")
         assert element_list("test/Empty") == set([])
         compare_locations("test", set(["Empty"]))
         compare_locations("type mappings/test", set(["Empty"]))

+ 49 - 20
wrappers/classes/modelverse.xml

@@ -15,7 +15,6 @@
     <method name="split_response">
         <parameter name="response"/>
         <body>
-            print("Splitting " + str(response))
             splitted = response.strip().split(": ", 1)
             if len(splitted) > 1:
                 return splitted[1].split("\n")
@@ -340,11 +339,23 @@
                         </transition>
                     </state>
 
+                    <state id="alter_context">
+                        <transition target="../../wait_for_action/history">
+                            <script>
+                                self.registered_metamodel[self.parameters[0]] = self.parameters[1]
+                            </script>
+
+                            <raise event="result">
+                                <parameter expr="None"/>
+                            </raise>
+                        </transition>
+                    </state>
+
                     <state id="model_overwrite" initial="send_metadata">
                         <state id="send_metadata">
                             <onentry>
                                 <raise event="request">
-                                    <parameter expr="['model_overwrite', self.parameters[1]]"/>
+                                    <parameter expr="['model_overwrite', self.parameters[0], self.registered_metamodel[self.parameters[0]]]"/>
                                 </raise>
                             </onentry>
 
@@ -354,7 +365,7 @@
                         <state id="send_model">
                             <onentry>
                                 <raise event="request">
-                                    <parameter expr="self.parameters[2]"/>
+                                    <parameter expr="self.parameters[1]"/>
                                 </raise>
                             </onentry>
 
@@ -665,7 +676,6 @@
                     <state id="process_execute">
                         <onentry>
                             <script>
-                                print("TODO")
                                 raise NotImplementedException()
                             </script>
                         </onentry>
@@ -898,13 +908,17 @@
                     <state id="element_list">
                         <onentry>
                             <raise event="request">
-                                <parameter expr="['element_list']"/>
+                                <parameter expr="['list_full']"/>
                             </raise>
                         </onentry>
 
                         <transition cond="self.expect_response_partial('Success: ', pop=False)" target="../../wait_for_action/history">
+                            <script>
+                                responses = self.split_response(self.responses.pop(0))
+                                result = set([tuple([j.strip() for j in i.split(':')]) for i in responses])
+                            </script>
                             <raise event="result">
-                                <parameter expr="set(self.split_response(self.responses.pop(0)))"/>
+                                <parameter expr="result"/>
                             </raise>
                         </transition>
                     </state>
@@ -912,13 +926,13 @@
                     <state id="element_list_nice">
                         <onentry>
                             <raise event="request">
-                                <parameter expr="['element_list_nice']"/>
+                                <parameter expr="['JSON']"/>
                             </raise>
                         </onentry>
 
                         <transition cond="self.expect_response_partial('Success: ', pop=False)" target="../../wait_for_action/history">
                             <raise event="result">
-                                <parameter expr="self.split_response(self.responses.pop(0))"/>
+                                <parameter expr="json.loads(self.split_response(self.responses.pop(0))[0])"/>
                             </raise>
                         </transition>
                     </state>
@@ -1182,6 +1196,17 @@
                             self.responses.pop(0)
                         </script>
                     </transition>
+
+                    <transition cond="self.expect_response_partial('No conformance relation can be found ', pop=False)" target="../wait_for_action/history">
+                        <raise event="exception">
+                            <parameter expr="'UnknownMetamodellingHierarchy'"/>
+                            <parameter expr="'Conformance relation not found'"/>
+                        </raise>
+
+                        <script>
+                            self.responses.pop(0)
+                        </script>
+                    </transition>
                 </state>
 
                 <state id="wait_for_action" initial="disconnected">
@@ -1232,6 +1257,12 @@
                             </script>
                         </transition>
 
+                        <transition cond="self.expect_action(None, 'alter_context')" target="../../operations/alter_context">
+                            <script>
+                                self.load_action(None)
+                            </script>
+                        </transition>
+
                         <transition cond="self.expect_action(None, 'model_overwrite')" target="../../operations/model_overwrite">
                             <script>
                                 self.load_action(None)
@@ -1420,14 +1451,6 @@
                     </state>
 
                     <state id="modelling">
-                        <onentry>
-                            <script>
-                                print("Start modelling!")
-                                print("Context: " + str(self.context))
-                                print("actions: " + str(self.actions[self.context]))
-                            </script>
-                        </onentry>
-
                         <state id="recognized" initial="manual">
                             <state id="manual">
                                 <transition cond="self.expect_action(self.context, 'exit')" target="../../../../leaving_modelling"/>
@@ -1592,7 +1615,6 @@
                         <script>
                             self.context = None
                             self.current_model = self.actions[None][0]["parameters"][0]
-                            print("Setting current model to " + str(self.current_model))
                         </script>
 
                         <raise event="request">
@@ -1600,9 +1622,17 @@
                         </raise>
                     </onentry>
 
-                    <transition cond="self.expect_response('Model loaded, ready for commands!', pop=True)" target="../wait_for_action/modelling/recognized/manual">
+                    <transition cond="self.expect_response('Model loaded, ready for commands!', pop=True)" target="../wait_for_action/modelling/recognized/manual"/>
+
+                    <transition cond="self.expect_response_partial('No conformance relation can be found ', pop=False)" target="../wait_for_action/megamodelling">
+                        <raise event="exception">
+                            <parameter expr="'UnknownMetamodellingHierarchy'"/>
+                            <parameter expr="'Conformance relation not found'"/>
+                        </raise>
+
                         <script>
-                            print("Going to manual!")
+                            self.responses.pop(0)
+                            self.actions[None].pop(0)
                         </script>
                     </transition>
                 </state>
@@ -1611,7 +1641,6 @@
                     <onentry>
                         <script>
                             self.current_model = None
-                            print("Setting current model to " + str(self.current_model))
                         </script>
                     </onentry>
 

+ 8 - 2
wrappers/modelverse.py

@@ -70,6 +70,8 @@ def OUTPUT():
         print("Exception: " + str(response.parameters))
         if response.parameters[1] == "UnknownIdentifier":
             raise UnknownIdentifier()
+        elif response.parameters[1] == "UnknownMetamodellingHierarchy":
+            raise UnknownMetamodellingHierarchy()
 
 def init(address_param="127.0.0.1:8001", timeout=20.0):
     INPUT("init", None, [address_param, timeout])
@@ -99,8 +101,8 @@ def verify(model_name, metamodel_name):
     INPUT("verify", None, [model_name, metamodel_name])
     return OUTPUT()
 
-def model_overwrite(model_name, new_model, metamodel_name):
-    INPUT("model_overwrite", None, [model_name, new_model, metamodel_name])
+def model_overwrite(model_name, new_model):
+    INPUT("model_overwrite", None, [model_name, new_model])
     return OUTPUT()
 
 def disconnect():
@@ -229,6 +231,10 @@ def model_types(model_name):
     INPUT("model_types", None, [model_name])
     return OUTPUT()
 
+def alter_context(model_name, metamodel_name):
+    INPUT("alter_context", None, [model_name, metamodel_name])
+    return OUTPUT()
+
 def element_list(model_name, context=None):
     INPUT("element_list", context, [model_name])
     return OUTPUT()

+ 196 - 158
wrappers/modelverse_SCCD.py

@@ -1,7 +1,7 @@
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
-Date:   Tue Sep  5 11:42:01 2017
+Date:   Tue Sep  5 13:30:06 2017
 
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server
@@ -57,7 +57,6 @@ class Modelverse(RuntimeClassBase):
     
     # user defined method
     def split_response(self, response):
-        print("Splitting " + str(response))
         splitted = response.strip().split(": ", 1)
         if len(splitted) > 1:
             return splitted[1].split("\n")
@@ -178,298 +177,300 @@ class Modelverse(RuntimeClassBase):
         self.states["/initialized/behaviour/operations/verify"] = State(23, "/initialized/behaviour/operations/verify", self)
         self.states["/initialized/behaviour/operations/verify"].setEnter(self._initialized_behaviour_operations_verify_enter)
         
+        # state /initialized/behaviour/operations/alter_context
+        self.states["/initialized/behaviour/operations/alter_context"] = State(24, "/initialized/behaviour/operations/alter_context", self)
+        
         # state /initialized/behaviour/operations/model_overwrite
-        self.states["/initialized/behaviour/operations/model_overwrite"] = State(24, "/initialized/behaviour/operations/model_overwrite", self)
+        self.states["/initialized/behaviour/operations/model_overwrite"] = State(25, "/initialized/behaviour/operations/model_overwrite", self)
         
         # state /initialized/behaviour/operations/model_overwrite/send_metadata
-        self.states["/initialized/behaviour/operations/model_overwrite/send_metadata"] = State(25, "/initialized/behaviour/operations/model_overwrite/send_metadata", self)
+        self.states["/initialized/behaviour/operations/model_overwrite/send_metadata"] = State(26, "/initialized/behaviour/operations/model_overwrite/send_metadata", self)
         self.states["/initialized/behaviour/operations/model_overwrite/send_metadata"].setEnter(self._initialized_behaviour_operations_model_overwrite_send_metadata_enter)
         
         # state /initialized/behaviour/operations/model_overwrite/send_model
-        self.states["/initialized/behaviour/operations/model_overwrite/send_model"] = State(26, "/initialized/behaviour/operations/model_overwrite/send_model", self)
+        self.states["/initialized/behaviour/operations/model_overwrite/send_model"] = State(27, "/initialized/behaviour/operations/model_overwrite/send_model", self)
         self.states["/initialized/behaviour/operations/model_overwrite/send_model"].setEnter(self._initialized_behaviour_operations_model_overwrite_send_model_enter)
         
         # state /initialized/behaviour/operations/disconnect
-        self.states["/initialized/behaviour/operations/disconnect"] = State(27, "/initialized/behaviour/operations/disconnect", self)
+        self.states["/initialized/behaviour/operations/disconnect"] = State(28, "/initialized/behaviour/operations/disconnect", self)
         self.states["/initialized/behaviour/operations/disconnect"].setEnter(self._initialized_behaviour_operations_disconnect_enter)
         
         # state /initialized/behaviour/operations/user_logout
-        self.states["/initialized/behaviour/operations/user_logout"] = State(28, "/initialized/behaviour/operations/user_logout", self)
+        self.states["/initialized/behaviour/operations/user_logout"] = State(29, "/initialized/behaviour/operations/user_logout", self)
         self.states["/initialized/behaviour/operations/user_logout"].setEnter(self._initialized_behaviour_operations_user_logout_enter)
         
         # state /initialized/behaviour/operations/user_delete
-        self.states["/initialized/behaviour/operations/user_delete"] = State(29, "/initialized/behaviour/operations/user_delete", self)
+        self.states["/initialized/behaviour/operations/user_delete"] = State(30, "/initialized/behaviour/operations/user_delete", self)
         self.states["/initialized/behaviour/operations/user_delete"].setEnter(self._initialized_behaviour_operations_user_delete_enter)
         
         # state /initialized/behaviour/operations/model_render
-        self.states["/initialized/behaviour/operations/model_render"] = State(30, "/initialized/behaviour/operations/model_render", self)
+        self.states["/initialized/behaviour/operations/model_render"] = State(31, "/initialized/behaviour/operations/model_render", self)
         self.states["/initialized/behaviour/operations/model_render"].setEnter(self._initialized_behaviour_operations_model_render_enter)
         
         # state /initialized/behaviour/operations/transformation_between
-        self.states["/initialized/behaviour/operations/transformation_between"] = State(31, "/initialized/behaviour/operations/transformation_between", self)
+        self.states["/initialized/behaviour/operations/transformation_between"] = State(32, "/initialized/behaviour/operations/transformation_between", self)
         self.states["/initialized/behaviour/operations/transformation_between"].setEnter(self._initialized_behaviour_operations_transformation_between_enter)
         
         # state /initialized/behaviour/operations/transformation_add_MT
-        self.states["/initialized/behaviour/operations/transformation_add_MT"] = State(32, "/initialized/behaviour/operations/transformation_add_MT", self)
+        self.states["/initialized/behaviour/operations/transformation_add_MT"] = State(33, "/initialized/behaviour/operations/transformation_add_MT", self)
         
         # state /initialized/behaviour/operations/transformation_add_MT/send_metadata
-        self.states["/initialized/behaviour/operations/transformation_add_MT/send_metadata"] = State(33, "/initialized/behaviour/operations/transformation_add_MT/send_metadata", self)
+        self.states["/initialized/behaviour/operations/transformation_add_MT/send_metadata"] = State(34, "/initialized/behaviour/operations/transformation_add_MT/send_metadata", self)
         self.states["/initialized/behaviour/operations/transformation_add_MT/send_metadata"].setEnter(self._initialized_behaviour_operations_transformation_add_MT_send_metadata_enter)
         
         # state /initialized/behaviour/operations/transformation_add_MT/edit_metamodel
-        self.states["/initialized/behaviour/operations/transformation_add_MT/edit_metamodel"] = State(34, "/initialized/behaviour/operations/transformation_add_MT/edit_metamodel", self)
+        self.states["/initialized/behaviour/operations/transformation_add_MT/edit_metamodel"] = State(35, "/initialized/behaviour/operations/transformation_add_MT/edit_metamodel", self)
         
         # state /initialized/behaviour/operations/transformation_add_MT/send_model
-        self.states["/initialized/behaviour/operations/transformation_add_MT/send_model"] = State(35, "/initialized/behaviour/operations/transformation_add_MT/send_model", self)
+        self.states["/initialized/behaviour/operations/transformation_add_MT/send_model"] = State(36, "/initialized/behaviour/operations/transformation_add_MT/send_model", self)
         self.states["/initialized/behaviour/operations/transformation_add_MT/send_model"].setEnter(self._initialized_behaviour_operations_transformation_add_MT_send_model_enter)
         
         # state /initialized/behaviour/operations/transformation_add_AL
-        self.states["/initialized/behaviour/operations/transformation_add_AL"] = State(36, "/initialized/behaviour/operations/transformation_add_AL", self)
+        self.states["/initialized/behaviour/operations/transformation_add_AL"] = State(37, "/initialized/behaviour/operations/transformation_add_AL", self)
         
         # state /initialized/behaviour/operations/transformation_add_AL/send_metadata
-        self.states["/initialized/behaviour/operations/transformation_add_AL/send_metadata"] = State(37, "/initialized/behaviour/operations/transformation_add_AL/send_metadata", self)
+        self.states["/initialized/behaviour/operations/transformation_add_AL/send_metadata"] = State(38, "/initialized/behaviour/operations/transformation_add_AL/send_metadata", self)
         self.states["/initialized/behaviour/operations/transformation_add_AL/send_metadata"].setEnter(self._initialized_behaviour_operations_transformation_add_AL_send_metadata_enter)
         
         # state /initialized/behaviour/operations/transformation_add_AL/edit_metamodel
-        self.states["/initialized/behaviour/operations/transformation_add_AL/edit_metamodel"] = State(38, "/initialized/behaviour/operations/transformation_add_AL/edit_metamodel", self)
+        self.states["/initialized/behaviour/operations/transformation_add_AL/edit_metamodel"] = State(39, "/initialized/behaviour/operations/transformation_add_AL/edit_metamodel", self)
         
         # state /initialized/behaviour/operations/transformation_add_AL/send_model
-        self.states["/initialized/behaviour/operations/transformation_add_AL/send_model"] = State(39, "/initialized/behaviour/operations/transformation_add_AL/send_model", self)
+        self.states["/initialized/behaviour/operations/transformation_add_AL/send_model"] = State(40, "/initialized/behaviour/operations/transformation_add_AL/send_model", self)
         self.states["/initialized/behaviour/operations/transformation_add_AL/send_model"].setEnter(self._initialized_behaviour_operations_transformation_add_AL_send_model_enter)
         
         # state /initialized/behaviour/operations/transformation_add_MANUAL
-        self.states["/initialized/behaviour/operations/transformation_add_MANUAL"] = State(40, "/initialized/behaviour/operations/transformation_add_MANUAL", self)
+        self.states["/initialized/behaviour/operations/transformation_add_MANUAL"] = State(41, "/initialized/behaviour/operations/transformation_add_MANUAL", self)
         
         # state /initialized/behaviour/operations/transformation_add_MANUAL/send_metadata
-        self.states["/initialized/behaviour/operations/transformation_add_MANUAL/send_metadata"] = State(41, "/initialized/behaviour/operations/transformation_add_MANUAL/send_metadata", self)
+        self.states["/initialized/behaviour/operations/transformation_add_MANUAL/send_metadata"] = State(42, "/initialized/behaviour/operations/transformation_add_MANUAL/send_metadata", self)
         self.states["/initialized/behaviour/operations/transformation_add_MANUAL/send_metadata"].setEnter(self._initialized_behaviour_operations_transformation_add_MANUAL_send_metadata_enter)
         
         # state /initialized/behaviour/operations/transformation_add_MANUAL/edit_metamodel
-        self.states["/initialized/behaviour/operations/transformation_add_MANUAL/edit_metamodel"] = State(42, "/initialized/behaviour/operations/transformation_add_MANUAL/edit_metamodel", self)
+        self.states["/initialized/behaviour/operations/transformation_add_MANUAL/edit_metamodel"] = State(43, "/initialized/behaviour/operations/transformation_add_MANUAL/edit_metamodel", self)
         
         # state /initialized/behaviour/operations/transformation_execute_AL
-        self.states["/initialized/behaviour/operations/transformation_execute_AL"] = State(43, "/initialized/behaviour/operations/transformation_execute_AL", self)
+        self.states["/initialized/behaviour/operations/transformation_execute_AL"] = State(44, "/initialized/behaviour/operations/transformation_execute_AL", self)
         
         # state /initialized/behaviour/operations/transformation_execute_AL/send_operation
-        self.states["/initialized/behaviour/operations/transformation_execute_AL/send_operation"] = State(44, "/initialized/behaviour/operations/transformation_execute_AL/send_operation", self)
+        self.states["/initialized/behaviour/operations/transformation_execute_AL/send_operation"] = State(45, "/initialized/behaviour/operations/transformation_execute_AL/send_operation", self)
         self.states["/initialized/behaviour/operations/transformation_execute_AL/send_operation"].setEnter(self._initialized_behaviour_operations_transformation_execute_AL_send_operation_enter)
         
         # state /initialized/behaviour/operations/transformation_execute_AL/dialog
-        self.states["/initialized/behaviour/operations/transformation_execute_AL/dialog"] = State(45, "/initialized/behaviour/operations/transformation_execute_AL/dialog", self)
+        self.states["/initialized/behaviour/operations/transformation_execute_AL/dialog"] = State(46, "/initialized/behaviour/operations/transformation_execute_AL/dialog", self)
         
         # state /initialized/behaviour/operations/transformation_execute_MT
-        self.states["/initialized/behaviour/operations/transformation_execute_MT"] = State(46, "/initialized/behaviour/operations/transformation_execute_MT", self)
+        self.states["/initialized/behaviour/operations/transformation_execute_MT"] = State(47, "/initialized/behaviour/operations/transformation_execute_MT", self)
         
         # state /initialized/behaviour/operations/transformation_execute_MT/send_operation
-        self.states["/initialized/behaviour/operations/transformation_execute_MT/send_operation"] = State(47, "/initialized/behaviour/operations/transformation_execute_MT/send_operation", self)
+        self.states["/initialized/behaviour/operations/transformation_execute_MT/send_operation"] = State(48, "/initialized/behaviour/operations/transformation_execute_MT/send_operation", self)
         self.states["/initialized/behaviour/operations/transformation_execute_MT/send_operation"].setEnter(self._initialized_behaviour_operations_transformation_execute_MT_send_operation_enter)
         
         # state /initialized/behaviour/operations/transformation_execute_MT/dialog
-        self.states["/initialized/behaviour/operations/transformation_execute_MT/dialog"] = State(48, "/initialized/behaviour/operations/transformation_execute_MT/dialog", self)
+        self.states["/initialized/behaviour/operations/transformation_execute_MT/dialog"] = State(49, "/initialized/behaviour/operations/transformation_execute_MT/dialog", self)
         
         # state /initialized/behaviour/operations/transformation_execute_MANUAL
-        self.states["/initialized/behaviour/operations/transformation_execute_MANUAL"] = State(49, "/initialized/behaviour/operations/transformation_execute_MANUAL", self)
+        self.states["/initialized/behaviour/operations/transformation_execute_MANUAL"] = State(50, "/initialized/behaviour/operations/transformation_execute_MANUAL", self)
         
         # state /initialized/behaviour/operations/transformation_execute_MANUAL/send_metadata
-        self.states["/initialized/behaviour/operations/transformation_execute_MANUAL/send_metadata"] = State(50, "/initialized/behaviour/operations/transformation_execute_MANUAL/send_metadata", self)
+        self.states["/initialized/behaviour/operations/transformation_execute_MANUAL/send_metadata"] = State(51, "/initialized/behaviour/operations/transformation_execute_MANUAL/send_metadata", self)
         self.states["/initialized/behaviour/operations/transformation_execute_MANUAL/send_metadata"].setEnter(self._initialized_behaviour_operations_transformation_execute_MANUAL_send_metadata_enter)
         
         # state /initialized/behaviour/operations/transformation_execute_MANUAL/edit_model
-        self.states["/initialized/behaviour/operations/transformation_execute_MANUAL/edit_model"] = State(51, "/initialized/behaviour/operations/transformation_execute_MANUAL/edit_model", self)
+        self.states["/initialized/behaviour/operations/transformation_execute_MANUAL/edit_model"] = State(52, "/initialized/behaviour/operations/transformation_execute_MANUAL/edit_model", self)
         
         # state /initialized/behaviour/operations/process_execute
-        self.states["/initialized/behaviour/operations/process_execute"] = State(52, "/initialized/behaviour/operations/process_execute", self)
+        self.states["/initialized/behaviour/operations/process_execute"] = State(53, "/initialized/behaviour/operations/process_execute", self)
         self.states["/initialized/behaviour/operations/process_execute"].setEnter(self._initialized_behaviour_operations_process_execute_enter)
         
         # state /initialized/behaviour/operations/permission_modify
-        self.states["/initialized/behaviour/operations/permission_modify"] = State(53, "/initialized/behaviour/operations/permission_modify", self)
+        self.states["/initialized/behaviour/operations/permission_modify"] = State(54, "/initialized/behaviour/operations/permission_modify", self)
         self.states["/initialized/behaviour/operations/permission_modify"].setEnter(self._initialized_behaviour_operations_permission_modify_enter)
         
         # state /initialized/behaviour/operations/permission_owner
-        self.states["/initialized/behaviour/operations/permission_owner"] = State(54, "/initialized/behaviour/operations/permission_owner", self)
+        self.states["/initialized/behaviour/operations/permission_owner"] = State(55, "/initialized/behaviour/operations/permission_owner", self)
         self.states["/initialized/behaviour/operations/permission_owner"].setEnter(self._initialized_behaviour_operations_permission_owner_enter)
         
         # state /initialized/behaviour/operations/permission_group
-        self.states["/initialized/behaviour/operations/permission_group"] = State(55, "/initialized/behaviour/operations/permission_group", self)
+        self.states["/initialized/behaviour/operations/permission_group"] = State(56, "/initialized/behaviour/operations/permission_group", self)
         self.states["/initialized/behaviour/operations/permission_group"].setEnter(self._initialized_behaviour_operations_permission_group_enter)
         
         # state /initialized/behaviour/operations/group_create
-        self.states["/initialized/behaviour/operations/group_create"] = State(56, "/initialized/behaviour/operations/group_create", self)
+        self.states["/initialized/behaviour/operations/group_create"] = State(57, "/initialized/behaviour/operations/group_create", self)
         self.states["/initialized/behaviour/operations/group_create"].setEnter(self._initialized_behaviour_operations_group_create_enter)
         
         # state /initialized/behaviour/operations/group_delete
-        self.states["/initialized/behaviour/operations/group_delete"] = State(57, "/initialized/behaviour/operations/group_delete", self)
+        self.states["/initialized/behaviour/operations/group_delete"] = State(58, "/initialized/behaviour/operations/group_delete", self)
         self.states["/initialized/behaviour/operations/group_delete"].setEnter(self._initialized_behaviour_operations_group_delete_enter)
         
         # state /initialized/behaviour/operations/group_owner_add
-        self.states["/initialized/behaviour/operations/group_owner_add"] = State(58, "/initialized/behaviour/operations/group_owner_add", self)
+        self.states["/initialized/behaviour/operations/group_owner_add"] = State(59, "/initialized/behaviour/operations/group_owner_add", self)
         self.states["/initialized/behaviour/operations/group_owner_add"].setEnter(self._initialized_behaviour_operations_group_owner_add_enter)
         
         # state /initialized/behaviour/operations/group_owner_delete
-        self.states["/initialized/behaviour/operations/group_owner_delete"] = State(59, "/initialized/behaviour/operations/group_owner_delete", self)
+        self.states["/initialized/behaviour/operations/group_owner_delete"] = State(60, "/initialized/behaviour/operations/group_owner_delete", self)
         self.states["/initialized/behaviour/operations/group_owner_delete"].setEnter(self._initialized_behaviour_operations_group_owner_delete_enter)
         
         # state /initialized/behaviour/operations/group_join
-        self.states["/initialized/behaviour/operations/group_join"] = State(60, "/initialized/behaviour/operations/group_join", self)
+        self.states["/initialized/behaviour/operations/group_join"] = State(61, "/initialized/behaviour/operations/group_join", self)
         self.states["/initialized/behaviour/operations/group_join"].setEnter(self._initialized_behaviour_operations_group_join_enter)
         
         # state /initialized/behaviour/operations/group_kick
-        self.states["/initialized/behaviour/operations/group_kick"] = State(61, "/initialized/behaviour/operations/group_kick", self)
+        self.states["/initialized/behaviour/operations/group_kick"] = State(62, "/initialized/behaviour/operations/group_kick", self)
         self.states["/initialized/behaviour/operations/group_kick"].setEnter(self._initialized_behaviour_operations_group_kick_enter)
         
         # state /initialized/behaviour/operations/group_list
-        self.states["/initialized/behaviour/operations/group_list"] = State(62, "/initialized/behaviour/operations/group_list", self)
+        self.states["/initialized/behaviour/operations/group_list"] = State(63, "/initialized/behaviour/operations/group_list", self)
         self.states["/initialized/behaviour/operations/group_list"].setEnter(self._initialized_behaviour_operations_group_list_enter)
         
         # state /initialized/behaviour/operations/admin_promote
-        self.states["/initialized/behaviour/operations/admin_promote"] = State(63, "/initialized/behaviour/operations/admin_promote", self)
+        self.states["/initialized/behaviour/operations/admin_promote"] = State(64, "/initialized/behaviour/operations/admin_promote", self)
         self.states["/initialized/behaviour/operations/admin_promote"].setEnter(self._initialized_behaviour_operations_admin_promote_enter)
         
         # state /initialized/behaviour/operations/admin_demote
-        self.states["/initialized/behaviour/operations/admin_demote"] = State(64, "/initialized/behaviour/operations/admin_demote", self)
+        self.states["/initialized/behaviour/operations/admin_demote"] = State(65, "/initialized/behaviour/operations/admin_demote", self)
         self.states["/initialized/behaviour/operations/admin_demote"].setEnter(self._initialized_behaviour_operations_admin_demote_enter)
         
         # state /initialized/behaviour/operations/conformance_delete
-        self.states["/initialized/behaviour/operations/conformance_delete"] = State(65, "/initialized/behaviour/operations/conformance_delete", self)
+        self.states["/initialized/behaviour/operations/conformance_delete"] = State(66, "/initialized/behaviour/operations/conformance_delete", self)
         self.states["/initialized/behaviour/operations/conformance_delete"].setEnter(self._initialized_behaviour_operations_conformance_delete_enter)
         
         # state /initialized/behaviour/operations/conformance_add
-        self.states["/initialized/behaviour/operations/conformance_add"] = State(66, "/initialized/behaviour/operations/conformance_add", self)
+        self.states["/initialized/behaviour/operations/conformance_add"] = State(67, "/initialized/behaviour/operations/conformance_add", self)
         self.states["/initialized/behaviour/operations/conformance_add"].setEnter(self._initialized_behaviour_operations_conformance_add_enter)
         
         # state /initialized/behaviour/operations/folder_create
-        self.states["/initialized/behaviour/operations/folder_create"] = State(67, "/initialized/behaviour/operations/folder_create", self)
+        self.states["/initialized/behaviour/operations/folder_create"] = State(68, "/initialized/behaviour/operations/folder_create", self)
         self.states["/initialized/behaviour/operations/folder_create"].setEnter(self._initialized_behaviour_operations_folder_create_enter)
         
         # state /initialized/behaviour/operations/model_types
-        self.states["/initialized/behaviour/operations/model_types"] = State(68, "/initialized/behaviour/operations/model_types", self)
+        self.states["/initialized/behaviour/operations/model_types"] = State(69, "/initialized/behaviour/operations/model_types", self)
         self.states["/initialized/behaviour/operations/model_types"].setEnter(self._initialized_behaviour_operations_model_types_enter)
         
         # state /initialized/behaviour/operations/element_list
-        self.states["/initialized/behaviour/operations/element_list"] = State(69, "/initialized/behaviour/operations/element_list", self)
+        self.states["/initialized/behaviour/operations/element_list"] = State(70, "/initialized/behaviour/operations/element_list", self)
         self.states["/initialized/behaviour/operations/element_list"].setEnter(self._initialized_behaviour_operations_element_list_enter)
         
         # state /initialized/behaviour/operations/element_list_nice
-        self.states["/initialized/behaviour/operations/element_list_nice"] = State(70, "/initialized/behaviour/operations/element_list_nice", self)
+        self.states["/initialized/behaviour/operations/element_list_nice"] = State(71, "/initialized/behaviour/operations/element_list_nice", self)
         self.states["/initialized/behaviour/operations/element_list_nice"].setEnter(self._initialized_behaviour_operations_element_list_nice_enter)
         
         # state /initialized/behaviour/operations/types
-        self.states["/initialized/behaviour/operations/types"] = State(71, "/initialized/behaviour/operations/types", self)
+        self.states["/initialized/behaviour/operations/types"] = State(72, "/initialized/behaviour/operations/types", self)
         self.states["/initialized/behaviour/operations/types"].setEnter(self._initialized_behaviour_operations_types_enter)
         
         # state /initialized/behaviour/operations/types_full
-        self.states["/initialized/behaviour/operations/types_full"] = State(72, "/initialized/behaviour/operations/types_full", self)
+        self.states["/initialized/behaviour/operations/types_full"] = State(73, "/initialized/behaviour/operations/types_full", self)
         self.states["/initialized/behaviour/operations/types_full"].setEnter(self._initialized_behaviour_operations_types_full_enter)
         
         # state /initialized/behaviour/operations/read_info
-        self.states["/initialized/behaviour/operations/read_info"] = State(73, "/initialized/behaviour/operations/read_info", self)
+        self.states["/initialized/behaviour/operations/read_info"] = State(74, "/initialized/behaviour/operations/read_info", self)
         self.states["/initialized/behaviour/operations/read_info"].setEnter(self._initialized_behaviour_operations_read_info_enter)
         
         # state /initialized/behaviour/operations/read_attrs
-        self.states["/initialized/behaviour/operations/read_attrs"] = State(74, "/initialized/behaviour/operations/read_attrs", self)
+        self.states["/initialized/behaviour/operations/read_attrs"] = State(75, "/initialized/behaviour/operations/read_attrs", self)
         self.states["/initialized/behaviour/operations/read_attrs"].setEnter(self._initialized_behaviour_operations_read_attrs_enter)
         
         # state /initialized/behaviour/operations/instantiate
-        self.states["/initialized/behaviour/operations/instantiate"] = State(75, "/initialized/behaviour/operations/instantiate", self)
+        self.states["/initialized/behaviour/operations/instantiate"] = State(76, "/initialized/behaviour/operations/instantiate", self)
         
         # state /initialized/behaviour/operations/instantiate/decide_node_or_edge
-        self.states["/initialized/behaviour/operations/instantiate/decide_node_or_edge"] = State(76, "/initialized/behaviour/operations/instantiate/decide_node_or_edge", self)
+        self.states["/initialized/behaviour/operations/instantiate/decide_node_or_edge"] = State(77, "/initialized/behaviour/operations/instantiate/decide_node_or_edge", self)
         
         # state /initialized/behaviour/operations/instantiate/created
-        self.states["/initialized/behaviour/operations/instantiate/created"] = State(77, "/initialized/behaviour/operations/instantiate/created", self)
+        self.states["/initialized/behaviour/operations/instantiate/created"] = State(78, "/initialized/behaviour/operations/instantiate/created", self)
         
         # state /initialized/behaviour/operations/delete_element
-        self.states["/initialized/behaviour/operations/delete_element"] = State(78, "/initialized/behaviour/operations/delete_element", self)
+        self.states["/initialized/behaviour/operations/delete_element"] = State(79, "/initialized/behaviour/operations/delete_element", self)
         self.states["/initialized/behaviour/operations/delete_element"].setEnter(self._initialized_behaviour_operations_delete_element_enter)
         
         # state /initialized/behaviour/operations/attr_assign
-        self.states["/initialized/behaviour/operations/attr_assign"] = State(79, "/initialized/behaviour/operations/attr_assign", self)
+        self.states["/initialized/behaviour/operations/attr_assign"] = State(80, "/initialized/behaviour/operations/attr_assign", self)
         self.states["/initialized/behaviour/operations/attr_assign"].setEnter(self._initialized_behaviour_operations_attr_assign_enter)
         
         # state /initialized/behaviour/operations/attr_assign_code
-        self.states["/initialized/behaviour/operations/attr_assign_code"] = State(80, "/initialized/behaviour/operations/attr_assign_code", self)
+        self.states["/initialized/behaviour/operations/attr_assign_code"] = State(81, "/initialized/behaviour/operations/attr_assign_code", self)
         self.states["/initialized/behaviour/operations/attr_assign_code"].setEnter(self._initialized_behaviour_operations_attr_assign_code_enter)
         
         # state /initialized/behaviour/operations/attr_delete
-        self.states["/initialized/behaviour/operations/attr_delete"] = State(81, "/initialized/behaviour/operations/attr_delete", self)
+        self.states["/initialized/behaviour/operations/attr_delete"] = State(82, "/initialized/behaviour/operations/attr_delete", self)
         self.states["/initialized/behaviour/operations/attr_delete"].setEnter(self._initialized_behaviour_operations_attr_delete_enter)
         
         # state /initialized/behaviour/operations/read_outgoing
-        self.states["/initialized/behaviour/operations/read_outgoing"] = State(82, "/initialized/behaviour/operations/read_outgoing", self)
+        self.states["/initialized/behaviour/operations/read_outgoing"] = State(83, "/initialized/behaviour/operations/read_outgoing", self)
         self.states["/initialized/behaviour/operations/read_outgoing"].setEnter(self._initialized_behaviour_operations_read_outgoing_enter)
         
         # state /initialized/behaviour/operations/read_incoming
-        self.states["/initialized/behaviour/operations/read_incoming"] = State(83, "/initialized/behaviour/operations/read_incoming", self)
+        self.states["/initialized/behaviour/operations/read_incoming"] = State(84, "/initialized/behaviour/operations/read_incoming", self)
         self.states["/initialized/behaviour/operations/read_incoming"].setEnter(self._initialized_behaviour_operations_read_incoming_enter)
         
         # state /initialized/behaviour/operations/read_association_source
-        self.states["/initialized/behaviour/operations/read_association_source"] = State(84, "/initialized/behaviour/operations/read_association_source", self)
+        self.states["/initialized/behaviour/operations/read_association_source"] = State(85, "/initialized/behaviour/operations/read_association_source", self)
         self.states["/initialized/behaviour/operations/read_association_source"].setEnter(self._initialized_behaviour_operations_read_association_source_enter)
         
         # state /initialized/behaviour/operations/read_association_destination
-        self.states["/initialized/behaviour/operations/read_association_destination"] = State(85, "/initialized/behaviour/operations/read_association_destination", self)
+        self.states["/initialized/behaviour/operations/read_association_destination"] = State(86, "/initialized/behaviour/operations/read_association_destination", self)
         self.states["/initialized/behaviour/operations/read_association_destination"].setEnter(self._initialized_behaviour_operations_read_association_destination_enter)
         
         # state /initialized/behaviour/operations/connections_between
-        self.states["/initialized/behaviour/operations/connections_between"] = State(86, "/initialized/behaviour/operations/connections_between", self)
+        self.states["/initialized/behaviour/operations/connections_between"] = State(87, "/initialized/behaviour/operations/connections_between", self)
         self.states["/initialized/behaviour/operations/connections_between"].setEnter(self._initialized_behaviour_operations_connections_between_enter)
         
         # state /initialized/behaviour/operations/define_attribute
-        self.states["/initialized/behaviour/operations/define_attribute"] = State(87, "/initialized/behaviour/operations/define_attribute", self)
+        self.states["/initialized/behaviour/operations/define_attribute"] = State(88, "/initialized/behaviour/operations/define_attribute", self)
         self.states["/initialized/behaviour/operations/define_attribute"].setEnter(self._initialized_behaviour_operations_define_attribute_enter)
         
         # state /initialized/behaviour/operations/all_instances
-        self.states["/initialized/behaviour/operations/all_instances"] = State(88, "/initialized/behaviour/operations/all_instances", self)
+        self.states["/initialized/behaviour/operations/all_instances"] = State(89, "/initialized/behaviour/operations/all_instances", self)
         self.states["/initialized/behaviour/operations/all_instances"].setEnter(self._initialized_behaviour_operations_all_instances_enter)
         
         # state /initialized/behaviour/wait_for_action
-        self.states["/initialized/behaviour/wait_for_action"] = State(89, "/initialized/behaviour/wait_for_action", self)
+        self.states["/initialized/behaviour/wait_for_action"] = State(90, "/initialized/behaviour/wait_for_action", self)
         
         # state /initialized/behaviour/wait_for_action/disconnected
-        self.states["/initialized/behaviour/wait_for_action/disconnected"] = State(90, "/initialized/behaviour/wait_for_action/disconnected", self)
+        self.states["/initialized/behaviour/wait_for_action/disconnected"] = State(91, "/initialized/behaviour/wait_for_action/disconnected", self)
         
         # state /initialized/behaviour/wait_for_action/connected
-        self.states["/initialized/behaviour/wait_for_action/connected"] = State(91, "/initialized/behaviour/wait_for_action/connected", self)
+        self.states["/initialized/behaviour/wait_for_action/connected"] = State(92, "/initialized/behaviour/wait_for_action/connected", self)
         
         # state /initialized/behaviour/wait_for_action/megamodelling
-        self.states["/initialized/behaviour/wait_for_action/megamodelling"] = State(92, "/initialized/behaviour/wait_for_action/megamodelling", self)
+        self.states["/initialized/behaviour/wait_for_action/megamodelling"] = State(93, "/initialized/behaviour/wait_for_action/megamodelling", self)
         
         # state /initialized/behaviour/wait_for_action/modelling
-        self.states["/initialized/behaviour/wait_for_action/modelling"] = State(93, "/initialized/behaviour/wait_for_action/modelling", self)
-        self.states["/initialized/behaviour/wait_for_action/modelling"].setEnter(self._initialized_behaviour_wait_for_action_modelling_enter)
+        self.states["/initialized/behaviour/wait_for_action/modelling"] = State(94, "/initialized/behaviour/wait_for_action/modelling", self)
         
         # state /initialized/behaviour/wait_for_action/modelling/recognized
-        self.states["/initialized/behaviour/wait_for_action/modelling/recognized"] = State(94, "/initialized/behaviour/wait_for_action/modelling/recognized", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling/recognized"] = State(95, "/initialized/behaviour/wait_for_action/modelling/recognized", self)
         
         # state /initialized/behaviour/wait_for_action/modelling/recognized/manual
-        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"] = State(95, "/initialized/behaviour/wait_for_action/modelling/recognized/manual", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"] = State(96, "/initialized/behaviour/wait_for_action/modelling/recognized/manual", self)
         
         # state /initialized/behaviour/wait_for_action/modelling/recognized/scripted
-        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/scripted"] = State(96, "/initialized/behaviour/wait_for_action/modelling/recognized/scripted", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/scripted"] = State(97, "/initialized/behaviour/wait_for_action/modelling/recognized/scripted", self)
         
         # state /initialized/behaviour/wait_for_action/finished
-        self.states["/initialized/behaviour/wait_for_action/finished"] = State(97, "/initialized/behaviour/wait_for_action/finished", self)
+        self.states["/initialized/behaviour/wait_for_action/finished"] = State(98, "/initialized/behaviour/wait_for_action/finished", self)
         
         # state /initialized/behaviour/wait_for_action/history
-        self.states["/initialized/behaviour/wait_for_action/history"] = DeepHistoryState(98, "/initialized/behaviour/wait_for_action/history", self)
+        self.states["/initialized/behaviour/wait_for_action/history"] = DeepHistoryState(99, "/initialized/behaviour/wait_for_action/history", self)
         
         # state /initialized/behaviour/going_manual
-        self.states["/initialized/behaviour/going_manual"] = State(99, "/initialized/behaviour/going_manual", self)
+        self.states["/initialized/behaviour/going_manual"] = State(100, "/initialized/behaviour/going_manual", self)
         self.states["/initialized/behaviour/going_manual"].setEnter(self._initialized_behaviour_going_manual_enter)
         
         # state /initialized/behaviour/going_scripted
-        self.states["/initialized/behaviour/going_scripted"] = State(100, "/initialized/behaviour/going_scripted", self)
+        self.states["/initialized/behaviour/going_scripted"] = State(101, "/initialized/behaviour/going_scripted", self)
         self.states["/initialized/behaviour/going_scripted"].setEnter(self._initialized_behaviour_going_scripted_enter)
         
         # state /initialized/behaviour/leaving_modelling
-        self.states["/initialized/behaviour/leaving_modelling"] = State(101, "/initialized/behaviour/leaving_modelling", self)
+        self.states["/initialized/behaviour/leaving_modelling"] = State(102, "/initialized/behaviour/leaving_modelling", self)
         self.states["/initialized/behaviour/leaving_modelling"].setEnter(self._initialized_behaviour_leaving_modelling_enter)
         
         # state /initialized/queue
-        self.states["/initialized/queue"] = State(102, "/initialized/queue", self)
+        self.states["/initialized/queue"] = State(103, "/initialized/queue", self)
         
         # state /initialized/queue/queue
-        self.states["/initialized/queue/queue"] = State(103, "/initialized/queue/queue", self)
+        self.states["/initialized/queue/queue"] = State(104, "/initialized/queue/queue", self)
         
         # add children
         self.states[""].addChild(self.states["/init"])
@@ -499,6 +500,7 @@ class Modelverse(RuntimeClassBase):
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/model_delete"])
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/model_list_full"])
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/verify"])
+        self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/alter_context"])
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/model_overwrite"])
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/disconnect"])
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/user_logout"])
@@ -731,6 +733,12 @@ class Modelverse(RuntimeClassBase):
         _initialized_behaviour_operations_verify_0.setGuard(self._initialized_behaviour_operations_verify_0_guard)
         self.states["/initialized/behaviour/operations/verify"].addTransition(_initialized_behaviour_operations_verify_0)
         
+        # transition /initialized/behaviour/operations/alter_context
+        _initialized_behaviour_operations_alter_context_0 = Transition(self, self.states["/initialized/behaviour/operations/alter_context"], [self.states["/initialized/behaviour/wait_for_action/history"]])
+        _initialized_behaviour_operations_alter_context_0.setAction(self._initialized_behaviour_operations_alter_context_0_exec)
+        _initialized_behaviour_operations_alter_context_0.setTrigger(None)
+        self.states["/initialized/behaviour/operations/alter_context"].addTransition(_initialized_behaviour_operations_alter_context_0)
+        
         # transition /initialized/behaviour/operations/model_overwrite/send_metadata
         _initialized_behaviour_operations_model_overwrite_send_metadata_0 = Transition(self, self.states["/initialized/behaviour/operations/model_overwrite/send_metadata"], [self.states["/initialized/behaviour/operations/model_overwrite/send_model"]])
         _initialized_behaviour_operations_model_overwrite_send_metadata_0.setTrigger(None)
@@ -1194,150 +1202,155 @@ class Modelverse(RuntimeClassBase):
         _initialized_behaviour_wait_for_action_megamodelling_4.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_4.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_4_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_4)
-        _initialized_behaviour_wait_for_action_megamodelling_5 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/model_overwrite"]])
+        _initialized_behaviour_wait_for_action_megamodelling_5 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/alter_context"]])
         _initialized_behaviour_wait_for_action_megamodelling_5.setAction(self._initialized_behaviour_wait_for_action_megamodelling_5_exec)
         _initialized_behaviour_wait_for_action_megamodelling_5.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_5.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_5_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_5)
-        _initialized_behaviour_wait_for_action_megamodelling_6 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/disconnect"]])
+        _initialized_behaviour_wait_for_action_megamodelling_6 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/model_overwrite"]])
         _initialized_behaviour_wait_for_action_megamodelling_6.setAction(self._initialized_behaviour_wait_for_action_megamodelling_6_exec)
         _initialized_behaviour_wait_for_action_megamodelling_6.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_6.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_6_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_6)
-        _initialized_behaviour_wait_for_action_megamodelling_7 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/user_logout"]])
+        _initialized_behaviour_wait_for_action_megamodelling_7 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/disconnect"]])
         _initialized_behaviour_wait_for_action_megamodelling_7.setAction(self._initialized_behaviour_wait_for_action_megamodelling_7_exec)
         _initialized_behaviour_wait_for_action_megamodelling_7.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_7.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_7_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_7)
-        _initialized_behaviour_wait_for_action_megamodelling_8 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/user_delete"]])
+        _initialized_behaviour_wait_for_action_megamodelling_8 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/user_logout"]])
         _initialized_behaviour_wait_for_action_megamodelling_8.setAction(self._initialized_behaviour_wait_for_action_megamodelling_8_exec)
         _initialized_behaviour_wait_for_action_megamodelling_8.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_8.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_8_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_8)
-        _initialized_behaviour_wait_for_action_megamodelling_9 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/model_render"]])
+        _initialized_behaviour_wait_for_action_megamodelling_9 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/user_delete"]])
         _initialized_behaviour_wait_for_action_megamodelling_9.setAction(self._initialized_behaviour_wait_for_action_megamodelling_9_exec)
         _initialized_behaviour_wait_for_action_megamodelling_9.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_9.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_9_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_9)
-        _initialized_behaviour_wait_for_action_megamodelling_10 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_between"]])
+        _initialized_behaviour_wait_for_action_megamodelling_10 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/model_render"]])
         _initialized_behaviour_wait_for_action_megamodelling_10.setAction(self._initialized_behaviour_wait_for_action_megamodelling_10_exec)
         _initialized_behaviour_wait_for_action_megamodelling_10.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_10.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_10_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_10)
-        _initialized_behaviour_wait_for_action_megamodelling_11 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_add_MT"]])
+        _initialized_behaviour_wait_for_action_megamodelling_11 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_between"]])
         _initialized_behaviour_wait_for_action_megamodelling_11.setAction(self._initialized_behaviour_wait_for_action_megamodelling_11_exec)
         _initialized_behaviour_wait_for_action_megamodelling_11.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_11.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_11_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_11)
-        _initialized_behaviour_wait_for_action_megamodelling_12 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_add_AL"]])
+        _initialized_behaviour_wait_for_action_megamodelling_12 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_add_MT"]])
         _initialized_behaviour_wait_for_action_megamodelling_12.setAction(self._initialized_behaviour_wait_for_action_megamodelling_12_exec)
         _initialized_behaviour_wait_for_action_megamodelling_12.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_12.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_12_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_12)
-        _initialized_behaviour_wait_for_action_megamodelling_13 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_add_MANUAL"]])
+        _initialized_behaviour_wait_for_action_megamodelling_13 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_add_AL"]])
         _initialized_behaviour_wait_for_action_megamodelling_13.setAction(self._initialized_behaviour_wait_for_action_megamodelling_13_exec)
         _initialized_behaviour_wait_for_action_megamodelling_13.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_13.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_13_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_13)
-        _initialized_behaviour_wait_for_action_megamodelling_14 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_execute_MT"]])
+        _initialized_behaviour_wait_for_action_megamodelling_14 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_add_MANUAL"]])
         _initialized_behaviour_wait_for_action_megamodelling_14.setAction(self._initialized_behaviour_wait_for_action_megamodelling_14_exec)
         _initialized_behaviour_wait_for_action_megamodelling_14.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_14.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_14_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_14)
-        _initialized_behaviour_wait_for_action_megamodelling_15 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_execute_AL"]])
+        _initialized_behaviour_wait_for_action_megamodelling_15 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_execute_MT"]])
         _initialized_behaviour_wait_for_action_megamodelling_15.setAction(self._initialized_behaviour_wait_for_action_megamodelling_15_exec)
         _initialized_behaviour_wait_for_action_megamodelling_15.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_15.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_15_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_15)
-        _initialized_behaviour_wait_for_action_megamodelling_16 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_execute_MANUAL"]])
+        _initialized_behaviour_wait_for_action_megamodelling_16 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_execute_AL"]])
         _initialized_behaviour_wait_for_action_megamodelling_16.setAction(self._initialized_behaviour_wait_for_action_megamodelling_16_exec)
         _initialized_behaviour_wait_for_action_megamodelling_16.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_16.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_16_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_16)
-        _initialized_behaviour_wait_for_action_megamodelling_17 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/permission_modify"]])
+        _initialized_behaviour_wait_for_action_megamodelling_17 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/transformation_execute_MANUAL"]])
         _initialized_behaviour_wait_for_action_megamodelling_17.setAction(self._initialized_behaviour_wait_for_action_megamodelling_17_exec)
         _initialized_behaviour_wait_for_action_megamodelling_17.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_17.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_17_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_17)
-        _initialized_behaviour_wait_for_action_megamodelling_18 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/permission_owner"]])
+        _initialized_behaviour_wait_for_action_megamodelling_18 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/permission_modify"]])
         _initialized_behaviour_wait_for_action_megamodelling_18.setAction(self._initialized_behaviour_wait_for_action_megamodelling_18_exec)
         _initialized_behaviour_wait_for_action_megamodelling_18.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_18.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_18_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_18)
-        _initialized_behaviour_wait_for_action_megamodelling_19 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/permission_group"]])
+        _initialized_behaviour_wait_for_action_megamodelling_19 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/permission_owner"]])
         _initialized_behaviour_wait_for_action_megamodelling_19.setAction(self._initialized_behaviour_wait_for_action_megamodelling_19_exec)
         _initialized_behaviour_wait_for_action_megamodelling_19.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_19.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_19_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_19)
-        _initialized_behaviour_wait_for_action_megamodelling_20 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_create"]])
+        _initialized_behaviour_wait_for_action_megamodelling_20 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/permission_group"]])
         _initialized_behaviour_wait_for_action_megamodelling_20.setAction(self._initialized_behaviour_wait_for_action_megamodelling_20_exec)
         _initialized_behaviour_wait_for_action_megamodelling_20.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_20.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_20_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_20)
-        _initialized_behaviour_wait_for_action_megamodelling_21 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_delete"]])
+        _initialized_behaviour_wait_for_action_megamodelling_21 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_create"]])
         _initialized_behaviour_wait_for_action_megamodelling_21.setAction(self._initialized_behaviour_wait_for_action_megamodelling_21_exec)
         _initialized_behaviour_wait_for_action_megamodelling_21.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_21.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_21_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_21)
-        _initialized_behaviour_wait_for_action_megamodelling_22 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_owner_add"]])
+        _initialized_behaviour_wait_for_action_megamodelling_22 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_delete"]])
         _initialized_behaviour_wait_for_action_megamodelling_22.setAction(self._initialized_behaviour_wait_for_action_megamodelling_22_exec)
         _initialized_behaviour_wait_for_action_megamodelling_22.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_22.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_22_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_22)
-        _initialized_behaviour_wait_for_action_megamodelling_23 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_owner_delete"]])
+        _initialized_behaviour_wait_for_action_megamodelling_23 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_owner_add"]])
         _initialized_behaviour_wait_for_action_megamodelling_23.setAction(self._initialized_behaviour_wait_for_action_megamodelling_23_exec)
         _initialized_behaviour_wait_for_action_megamodelling_23.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_23.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_23_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_23)
-        _initialized_behaviour_wait_for_action_megamodelling_24 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_join"]])
+        _initialized_behaviour_wait_for_action_megamodelling_24 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_owner_delete"]])
         _initialized_behaviour_wait_for_action_megamodelling_24.setAction(self._initialized_behaviour_wait_for_action_megamodelling_24_exec)
         _initialized_behaviour_wait_for_action_megamodelling_24.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_24.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_24_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_24)
-        _initialized_behaviour_wait_for_action_megamodelling_25 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_kick"]])
+        _initialized_behaviour_wait_for_action_megamodelling_25 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_join"]])
         _initialized_behaviour_wait_for_action_megamodelling_25.setAction(self._initialized_behaviour_wait_for_action_megamodelling_25_exec)
         _initialized_behaviour_wait_for_action_megamodelling_25.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_25.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_25_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_25)
-        _initialized_behaviour_wait_for_action_megamodelling_26 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_list"]])
+        _initialized_behaviour_wait_for_action_megamodelling_26 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_kick"]])
         _initialized_behaviour_wait_for_action_megamodelling_26.setAction(self._initialized_behaviour_wait_for_action_megamodelling_26_exec)
         _initialized_behaviour_wait_for_action_megamodelling_26.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_26.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_26_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_26)
-        _initialized_behaviour_wait_for_action_megamodelling_27 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/admin_promote"]])
+        _initialized_behaviour_wait_for_action_megamodelling_27 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/group_list"]])
         _initialized_behaviour_wait_for_action_megamodelling_27.setAction(self._initialized_behaviour_wait_for_action_megamodelling_27_exec)
         _initialized_behaviour_wait_for_action_megamodelling_27.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_27.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_27_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_27)
-        _initialized_behaviour_wait_for_action_megamodelling_28 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/admin_demote"]])
+        _initialized_behaviour_wait_for_action_megamodelling_28 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/admin_promote"]])
         _initialized_behaviour_wait_for_action_megamodelling_28.setAction(self._initialized_behaviour_wait_for_action_megamodelling_28_exec)
         _initialized_behaviour_wait_for_action_megamodelling_28.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_28.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_28_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_28)
-        _initialized_behaviour_wait_for_action_megamodelling_29 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/conformance_delete"]])
+        _initialized_behaviour_wait_for_action_megamodelling_29 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/admin_demote"]])
         _initialized_behaviour_wait_for_action_megamodelling_29.setAction(self._initialized_behaviour_wait_for_action_megamodelling_29_exec)
         _initialized_behaviour_wait_for_action_megamodelling_29.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_29.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_29_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_29)
-        _initialized_behaviour_wait_for_action_megamodelling_30 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/conformance_add"]])
+        _initialized_behaviour_wait_for_action_megamodelling_30 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/conformance_delete"]])
         _initialized_behaviour_wait_for_action_megamodelling_30.setAction(self._initialized_behaviour_wait_for_action_megamodelling_30_exec)
         _initialized_behaviour_wait_for_action_megamodelling_30.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_30.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_30_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_30)
-        _initialized_behaviour_wait_for_action_megamodelling_31 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/folder_create"]])
+        _initialized_behaviour_wait_for_action_megamodelling_31 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/conformance_add"]])
         _initialized_behaviour_wait_for_action_megamodelling_31.setAction(self._initialized_behaviour_wait_for_action_megamodelling_31_exec)
         _initialized_behaviour_wait_for_action_megamodelling_31.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_31.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_31_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_31)
-        _initialized_behaviour_wait_for_action_megamodelling_32 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/model_types"]])
+        _initialized_behaviour_wait_for_action_megamodelling_32 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/folder_create"]])
         _initialized_behaviour_wait_for_action_megamodelling_32.setAction(self._initialized_behaviour_wait_for_action_megamodelling_32_exec)
         _initialized_behaviour_wait_for_action_megamodelling_32.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_32.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_32_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_32)
-        _initialized_behaviour_wait_for_action_megamodelling_33 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/going_manual"]])
+        _initialized_behaviour_wait_for_action_megamodelling_33 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/operations/model_types"]])
+        _initialized_behaviour_wait_for_action_megamodelling_33.setAction(self._initialized_behaviour_wait_for_action_megamodelling_33_exec)
         _initialized_behaviour_wait_for_action_megamodelling_33.setTrigger(None)
         _initialized_behaviour_wait_for_action_megamodelling_33.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_33_guard)
         self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_33)
+        _initialized_behaviour_wait_for_action_megamodelling_34 = Transition(self, self.states["/initialized/behaviour/wait_for_action/megamodelling"], [self.states["/initialized/behaviour/going_manual"]])
+        _initialized_behaviour_wait_for_action_megamodelling_34.setTrigger(None)
+        _initialized_behaviour_wait_for_action_megamodelling_34.setGuard(self._initialized_behaviour_wait_for_action_megamodelling_34_guard)
+        self.states["/initialized/behaviour/wait_for_action/megamodelling"].addTransition(_initialized_behaviour_wait_for_action_megamodelling_34)
         
         # transition /initialized/behaviour/wait_for_action/modelling/recognized/manual
         _initialized_behaviour_wait_for_action_modelling_recognized_manual_0 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"], [self.states["/initialized/behaviour/leaving_modelling"]])
@@ -1358,10 +1371,14 @@ class Modelverse(RuntimeClassBase):
         
         # transition /initialized/behaviour/going_manual
         _initialized_behaviour_going_manual_0 = Transition(self, self.states["/initialized/behaviour/going_manual"], [self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"]])
-        _initialized_behaviour_going_manual_0.setAction(self._initialized_behaviour_going_manual_0_exec)
         _initialized_behaviour_going_manual_0.setTrigger(None)
         _initialized_behaviour_going_manual_0.setGuard(self._initialized_behaviour_going_manual_0_guard)
         self.states["/initialized/behaviour/going_manual"].addTransition(_initialized_behaviour_going_manual_0)
+        _initialized_behaviour_going_manual_1 = Transition(self, self.states["/initialized/behaviour/going_manual"], [self.states["/initialized/behaviour/wait_for_action/megamodelling"]])
+        _initialized_behaviour_going_manual_1.setAction(self._initialized_behaviour_going_manual_1_exec)
+        _initialized_behaviour_going_manual_1.setTrigger(None)
+        _initialized_behaviour_going_manual_1.setGuard(self._initialized_behaviour_going_manual_1_guard)
+        self.states["/initialized/behaviour/going_manual"].addTransition(_initialized_behaviour_going_manual_1)
         
         # transition /initialized/behaviour/going_scripted
         _initialized_behaviour_going_scripted_0 = Transition(self, self.states["/initialized/behaviour/going_scripted"], [self.states["/initialized/behaviour/wait_for_action/modelling/recognized/scripted"]])
@@ -1399,6 +1416,11 @@ class Modelverse(RuntimeClassBase):
         _initialized_behaviour_operations_0.setTrigger(None)
         _initialized_behaviour_operations_0.setGuard(self._initialized_behaviour_operations_0_guard)
         self.states["/initialized/behaviour/operations"].addTransition(_initialized_behaviour_operations_0)
+        _initialized_behaviour_operations_1 = Transition(self, self.states["/initialized/behaviour/operations"], [self.states["/initialized/behaviour/wait_for_action/history"]])
+        _initialized_behaviour_operations_1.setAction(self._initialized_behaviour_operations_1_exec)
+        _initialized_behaviour_operations_1.setTrigger(None)
+        _initialized_behaviour_operations_1.setGuard(self._initialized_behaviour_operations_1_guard)
+        self.states["/initialized/behaviour/operations"].addTransition(_initialized_behaviour_operations_1)
         
         # transition /initialized/behaviour/operations/transformation_add_MT
         _initialized_behaviour_operations_transformation_add_MT_0 = Transition(self, self.states["/initialized/behaviour/operations/transformation_add_MT"], [self.states["/initialized/behaviour/wait_for_action/history"]])
@@ -1529,11 +1551,6 @@ class Modelverse(RuntimeClassBase):
         self.i = 0
         self.taskname = str(uuid.uuid4())
     
-    def _initialized_behaviour_wait_for_action_modelling_enter(self):
-        print("Start modelling!")
-        print("Context: " + str(self.context))
-        print("actions: " + str(self.actions[self.context]))
-    
     def _init_enter(self):
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'http_client', 'HTTPClient']))
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'http_client', 'HTTPClient']))
@@ -1554,10 +1571,10 @@ class Modelverse(RuntimeClassBase):
         self.raiseInternalEvent(Event("request", None, [['verify', self.parameters[0], self.parameters[1]]]))
     
     def _initialized_behaviour_operations_model_overwrite_send_metadata_enter(self):
-        self.raiseInternalEvent(Event("request", None, [['model_overwrite', self.parameters[1]]]))
+        self.raiseInternalEvent(Event("request", None, [['model_overwrite', self.parameters[0], self.registered_metamodel[self.parameters[0]]]]))
     
     def _initialized_behaviour_operations_model_overwrite_send_model_enter(self):
-        self.raiseInternalEvent(Event("request", None, [self.parameters[2]]))
+        self.raiseInternalEvent(Event("request", None, [self.parameters[1]]))
     
     def _initialized_behaviour_operations_disconnect_enter(self):
         self.raiseInternalEvent(Event("request", None, ['exit']))
@@ -1607,7 +1624,6 @@ class Modelverse(RuntimeClassBase):
         self.raiseInternalEvent(Event("result", None, [self.context]))
     
     def _initialized_behaviour_operations_process_execute_enter(self):
-        print("TODO")
         raise NotImplementedException()
     
     def _initialized_behaviour_operations_permission_modify_enter(self):
@@ -1659,10 +1675,10 @@ class Modelverse(RuntimeClassBase):
         self.raiseInternalEvent(Event("request", None, [['model_types', self.parameters[0]]]))
     
     def _initialized_behaviour_operations_element_list_enter(self):
-        self.raiseInternalEvent(Event("request", None, [['element_list']]))
+        self.raiseInternalEvent(Event("request", None, [['list_full']]))
     
     def _initialized_behaviour_operations_element_list_nice_enter(self):
-        self.raiseInternalEvent(Event("request", None, [['element_list_nice']]))
+        self.raiseInternalEvent(Event("request", None, [['JSON']]))
     
     def _initialized_behaviour_operations_types_enter(self):
         self.raiseInternalEvent(Event("request", None, [['types', self.parameters[1]]]))
@@ -1712,12 +1728,10 @@ class Modelverse(RuntimeClassBase):
     def _initialized_behaviour_going_manual_enter(self):
         self.context = None
         self.current_model = self.actions[None][0]["parameters"][0]
-        print("Setting current model to " + str(self.current_model))
         self.raiseInternalEvent(Event("request", None, [['model_modify', self.current_model, self.registered_metamodel[self.current_model]]]))
     
     def _initialized_behaviour_going_scripted_enter(self):
         self.current_model = None
-        print("Setting current model to " + str(self.current_model))
     
     def _initialized_behaviour_leaving_modelling_enter(self):
         self.raiseInternalEvent(Event("request", None, ['exit']))
@@ -1729,6 +1743,13 @@ class Modelverse(RuntimeClassBase):
     def _initialized_behaviour_operations_0_guard(self, parameters):
         return self.expect_response_partial('Element not found: ', pop=False)
     
+    def _initialized_behaviour_operations_1_exec(self, parameters):
+        self.raiseInternalEvent(Event("exception", None, ['UnknownMetamodellingHierarchy', 'Conformance relation not found']))
+        self.responses.pop(0)
+    
+    def _initialized_behaviour_operations_1_guard(self, parameters):
+        return self.expect_response_partial('No conformance relation can be found ', pop=False)
+    
     def _initialized_behaviour_operations_transformation_add_MT_0_exec(self, parameters):
         print("UNKNOWN RESPONSE received: " + str(self.responses.pop(0)))
     
@@ -1992,6 +2013,10 @@ class Modelverse(RuntimeClassBase):
     def _initialized_behaviour_operations_verify_0_guard(self, parameters):
         return self.expect_response_partial('Success: ', pop=False)
     
+    def _initialized_behaviour_operations_alter_context_0_exec(self, parameters):
+        self.registered_metamodel[self.parameters[0]] = self.parameters[1]
+        self.raiseInternalEvent(Event("result", None, [None]))
+    
     def _initialized_behaviour_operations_model_overwrite_send_metadata_0_guard(self, parameters):
         return self.expect_response('Waiting for model constructors...')
     
@@ -2223,13 +2248,15 @@ class Modelverse(RuntimeClassBase):
         return self.expect_response_partial('Success: ')
     
     def _initialized_behaviour_operations_element_list_0_exec(self, parameters):
-        self.raiseInternalEvent(Event("result", None, [set(self.split_response(self.responses.pop(0)))]))
+        responses = self.split_response(self.responses.pop(0))
+        result = set([tuple([j.strip() for j in i.split(':')]) for i in responses])
+        self.raiseInternalEvent(Event("result", None, [result]))
     
     def _initialized_behaviour_operations_element_list_0_guard(self, parameters):
         return self.expect_response_partial('Success: ', pop=False)
     
     def _initialized_behaviour_operations_element_list_nice_0_exec(self, parameters):
-        self.raiseInternalEvent(Event("result", None, [self.split_response(self.responses.pop(0))]))
+        self.raiseInternalEvent(Event("result", None, [json.loads(self.split_response(self.responses.pop(0))[0])]))
     
     def _initialized_behaviour_operations_element_list_nice_0_guard(self, parameters):
         return self.expect_response_partial('Success: ', pop=False)
@@ -2399,171 +2426,177 @@ class Modelverse(RuntimeClassBase):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_5_guard(self, parameters):
-        return self.expect_action(None, 'model_overwrite')
+        return self.expect_action(None, 'alter_context')
     
     def _initialized_behaviour_wait_for_action_megamodelling_6_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_6_guard(self, parameters):
-        return self.expect_action(None, 'disconnect')
+        return self.expect_action(None, 'model_overwrite')
     
     def _initialized_behaviour_wait_for_action_megamodelling_7_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_7_guard(self, parameters):
-        return self.expect_action(None, 'user_logout')
+        return self.expect_action(None, 'disconnect')
     
     def _initialized_behaviour_wait_for_action_megamodelling_8_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_8_guard(self, parameters):
-        return self.expect_action(None, 'user_delete')
+        return self.expect_action(None, 'user_logout')
     
     def _initialized_behaviour_wait_for_action_megamodelling_9_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_9_guard(self, parameters):
-        return self.expect_action(None, 'model_render')
+        return self.expect_action(None, 'user_delete')
     
     def _initialized_behaviour_wait_for_action_megamodelling_10_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_10_guard(self, parameters):
-        return self.expect_action(None, 'transformation_between')
+        return self.expect_action(None, 'model_render')
     
     def _initialized_behaviour_wait_for_action_megamodelling_11_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_11_guard(self, parameters):
-        return self.expect_action(None, 'transformation_add_MT')
+        return self.expect_action(None, 'transformation_between')
     
     def _initialized_behaviour_wait_for_action_megamodelling_12_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_12_guard(self, parameters):
-        return self.expect_action(None, 'transformation_add_AL')
+        return self.expect_action(None, 'transformation_add_MT')
     
     def _initialized_behaviour_wait_for_action_megamodelling_13_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_13_guard(self, parameters):
-        return self.expect_action(None, 'transformation_add_MANUAL')
+        return self.expect_action(None, 'transformation_add_AL')
     
     def _initialized_behaviour_wait_for_action_megamodelling_14_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_14_guard(self, parameters):
-        return self.expect_action(None, 'transformation_execute_MT')
+        return self.expect_action(None, 'transformation_add_MANUAL')
     
     def _initialized_behaviour_wait_for_action_megamodelling_15_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_15_guard(self, parameters):
-        return self.expect_action(None, 'transformation_execute_AL')
+        return self.expect_action(None, 'transformation_execute_MT')
     
     def _initialized_behaviour_wait_for_action_megamodelling_16_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_16_guard(self, parameters):
-        return self.expect_action(None, 'transformation_execute_MANUAL')
+        return self.expect_action(None, 'transformation_execute_AL')
     
     def _initialized_behaviour_wait_for_action_megamodelling_17_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_17_guard(self, parameters):
-        return self.expect_action(None, 'permission_modify')
+        return self.expect_action(None, 'transformation_execute_MANUAL')
     
     def _initialized_behaviour_wait_for_action_megamodelling_18_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_18_guard(self, parameters):
-        return self.expect_action(None, 'permission_owner')
+        return self.expect_action(None, 'permission_modify')
     
     def _initialized_behaviour_wait_for_action_megamodelling_19_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_19_guard(self, parameters):
-        return self.expect_action(None, 'permission_group')
+        return self.expect_action(None, 'permission_owner')
     
     def _initialized_behaviour_wait_for_action_megamodelling_20_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_20_guard(self, parameters):
-        return self.expect_action(None, 'group_create')
+        return self.expect_action(None, 'permission_group')
     
     def _initialized_behaviour_wait_for_action_megamodelling_21_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_21_guard(self, parameters):
-        return self.expect_action(None, 'group_delete')
+        return self.expect_action(None, 'group_create')
     
     def _initialized_behaviour_wait_for_action_megamodelling_22_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_22_guard(self, parameters):
-        return self.expect_action(None, 'group_owner_add')
+        return self.expect_action(None, 'group_delete')
     
     def _initialized_behaviour_wait_for_action_megamodelling_23_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_23_guard(self, parameters):
-        return self.expect_action(None, 'group_owner_delete')
+        return self.expect_action(None, 'group_owner_add')
     
     def _initialized_behaviour_wait_for_action_megamodelling_24_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_24_guard(self, parameters):
-        return self.expect_action(None, 'group_join')
+        return self.expect_action(None, 'group_owner_delete')
     
     def _initialized_behaviour_wait_for_action_megamodelling_25_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_25_guard(self, parameters):
-        return self.expect_action(None, 'group_kick')
+        return self.expect_action(None, 'group_join')
     
     def _initialized_behaviour_wait_for_action_megamodelling_26_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_26_guard(self, parameters):
-        return self.expect_action(None, 'group_list')
+        return self.expect_action(None, 'group_kick')
     
     def _initialized_behaviour_wait_for_action_megamodelling_27_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_27_guard(self, parameters):
-        return self.expect_action(None, 'admin_promote')
+        return self.expect_action(None, 'group_list')
     
     def _initialized_behaviour_wait_for_action_megamodelling_28_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_28_guard(self, parameters):
-        return self.expect_action(None, 'admin_demote')
+        return self.expect_action(None, 'admin_promote')
     
     def _initialized_behaviour_wait_for_action_megamodelling_29_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_29_guard(self, parameters):
-        return self.expect_action(None, 'conformance_delete')
+        return self.expect_action(None, 'admin_demote')
     
     def _initialized_behaviour_wait_for_action_megamodelling_30_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_30_guard(self, parameters):
-        return self.expect_action(None, 'conformance_add')
+        return self.expect_action(None, 'conformance_delete')
     
     def _initialized_behaviour_wait_for_action_megamodelling_31_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_31_guard(self, parameters):
-        return self.expect_action(None, 'folder_create')
+        return self.expect_action(None, 'conformance_add')
     
     def _initialized_behaviour_wait_for_action_megamodelling_32_exec(self, parameters):
         self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_32_guard(self, parameters):
-        return self.expect_action(None, 'model_types')
+        return self.expect_action(None, 'folder_create')
+    
+    def _initialized_behaviour_wait_for_action_megamodelling_33_exec(self, parameters):
+        self.load_action(None)
     
     def _initialized_behaviour_wait_for_action_megamodelling_33_guard(self, parameters):
+        return self.expect_action(None, 'model_types')
+    
+    def _initialized_behaviour_wait_for_action_megamodelling_34_guard(self, parameters):
         return self.expect_action(None, ['element_list', 'element_list_nice', 'types', 'types_full', 'read_info', 'read_attrs', 'instantiate', 'delete_element', 'attr_assign', 'attr_assign_code', 'attr_delete', 'read_outgoing', 'read_incoming', 'read_association_source', 'read_association_destination', 'connections_between', 'define_attribute', 'all_instances'])
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_manual_0_guard(self, parameters):
@@ -2579,12 +2612,17 @@ class Modelverse(RuntimeClassBase):
     def _initialized_behaviour_wait_for_action_modelling_recognized_scripted_0_guard(self, parameters):
         return self.expect_action(self.context, 'exit')
     
-    def _initialized_behaviour_going_manual_0_exec(self, parameters):
-        print("Going to manual!")
-    
     def _initialized_behaviour_going_manual_0_guard(self, parameters):
         return self.expect_response('Model loaded, ready for commands!', pop=True)
     
+    def _initialized_behaviour_going_manual_1_exec(self, parameters):
+        self.raiseInternalEvent(Event("exception", None, ['UnknownMetamodellingHierarchy', 'Conformance relation not found']))
+        self.responses.pop(0)
+        self.actions[None].pop(0)
+    
+    def _initialized_behaviour_going_manual_1_guard(self, parameters):
+        return self.expect_response_partial('No conformance relation can be found ', pop=False)
+    
     def _initialized_behaviour_going_scripted_0_guard(self, parameters):
         return self.expect_response('Model loaded, ready for commands!', pop=True)