Sfoglia il codice sorgente

Allow model_overwrite in model_modify mode as well

Yentl Van Tendeloo 8 anni fa
parent
commit
017247a484
3 ha cambiato i file con 200 aggiunte e 114 eliminazioni
  1. 5 5
      integration/test_powerwindow.py
  2. 32 0
      wrappers/classes/modelverse.xml
  3. 163 109
      wrappers/modelverse_SCCD.py

+ 5 - 5
integration/test_powerwindow.py

@@ -66,13 +66,13 @@ class TestPowerWindow(unittest.TestCase):
         nr_of_operations = 6
 
         def get_function(filename):
-            def func():
+            def func(context):
                 global called
                 if called > nr_of_operations:
                     raise Exception("Seemingly called some operation twice!")
                 else:
                     called += 1
-                model_overwrite(None, open(filename, "r").read())
+                model_overwrite(None, open(filename, "r").read(), context=context)
             return func
 
         cb_req = get_function("models/requirements_model.mvc")
@@ -157,16 +157,16 @@ class TestPowerWindow(unittest.TestCase):
         executed = set([])
 
         def get_function(filename, fixed=None):
-            def func():
+            def func(context):
                 global called
                 if called > len(callbacks) * 2:
                     raise Exception("Seemingly called some operation twice!")
                 called += 1
                 if filename not in executed or fixed is None:
                     executed.add(filename)
-                    model_overwrite(None, open(filename, "r").read())
+                    model_overwrite(None, open(filename, "r").read(), context=context)
                 else:
-                    model_overwrite(None, open(fixed, "r").read())
+                    model_overwrite(None, open(fixed, "r").read(), context=context)
             return func
 
         cb_req = get_function("models/requirements_model.mvc")

+ 32 - 0
wrappers/classes/modelverse.xml

@@ -385,6 +385,32 @@
                         </transition>
                     </state>
 
+                    <state id="model_upload" initial="send_metadata">
+                        <state id="send_metadata">
+                            <onentry>
+                                <raise event="request">
+                                    <parameter expr="['upload', self.parameters[0], self.registered_metamodel[self.parameters[0]]]"/>
+                                </raise>
+                            </onentry>
+
+                            <transition cond="self.expect_response('Waiting for model constructors...')" target="../send_model"/>
+                        </state>
+
+                        <state id="send_model">
+                            <onentry>
+                                <raise event="request">
+                                    <parameter expr="self.parameters[1]"/>
+                                </raise>
+                            </onentry>
+
+                            <transition cond="self.expect_response('Success')" target="../../../wait_for_action/history">
+                                <raise event="result">
+                                    <parameter expr="None"/>
+                                </raise>
+                            </transition>
+                        </state>
+                    </state>
+
                     <state id="model_overwrite" initial="send_metadata">
                         <state id="send_metadata">
                             <onentry>
@@ -1638,6 +1664,12 @@
                                 </script>
                             </transition>
 
+                            <transition cond="self.expect_action(self.context, 'model_overwrite')" target="../../../operations/model_upload">
+                                <script>
+                                    self.load_action(self.context)
+                                </script>
+                            </transition>
+
                             <transition cond="self.expect_action(self.context, 'attr_assign_code')" target="../../../operations/attr_assign_code">
                                 <script>
                                     self.load_action(self.context)

+ 163 - 109
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:   Wed Sep  6 11:00:01 2017
+Date:   Wed Sep  6 13:06:56 2017
 
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server
@@ -209,330 +209,341 @@ class Modelverse(RuntimeClassBase):
         # 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_upload
+        self.states["/initialized/behaviour/operations/model_upload"] = State(25, "/initialized/behaviour/operations/model_upload", self)
+        
+        # state /initialized/behaviour/operations/model_upload/send_metadata
+        self.states["/initialized/behaviour/operations/model_upload/send_metadata"] = State(26, "/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(27, "/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(25, "/initialized/behaviour/operations/model_overwrite", self)
+        self.states["/initialized/behaviour/operations/model_overwrite"] = State(28, "/initialized/behaviour/operations/model_overwrite", self)
         
         # state /initialized/behaviour/operations/model_overwrite/send_metadata
-        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"] = State(29, "/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(27, "/initialized/behaviour/operations/model_overwrite/send_model", self)
+        self.states["/initialized/behaviour/operations/model_overwrite/send_model"] = State(30, "/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(28, "/initialized/behaviour/operations/disconnect", self)
+        self.states["/initialized/behaviour/operations/disconnect"] = State(31, "/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(29, "/initialized/behaviour/operations/user_logout", self)
+        self.states["/initialized/behaviour/operations/user_logout"] = State(32, "/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(30, "/initialized/behaviour/operations/user_delete", self)
+        self.states["/initialized/behaviour/operations/user_delete"] = State(33, "/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(31, "/initialized/behaviour/operations/model_render", self)
+        self.states["/initialized/behaviour/operations/model_render"] = State(34, "/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(32, "/initialized/behaviour/operations/transformation_between", self)
+        self.states["/initialized/behaviour/operations/transformation_between"] = State(35, "/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/store_on_scripted
-        self.states["/initialized/behaviour/operations/store_on_scripted"] = State(33, "/initialized/behaviour/operations/store_on_scripted", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted"] = State(36, "/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(34, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MT", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT"] = State(37, "/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(35, "/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(38, "/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(36, "/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(39, "/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(37, "/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(40, "/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(38, "/initialized/behaviour/operations/store_on_scripted/transformation_add_AL", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_AL"] = State(41, "/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(39, "/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(42, "/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(40, "/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(43, "/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(41, "/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(44, "/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(42, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL"] = State(45, "/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(43, "/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(46, "/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(44, "/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(47, "/initialized/behaviour/operations/store_on_scripted/transformation_add_MANUAL/edit_metamodel", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute_AL
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_AL"] = State(45, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_AL", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_AL"] = State(48, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_AL", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute_AL/send_operation
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_AL/send_operation"] = State(46, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_AL/send_operation", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_AL/send_operation"] = State(49, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_AL/send_operation", self)
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_AL/send_operation"].setEnter(self._initialized_behaviour_operations_store_on_scripted_transformation_execute_AL_send_operation_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute_AL/dialog
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_AL/dialog"] = State(47, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_AL/dialog", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_AL/dialog"] = State(50, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_AL/dialog", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute_MT
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MT"] = State(48, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_MT", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MT"] = State(51, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_MT", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute_MT/send_operation
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MT/send_operation"] = State(49, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_MT/send_operation", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MT/send_operation"] = State(52, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_MT/send_operation", self)
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MT/send_operation"].setEnter(self._initialized_behaviour_operations_store_on_scripted_transformation_execute_MT_send_operation_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute_MT/dialog
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MT/dialog"] = State(50, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_MT/dialog", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MT/dialog"] = State(53, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_MT/dialog", self)
         
         # state /initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL"] = State(51, "/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_execute_MANUAL"] = State(54, "/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(52, "/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(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"].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(53, "/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(56, "/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(54, "/initialized/behaviour/operations/store_on_scripted/process_execute", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute"] = State(57, "/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(55, "/initialized/behaviour/operations/store_on_scripted/process_execute/init", self)
+        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"].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(56, "/initialized/behaviour/operations/store_on_scripted/process_execute/executing", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/executing"] = State(59, "/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(57, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting"] = State(60, "/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(58, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc", self)
+        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)
         
         # 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(59, "/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(62, "/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(60, "/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(63, "/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(61, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/op", self)
+        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)
         
         # 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(62, "/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(65, "/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(63, "/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(66, "/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(64, "/initialized/behaviour/operations/store_on_scripted/history", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/history"] = DeepHistoryState(67, "/initialized/behaviour/operations/store_on_scripted/history", self)
         
         # state /initialized/behaviour/operations/permission_modify
-        self.states["/initialized/behaviour/operations/permission_modify"] = State(65, "/initialized/behaviour/operations/permission_modify", self)
+        self.states["/initialized/behaviour/operations/permission_modify"] = State(68, "/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(66, "/initialized/behaviour/operations/permission_owner", self)
+        self.states["/initialized/behaviour/operations/permission_owner"] = State(69, "/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(67, "/initialized/behaviour/operations/permission_group", self)
+        self.states["/initialized/behaviour/operations/permission_group"] = State(70, "/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(68, "/initialized/behaviour/operations/group_create", self)
+        self.states["/initialized/behaviour/operations/group_create"] = State(71, "/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(69, "/initialized/behaviour/operations/group_delete", self)
+        self.states["/initialized/behaviour/operations/group_delete"] = State(72, "/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(70, "/initialized/behaviour/operations/group_owner_add", self)
+        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"].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(71, "/initialized/behaviour/operations/group_owner_delete", self)
+        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"].setEnter(self._initialized_behaviour_operations_group_owner_delete_enter)
         
         # state /initialized/behaviour/operations/group_join
-        self.states["/initialized/behaviour/operations/group_join"] = State(72, "/initialized/behaviour/operations/group_join", self)
+        self.states["/initialized/behaviour/operations/group_join"] = State(75, "/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(73, "/initialized/behaviour/operations/group_kick", self)
+        self.states["/initialized/behaviour/operations/group_kick"] = State(76, "/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(74, "/initialized/behaviour/operations/group_list", self)
+        self.states["/initialized/behaviour/operations/group_list"] = State(77, "/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(75, "/initialized/behaviour/operations/admin_promote", self)
+        self.states["/initialized/behaviour/operations/admin_promote"] = State(78, "/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(76, "/initialized/behaviour/operations/admin_demote", self)
+        self.states["/initialized/behaviour/operations/admin_demote"] = State(79, "/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(77, "/initialized/behaviour/operations/conformance_delete", self)
+        self.states["/initialized/behaviour/operations/conformance_delete"] = State(80, "/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(78, "/initialized/behaviour/operations/conformance_add", self)
+        self.states["/initialized/behaviour/operations/conformance_add"] = State(81, "/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(79, "/initialized/behaviour/operations/folder_create", self)
+        self.states["/initialized/behaviour/operations/folder_create"] = State(82, "/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(80, "/initialized/behaviour/operations/model_types", self)
+        self.states["/initialized/behaviour/operations/model_types"] = State(83, "/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(81, "/initialized/behaviour/operations/element_list", self)
+        self.states["/initialized/behaviour/operations/element_list"] = State(84, "/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(82, "/initialized/behaviour/operations/element_list_nice", self)
+        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"].setEnter(self._initialized_behaviour_operations_element_list_nice_enter)
         
         # state /initialized/behaviour/operations/types
-        self.states["/initialized/behaviour/operations/types"] = State(83, "/initialized/behaviour/operations/types", self)
+        self.states["/initialized/behaviour/operations/types"] = State(86, "/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(84, "/initialized/behaviour/operations/types_full", self)
+        self.states["/initialized/behaviour/operations/types_full"] = State(87, "/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(85, "/initialized/behaviour/operations/read_info", self)
+        self.states["/initialized/behaviour/operations/read_info"] = State(88, "/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(86, "/initialized/behaviour/operations/read_attrs", self)
+        self.states["/initialized/behaviour/operations/read_attrs"] = State(89, "/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(87, "/initialized/behaviour/operations/instantiate", self)
+        self.states["/initialized/behaviour/operations/instantiate"] = State(90, "/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(88, "/initialized/behaviour/operations/instantiate/decide_node_or_edge", self)
+        self.states["/initialized/behaviour/operations/instantiate/decide_node_or_edge"] = State(91, "/initialized/behaviour/operations/instantiate/decide_node_or_edge", self)
         
         # state /initialized/behaviour/operations/instantiate/created
-        self.states["/initialized/behaviour/operations/instantiate/created"] = State(89, "/initialized/behaviour/operations/instantiate/created", self)
+        self.states["/initialized/behaviour/operations/instantiate/created"] = State(92, "/initialized/behaviour/operations/instantiate/created", self)
         
         # state /initialized/behaviour/operations/delete_element
-        self.states["/initialized/behaviour/operations/delete_element"] = State(90, "/initialized/behaviour/operations/delete_element", self)
+        self.states["/initialized/behaviour/operations/delete_element"] = State(93, "/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(91, "/initialized/behaviour/operations/attr_assign", self)
+        self.states["/initialized/behaviour/operations/attr_assign"] = State(94, "/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(92, "/initialized/behaviour/operations/attr_assign_code", self)
+        self.states["/initialized/behaviour/operations/attr_assign_code"] = State(95, "/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(93, "/initialized/behaviour/operations/attr_delete", self)
+        self.states["/initialized/behaviour/operations/attr_delete"] = State(96, "/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(94, "/initialized/behaviour/operations/read_outgoing", self)
+        self.states["/initialized/behaviour/operations/read_outgoing"] = State(97, "/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(95, "/initialized/behaviour/operations/read_incoming", self)
+        self.states["/initialized/behaviour/operations/read_incoming"] = State(98, "/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(96, "/initialized/behaviour/operations/read_association_source", self)
+        self.states["/initialized/behaviour/operations/read_association_source"] = State(99, "/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(97, "/initialized/behaviour/operations/read_association_destination", self)
+        self.states["/initialized/behaviour/operations/read_association_destination"] = State(100, "/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(98, "/initialized/behaviour/operations/connections_between", self)
+        self.states["/initialized/behaviour/operations/connections_between"] = State(101, "/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(99, "/initialized/behaviour/operations/define_attribute", self)
+        self.states["/initialized/behaviour/operations/define_attribute"] = State(102, "/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(100, "/initialized/behaviour/operations/all_instances", self)
+        self.states["/initialized/behaviour/operations/all_instances"] = State(103, "/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(101, "/initialized/behaviour/wait_for_action", self)
+        self.states["/initialized/behaviour/wait_for_action"] = State(104, "/initialized/behaviour/wait_for_action", self)
         
         # state /initialized/behaviour/wait_for_action/disconnected
-        self.states["/initialized/behaviour/wait_for_action/disconnected"] = State(102, "/initialized/behaviour/wait_for_action/disconnected", self)
+        self.states["/initialized/behaviour/wait_for_action/disconnected"] = State(105, "/initialized/behaviour/wait_for_action/disconnected", self)
         
         # state /initialized/behaviour/wait_for_action/connected
-        self.states["/initialized/behaviour/wait_for_action/connected"] = State(103, "/initialized/behaviour/wait_for_action/connected", self)
+        self.states["/initialized/behaviour/wait_for_action/connected"] = State(106, "/initialized/behaviour/wait_for_action/connected", self)
         
         # state /initialized/behaviour/wait_for_action/megamodelling
-        self.states["/initialized/behaviour/wait_for_action/megamodelling"] = State(104, "/initialized/behaviour/wait_for_action/megamodelling", self)
+        self.states["/initialized/behaviour/wait_for_action/megamodelling"] = State(107, "/initialized/behaviour/wait_for_action/megamodelling", self)
         
         # state /initialized/behaviour/wait_for_action/modelling
-        self.states["/initialized/behaviour/wait_for_action/modelling"] = State(105, "/initialized/behaviour/wait_for_action/modelling", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling"] = State(108, "/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(106, "/initialized/behaviour/wait_for_action/modelling/recognized", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling/recognized"] = State(109, "/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(107, "/initialized/behaviour/wait_for_action/modelling/recognized/manual", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/manual"] = State(110, "/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(108, "/initialized/behaviour/wait_for_action/modelling/recognized/scripted", self)
+        self.states["/initialized/behaviour/wait_for_action/modelling/recognized/scripted"] = State(111, "/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(109, "/initialized/behaviour/wait_for_action/finished", self)
+        self.states["/initialized/behaviour/wait_for_action/finished"] = State(112, "/initialized/behaviour/wait_for_action/finished", self)
         
         # state /initialized/behaviour/wait_for_action/history
-        self.states["/initialized/behaviour/wait_for_action/history"] = DeepHistoryState(110, "/initialized/behaviour/wait_for_action/history", self)
+        self.states["/initialized/behaviour/wait_for_action/history"] = DeepHistoryState(113, "/initialized/behaviour/wait_for_action/history", self)
         
         # state /initialized/behaviour/going_manual
-        self.states["/initialized/behaviour/going_manual"] = State(111, "/initialized/behaviour/going_manual", self)
+        self.states["/initialized/behaviour/going_manual"] = State(114, "/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(112, "/initialized/behaviour/going_scripted", self)
+        self.states["/initialized/behaviour/going_scripted"] = State(115, "/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(113, "/initialized/behaviour/leaving_manual", self)
+        self.states["/initialized/behaviour/leaving_manual"] = State(116, "/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(114, "/initialized/queue", self)
+        self.states["/initialized/queue"] = State(117, "/initialized/queue", self)
         
         # state /initialized/queue/queue
-        self.states["/initialized/queue/queue"] = State(115, "/initialized/queue/queue", self)
+        self.states["/initialized/queue/queue"] = State(118, "/initialized/queue/queue", self)
         
         # add children
         self.states[""].addChild(self.states["/init"])
@@ -563,6 +574,7 @@ class Modelverse(RuntimeClassBase):
         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_upload"])
         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"])
@@ -605,6 +617,8 @@ class Modelverse(RuntimeClassBase):
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/define_attribute"])
         self.states["/initialized/behaviour/operations"].addChild(self.states["/initialized/behaviour/operations/all_instances"])
         self.states["/initialized/behaviour/operations/model_add"].addChild(self.states["/initialized/behaviour/operations/model_add/send_metadata"])
+        self.states["/initialized/behaviour/operations/model_upload"].addChild(self.states["/initialized/behaviour/operations/model_upload/send_metadata"])
+        self.states["/initialized/behaviour/operations/model_upload"].addChild(self.states["/initialized/behaviour/operations/model_upload/send_model"])
         self.states["/initialized/behaviour/operations/model_overwrite"].addChild(self.states["/initialized/behaviour/operations/model_overwrite/send_metadata"])
         self.states["/initialized/behaviour/operations/model_overwrite"].addChild(self.states["/initialized/behaviour/operations/model_overwrite/send_model"])
         self.states["/initialized/behaviour/operations/store_on_scripted"].addChild(self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT"])
@@ -658,6 +672,7 @@ class Modelverse(RuntimeClassBase):
         self.states["/initialized/behaviour/login"].default_state = self.states["/initialized/behaviour/login/wait_prompt_1"]
         self.states["/initialized/behaviour/operations"].default_state = self.states["/initialized/behaviour/operations/model_list"]
         self.states["/initialized/behaviour/operations/model_add"].default_state = self.states["/initialized/behaviour/operations/model_add/send_metadata"]
+        self.states["/initialized/behaviour/operations/model_upload"].default_state = self.states["/initialized/behaviour/operations/model_upload/send_metadata"]
         self.states["/initialized/behaviour/operations/model_overwrite"].default_state = self.states["/initialized/behaviour/operations/model_overwrite/send_metadata"]
         self.states["/initialized/behaviour/operations/store_on_scripted"].default_state = self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT"]
         self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT"].default_state = self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT/send_metadata"]
@@ -817,6 +832,19 @@ class Modelverse(RuntimeClassBase):
         _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_upload/send_metadata
+        _initialized_behaviour_operations_model_upload_send_metadata_0 = Transition(self, self.states["/initialized/behaviour/operations/model_upload/send_metadata"], [self.states["/initialized/behaviour/operations/model_upload/send_model"]])
+        _initialized_behaviour_operations_model_upload_send_metadata_0.setTrigger(None)
+        _initialized_behaviour_operations_model_upload_send_metadata_0.setGuard(self._initialized_behaviour_operations_model_upload_send_metadata_0_guard)
+        self.states["/initialized/behaviour/operations/model_upload/send_metadata"].addTransition(_initialized_behaviour_operations_model_upload_send_metadata_0)
+        
+        # transition /initialized/behaviour/operations/model_upload/send_model
+        _initialized_behaviour_operations_model_upload_send_model_0 = Transition(self, self.states["/initialized/behaviour/operations/model_upload/send_model"], [self.states["/initialized/behaviour/wait_for_action/history"]])
+        _initialized_behaviour_operations_model_upload_send_model_0.setAction(self._initialized_behaviour_operations_model_upload_send_model_0_exec)
+        _initialized_behaviour_operations_model_upload_send_model_0.setTrigger(None)
+        _initialized_behaviour_operations_model_upload_send_model_0.setGuard(self._initialized_behaviour_operations_model_upload_send_model_0_guard)
+        self.states["/initialized/behaviour/operations/model_upload/send_model"].addTransition(_initialized_behaviour_operations_model_upload_send_model_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)
@@ -1654,51 +1682,56 @@ class Modelverse(RuntimeClassBase):
         _initialized_behaviour_wait_for_action_modelling_recognized_8.setTrigger(None)
         _initialized_behaviour_wait_for_action_modelling_recognized_8.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_8_guard)
         self.states["/initialized/behaviour/wait_for_action/modelling/recognized"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_8)
-        _initialized_behaviour_wait_for_action_modelling_recognized_9 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/attr_assign_code"]])
+        _initialized_behaviour_wait_for_action_modelling_recognized_9 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/model_upload"]])
         _initialized_behaviour_wait_for_action_modelling_recognized_9.setAction(self._initialized_behaviour_wait_for_action_modelling_recognized_9_exec)
         _initialized_behaviour_wait_for_action_modelling_recognized_9.setTrigger(None)
         _initialized_behaviour_wait_for_action_modelling_recognized_9.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_9_guard)
         self.states["/initialized/behaviour/wait_for_action/modelling/recognized"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_9)
-        _initialized_behaviour_wait_for_action_modelling_recognized_10 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/attr_delete"]])
+        _initialized_behaviour_wait_for_action_modelling_recognized_10 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/attr_assign_code"]])
         _initialized_behaviour_wait_for_action_modelling_recognized_10.setAction(self._initialized_behaviour_wait_for_action_modelling_recognized_10_exec)
         _initialized_behaviour_wait_for_action_modelling_recognized_10.setTrigger(None)
         _initialized_behaviour_wait_for_action_modelling_recognized_10.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_10_guard)
         self.states["/initialized/behaviour/wait_for_action/modelling/recognized"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_10)
-        _initialized_behaviour_wait_for_action_modelling_recognized_11 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/read_outgoing"]])
+        _initialized_behaviour_wait_for_action_modelling_recognized_11 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/attr_delete"]])
         _initialized_behaviour_wait_for_action_modelling_recognized_11.setAction(self._initialized_behaviour_wait_for_action_modelling_recognized_11_exec)
         _initialized_behaviour_wait_for_action_modelling_recognized_11.setTrigger(None)
         _initialized_behaviour_wait_for_action_modelling_recognized_11.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_11_guard)
         self.states["/initialized/behaviour/wait_for_action/modelling/recognized"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_11)
-        _initialized_behaviour_wait_for_action_modelling_recognized_12 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/read_incoming"]])
+        _initialized_behaviour_wait_for_action_modelling_recognized_12 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/read_outgoing"]])
         _initialized_behaviour_wait_for_action_modelling_recognized_12.setAction(self._initialized_behaviour_wait_for_action_modelling_recognized_12_exec)
         _initialized_behaviour_wait_for_action_modelling_recognized_12.setTrigger(None)
         _initialized_behaviour_wait_for_action_modelling_recognized_12.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_12_guard)
         self.states["/initialized/behaviour/wait_for_action/modelling/recognized"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_12)
-        _initialized_behaviour_wait_for_action_modelling_recognized_13 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/read_association_source"]])
+        _initialized_behaviour_wait_for_action_modelling_recognized_13 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/read_incoming"]])
         _initialized_behaviour_wait_for_action_modelling_recognized_13.setAction(self._initialized_behaviour_wait_for_action_modelling_recognized_13_exec)
         _initialized_behaviour_wait_for_action_modelling_recognized_13.setTrigger(None)
         _initialized_behaviour_wait_for_action_modelling_recognized_13.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_13_guard)
         self.states["/initialized/behaviour/wait_for_action/modelling/recognized"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_13)
-        _initialized_behaviour_wait_for_action_modelling_recognized_14 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/read_association_destination"]])
+        _initialized_behaviour_wait_for_action_modelling_recognized_14 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/read_association_source"]])
         _initialized_behaviour_wait_for_action_modelling_recognized_14.setAction(self._initialized_behaviour_wait_for_action_modelling_recognized_14_exec)
         _initialized_behaviour_wait_for_action_modelling_recognized_14.setTrigger(None)
         _initialized_behaviour_wait_for_action_modelling_recognized_14.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_14_guard)
         self.states["/initialized/behaviour/wait_for_action/modelling/recognized"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_14)
-        _initialized_behaviour_wait_for_action_modelling_recognized_15 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/connections_between"]])
+        _initialized_behaviour_wait_for_action_modelling_recognized_15 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/read_association_destination"]])
         _initialized_behaviour_wait_for_action_modelling_recognized_15.setAction(self._initialized_behaviour_wait_for_action_modelling_recognized_15_exec)
         _initialized_behaviour_wait_for_action_modelling_recognized_15.setTrigger(None)
         _initialized_behaviour_wait_for_action_modelling_recognized_15.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_15_guard)
         self.states["/initialized/behaviour/wait_for_action/modelling/recognized"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_15)
-        _initialized_behaviour_wait_for_action_modelling_recognized_16 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/define_attribute"]])
+        _initialized_behaviour_wait_for_action_modelling_recognized_16 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/connections_between"]])
         _initialized_behaviour_wait_for_action_modelling_recognized_16.setAction(self._initialized_behaviour_wait_for_action_modelling_recognized_16_exec)
         _initialized_behaviour_wait_for_action_modelling_recognized_16.setTrigger(None)
         _initialized_behaviour_wait_for_action_modelling_recognized_16.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_16_guard)
         self.states["/initialized/behaviour/wait_for_action/modelling/recognized"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_16)
-        _initialized_behaviour_wait_for_action_modelling_recognized_17 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/all_instances"]])
+        _initialized_behaviour_wait_for_action_modelling_recognized_17 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/define_attribute"]])
         _initialized_behaviour_wait_for_action_modelling_recognized_17.setAction(self._initialized_behaviour_wait_for_action_modelling_recognized_17_exec)
         _initialized_behaviour_wait_for_action_modelling_recognized_17.setTrigger(None)
         _initialized_behaviour_wait_for_action_modelling_recognized_17.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_17_guard)
         self.states["/initialized/behaviour/wait_for_action/modelling/recognized"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_17)
+        _initialized_behaviour_wait_for_action_modelling_recognized_18 = Transition(self, self.states["/initialized/behaviour/wait_for_action/modelling/recognized"], [self.states["/initialized/behaviour/operations/all_instances"]])
+        _initialized_behaviour_wait_for_action_modelling_recognized_18.setAction(self._initialized_behaviour_wait_for_action_modelling_recognized_18_exec)
+        _initialized_behaviour_wait_for_action_modelling_recognized_18.setTrigger(None)
+        _initialized_behaviour_wait_for_action_modelling_recognized_18.setGuard(self._initialized_behaviour_wait_for_action_modelling_recognized_18_guard)
+        self.states["/initialized/behaviour/wait_for_action/modelling/recognized"].addTransition(_initialized_behaviour_wait_for_action_modelling_recognized_18)
     
     def _initialized_enter(self):
         self.big_step.outputEvent(Event("ready", "ready", []))
@@ -1730,6 +1763,12 @@ class Modelverse(RuntimeClassBase):
     def _initialized_behaviour_operations_verify_enter(self):
         self.raiseInternalEvent(Event("request", None, [['verify', self.parameters[0], self.parameters[1]]]))
     
+    def _initialized_behaviour_operations_model_upload_send_metadata_enter(self):
+        self.raiseInternalEvent(Event("request", None, [['upload', self.parameters[0], self.registered_metamodel[self.parameters[0]]]]))
+    
+    def _initialized_behaviour_operations_model_upload_send_model_enter(self):
+        self.raiseInternalEvent(Event("request", None, [self.parameters[1]]))
+    
     def _initialized_behaviour_operations_model_overwrite_send_metadata_enter(self):
         self.raiseInternalEvent(Event("request", None, [['model_overwrite', self.parameters[0], self.registered_metamodel[self.parameters[0]]]]))
     
@@ -2007,54 +2046,60 @@ class Modelverse(RuntimeClassBase):
         self.load_action(self.context)
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_9_guard(self, parameters):
-        return self.expect_action(self.context, 'attr_assign_code')
+        return self.expect_action(self.context, 'model_overwrite')
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_10_exec(self, parameters):
         self.load_action(self.context)
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_10_guard(self, parameters):
-        return self.expect_action(self.context, 'attr_delete')
+        return self.expect_action(self.context, 'attr_assign_code')
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_11_exec(self, parameters):
         self.load_action(self.context)
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_11_guard(self, parameters):
-        return self.expect_action(self.context, 'read_outgoing')
+        return self.expect_action(self.context, 'attr_delete')
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_12_exec(self, parameters):
         self.load_action(self.context)
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_12_guard(self, parameters):
-        return self.expect_action(self.context, 'read_incoming')
+        return self.expect_action(self.context, 'read_outgoing')
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_13_exec(self, parameters):
         self.load_action(self.context)
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_13_guard(self, parameters):
-        return self.expect_action(self.context, 'read_association_source')
+        return self.expect_action(self.context, 'read_incoming')
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_14_exec(self, parameters):
         self.load_action(self.context)
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_14_guard(self, parameters):
-        return self.expect_action(self.context, 'read_association_destination')
+        return self.expect_action(self.context, 'read_association_source')
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_15_exec(self, parameters):
         self.load_action(self.context)
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_15_guard(self, parameters):
-        return self.expect_action(self.context, 'connections_between')
+        return self.expect_action(self.context, 'read_association_destination')
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_16_exec(self, parameters):
         self.load_action(self.context)
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_16_guard(self, parameters):
-        return self.expect_action(self.context, 'define_attribute')
+        return self.expect_action(self.context, 'connections_between')
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_17_exec(self, parameters):
         self.load_action(self.context)
     
     def _initialized_behaviour_wait_for_action_modelling_recognized_17_guard(self, parameters):
+        return self.expect_action(self.context, 'define_attribute')
+    
+    def _initialized_behaviour_wait_for_action_modelling_recognized_18_exec(self, parameters):
+        self.load_action(self.context)
+    
+    def _initialized_behaviour_wait_for_action_modelling_recognized_18_guard(self, parameters):
         return self.expect_action(self.context, 'all_instances')
     
     def _init_0_exec(self, parameters):
@@ -2190,6 +2235,15 @@ class Modelverse(RuntimeClassBase):
         self.registered_metamodel[self.parameters[0]] = self.parameters[1]
         self.raiseInternalEvent(Event("result", None, [None]))
     
+    def _initialized_behaviour_operations_model_upload_send_metadata_0_guard(self, parameters):
+        return self.expect_response('Waiting for model constructors...')
+    
+    def _initialized_behaviour_operations_model_upload_send_model_0_exec(self, parameters):
+        self.raiseInternalEvent(Event("result", None, [None]))
+    
+    def _initialized_behaviour_operations_model_upload_send_model_0_guard(self, parameters):
+        return self.expect_response('Success')
+    
     def _initialized_behaviour_operations_model_overwrite_send_metadata_0_guard(self, parameters):
         return self.expect_response('Waiting for model constructors...')