Browse Source

Added fetch_output feature

Yentl Van Tendeloo 6 years ago
parent
commit
c08c488f15
4 changed files with 180 additions and 131 deletions
  1. 21 2
      wrappers/classes/modelverse.xml
  2. 2 0
      wrappers/compile.sh
  3. 6 5
      wrappers/modelverse.py
  4. 151 124
      wrappers/modelverse_SCCD.py

+ 21 - 2
wrappers/classes/modelverse.xml

@@ -85,12 +85,14 @@
 
     <constructor>
         <body>
+            self.controller.taskname = None
             self.actions = {None: []}
             self.responses = []
             self.http_clients = []
             self.context = None
             self.registered_metamodel = {}
             self.inputs = {}
+            self.finish_output_thread = False
         </body>
     </constructor>
 
@@ -158,7 +160,18 @@
                         </raise>
                     </transition>
 
-                    <transition event="HTTP_output" target=".">
+                    <transition event="HTTP_output" cond="not self.finish_output_thread" target=".">
+                        <parameter name="data"/>
+                        <raise event="HTTP_input" target="self.http_clients[1]">
+                            <parameter expr='urllib.urlencode({"op": "get_output", "taskname": self.taskname})'/>
+                            <parameter expr='"parent"'/>
+                        </raise>
+                        <script>
+                            self.responses.append(json.loads(data))
+                        </script>
+                    </transition>
+
+                    <transition event="HTTP_output" cond="self.finish_output_thread" target="../finished">
                         <parameter name="data"/>
                         <raise event="HTTP_input" target="self.http_clients[1]">
                             <parameter expr='urllib.urlencode({"op": "get_output", "taskname": self.taskname})'/>
@@ -169,6 +182,8 @@
                         </script>
                     </transition>
                 </state>
+
+                <state id="finished"/>
             </state>
 
             <state id="behaviour" initial="wait_for_action">
@@ -180,7 +195,7 @@
                             self.address = (self.address[0], int(self.address[1]))
 
                             self.i = 0
-                            self.taskname = str(uuid.uuid4())
+                            self.controller.taskname = self.taskname = str(uuid.uuid4())
                         </script>
                     </onentry>
 
@@ -672,6 +687,10 @@
                                     <raise event="request">
                                         <parameter expr="['transformation_execute', self.parameters[0]] + self.dict_to_list(self.parameters[1]) + self.dict_to_list(self.parameters[2]) + [self.parameters[4]]"/>
                                     </raise>
+                                    <script>
+                                        if self.parameters[5] == False:
+                                            self.finish_output_thread = True
+                                    </script>
                                 </onentry>
 
                                 <transition cond="self.expect_response_partial('Success: ready for ', pop=True)" target="../dialog">

+ 2 - 0
wrappers/compile.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+python -m sccd.compiler.sccdc -p threads modelverse_SCCD.xml

+ 6 - 5
wrappers/modelverse.py

@@ -158,11 +158,11 @@ def transformation_add_MANUAL(source_metamodels, target_metamodels, operation_na
     INPUT("exit", context, [])
     return OUTPUT()
 
-def transformation_execute_MT(operation_name, input_models_dict, output_models_dict, statechart=None, tracability_model=""):
+def transformation_execute_MT(operation_name, input_models_dict, output_models_dict, statechart=None, tracability_model="", fetch_output=True):
     if statechart is not None:
         port_sc = statechart[0].addOutputListener(statechart[2])
 
-    INPUT("transformation_execute_MT", None, [operation_name, input_models_dict, output_models_dict, tracability_model])
+    INPUT("transformation_execute_MT", None, [operation_name, input_models_dict, output_models_dict, tracability_model, fetch_output])
     context = OUTPUT()
     if statechart is not None:
         while 1:
@@ -192,10 +192,10 @@ def transformation_execute_MT(operation_name, input_models_dict, output_models_d
     else:
         return OUTPUT()
 
-def transformation_execute_AL(operation_name, input_models_dict, output_models_dict, statechart=None, tracability_model=""):
+def transformation_execute_AL(operation_name, input_models_dict, output_models_dict, statechart=None, tracability_model="", fetch_output=True):
     if statechart is not None:
         port_sc = statechart[0].addOutputListener(statechart[2])
-    INPUT("transformation_execute_AL", None, [operation_name, input_models_dict, output_models_dict, tracability_model])
+    INPUT("transformation_execute_AL", None, [operation_name, input_models_dict, output_models_dict, tracability_model, fetch_output])
 
     context = OUTPUT()
     if statechart is not None:
@@ -435,4 +435,5 @@ def process_execute(process_name, prefix, callbacks=None):
                 return None
 
 def get_taskname():
-    raise NotImplementedError("TODO")
+    """Fetch the taskname of the current connection."""
+    return controller.taskname

+ 151 - 124
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:   Mon Oct 30 14:14:31 2017
+Date:   Mon Oct 30 15:04:23 2017
 
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server
@@ -38,12 +38,14 @@ class Modelverse(RuntimeClassBase):
         Modelverse.user_defined_constructor(self)
     
     def user_defined_constructor(self):
+        self.controller.taskname = None
         self.actions = {None: []}
         self.responses = []
         self.http_clients = []
         self.context = None
         self.registered_metamodel = {}
         self.inputs = {}
+        self.finish_output_thread = False
     
     def user_defined_destructor(self):
         pass
@@ -136,440 +138,443 @@ class Modelverse(RuntimeClassBase):
         # state /initialized/http_mapper/init
         self.states["/initialized/http_mapper/init"] = State(5, "/initialized/http_mapper/init", self)
         
+        # state /initialized/http_mapper/finished
+        self.states["/initialized/http_mapper/finished"] = State(6, "/initialized/http_mapper/finished", self)
+        
         # state /initialized/behaviour
-        self.states["/initialized/behaviour"] = State(6, "/initialized/behaviour", self)
+        self.states["/initialized/behaviour"] = State(7, "/initialized/behaviour", self)
         
         # state /initialized/behaviour/init
-        self.states["/initialized/behaviour/init"] = State(7, "/initialized/behaviour/init", self)
+        self.states["/initialized/behaviour/init"] = State(8, "/initialized/behaviour/init", self)
         self.states["/initialized/behaviour/init"].setEnter(self._initialized_behaviour_init_enter)
         
         # state /initialized/behaviour/init/connect_http_client
-        self.states["/initialized/behaviour/init/connect_http_client"] = State(8, "/initialized/behaviour/init/connect_http_client", self)
+        self.states["/initialized/behaviour/init/connect_http_client"] = State(9, "/initialized/behaviour/init/connect_http_client", self)
         
         # state /initialized/behaviour/init/waiting_http_client
-        self.states["/initialized/behaviour/init/waiting_http_client"] = State(9, "/initialized/behaviour/init/waiting_http_client", self)
+        self.states["/initialized/behaviour/init/waiting_http_client"] = State(10, "/initialized/behaviour/init/waiting_http_client", self)
         
         # state /initialized/behaviour/init/wait_for_taskname_ack
-        self.states["/initialized/behaviour/init/wait_for_taskname_ack"] = State(10, "/initialized/behaviour/init/wait_for_taskname_ack", self)
+        self.states["/initialized/behaviour/init/wait_for_taskname_ack"] = State(11, "/initialized/behaviour/init/wait_for_taskname_ack", self)
         
         # state /initialized/behaviour/operations
-        self.states["/initialized/behaviour/operations"] = State(11, "/initialized/behaviour/operations", self)
+        self.states["/initialized/behaviour/operations"] = State(12, "/initialized/behaviour/operations", self)
         
         # state /initialized/behaviour/operations/history
-        self.states["/initialized/behaviour/operations/history"] = DeepHistoryState(12, "/initialized/behaviour/operations/history", self)
+        self.states["/initialized/behaviour/operations/history"] = DeepHistoryState(13, "/initialized/behaviour/operations/history", self)
         
         # state /initialized/behaviour/operations/login
-        self.states["/initialized/behaviour/operations/login"] = State(13, "/initialized/behaviour/operations/login", self)
+        self.states["/initialized/behaviour/operations/login"] = State(14, "/initialized/behaviour/operations/login", self)
         
         # state /initialized/behaviour/operations/login/wait_prompt_1
-        self.states["/initialized/behaviour/operations/login/wait_prompt_1"] = State(14, "/initialized/behaviour/operations/login/wait_prompt_1", self)
+        self.states["/initialized/behaviour/operations/login/wait_prompt_1"] = State(15, "/initialized/behaviour/operations/login/wait_prompt_1", self)
         
         # state /initialized/behaviour/operations/login/wait_prompt_2
-        self.states["/initialized/behaviour/operations/login/wait_prompt_2"] = State(15, "/initialized/behaviour/operations/login/wait_prompt_2", self)
+        self.states["/initialized/behaviour/operations/login/wait_prompt_2"] = State(16, "/initialized/behaviour/operations/login/wait_prompt_2", self)
         
         # state /initialized/behaviour/operations/login/wait_prompt_existing
-        self.states["/initialized/behaviour/operations/login/wait_prompt_existing"] = State(16, "/initialized/behaviour/operations/login/wait_prompt_existing", self)
+        self.states["/initialized/behaviour/operations/login/wait_prompt_existing"] = State(17, "/initialized/behaviour/operations/login/wait_prompt_existing", self)
         
         # state /initialized/behaviour/operations/login/login_ok
-        self.states["/initialized/behaviour/operations/login/login_ok"] = State(17, "/initialized/behaviour/operations/login/login_ok", self)
+        self.states["/initialized/behaviour/operations/login/login_ok"] = State(18, "/initialized/behaviour/operations/login/login_ok", self)
         
         # state /initialized/behaviour/operations/model_list
-        self.states["/initialized/behaviour/operations/model_list"] = State(18, "/initialized/behaviour/operations/model_list", self)
+        self.states["/initialized/behaviour/operations/model_list"] = State(19, "/initialized/behaviour/operations/model_list", self)
         self.states["/initialized/behaviour/operations/model_list"].setEnter(self._initialized_behaviour_operations_model_list_enter)
         
         # state /initialized/behaviour/operations/model_add
-        self.states["/initialized/behaviour/operations/model_add"] = State(19, "/initialized/behaviour/operations/model_add", self)
+        self.states["/initialized/behaviour/operations/model_add"] = State(20, "/initialized/behaviour/operations/model_add", self)
         
         # state /initialized/behaviour/operations/model_add/send_metadata
-        self.states["/initialized/behaviour/operations/model_add/send_metadata"] = State(20, "/initialized/behaviour/operations/model_add/send_metadata", self)
+        self.states["/initialized/behaviour/operations/model_add/send_metadata"] = State(21, "/initialized/behaviour/operations/model_add/send_metadata", self)
         self.states["/initialized/behaviour/operations/model_add/send_metadata"].setEnter(self._initialized_behaviour_operations_model_add_send_metadata_enter)
         
         # state /initialized/behaviour/operations/model_delete
-        self.states["/initialized/behaviour/operations/model_delete"] = State(21, "/initialized/behaviour/operations/model_delete", self)
+        self.states["/initialized/behaviour/operations/model_delete"] = State(22, "/initialized/behaviour/operations/model_delete", self)
         self.states["/initialized/behaviour/operations/model_delete"].setEnter(self._initialized_behaviour_operations_model_delete_enter)
         
         # state /initialized/behaviour/operations/model_list_full
-        self.states["/initialized/behaviour/operations/model_list_full"] = State(22, "/initialized/behaviour/operations/model_list_full", self)
+        self.states["/initialized/behaviour/operations/model_list_full"] = State(23, "/initialized/behaviour/operations/model_list_full", self)
         self.states["/initialized/behaviour/operations/model_list_full"].setEnter(self._initialized_behaviour_operations_model_list_full_enter)
         
         # state /initialized/behaviour/operations/verify
-        self.states["/initialized/behaviour/operations/verify"] = State(23, "/initialized/behaviour/operations/verify", self)
+        self.states["/initialized/behaviour/operations/verify"] = State(24, "/initialized/behaviour/operations/verify", self)
         self.states["/initialized/behaviour/operations/verify"].setEnter(self._initialized_behaviour_operations_verify_enter)
         
         # state /initialized/behaviour/operations/verify/waiting
-        self.states["/initialized/behaviour/operations/verify/waiting"] = State(24, "/initialized/behaviour/operations/verify/waiting", self)
+        self.states["/initialized/behaviour/operations/verify/waiting"] = State(25, "/initialized/behaviour/operations/verify/waiting", self)
         
         # state /initialized/behaviour/operations/alter_context
-        self.states["/initialized/behaviour/operations/alter_context"] = State(25, "/initialized/behaviour/operations/alter_context", self)
+        self.states["/initialized/behaviour/operations/alter_context"] = State(26, "/initialized/behaviour/operations/alter_context", self)
         
         # state /initialized/behaviour/operations/model_upload
-        self.states["/initialized/behaviour/operations/model_upload"] = State(26, "/initialized/behaviour/operations/model_upload", self)
+        self.states["/initialized/behaviour/operations/model_upload"] = State(27, "/initialized/behaviour/operations/model_upload", self)
         
         # state /initialized/behaviour/operations/model_upload/send_metadata
-        self.states["/initialized/behaviour/operations/model_upload/send_metadata"] = State(27, "/initialized/behaviour/operations/model_upload/send_metadata", self)
+        self.states["/initialized/behaviour/operations/model_upload/send_metadata"] = State(28, "/initialized/behaviour/operations/model_upload/send_metadata", self)
         self.states["/initialized/behaviour/operations/model_upload/send_metadata"].setEnter(self._initialized_behaviour_operations_model_upload_send_metadata_enter)
         
         # state /initialized/behaviour/operations/model_upload/send_model
-        self.states["/initialized/behaviour/operations/model_upload/send_model"] = State(28, "/initialized/behaviour/operations/model_upload/send_model", self)
+        self.states["/initialized/behaviour/operations/model_upload/send_model"] = State(29, "/initialized/behaviour/operations/model_upload/send_model", self)
         self.states["/initialized/behaviour/operations/model_upload/send_model"].setEnter(self._initialized_behaviour_operations_model_upload_send_model_enter)
         
         # state /initialized/behaviour/operations/model_overwrite
-        self.states["/initialized/behaviour/operations/model_overwrite"] = State(29, "/initialized/behaviour/operations/model_overwrite", self)
+        self.states["/initialized/behaviour/operations/model_overwrite"] = State(30, "/initialized/behaviour/operations/model_overwrite", self)
         
         # state /initialized/behaviour/operations/model_overwrite/send_metadata
-        self.states["/initialized/behaviour/operations/model_overwrite/send_metadata"] = State(30, "/initialized/behaviour/operations/model_overwrite/send_metadata", self)
+        self.states["/initialized/behaviour/operations/model_overwrite/send_metadata"] = State(31, "/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(31, "/initialized/behaviour/operations/model_overwrite/send_model", self)
+        self.states["/initialized/behaviour/operations/model_overwrite/send_model"] = State(32, "/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(32, "/initialized/behaviour/operations/disconnect", self)
+        self.states["/initialized/behaviour/operations/disconnect"] = State(33, "/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(33, "/initialized/behaviour/operations/user_logout", self)
+        self.states["/initialized/behaviour/operations/user_logout"] = State(34, "/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(34, "/initialized/behaviour/operations/user_delete", self)
+        self.states["/initialized/behaviour/operations/user_delete"] = State(35, "/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(35, "/initialized/behaviour/operations/model_render", self)
+        self.states["/initialized/behaviour/operations/model_render"] = State(36, "/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/model_rendered
-        self.states["/initialized/behaviour/operations/model_rendered"] = State(36, "/initialized/behaviour/operations/model_rendered", self)
+        self.states["/initialized/behaviour/operations/model_rendered"] = State(37, "/initialized/behaviour/operations/model_rendered", self)
         self.states["/initialized/behaviour/operations/model_rendered"].setEnter(self._initialized_behaviour_operations_model_rendered_enter)
         
         # state /initialized/behaviour/operations/transformation_between
-        self.states["/initialized/behaviour/operations/transformation_between"] = State(37, "/initialized/behaviour/operations/transformation_between", self)
+        self.states["/initialized/behaviour/operations/transformation_between"] = State(38, "/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_signature
-        self.states["/initialized/behaviour/operations/transformation_signature"] = State(38, "/initialized/behaviour/operations/transformation_signature", self)
+        self.states["/initialized/behaviour/operations/transformation_signature"] = State(39, "/initialized/behaviour/operations/transformation_signature", self)
         self.states["/initialized/behaviour/operations/transformation_signature"].setEnter(self._initialized_behaviour_operations_transformation_signature_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted
-        self.states["/initialized/behaviour/operations/store_on_scripted"] = State(39, "/initialized/behaviour/operations/store_on_scripted", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted"] = State(40, "/initialized/behaviour/operations/store_on_scripted", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add_MT
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT"] = State(40, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MT", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT"] = State(41, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MT", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add_MT/send_metadata
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT/send_metadata"] = State(41, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MT/send_metadata", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT/send_metadata"] = State(42, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MT/send_metadata", self)
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT/send_metadata"].setEnter(self._initialized_behaviour_operations_store_on_scripted_transformation_add_MT_send_metadata_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add_MT/edit_metamodel
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT/edit_metamodel"] = State(42, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MT/edit_metamodel", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT/edit_metamodel"] = State(43, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MT/edit_metamodel", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add_MT/send_model
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT/send_model"] = State(43, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MT/send_model", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT/send_model"] = State(44, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MT/send_model", self)
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT/send_model"].setEnter(self._initialized_behaviour_operations_store_on_scripted_transformation_add_MT_send_model_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add_AL
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_AL"] = State(44, "/initialized/behaviour/operations/store_on_scripted/transformation_add_AL", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_AL"] = State(45, "/initialized/behaviour/operations/store_on_scripted/transformation_add_AL", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add_AL/send_metadata
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_AL/send_metadata"] = State(45, "/initialized/behaviour/operations/store_on_scripted/transformation_add_AL/send_metadata", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_AL/send_metadata"] = State(46, "/initialized/behaviour/operations/store_on_scripted/transformation_add_AL/send_metadata", self)
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_AL/send_metadata"].setEnter(self._initialized_behaviour_operations_store_on_scripted_transformation_add_AL_send_metadata_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add_AL/edit_metamodel
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_AL/edit_metamodel"] = State(46, "/initialized/behaviour/operations/store_on_scripted/transformation_add_AL/edit_metamodel", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_AL/edit_metamodel"] = State(47, "/initialized/behaviour/operations/store_on_scripted/transformation_add_AL/edit_metamodel", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add_AL/send_model
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_AL/send_model"] = State(47, "/initialized/behaviour/operations/store_on_scripted/transformation_add_AL/send_model", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_AL/send_model"] = State(48, "/initialized/behaviour/operations/store_on_scripted/transformation_add_AL/send_model", self)
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_AL/send_model"].setEnter(self._initialized_behaviour_operations_store_on_scripted_transformation_add_AL_send_model_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL"] = State(48, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL"] = State(49, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL/send_metadata
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL/send_metadata"] = State(49, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL/send_metadata", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL/send_metadata"] = State(50, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL/send_metadata", self)
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL/send_metadata"].setEnter(self._initialized_behaviour_operations_store_on_scripted_transformation_add_MANUAL_send_metadata_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL/edit_metamodel
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL/edit_metamodel"] = State(50, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL/edit_metamodel", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL/edit_metamodel"] = State(51, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL/edit_metamodel", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute"] = State(51, "/initialized/behaviour/operations/store_on_scripted/transformation_execute", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute"] = State(52, "/initialized/behaviour/operations/store_on_scripted/transformation_execute", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation"] = State(52, "/initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation"] = State(53, "/initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation", self)
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute/send_operation"].setEnter(self._initialized_behaviour_operations_store_on_scripted_transformation_execute_send_operation_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute/dialog
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute/dialog"] = State(53, "/initialized/behaviour/operations/store_on_scripted/transformation_execute/dialog", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute/dialog"] = State(54, "/initialized/behaviour/operations/store_on_scripted/transformation_execute/dialog", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL"] = State(54, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL"] = State(55, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/send_metadata
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/send_metadata"] = State(55, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/send_metadata", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/send_metadata"] = State(56, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/send_metadata", self)
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/send_metadata"].setEnter(self._initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_send_metadata_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/edit_model
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/edit_model"] = State(56, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/edit_model", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/edit_model"] = State(57, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL/edit_model", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute
-        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute"] = State(57, "/initialized/behaviour/operations/store_on_scripted/process_execute", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute"] = State(58, "/initialized/behaviour/operations/store_on_scripted/process_execute", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute/init
-        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/init"] = State(58, "/initialized/behaviour/operations/store_on_scripted/process_execute/init", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/init"] = State(59, "/initialized/behaviour/operations/store_on_scripted/process_execute/init", self)
         self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/init"].setEnter(self._initialized_behaviour_operations_store_on_scripted_process_execute_init_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute/executing
-        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/executing"] = State(59, "/initialized/behaviour/operations/store_on_scripted/process_execute/executing", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/executing"] = State(60, "/initialized/behaviour/operations/store_on_scripted/process_execute/executing", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute/enacting
-        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting"] = State(60, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting"] = State(61, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc
-        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc"] = State(61, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc"] = State(62, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc/init
-        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc/init"] = State(62, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc/init", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc/init"] = State(63, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc/init", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc/processing
-        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc/processing"] = State(63, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc/processing", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc/processing"] = State(64, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc/processing", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute/enacting/op
-        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/op"] = State(64, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/op", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/op"] = State(65, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/op", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute/enacting/op/init
-        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/op/init"] = State(65, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/op/init", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/op/init"] = State(66, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/op/init", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute/enacting/op/processing
-        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/op/processing"] = State(66, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/op/processing", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/op/processing"] = State(67, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/op/processing", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/history
-        self.states["/initialized/behaviour/operations/store_on_scripted/history"] = DeepHistoryState(67, "/initialized/behaviour/operations/store_on_scripted/history", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/history"] = DeepHistoryState(68, "/initialized/behaviour/operations/store_on_scripted/history", self)
         
         # state /initialized/behaviour/operations/permission_modify
-        self.states["/initialized/behaviour/operations/permission_modify"] = State(68, "/initialized/behaviour/operations/permission_modify", self)
+        self.states["/initialized/behaviour/operations/permission_modify"] = State(69, "/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(69, "/initialized/behaviour/operations/permission_owner", self)
+        self.states["/initialized/behaviour/operations/permission_owner"] = State(70, "/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(70, "/initialized/behaviour/operations/permission_group", self)
+        self.states["/initialized/behaviour/operations/permission_group"] = State(71, "/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(71, "/initialized/behaviour/operations/group_create", self)
+        self.states["/initialized/behaviour/operations/group_create"] = State(72, "/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(72, "/initialized/behaviour/operations/group_delete", self)
+        self.states["/initialized/behaviour/operations/group_delete"] = State(73, "/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(73, "/initialized/behaviour/operations/group_owner_add", self)
+        self.states["/initialized/behaviour/operations/group_owner_add"] = State(74, "/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(74, "/initialized/behaviour/operations/group_owner_delete", self)
+        self.states["/initialized/behaviour/operations/group_owner_delete"] = State(75, "/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(75, "/initialized/behaviour/operations/group_join", self)
+        self.states["/initialized/behaviour/operations/group_join"] = State(76, "/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(76, "/initialized/behaviour/operations/group_kick", self)
+        self.states["/initialized/behaviour/operations/group_kick"] = State(77, "/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(77, "/initialized/behaviour/operations/group_list", self)
+        self.states["/initialized/behaviour/operations/group_list"] = State(78, "/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(78, "/initialized/behaviour/operations/admin_promote", self)
+        self.states["/initialized/behaviour/operations/admin_promote"] = State(79, "/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(79, "/initialized/behaviour/operations/admin_demote", self)
+        self.states["/initialized/behaviour/operations/admin_demote"] = State(80, "/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(80, "/initialized/behaviour/operations/conformance_delete", self)
+        self.states["/initialized/behaviour/operations/conformance_delete"] = State(81, "/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(81, "/initialized/behaviour/operations/conformance_add", self)
+        self.states["/initialized/behaviour/operations/conformance_add"] = State(82, "/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(82, "/initialized/behaviour/operations/folder_create", self)
+        self.states["/initialized/behaviour/operations/folder_create"] = State(83, "/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(83, "/initialized/behaviour/operations/model_types", self)
+        self.states["/initialized/behaviour/operations/model_types"] = State(84, "/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(84, "/initialized/behaviour/operations/element_list", self)
+        self.states["/initialized/behaviour/operations/element_list"] = State(85, "/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(85, "/initialized/behaviour/operations/element_list_nice", self)
+        self.states["/initialized/behaviour/operations/element_list_nice"] = State(86, "/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(86, "/initialized/behaviour/operations/types", self)
+        self.states["/initialized/behaviour/operations/types"] = State(87, "/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(87, "/initialized/behaviour/operations/types_full", self)
+        self.states["/initialized/behaviour/operations/types_full"] = State(88, "/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(88, "/initialized/behaviour/operations/read_info", self)
+        self.states["/initialized/behaviour/operations/read_info"] = State(89, "/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(89, "/initialized/behaviour/operations/read_attrs", self)
+        self.states["/initialized/behaviour/operations/read_attrs"] = State(90, "/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/read_defined_attrs
-        self.states["/initialized/behaviour/operations/read_defined_attrs"] = State(90, "/initialized/behaviour/operations/read_defined_attrs", self)
+        self.states["/initialized/behaviour/operations/read_defined_attrs"] = State(91, "/initialized/behaviour/operations/read_defined_attrs", self)
         self.states["/initialized/behaviour/operations/read_defined_attrs"].setEnter(self._initialized_behaviour_operations_read_defined_attrs_enter)
         
         # state /initialized/behaviour/operations/instantiate
-        self.states["/initialized/behaviour/operations/instantiate"] = State(91, "/initialized/behaviour/operations/instantiate", self)
+        self.states["/initialized/behaviour/operations/instantiate"] = State(92, "/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(92, "/initialized/behaviour/operations/instantiate/decide_node_or_edge", self)
+        self.states["/initialized/behaviour/operations/instantiate/decide_node_or_edge"] = State(93, "/initialized/behaviour/operations/instantiate/decide_node_or_edge", self)
         
         # state /initialized/behaviour/operations/instantiate/created
-        self.states["/initialized/behaviour/operations/instantiate/created"] = State(93, "/initialized/behaviour/operations/instantiate/created", self)
+        self.states["/initialized/behaviour/operations/instantiate/created"] = State(94, "/initialized/behaviour/operations/instantiate/created", self)
         
         # state /initialized/behaviour/operations/delete_element
-        self.states["/initialized/behaviour/operations/delete_element"] = State(94, "/initialized/behaviour/operations/delete_element", self)
+        self.states["/initialized/behaviour/operations/delete_element"] = State(95, "/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(95, "/initialized/behaviour/operations/attr_assign", self)
+        self.states["/initialized/behaviour/operations/attr_assign"] = State(96, "/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(96, "/initialized/behaviour/operations/attr_assign_code", self)
+        self.states["/initialized/behaviour/operations/attr_assign_code"] = State(97, "/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(97, "/initialized/behaviour/operations/attr_delete", self)
+        self.states["/initialized/behaviour/operations/attr_delete"] = State(98, "/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/attr_type
-        self.states["/initialized/behaviour/operations/attr_type"] = State(98, "/initialized/behaviour/operations/attr_type", self)
+        self.states["/initialized/behaviour/operations/attr_type"] = State(99, "/initialized/behaviour/operations/attr_type", self)
         self.states["/initialized/behaviour/operations/attr_type"].setEnter(self._initialized_behaviour_operations_attr_type_enter)
         
         # state /initialized/behaviour/operations/attr_name
-        self.states["/initialized/behaviour/operations/attr_name"] = State(99, "/initialized/behaviour/operations/attr_name", self)
+        self.states["/initialized/behaviour/operations/attr_name"] = State(100, "/initialized/behaviour/operations/attr_name", self)
         self.states["/initialized/behaviour/operations/attr_name"].setEnter(self._initialized_behaviour_operations_attr_name_enter)
         
         # state /initialized/behaviour/operations/attr_optional
-        self.states["/initialized/behaviour/operations/attr_optional"] = State(100, "/initialized/behaviour/operations/attr_optional", self)
+        self.states["/initialized/behaviour/operations/attr_optional"] = State(101, "/initialized/behaviour/operations/attr_optional", self)
         self.states["/initialized/behaviour/operations/attr_optional"].setEnter(self._initialized_behaviour_operations_attr_optional_enter)
         
         # state /initialized/behaviour/operations/read_outgoing
-        self.states["/initialized/behaviour/operations/read_outgoing"] = State(101, "/initialized/behaviour/operations/read_outgoing", self)
+        self.states["/initialized/behaviour/operations/read_outgoing"] = State(102, "/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(102, "/initialized/behaviour/operations/read_incoming", self)
+        self.states["/initialized/behaviour/operations/read_incoming"] = State(103, "/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(103, "/initialized/behaviour/operations/read_association_source", self)
+        self.states["/initialized/behaviour/operations/read_association_source"] = State(104, "/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(104, "/initialized/behaviour/operations/read_association_destination", self)
+        self.states["/initialized/behaviour/operations/read_association_destination"] = State(105, "/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(105, "/initialized/behaviour/operations/connections_between", self)
+        self.states["/initialized/behaviour/operations/connections_between"] = State(106, "/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(106, "/initialized/behaviour/operations/define_attribute", self)
+        self.states["/initialized/behaviour/operations/define_attribute"] = State(107, "/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/undefine_attribute
-        self.states["/initialized/behaviour/operations/undefine_attribute"] = State(107, "/initialized/behaviour/operations/undefine_attribute", self)
+        self.states["/initialized/behaviour/operations/undefine_attribute"] = State(108, "/initialized/behaviour/operations/undefine_attribute", self)
         self.states["/initialized/behaviour/operations/undefine_attribute"].setEnter(self._initialized_behaviour_operations_undefine_attribute_enter)
         
         # state /initialized/behaviour/operations/all_instances
-        self.states["/initialized/behaviour/operations/all_instances"] = State(108, "/initialized/behaviour/operations/all_instances", self)
+        self.states["/initialized/behaviour/operations/all_instances"] = State(109, "/initialized/behaviour/operations/all_instances", self)
         self.states["/initialized/behaviour/operations/all_instances"].setEnter(self._initialized_behaviour_operations_all_instances_enter)
         
         # state /initialized/behaviour/operations/save
-        self.states["/initialized/behaviour/operations/save"] = State(109, "/initialized/behaviour/operations/save", self)
+        self.states["/initialized/behaviour/operations/save"] = State(110, "/initialized/behaviour/operations/save", self)
         self.states["/initialized/behaviour/operations/save"].setEnter(self._initialized_behaviour_operations_save_enter)
         
         # state /initialized/behaviour/wait_for_action
-        self.states["/initialized/behaviour/wait_for_action"] = State(110, "/initialized/behaviour/wait_for_action", self)
+        self.states["/initialized/behaviour/wait_for_action"] = State(111, "/initialized/behaviour/wait_for_action", self)
         
         # state /initialized/behaviour/wait_for_action/disconnected
-        self.states["/initialized/behaviour/wait_for_action/disconnected"] = State(111, "/initialized/behaviour/wait_for_action/disconnected", self)
+        self.states["/initialized/behaviour/wait_for_action/disconnected"] = State(112, "/initialized/behaviour/wait_for_action/disconnected", self)
         
         # state /initialized/behaviour/wait_for_action/connected
-        self.states["/initialized/behaviour/wait_for_action/connected"] = State(112, "/initialized/behaviour/wait_for_action/connected", self)
+        self.states["/initialized/behaviour/wait_for_action/connected"] = State(113, "/initialized/behaviour/wait_for_action/connected", self)
         
         # state /initialized/behaviour/wait_for_action/megamodelling
-        self.states["/initialized/behaviour/wait_for_action/megamodelling"] = State(113, "/initialized/behaviour/wait_for_action/megamodelling", self)
+        self.states["/initialized/behaviour/wait_for_action/megamodelling"] = State(114, "/initialized/behaviour/wait_for_action/megamodelling", self)
         
         # state /initialized/behaviour/wait_for_action/modelling
-        self.states["/initialized/behaviour/wait_for_action/modelling"] = State(114, "/initialized/behaviour/wait_for_action/modelling", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling"] = State(115, "/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(115, "/initialized/behaviour/wait_for_action/modelling/recognized", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling/recognized"] = State(116, "/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(116, "/initialized/behaviour/wait_for_action/modelling/recognized/manual", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"] = State(117, "/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(117, "/initialized/behaviour/wait_for_action/modelling/recognized/scripted", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/scripted"] = State(118, "/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(118, "/initialized/behaviour/wait_for_action/finished", self)
+        self.states["/initialized/behaviour/wait_for_action/finished"] = State(119, "/initialized/behaviour/wait_for_action/finished", self)
         
         # state /initialized/behaviour/wait_for_action/history
-        self.states["/initialized/behaviour/wait_for_action/history"] = DeepHistoryState(119, "/initialized/behaviour/wait_for_action/history", self)
+        self.states["/initialized/behaviour/wait_for_action/history"] = DeepHistoryState(120, "/initialized/behaviour/wait_for_action/history", self)
         
         # state /initialized/behaviour/going_manual
-        self.states["/initialized/behaviour/going_manual"] = State(120, "/initialized/behaviour/going_manual", self)
+        self.states["/initialized/behaviour/going_manual"] = State(121, "/initialized/behaviour/going_manual", self)
         
         # state /initialized/behaviour/going_manual/init
-        self.states["/initialized/behaviour/going_manual/init"] = State(121, "/initialized/behaviour/going_manual/init", self)
+        self.states["/initialized/behaviour/going_manual/init"] = State(122, "/initialized/behaviour/going_manual/init", self)
         self.states["/initialized/behaviour/going_manual/init"].setEnter(self._initialized_behaviour_going_manual_init_enter)
         
         # state /initialized/behaviour/going_manual/search
-        self.states["/initialized/behaviour/going_manual/search"] = State(122, "/initialized/behaviour/going_manual/search", self)
+        self.states["/initialized/behaviour/going_manual/search"] = State(123, "/initialized/behaviour/going_manual/search", self)
         self.states["/initialized/behaviour/going_manual/search"].setEnter(self._initialized_behaviour_going_manual_search_enter)
         
         # state /initialized/behaviour/going_manual/OK
-        self.states["/initialized/behaviour/going_manual/OK"] = State(123, "/initialized/behaviour/going_manual/OK", self)
+        self.states["/initialized/behaviour/going_manual/OK"] = State(124, "/initialized/behaviour/going_manual/OK", self)
         self.states["/initialized/behaviour/going_manual/OK"].setEnter(self._initialized_behaviour_going_manual_OK_enter)
         
         # state /initialized/behaviour/going_scripted
-        self.states["/initialized/behaviour/going_scripted"] = State(124, "/initialized/behaviour/going_scripted", self)
+        self.states["/initialized/behaviour/going_scripted"] = State(125, "/initialized/behaviour/going_scripted", self)
         self.states["/initialized/behaviour/going_scripted"].setEnter(self._initialized_behaviour_going_scripted_enter)
         
         # state /initialized/behaviour/leaving_manual
-        self.states["/initialized/behaviour/leaving_manual"] = State(125, "/initialized/behaviour/leaving_manual", self)
+        self.states["/initialized/behaviour/leaving_manual"] = State(126, "/initialized/behaviour/leaving_manual", self)
         self.states["/initialized/behaviour/leaving_manual"].setEnter(self._initialized_behaviour_leaving_manual_enter)
         
         # state /initialized/queue
-        self.states["/initialized/queue"] = State(126, "/initialized/queue", self)
+        self.states["/initialized/queue"] = State(127, "/initialized/queue", self)
         
         # state /initialized/queue/queue
-        self.states["/initialized/queue/queue"] = State(127, "/initialized/queue/queue", self)
+        self.states["/initialized/queue/queue"] = State(128, "/initialized/queue/queue", self)
         
         # add children
         self.states[""].addChild(self.states["/init"])
@@ -579,6 +584,7 @@ class Modelverse(RuntimeClassBase):
         self.states["/initialized"].addChild(self.states["/initialized/behaviour"])
         self.states["/initialized"].addChild(self.states["/initialized/queue"])
         self.states["/initialized/http_mapper"].addChild(self.states["/initialized/http_mapper/init"])
+        self.states["/initialized/http_mapper"].addChild(self.states["/initialized/http_mapper/finished"])
         self.states["/initialized/behaviour"].addChild(self.states["/initialized/behaviour/init"])
         self.states["/initialized/behaviour"].addChild(self.states["/initialized/behaviour/operations"])
         self.states["/initialized/behaviour"].addChild(self.states["/initialized/behaviour/wait_for_action"])
@@ -760,7 +766,13 @@ class Modelverse(RuntimeClassBase):
         _initialized_http_mapper_init_3 = Transition(self, self.states["/initialized/http_mapper/init"], [self.states["/initialized/http_mapper/init"]])
         _initialized_http_mapper_init_3.setAction(self._initialized_http_mapper_init_3_exec)
         _initialized_http_mapper_init_3.setTrigger(Event("HTTP_output", None))
+        _initialized_http_mapper_init_3.setGuard(self._initialized_http_mapper_init_3_guard)
         self.states["/initialized/http_mapper/init"].addTransition(_initialized_http_mapper_init_3)
+        _initialized_http_mapper_init_4 = Transition(self, self.states["/initialized/http_mapper/init"], [self.states["/initialized/http_mapper/finished"]])
+        _initialized_http_mapper_init_4.setAction(self._initialized_http_mapper_init_4_exec)
+        _initialized_http_mapper_init_4.setTrigger(Event("HTTP_output", None))
+        _initialized_http_mapper_init_4.setGuard(self._initialized_http_mapper_init_4_guard)
+        self.states["/initialized/http_mapper/init"].addTransition(_initialized_http_mapper_init_4)
         
         # transition /initialized/behaviour/init/connect_http_client
         _initialized_behaviour_init_connect_http_client_0 = Transition(self, self.states["/initialized/behaviour/init/connect_http_client"], [self.states["/initialized/behaviour/init/waiting_http_client"]])
@@ -1880,7 +1892,7 @@ class Modelverse(RuntimeClassBase):
         self.address = (self.address[0], int(self.address[1]))
         
         self.i = 0
-        self.taskname = str(uuid.uuid4())
+        self.controller.taskname = self.taskname = str(uuid.uuid4())
     
     def _initialized_behaviour_operations_verify_enter(self):
         self.raiseInternalEvent(Event("request", None, [['verify', self.parameters[0], self.parameters[1]]]))
@@ -1960,6 +1972,8 @@ class Modelverse(RuntimeClassBase):
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_send_operation_enter(self):
         self.raiseInternalEvent(Event("request", None, [['transformation_execute', self.parameters[0]] + self.dict_to_list(self.parameters[1]) + self.dict_to_list(self.parameters[2]) + [self.parameters[4]]]))
+        if self.parameters[5] == False:
+            self.finish_output_thread = True
     
     def _initialized_behaviour_operations_store_on_scripted_transformation_execute_MANUAL_send_metadata_enter(self):
         self.raiseInternalEvent(Event("request", None, [['transformation_execute', self.parameters[0]] + self.dict_to_list(self.parameters[1]) + self.dict_to_list(self.parameters[2]) + [self.parameters[4]]]))
@@ -2337,6 +2351,19 @@ class Modelverse(RuntimeClassBase):
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.http_clients[1], Event("HTTP_input", None, [urllib.urlencode({"op": "get_output", "taskname": self.taskname}), "parent"])]))
         self.responses.append(json.loads(data))
     
+    def _initialized_http_mapper_init_3_guard(self, parameters):
+        data = parameters[0]
+        return not self.finish_output_thread
+    
+    def _initialized_http_mapper_init_4_exec(self, parameters):
+        data = parameters[0]
+        self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.http_clients[1], Event("HTTP_input", None, [urllib.urlencode({"op": "get_output", "taskname": self.taskname}), "parent"])]))
+        self.responses.append(json.loads(data))
+    
+    def _initialized_http_mapper_init_4_guard(self, parameters):
+        data = parameters[0]
+        return self.finish_output_thread
+    
     def _initialized_behaviour_init_connect_http_client_0_exec(self, parameters):
         self.big_step.outputEventOM(Event("narrow_cast", None, [self, self.http_clients[self.i], Event("connect", None, [self.address, self.timeout])]))