瀏覽代碼

Fixed execution of operations

Yentl Van Tendeloo 7 年之前
父節點
當前提交
928b0da9c1
共有 3 個文件被更改,包括 20 次插入24 次删除
  1. 2 2
      unit/test_all.py
  2. 10 7
      wrappers/classes/modelverse.xml
  3. 8 15
      wrappers/modelverse_SCCD.py

+ 2 - 2
unit/test_all.py

@@ -274,8 +274,8 @@ class TestModelverse(unittest.TestCase):
         process_execute("test/pn_reachability", "", {"test/refine_PN": callback_refine_PN, "test/reachability_print": (ctrl, "inp", "outp")})
         thrd.join()
 
-        assert set(log) == set(['"0": {"p1": 1, }',
-                                '"1": {"p1": 0, }',
+        assert set(log) == set(['"0": {"p1": 1}',
+                                '"1": {"p1": 0}',
                                 '"0" --["t1"]--> "1"'])
 
         model_delete("RAMified")

+ 10 - 7
wrappers/classes/modelverse.xml

@@ -91,6 +91,7 @@
             self.context = None
             self.registered_metamodel = {}
             self.inputs = {}
+            self.catch_all = True
         </body>
     </constructor>
 
@@ -557,12 +558,6 @@
                                     </raise>
                                 </transition>
                             </state>
-
-                            <transition cond="self.expect_response_partial('', pop=False)" target="../../../wait_for_action/history">
-                                <script>
-                                    print("UNKNOWN RESPONSE received: " + str(self.responses.pop(0)))
-                                </script>
-                            </transition>
                         </state>
 
                         <state id="transformation_add_AL" initial="send_metadata">
@@ -776,6 +771,11 @@
                             </state>
 
                             <state id="enacting" initial="sc">
+                                <onentry>
+                                    <script>
+                                        self.catch_all = False
+                                    </script>
+                                </onentry>
                                 <state id="sc" initial="init">
                                     <state id="init">
                                         <transition target="../processing">
@@ -1371,7 +1371,10 @@
                         </script>
                     </transition>
 
-                    <transition cond="self.expect_response_partial('', pop=False)" target="../wait_for_action/history">
+                    <transition cond="self.catch_all and self.expect_response_partial('', pop=False)" target="../wait_for_action/history">
+                        <script>
+                            print("UNKNOWN ERROR: " + self.responses[0])
+                        </script>
                         <raise event="exception">
                             <parameter expr="'UnknownError'"/>
                             <parameter expr="'Error: %s' % self.responses.pop(0)"/>

+ 8 - 15
wrappers/modelverse_SCCD.py

@@ -1,7 +1,7 @@
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
-Date:   Tue Oct  3 09:37:08 2017
+Date:   Wed Oct  4 16:24:29 2017
 
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server
@@ -44,6 +44,7 @@ class Modelverse(RuntimeClassBase):
         self.context = None
         self.registered_metamodel = {}
         self.inputs = {}
+        self.catch_all = True
     
     def user_defined_destructor(self):
         pass
@@ -331,6 +332,7 @@ class Modelverse(RuntimeClassBase):
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute/enacting
         self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting"] = State(62, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting", self)
+        self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting"].setEnter(self._initialized_behaviour_operations_store_on_scripted_process_execute_enacting_enter)
         
         # state /initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc
         self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc"] = State(63, "/initialized/behaviour/operations/store_on_scripted/process_execute/enacting/sc", self)
@@ -1635,13 +1637,6 @@ class Modelverse(RuntimeClassBase):
         _initialized_behaviour_operations_2.setGuard(self._initialized_behaviour_operations_2_guard)
         self.states["/initialized/behaviour/operations"].addTransition(_initialized_behaviour_operations_2)
         
-        # transition /initialized/behaviour/operations/store_on_scripted/transformation_add_MT
-        _initialized_behaviour_operations_store_on_scripted_transformation_add_MT_0 = Transition(self, self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT"], [self.states["/initialized/behaviour/wait_for_action/history"]])
-        _initialized_behaviour_operations_store_on_scripted_transformation_add_MT_0.setAction(self._initialized_behaviour_operations_store_on_scripted_transformation_add_MT_0_exec)
-        _initialized_behaviour_operations_store_on_scripted_transformation_add_MT_0.setTrigger(None)
-        _initialized_behaviour_operations_store_on_scripted_transformation_add_MT_0.setGuard(self._initialized_behaviour_operations_store_on_scripted_transformation_add_MT_0_guard)
-        self.states["/initialized/behaviour/operations/store_on_scripted/transformation_add_MT"].addTransition(_initialized_behaviour_operations_store_on_scripted_transformation_add_MT_0)
-        
         # transition /initialized/behaviour/operations/store_on_scripted/process_execute/enacting
         _initialized_behaviour_operations_store_on_scripted_process_execute_enacting_0 = Transition(self, self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/enacting"], [self.states["/initialized/behaviour/operations/store_on_scripted/process_execute/executing"]])
         _initialized_behaviour_operations_store_on_scripted_process_execute_enacting_0.setTrigger(None)
@@ -1786,6 +1781,9 @@ 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_store_on_scripted_process_execute_enacting_enter(self):
+        self.catch_all = False
+    
     def _init_enter(self):
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'http_client', 'HTTPClient']))
         self.big_step.outputEventOM(Event("create_instance", None, [self, 'http_client', 'HTTPClient']))
@@ -2002,16 +2000,11 @@ class Modelverse(RuntimeClassBase):
         return self.expect_response_partial('No conformance relation can be found ', pop=False)
     
     def _initialized_behaviour_operations_2_exec(self, parameters):
+        print("UNKNOWN ERROR: " + self.responses[0])
         self.raiseInternalEvent(Event("exception", None, ['UnknownError', 'Error: %s' % self.responses.pop(0)]))
     
     def _initialized_behaviour_operations_2_guard(self, parameters):
-        return self.expect_response_partial('', pop=False)
-    
-    def _initialized_behaviour_operations_store_on_scripted_transformation_add_MT_0_exec(self, parameters):
-        print("UNKNOWN RESPONSE received: " + str(self.responses.pop(0)))
-    
-    def _initialized_behaviour_operations_store_on_scripted_transformation_add_MT_0_guard(self, parameters):
-        return self.expect_response_partial('', pop=False)
+        return self.catch_all and self.expect_response_partial('', pop=False)
     
     def _initialized_behaviour_operations_store_on_scripted_process_execute_enacting_0_guard(self, parameters):
         return self.expect_response('Success', pop=True)