Explorar el Código

performace improvements, also some timing issues resolved

Simon Van Mierlo hace 9 años
padre
commit
1075ee73db
Se han modificado 88 ficheros con 432 adiciones y 871 borrados
  1. 9 37
      examples/bouncingballs/js/target_js/target.js
  2. 1 1
      examples/bouncingballs/python/runner_performance.py
  3. 1 1
      examples/bouncingballs/python/runner_performance_threads.py
  4. 1 1
      examples/bouncingballs/python/sccd.xml
  5. 1 1
      examples/bouncingballs/python/sccd_performance.xml
  6. 1 1
      examples/bouncingballs/python/sccd_performance_threads.xml
  7. 10 22
      examples/bouncingballs/python/target_py/target.py
  8. 8 17
      examples/bouncingballs/python/target_py/target_performance.py
  9. 6 12
      examples/bouncingballs/python/target_py/target_performance_threads.py
  10. 6 27
      src/python_sccd/python_sccd_compiler/generic_generator.py
  11. 33 24
      src/python_sccd/python_sccd_runtime/statecharts_core.py
  12. 1 1
      test/src/original_semantics/after_0.xml
  13. 3 10
      test/target_js/big_step_maximality/00_take_one.js
  14. 3 10
      test/target_js/big_step_maximality/01_take_many.js
  15. 3 10
      test/target_js/big_step_maximality/10_orthogonal_take_one.js
  16. 3 10
      test/target_js/big_step_maximality/11_orthogonal_take_many.js
  17. 3 10
      test/target_js/event_lifeline/00_take_one_next_small_step.js
  18. 3 10
      test/target_js/event_lifeline/02_take_one_queue.js
  19. 3 10
      test/target_js/event_lifeline/10_take_many_next_small_step.js
  20. 3 10
      test/target_js/event_lifeline/11_take_many_next_combo_step.js
  21. 3 10
      test/target_js/event_lifeline/12_take_many_queue.js
  22. 3 10
      test/target_js/event_lifeline/20_orthogonal_take_one_next_small_step.js
  23. 3 10
      test/target_js/event_lifeline/21_orthogonal_take_one_queue.js
  24. 3 10
      test/target_js/event_lifeline/30_orthogonal_take_many_next_small_step.js
  25. 3 10
      test/target_js/event_lifeline/31_orthogonal_take_many_next_combo_step.js
  26. 3 10
      test/target_js/event_lifeline/32_orthogonal_take_many_queue.js
  27. 3 10
      test/target_js/no_statechart/00_no_statechart_js.js
  28. 3 10
      test/target_js/original_semantics/after.js
  29. 5 19
      test/target_js/original_semantics/after_0.js
  30. 5 19
      test/target_js/original_semantics/associate_event.js
  31. 3 10
      test/target_js/original_semantics/correct_duplicate_state_id.js
  32. 3 10
      test/target_js/original_semantics/enter_exit_hierarchy.js
  33. 3 10
      test/target_js/original_semantics/guard.js
  34. 3 10
      test/target_js/original_semantics/history.js
  35. 3 10
      test/target_js/original_semantics/history_deep.js
  36. 3 10
      test/target_js/original_semantics/history_parallel_deep.js
  37. 3 10
      test/target_js/original_semantics/inner_first.js
  38. 3 10
      test/target_js/original_semantics/instate.js
  39. 3 10
      test/target_js/original_semantics/multiple_target.js
  40. 5 19
      test/target_js/original_semantics/object_manager.js
  41. 3 10
      test/target_js/original_semantics/outer_first.js
  42. 3 10
      test/target_js/original_semantics/parallel.js
  43. 3 10
      test/target_js/original_semantics/parallel_history.js
  44. 3 10
      test/target_js/original_semantics/parallel_history_2.js
  45. 3 10
      test/target_js/original_semantics/parallel_history_3.js
  46. 3 10
      test/target_js/priority/00_source_parent.js
  47. 3 10
      test/target_js/priority/01_source_child.js
  48. 3 10
      test/target_js/priority/10_source_parent_history.js
  49. 3 10
      test/target_js/priority/11_source_child_history.js
  50. 3 10
      test/target_js/timing/00_rapid_js.js
  51. 6 8
      test/target_py/big_step_maximality/00_take_one.py
  52. 6 8
      test/target_py/big_step_maximality/01_take_many.py
  53. 6 8
      test/target_py/big_step_maximality/10_orthogonal_take_one.py
  54. 6 8
      test/target_py/big_step_maximality/11_orthogonal_take_many.py
  55. 6 8
      test/target_py/event_lifeline/00_take_one_next_small_step.py
  56. 6 8
      test/target_py/event_lifeline/02_take_one_queue.py
  57. 6 8
      test/target_py/event_lifeline/10_take_many_next_small_step.py
  58. 6 8
      test/target_py/event_lifeline/11_take_many_next_combo_step.py
  59. 6 8
      test/target_py/event_lifeline/12_take_many_queue.py
  60. 6 8
      test/target_py/event_lifeline/20_orthogonal_take_one_next_small_step.py
  61. 6 8
      test/target_py/event_lifeline/21_orthogonal_take_one_queue.py
  62. 6 8
      test/target_py/event_lifeline/30_orthogonal_take_many_next_small_step.py
  63. 6 8
      test/target_py/event_lifeline/31_orthogonal_take_many_next_combo_step.py
  64. 6 8
      test/target_py/event_lifeline/32_orthogonal_take_many_queue.py
  65. 6 8
      test/target_py/no_statechart/00_no_statechart_py.py
  66. 6 8
      test/target_py/original_semantics/after.py
  67. 8 13
      test/target_py/original_semantics/after_0.py
  68. 8 13
      test/target_py/original_semantics/associate_event.py
  69. 6 8
      test/target_py/original_semantics/correct_duplicate_state_id.py
  70. 6 8
      test/target_py/original_semantics/enter_exit_hierarchy.py
  71. 6 8
      test/target_py/original_semantics/guard.py
  72. 6 8
      test/target_py/original_semantics/history.py
  73. 6 8
      test/target_py/original_semantics/history_deep.py
  74. 6 8
      test/target_py/original_semantics/history_parallel_deep.py
  75. 6 8
      test/target_py/original_semantics/inner_first.py
  76. 6 8
      test/target_py/original_semantics/instate.py
  77. 6 8
      test/target_py/original_semantics/multiple_target.py
  78. 8 13
      test/target_py/original_semantics/object_manager.py
  79. 6 8
      test/target_py/original_semantics/outer_first.py
  80. 6 8
      test/target_py/original_semantics/parallel.py
  81. 6 8
      test/target_py/original_semantics/parallel_history.py
  82. 6 8
      test/target_py/original_semantics/parallel_history_2.py
  83. 6 8
      test/target_py/original_semantics/parallel_history_3.py
  84. 6 8
      test/target_py/priority/00_source_parent.py
  85. 6 8
      test/target_py/priority/01_source_child.py
  86. 6 8
      test/target_py/priority/10_source_parent_history.py
  87. 6 8
      test/target_py/priority/11_source_child_history.py
  88. 6 8
      test/target_py/timing/00_rapid_py.py

+ 9 - 37
examples/bouncingballs/js/target_js/target.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Fri Aug 05 16:11:47 2016
+Date:   Mon Aug 08 16:30:17 2016
 
 
 Model author: Joeri Exelmans+Raphael Mannadiar+Simon Van Mierlo
 Model author: Joeri Exelmans+Raphael Mannadiar+Simon Van Mierlo
 Model name:   Bouncing_Balls_JavaScript_Version
 Model name:   Bouncing_Balls_JavaScript_Version
@@ -185,15 +185,8 @@ MainApp.prototype._running_root_cd_behaviour_check_nr_of_fields_1_guard = functi
 
 
 MainApp.prototype.initializeStatechart = function() {
 MainApp.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/running"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/running"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'MainApp' to package 'Bouncing_Balls_JavaScript_Version'
 // add symbol 'MainApp' to package 'Bouncing_Balls_JavaScript_Version'
@@ -450,15 +443,8 @@ Field.prototype._root_deleting_0_exec = function(parameters) {
 
 
 Field.prototype.initializeStatechart = function() {
 Field.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/root"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/root"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Field' to package 'Bouncing_Balls_JavaScript_Version'
 // add symbol 'Field' to package 'Bouncing_Balls_JavaScript_Version'
@@ -550,15 +536,8 @@ Button.prototype._running_0_guard = function(parameters) {
 
 
 Button.prototype.initializeStatechart = function() {
 Button.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/initializing"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/initializing"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Button' to package 'Bouncing_Balls_JavaScript_Version'
 // add symbol 'Button' to package 'Bouncing_Balls_JavaScript_Version'
@@ -773,15 +752,8 @@ Ball.prototype._main_behaviour_selected_1_exec = function(parameters) {
 
 
 Ball.prototype.initializeStatechart = function() {
 Ball.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/main_behaviour"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/main_behaviour"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Ball' to package 'Bouncing_Balls_JavaScript_Version'
 // add symbol 'Ball' to package 'Bouncing_Balls_JavaScript_Version'

+ 1 - 1
examples/bouncingballs/python/runner_performance.py

@@ -14,7 +14,7 @@ if __name__ == '__main__':
     ui.window = tk.Tk()
     ui.window = tk.Tk()
     ui.window.withdraw()
     ui.window.withdraw()
     def callback(ctrl, behind_schedule):
     def callback(ctrl, behind_schedule):
-        if behind_schedule > 500:
+        if behind_schedule > 2000:
             print len(ctrl.object_manager.instances)
             print len(ctrl.object_manager.instances)
             ctrl.stop()
             ctrl.stop()
             ui.window.destroy()
             ui.window.destroy()

+ 1 - 1
examples/bouncingballs/python/runner_performance_threads.py

@@ -11,7 +11,7 @@ from sccd.runtime.statecharts_core import Event
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
     def callback(ctrl, behind_schedule):
     def callback(ctrl, behind_schedule):
-        if behind_schedule > 500:
+        if behind_schedule > 2000:
             print len(ctrl.object_manager.instances)
             print len(ctrl.object_manager.instances)
             ctrl.stop()
             ctrl.stop()
             sys.exit()
             sys.exit()

+ 1 - 1
examples/bouncingballs/python/sccd.xml

@@ -313,7 +313,7 @@
                     </transition>
                     </transition>
                 </state>
                 </state>
                 <state id="bouncing">
                 <state id="bouncing">
-                    <transition after="0.05" target=".">
+                    <transition after="(20 - self.getSimulatedTime() % 20) / 1000.0" target=".">
                         <script>
                         <script>
                             <![CDATA[
                             <![CDATA[
                             pos = self.element.get_position();    
                             pos = self.element.get_position();    

+ 1 - 1
examples/bouncingballs/python/sccd_performance.xml

@@ -333,7 +333,7 @@
                     </transition>
                     </transition>
                 </state>
                 </state>
                 <state id="bouncing">
                 <state id="bouncing">
-                    <transition after="(1000 - self.getSimulatedTime() % 1000) / 1000.0" target=".">
+                    <transition after="(20 - self.getSimulatedTime() % 20) / 1000.0" target=".">
                         <script>
                         <script>
                             <![CDATA[
                             <![CDATA[
                             pos = self.element.get_position();    
                             pos = self.element.get_position();    

+ 1 - 1
examples/bouncingballs/python/sccd_performance_threads.xml

@@ -123,7 +123,7 @@
         <scxml initial="main_behaviour">
         <scxml initial="main_behaviour">
             <state id="main_behaviour" initial="bouncing">
             <state id="main_behaviour" initial="bouncing">
                 <state id="bouncing">
                 <state id="bouncing">
-                    <transition after="(1000 - self.getSimulatedTime() % 1000) / 1000.0" target=".">
+                    <transition after="(20 - self.getSimulatedTime() % 20) / 1000.0" target=".">
                         <script>
                         <script>
                             <![CDATA[
                             <![CDATA[
                             self.pos
                             self.pos

+ 10 - 22
examples/bouncingballs/python/target_py/target.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Fri Aug 05 16:11:47 2016
+Date:   Tue Aug 09 09:51:00 2016
 
 
 Model author: Simon Van Mierlo+Raphael Mannadiar
 Model author: Simon Van Mierlo+Raphael Mannadiar
 Model name:   Bouncing_Balls_Python_Version
 Model name:   Bouncing_Balls_Python_Version
@@ -176,11 +176,8 @@ class MainApp(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/running"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/running"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class Field(RuntimeClassBase):
 class Field(RuntimeClassBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -412,11 +409,8 @@ class Field(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/root"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/root"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class Button(RuntimeClassBase):
 class Button(RuntimeClassBase):
     def __init__(self, controller, parent, event_name, button_text):
     def __init__(self, controller, parent, event_name, button_text):
@@ -492,11 +486,8 @@ class Button(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/initializing"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/initializing"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class Ball(RuntimeClassBase):
 class Ball(RuntimeClassBase):
     def __init__(self, controller, canvas, x, y):
     def __init__(self, controller, canvas, x, y):
@@ -611,7 +602,7 @@ class Ball(RuntimeClassBase):
         self.states["/main_behaviour/selected"].addTransition(_main_behaviour_selected_1)
         self.states["/main_behaviour/selected"].addTransition(_main_behaviour_selected_1)
     
     
     def _main_behaviour_bouncing_enter(self):
     def _main_behaviour_bouncing_enter(self):
-        self.addTimer(0, 0.05)
+        self.addTimer(0, (20 - self.getSimulatedTime() % 20) / 1000.0)
     
     
     def _main_behaviour_bouncing_exit(self):
     def _main_behaviour_bouncing_exit(self):
         self.removeTimer(0)
         self.removeTimer(0)
@@ -688,11 +679,8 @@ class Ball(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/main_behaviour"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/main_behaviour"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):

+ 8 - 17
examples/bouncingballs/python/target_py/target_performance.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Fri Aug 05 16:11:48 2016
+Date:   Tue Aug 09 09:51:00 2016
 
 
 Model author: Simon Van Mierlo+Raphael Mannadiar
 Model author: Simon Van Mierlo+Raphael Mannadiar
 Model name:   Bouncing_Balls_Python_Version
 Model name:   Bouncing_Balls_Python_Version
@@ -206,11 +206,8 @@ class MainApp(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/running"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/running"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class Field(RuntimeClassBase):
 class Field(RuntimeClassBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -468,11 +465,8 @@ class Field(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/root"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/root"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class Button(RuntimeClassBase):
 class Button(RuntimeClassBase):
     def __init__(self, controller, parent, event_name, button_text):
     def __init__(self, controller, parent, event_name, button_text):
@@ -548,11 +542,8 @@ class Button(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/initializing"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/initializing"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class Ball(RuntimeClassBase):
 class Ball(RuntimeClassBase):
     def __init__(self, controller, canvas, x, y):
     def __init__(self, controller, canvas, x, y):
@@ -667,7 +658,7 @@ class Ball(RuntimeClassBase):
         self.states["/main_behaviour/selected"].addTransition(_main_behaviour_selected_1)
         self.states["/main_behaviour/selected"].addTransition(_main_behaviour_selected_1)
     
     
     def _main_behaviour_bouncing_enter(self):
     def _main_behaviour_bouncing_enter(self):
-        self.addTimer(0, (1000 - self.getSimulatedTime() % 1000) / 1000.0)
+        self.addTimer(0, (20 - self.getSimulatedTime() % 20) / 1000.0)
     
     
     def _main_behaviour_bouncing_exit(self):
     def _main_behaviour_bouncing_exit(self):
         self.removeTimer(0)
         self.removeTimer(0)

+ 6 - 12
examples/bouncingballs/python/target_py/target_performance_threads.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 14:51:59 2016
+Date:   Tue Aug 09 10:51:10 2016
 
 
 Model author: Simon Van Mierlo+Raphael Mannadiar
 Model author: Simon Van Mierlo+Raphael Mannadiar
 Model name:   Bouncing_Balls_Python_Version
 Model name:   Bouncing_Balls_Python_Version
@@ -248,11 +248,8 @@ class Field(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/root"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/root"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class Ball(RuntimeClassBase):
 class Ball(RuntimeClassBase):
     def __init__(self, controller, x, y):
     def __init__(self, controller, x, y):
@@ -309,7 +306,7 @@ class Ball(RuntimeClassBase):
         self.states["/main_behaviour/bouncing"].addTransition(_main_behaviour_bouncing_0)
         self.states["/main_behaviour/bouncing"].addTransition(_main_behaviour_bouncing_0)
     
     
     def _main_behaviour_bouncing_enter(self):
     def _main_behaviour_bouncing_enter(self):
-        self.addTimer(0, (1000 - self.getSimulatedTime() % 1000) / 1000.0)
+        self.addTimer(0, (20 - self.getSimulatedTime() % 20) / 1000.0)
     
     
     def _main_behaviour_bouncing_exit(self):
     def _main_behaviour_bouncing_exit(self):
         self.removeTimer(0)
         self.removeTimer(0)
@@ -325,11 +322,8 @@ class Ball(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/main_behaviour"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/main_behaviour"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):

+ 6 - 27
src/python_sccd/python_sccd_compiler/generic_generator.py

@@ -248,7 +248,7 @@ class GenericGenerator(Visitor):
             
             
             # get effective target of initial transition
             # get effective target of initial transition
             self.writer.addAssignment(
             self.writer.addAssignment(
-                GLC.LocalVariableDeclaration("states"),
+                GLC.SelfProperty("default_targets"),
                 GLC.FunctionCall(
                 GLC.FunctionCall(
                     GLC.Property(
                     GLC.Property(
                         GLC.MapIndexedExpression(
                         GLC.MapIndexedExpression(
@@ -260,32 +260,11 @@ class GenericGenerator(Visitor):
                 )
                 )
             )
             )
             
             
-            # update state configuration
-            self.writer.add(
-                GLC.FunctionCall(
-                    GLC.SelfProperty("updateConfiguration"),
-                    ["states"]
-                )
-            )
-            
-            # call enter action of states to enter, if present
-            self.writer.beginForLoopIterateArray("states", "state")
-            self.writer.beginElseIf(
-                GLC.Property(
-                    "state",
-                    "enter"
-                )
-            )
-            self.writer.add(
-                GLC.FunctionCall(
-                    GLC.Property(
-                        "state",
-                        "enter"
-                    )
-                )
-            )
-            self.writer.endElseIf()
-            self.writer.endForLoopIterateArray()
+            self.writer.add(GLC.SuperClassMethodCall(
+                "RuntimeClassBase",
+                "initializeStatechart",
+                []
+            ))
             
             
             self.writer.endMethodBody()
             self.writer.endMethodBody()
             self.writer.endMethod()
             self.writer.endMethod()

+ 33 - 24
src/python_sccd/python_sccd_runtime/statecharts_core.py

@@ -4,8 +4,9 @@ import threading
 import traceback
 import traceback
 import math
 import math
 import cPickle
 import cPickle
+from heapq import heappush, heappop
 from infinity import INFINITY
 from infinity import INFINITY
-from Queue import Queue, Empty
+from Queue import Queue, Empty 
 
 
 from sccd.runtime.event_queue import EventQueue
 from sccd.runtime.event_queue import EventQueue
 from sccd.runtime.accurate_time import time, set_start_time
 from sccd.runtime.accurate_time import time, set_start_time
@@ -37,8 +38,7 @@ class Association(object):
         self.instances = {} # maps index (as string) to instance
         self.instances = {} # maps index (as string) to instance
         self.instances_to_ids = {}
         self.instances_to_ids = {}
         self.size = 0
         self.size = 0
-        self.next_id = 0
-        
+        self.next_id = 0        
 
 
     def allowedToAdd(self):
     def allowedToAdd(self):
         return self.max_card == -1 or self.size < self.max_card
         return self.max_card == -1 or self.size < self.max_card
@@ -79,6 +79,8 @@ class ObjectManagerBase(object):
         self.controller = controller
         self.controller = controller
         self.events = EventQueue()
         self.events = EventQueue()
         self.instances = set() # a set of RuntimeClassBase instances
         self.instances = set() # a set of RuntimeClassBase instances
+        self.instance_times = []
+        self.eventless = set()
         
         
     def addEvent(self, event, time_offset = 0):
     def addEvent(self, event, time_offset = 0):
         self.events.add((self.controller.simulated_time + time_offset, event))
         self.events.add((self.controller.simulated_time + time_offset, event))
@@ -89,29 +91,28 @@ class ObjectManagerBase(object):
             i.addEvent(new_event, time_offset)
             i.addEvent(new_event, time_offset)
         
         
     def getEarliestEventTime(self):
     def getEarliestEventTime(self):
-        earliest_time = self.events.getEarliestTime()
-        if self.instances:
-            for i in self.instances:
-                if i.earliest_event_time < earliest_time:
-                    earliest_time = i.earliest_event_time
-        return earliest_time
+        return min(self.instance_times[0][0], self.events.getEarliestTime())
     
     
     def stepAll(self):
     def stepAll(self):
         self.step()
         self.step()
         simulated_time = self.controller.simulated_time
         simulated_time = self.controller.simulated_time
-        for i in self.instances:
+        to_step = set()
+        while self.instance_times[0][0] <= simulated_time:
+            to_step.add(heappop(self.instance_times)[1])
+        # print simulated_time, len(self.instances), len(to_step | self.eventless)
+        for i in to_step | self.eventless:
             if i.active and (i.earliest_event_time <= simulated_time or i.eventless_states):
             if i.active and (i.earliest_event_time <= simulated_time or i.eventless_states):
                 i.step()
                 i.step()
 
 
     def step(self):
     def step(self):
-        while self.events.getEarliestTime() <= time():
+        while self.events.getEarliestTime() <= self.controller.simulated_time:
             self.handleEvent(self.events.pop())
             self.handleEvent(self.events.pop())
                
                
     def start(self):
     def start(self):
         for i in self.instances:
         for i in self.instances:
             i.start()          
             i.start()          
                
                
-    def handleEvent(self, e):   
+    def handleEvent(self, e):
         if e.getName() == "narrow_cast" :
         if e.getName() == "narrow_cast" :
             self.handleNarrowCastEvent(e.getParameters())            
             self.handleNarrowCastEvent(e.getParameters())            
         elif e.getName() == "broad_cast" :
         elif e.getName() == "broad_cast" :
@@ -201,9 +202,8 @@ class ObjectManagerBase(object):
                     self.instances.discard(i["instance"])
                     self.instances.discard(i["instance"])
                 except AssociationException as exception:
                 except AssociationException as exception:
                     raise RuntimeException("Error removing instance from association '" + association_name + "': " + str(exception))
                     raise RuntimeException("Error removing instance from association '" + association_name + "': " + str(exception))
-                i["instance"].stop()
-                # if hasattr(i.instance, 'user_defined_destructor'):
                 i["instance"].user_defined_destructor()
                 i["instance"].user_defined_destructor()
+                i["instance"].stop()
             source.addEvent(Event("instance_deleted", parameters = [parameters[1]]))
             source.addEvent(Event("instance_deleted", parameters = [parameters[1]]))
                 
                 
     def handleAssociateEvent(self, parameters):
     def handleAssociateEvent(self, parameters):
@@ -749,6 +749,11 @@ class Transition:
             # execute enter action(s)
             # execute enter action(s)
             if s.enter:
             if s.enter:
                 s.enter()
                 s.enter()
+        
+        if self.obj.eventless_states:
+            self.obj.controller.object_manager.eventless.add(self.obj)
+        else:
+            self.obj.controller.object_manager.eventless.discard(self.obj)
                 
                 
         self.obj.configuration.sort(key=lambda x: x.state_id)
         self.obj.configuration.sort(key=lambda x: x.state_id)
         self.enabled_event = None
         self.enabled_event = None
@@ -806,11 +811,12 @@ class RuntimeClassBase(object):
     __metaclass__  = abc.ABCMeta
     __metaclass__  = abc.ABCMeta
     
     
     def __init__(self, controller):
     def __init__(self, controller):
-        self.active = False
-        self.__set_stable(True)
         self.events = EventQueue()
         self.events = EventQueue()
+        
+        self.active = False
 
 
         self.controller = controller
         self.controller = controller
+        self.__set_stable(True)
         self.inports = {}
         self.inports = {}
         self.timers = {}
         self.timers = {}
         self.states = {}
         self.states = {}
@@ -821,6 +827,8 @@ class RuntimeClassBase(object):
     def start(self):
     def start(self):
         self.configuration = []
         self.configuration = []
         
         
+        self.active = True
+        
         self.current_state = {}
         self.current_state = {}
         self.history_values = {}
         self.history_values = {}
         self.timers = {}
         self.timers = {}
@@ -830,22 +838,21 @@ class RuntimeClassBase(object):
         self.combo_step = ComboStepState()
         self.combo_step = ComboStepState()
         self.small_step = SmallStepState()
         self.small_step = SmallStepState()
 
 
-        self.active = True
         self.__set_stable(False)
         self.__set_stable(False)
 
 
         self.initializeStatechart()
         self.initializeStatechart()
         self.processBigStepOutput()
         self.processBigStepOutput()
         
         
+    def stop(self):
+        self.active = False
+        self.__set_stable(True)
+        
     def getSimulatedTime(self):
     def getSimulatedTime(self):
         return self.controller.simulated_time
         return self.controller.simulated_time
     
     
     def updateConfiguration(self, states):
     def updateConfiguration(self, states):
         self.configuration.extend(states)
         self.configuration.extend(states)
     
     
-    def stop(self):
-        self.active = False
-        self.__set_stable(True)
-    
     def addTimer(self, index, timeout):
     def addTimer(self, index, timeout):
         self.timers_to_add[index] = (self.controller.simulated_time + int(timeout * 1000), Event("_%iafter" % index))
         self.timers_to_add[index] = (self.controller.simulated_time + int(timeout * 1000), Event("_%iafter" % index))
     
     
@@ -858,6 +865,7 @@ class RuntimeClassBase(object):
         
         
     def addEvent(self, event_list, time_offset = 0):
     def addEvent(self, event_list, time_offset = 0):
         event_time = self.controller.simulated_time + time_offset
         event_time = self.controller.simulated_time + time_offset
+        heappush(self.controller.object_manager.instance_times, (event_time, self))
         if event_time < self.earliest_event_time:
         if event_time < self.earliest_event_time:
             self.earliest_event_time = event_time
             self.earliest_event_time = event_time
         if not isinstance(event_list, list):
         if not isinstance(event_list, list):
@@ -876,10 +884,9 @@ class RuntimeClassBase(object):
         # self.earliest_event_time keeps track of the earliest time this instance will execute a transition
         # self.earliest_event_time keeps track of the earliest time this instance will execute a transition
         if not is_stable:
         if not is_stable:
             self.earliest_event_time = 0
             self.earliest_event_time = 0
-        elif not self.active:
-            self.earliest_event_time = INFINITY
         else:
         else:
             self.earliest_event_time = self.events.getEarliestTime()
             self.earliest_event_time = self.events.getEarliestTime()
+        heappush(self.controller.object_manager.instance_times, (self.earliest_event_time, self))
 
 
     def step(self):        
     def step(self):        
         is_stable = False
         is_stable = False
@@ -981,7 +988,7 @@ class RuntimeClassBase(object):
         elif self.semantics.internal_event_lifeline == StatechartSemantics.NextComboStep:
         elif self.semantics.internal_event_lifeline == StatechartSemantics.NextComboStep:
             self.combo_step.addNextEvent(event)
             self.combo_step.addNextEvent(event)
         elif self.semantics.internal_event_lifeline == StatechartSemantics.Queue:
         elif self.semantics.internal_event_lifeline == StatechartSemantics.Queue:
-            self.events.add((time(), event))
+            self.addEvent(event)
 
 
     def initializeStatechart(self):
     def initializeStatechart(self):
         self.updateConfiguration(self.default_targets)
         self.updateConfiguration(self.default_targets)
@@ -989,6 +996,8 @@ class RuntimeClassBase(object):
             self.eventless_states += state.has_eventless_transitions
             self.eventless_states += state.has_eventless_transitions
             if state.enter:
             if state.enter:
                 state.enter()
                 state.enter()
+        if self.eventless_states:
+            self.controller.object_manager.eventless.add(self)
         
         
 
 
 class BigStepState(object):
 class BigStepState(object):

+ 1 - 1
test/src/original_semantics/after_0.xml

@@ -39,7 +39,7 @@
                 </transition>
                 </transition>
 
 
             </state>
             </state>
-            <state id="done"/>
+            <state id="done" />
         </scxml>
         </scxml>
     </class>
     </class>
 
 

+ 3 - 10
test/target_js/big_step_maximality/00_take_one.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:16 2016
+Date:   Tue Aug 09 09:35:50 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   take_one
 Model name:   take_one
@@ -92,15 +92,8 @@ c.prototype._c_enter = function() {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/a"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/a"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'take_one'
 // add symbol 'c' to package 'take_one'

+ 3 - 10
test/target_js/big_step_maximality/01_take_many.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:16 2016
+Date:   Tue Aug 09 09:35:50 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   take_many
 Model name:   take_many
@@ -92,15 +92,8 @@ c.prototype._c_enter = function() {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/a"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/a"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'take_many'
 // add symbol 'c' to package 'take_many'

+ 3 - 10
test/target_js/big_step_maximality/10_orthogonal_take_one.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:16 2016
+Date:   Tue Aug 09 09:35:50 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   orthogonal_take_one
 Model name:   orthogonal_take_one
@@ -143,15 +143,8 @@ c.prototype._p_o1_sf_enter = function() {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/p"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/p"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'orthogonal_take_one'
 // add symbol 'c' to package 'orthogonal_take_one'

+ 3 - 10
test/target_js/big_step_maximality/11_orthogonal_take_many.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:17 2016
+Date:   Tue Aug 09 09:35:50 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   orthogonal_take_many
 Model name:   orthogonal_take_many
@@ -143,15 +143,8 @@ c.prototype._p_o1_sf_enter = function() {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/p"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/p"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'orthogonal_take_many'
 // add symbol 'c' to package 'orthogonal_take_many'

+ 3 - 10
test/target_js/event_lifeline/00_take_one_next_small_step.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:17 2016
+Date:   Tue Aug 09 09:35:51 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   take_one_next_small_step
 Model name:   take_one_next_small_step
@@ -97,15 +97,8 @@ c.prototype._a_0_exec = function(parameters) {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/a"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/a"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'take_one_next_small_step'
 // add symbol 'c' to package 'take_one_next_small_step'

+ 3 - 10
test/target_js/event_lifeline/02_take_one_queue.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:17 2016
+Date:   Tue Aug 09 09:35:51 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   take_one_queue
 Model name:   take_one_queue
@@ -97,15 +97,8 @@ c.prototype._a_0_exec = function(parameters) {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/a"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/a"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'take_one_queue'
 // add symbol 'c' to package 'take_one_queue'

+ 3 - 10
test/target_js/event_lifeline/10_take_many_next_small_step.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:17 2016
+Date:   Tue Aug 09 09:35:51 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   take_many_next_small_step
 Model name:   take_many_next_small_step
@@ -97,15 +97,8 @@ c.prototype._a_0_exec = function(parameters) {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/a"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/a"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'take_many_next_small_step'
 // add symbol 'c' to package 'take_many_next_small_step'

+ 3 - 10
test/target_js/event_lifeline/11_take_many_next_combo_step.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:17 2016
+Date:   Tue Aug 09 09:35:51 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   take_many_next_combo_step
 Model name:   take_many_next_combo_step
@@ -97,15 +97,8 @@ c.prototype._a_0_exec = function(parameters) {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/a"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/a"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'take_many_next_combo_step'
 // add symbol 'c' to package 'take_many_next_combo_step'

+ 3 - 10
test/target_js/event_lifeline/12_take_many_queue.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:17 2016
+Date:   Tue Aug 09 09:35:51 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   take_many_queue
 Model name:   take_many_queue
@@ -97,15 +97,8 @@ c.prototype._a_0_exec = function(parameters) {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/a"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/a"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'take_many_queue'
 // add symbol 'c' to package 'take_many_queue'

+ 3 - 10
test/target_js/event_lifeline/20_orthogonal_take_one_next_small_step.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:17 2016
+Date:   Tue Aug 09 09:35:51 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   orthogonal_take_one_next_small_step
 Model name:   orthogonal_take_one_next_small_step
@@ -146,15 +146,8 @@ c.prototype._p_o1_sc_0_exec = function(parameters) {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/p"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/p"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'orthogonal_take_one_next_small_step'
 // add symbol 'c' to package 'orthogonal_take_one_next_small_step'

+ 3 - 10
test/target_js/event_lifeline/21_orthogonal_take_one_queue.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:17 2016
+Date:   Tue Aug 09 09:35:51 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   orthogonal_take_one_queue
 Model name:   orthogonal_take_one_queue
@@ -144,15 +144,8 @@ c.prototype._p_o1_sc_0_exec = function(parameters) {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/p"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/p"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'orthogonal_take_one_queue'
 // add symbol 'c' to package 'orthogonal_take_one_queue'

+ 3 - 10
test/target_js/event_lifeline/30_orthogonal_take_many_next_small_step.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:17 2016
+Date:   Tue Aug 09 09:35:51 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   orthogonal_take_many_next_small_step
 Model name:   orthogonal_take_many_next_small_step
@@ -148,15 +148,8 @@ c.prototype._p_o1_sc_0_exec = function(parameters) {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/p"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/p"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'orthogonal_take_many_next_small_step'
 // add symbol 'c' to package 'orthogonal_take_many_next_small_step'

+ 3 - 10
test/target_js/event_lifeline/31_orthogonal_take_many_next_combo_step.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:18 2016
+Date:   Tue Aug 09 09:35:51 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   orthogonal_take_many_next_combo_step
 Model name:   orthogonal_take_many_next_combo_step
@@ -143,15 +143,8 @@ c.prototype._p_o1_sc_0_exec = function(parameters) {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/p"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/p"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'orthogonal_take_many_next_combo_step'
 // add symbol 'c' to package 'orthogonal_take_many_next_combo_step'

+ 3 - 10
test/target_js/event_lifeline/32_orthogonal_take_many_queue.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:18 2016
+Date:   Tue Aug 09 09:35:52 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   orthogonal_take_many_queue
 Model name:   orthogonal_take_many_queue
@@ -144,15 +144,8 @@ c.prototype._p_o1_sc_0_exec = function(parameters) {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/p"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/p"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'orthogonal_take_many_queue'
 // add symbol 'c' to package 'orthogonal_take_many_queue'

+ 3 - 10
test/target_js/no_statechart/00_no_statechart_js.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:18 2016
+Date:   Tue Aug 09 09:35:52 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   no_statechart
 Model name:   no_statechart
@@ -137,15 +137,8 @@ my_class.prototype._b_0_guard = function(parameters) {
 
 
 my_class.prototype.initializeStatechart = function() {
 my_class.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/a"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/a"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'my_class' to package 'no_statechart'
 // add symbol 'my_class' to package 'no_statechart'

+ 3 - 10
test/target_js/original_semantics/after.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:18 2016
+Date:   Tue Aug 09 09:35:52 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestAfter
 Model name:   TestAfter
@@ -102,15 +102,8 @@ Class1.prototype._composite_state_3_enter = function() {
 
 
 Class1.prototype.initializeStatechart = function() {
 Class1.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/composite"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/composite"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Class1' to package 'TestAfter'
 // add symbol 'Class1' to package 'TestAfter'

+ 5 - 19
test/target_js/original_semantics/after_0.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:18 2016
+Date:   Tue Aug 09 09:35:52 2016
 
 
 Model author: Yentl Van Tendeloo
 Model author: Yentl Van Tendeloo
 Model name:   after_0
 Model name:   after_0
@@ -95,15 +95,8 @@ A.prototype._ready_0_exec = function(parameters) {
 
 
 A.prototype.initializeStatechart = function() {
 A.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/x"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/x"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'A' to package 'after_0'
 // add symbol 'A' to package 'after_0'
@@ -177,15 +170,8 @@ B.prototype._z_0_exec = function(parameters) {
 
 
 B.prototype.initializeStatechart = function() {
 B.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/z"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/z"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'B' to package 'after_0'
 // add symbol 'B' to package 'after_0'

+ 5 - 19
test/target_js/original_semantics/associate_event.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:18 2016
+Date:   Tue Aug 09 09:35:52 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestAssociateEvent
 Model name:   TestAssociateEvent
@@ -88,15 +88,8 @@ Class1.prototype._wait_0_exec = function(parameters) {
 
 
 Class1.prototype.initializeStatechart = function() {
 Class1.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/start"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/start"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Class1' to package 'TestAssociateEvent'
 // add symbol 'Class1' to package 'TestAssociateEvent'
@@ -159,15 +152,8 @@ Class2.prototype._start_0_exec = function(parameters) {
 
 
 Class2.prototype.initializeStatechart = function() {
 Class2.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/start"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/start"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Class2' to package 'TestAssociateEvent'
 // add symbol 'Class2' to package 'TestAssociateEvent'

+ 3 - 10
test/target_js/original_semantics/correct_duplicate_state_id.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:18 2016
+Date:   Tue Aug 09 09:35:52 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestCorrectDuplicateStateId
 Model name:   TestCorrectDuplicateStateId
@@ -81,15 +81,8 @@ Class1.prototype.build_statechart_structure = function() {
 
 
 Class1.prototype.initializeStatechart = function() {
 Class1.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/state1"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/state1"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Class1' to package 'TestCorrectDuplicateStateId'
 // add symbol 'Class1' to package 'TestCorrectDuplicateStateId'

+ 3 - 10
test/target_js/original_semantics/enter_exit_hierarchy.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:18 2016
+Date:   Tue Aug 09 09:35:52 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestEnterExitHierarchy
 Model name:   TestEnterExitHierarchy
@@ -171,15 +171,8 @@ Class1.prototype._composite_state2_inner4_exit = function() {
 
 
 Class1.prototype.initializeStatechart = function() {
 Class1.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/outside"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/outside"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Class1' to package 'TestEnterExitHierarchy'
 // add symbol 'Class1' to package 'TestEnterExitHierarchy'

+ 3 - 10
test/target_js/original_semantics/guard.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:19 2016
+Date:   Tue Aug 09 09:35:52 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestGuard
 Model name:   TestGuard
@@ -103,15 +103,8 @@ Class1.prototype._state_2_1_guard = function(parameters) {
 
 
 Class1.prototype.initializeStatechart = function() {
 Class1.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/state_1"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/state_1"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Class1' to package 'TestGuard'
 // add symbol 'Class1' to package 'TestGuard'

+ 3 - 10
test/target_js/original_semantics/history.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:19 2016
+Date:   Tue Aug 09 09:35:53 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestHistory
 Model name:   TestHistory
@@ -106,15 +106,8 @@ Class1.prototype._state_3_enter = function() {
 
 
 Class1.prototype.initializeStatechart = function() {
 Class1.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/composite_1"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/composite_1"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Class1' to package 'TestHistory'
 // add symbol 'Class1' to package 'TestHistory'

+ 3 - 10
test/target_js/original_semantics/history_deep.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:19 2016
+Date:   Tue Aug 09 09:35:53 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestHistoryDeep
 Model name:   TestHistoryDeep
@@ -206,15 +206,8 @@ Class1.prototype._parallel_orthogonal_tester_step3_0_guard = function(parameters
 
 
 Class1.prototype.initializeStatechart = function() {
 Class1.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/parallel"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/parallel"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Class1' to package 'TestHistoryDeep'
 // add symbol 'Class1' to package 'TestHistoryDeep'

+ 3 - 10
test/target_js/original_semantics/history_parallel_deep.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:19 2016
+Date:   Tue Aug 09 09:35:53 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestHistoryParallelDeep
 Model name:   TestHistoryParallelDeep
@@ -205,15 +205,8 @@ Class1.prototype._parallel_orthogonal_tester_step3_0_guard = function(parameters
 
 
 Class1.prototype.initializeStatechart = function() {
 Class1.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/parallel"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/parallel"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Class1' to package 'TestHistoryParallelDeep'
 // add symbol 'Class1' to package 'TestHistoryParallelDeep'

+ 3 - 10
test/target_js/original_semantics/inner_first.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:19 2016
+Date:   Tue Aug 09 09:35:53 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestInnerFirst
 Model name:   TestInnerFirst
@@ -92,15 +92,8 @@ Class1.prototype._stateb_enter = function() {
 
 
 Class1.prototype.initializeStatechart = function() {
 Class1.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/state1"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/state1"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Class1' to package 'TestInnerFirst'
 // add symbol 'Class1' to package 'TestInnerFirst'

+ 3 - 10
test/target_js/original_semantics/instate.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:19 2016
+Date:   Tue Aug 09 09:35:53 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestInstate
 Model name:   TestInstate
@@ -147,15 +147,8 @@ Class1.prototype._parallel_1_orthogonal2_tester_2_guard = function(parameters) {
 
 
 Class1.prototype.initializeStatechart = function() {
 Class1.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/parallel_1"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/parallel_1"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Class1' to package 'TestInstate'
 // add symbol 'Class1' to package 'TestInstate'

+ 3 - 10
test/target_js/original_semantics/multiple_target.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:19 2016
+Date:   Tue Aug 09 09:35:53 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestMultipleTarget
 Model name:   TestMultipleTarget
@@ -119,15 +119,8 @@ Class1.prototype._next_to_parallel_enter = function() {
 
 
 Class1.prototype.initializeStatechart = function() {
 Class1.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/next_to_parallel"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/next_to_parallel"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Class1' to package 'TestMultipleTarget'
 // add symbol 'Class1' to package 'TestMultipleTarget'

+ 5 - 19
test/target_js/original_semantics/object_manager.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:19 2016
+Date:   Tue Aug 09 09:35:53 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestObjectManager
 Model name:   TestObjectManager
@@ -87,15 +87,8 @@ Class1.prototype._wait_0_exec = function(parameters) {
 
 
 Class1.prototype.initializeStatechart = function() {
 Class1.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/start"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/start"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Class1' to package 'TestObjectManager'
 // add symbol 'Class1' to package 'TestObjectManager'
@@ -158,15 +151,8 @@ Class2.prototype._start_0_exec = function(parameters) {
 
 
 Class2.prototype.initializeStatechart = function() {
 Class2.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/start"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/start"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Class2' to package 'TestObjectManager'
 // add symbol 'Class2' to package 'TestObjectManager'

+ 3 - 10
test/target_js/original_semantics/outer_first.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:20 2016
+Date:   Tue Aug 09 09:35:53 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestOuterFirst
 Model name:   TestOuterFirst
@@ -92,15 +92,8 @@ Class1.prototype._stateb_enter = function() {
 
 
 Class1.prototype.initializeStatechart = function() {
 Class1.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/state1"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/state1"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Class1' to package 'TestOuterFirst'
 // add symbol 'Class1' to package 'TestOuterFirst'

+ 3 - 10
test/target_js/original_semantics/parallel.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:20 2016
+Date:   Tue Aug 09 09:35:53 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestParallel
 Model name:   TestParallel
@@ -125,15 +125,8 @@ Class1.prototype._parallel_1_orthogonal_2_state_4_enter = function() {
 
 
 Class1.prototype.initializeStatechart = function() {
 Class1.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/parallel_1"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/parallel_1"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'Class1' to package 'TestParallel'
 // add symbol 'Class1' to package 'TestParallel'

+ 3 - 10
test/target_js/original_semantics/parallel_history.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:20 2016
+Date:   Tue Aug 09 09:35:54 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestParallelHistory
 Model name:   TestParallelHistory
@@ -171,15 +171,8 @@ TestClass.prototype._parallel_orthogonal_2_outer_2_enter = function() {
 
 
 TestClass.prototype.initializeStatechart = function() {
 TestClass.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/parallel"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/parallel"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'TestClass' to package 'TestParallelHistory'
 // add symbol 'TestClass' to package 'TestParallelHistory'

+ 3 - 10
test/target_js/original_semantics/parallel_history_2.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:20 2016
+Date:   Tue Aug 09 09:35:54 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestParallelHistory2
 Model name:   TestParallelHistory2
@@ -176,15 +176,8 @@ TestClass.prototype._next_to_parallel_enter = function() {
 
 
 TestClass.prototype.initializeStatechart = function() {
 TestClass.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/parallel"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/parallel"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'TestClass' to package 'TestParallelHistory2'
 // add symbol 'TestClass' to package 'TestParallelHistory2'

+ 3 - 10
test/target_js/original_semantics/parallel_history_3.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:20 2016
+Date:   Tue Aug 09 09:35:54 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestParallelHistory2
 Model name:   TestParallelHistory2
@@ -176,15 +176,8 @@ TestClass.prototype._next_to_parallel_enter = function() {
 
 
 TestClass.prototype.initializeStatechart = function() {
 TestClass.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/parallel"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/parallel"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'TestClass' to package 'TestParallelHistory2'
 // add symbol 'TestClass' to package 'TestParallelHistory2'

+ 3 - 10
test/target_js/priority/00_source_parent.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:20 2016
+Date:   Tue Aug 09 09:35:54 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   source_parent
 Model name:   source_parent
@@ -102,15 +102,8 @@ c.prototype._c_enter = function() {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/parent"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/parent"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'source_parent'
 // add symbol 'c' to package 'source_parent'

+ 3 - 10
test/target_js/priority/01_source_child.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:20 2016
+Date:   Tue Aug 09 09:35:54 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   source_child
 Model name:   source_child
@@ -102,15 +102,8 @@ c.prototype._c_enter = function() {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/parent"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/parent"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'source_child'
 // add symbol 'c' to package 'source_child'

+ 3 - 10
test/target_js/priority/10_source_parent_history.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:20 2016
+Date:   Tue Aug 09 09:35:54 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   source_parent_history
 Model name:   source_parent_history
@@ -91,15 +91,8 @@ c.prototype._main_A_0_exec = function(parameters) {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/main"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/main"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'source_parent_history'
 // add symbol 'c' to package 'source_parent_history'

+ 3 - 10
test/target_js/priority/11_source_child_history.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:21 2016
+Date:   Tue Aug 09 09:35:54 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   source_child_history
 Model name:   source_child_history
@@ -91,15 +91,8 @@ c.prototype._main_A_0_exec = function(parameters) {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/main"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/main"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'source_child_history'
 // add symbol 'c' to package 'source_child_history'

+ 3 - 10
test/target_js/timing/00_rapid_js.js

@@ -1,6 +1,6 @@
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 /* Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:21 2016
+Date:   Tue Aug 09 09:35:54 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   rapid
 Model name:   rapid
@@ -89,15 +89,8 @@ c.prototype._a_0_guard = function(parameters) {
 
 
 c.prototype.initializeStatechart = function() {
 c.prototype.initializeStatechart = function() {
     // enter default state
     // enter default state
-    var states = this.states["/a"].getEffectiveTargetStates();
-    this.updateConfiguration(states);
-    for (var state_idx in states) {
-        if (!states.hasOwnProperty(state_idx)) continue;
-        var state = states[state_idx]
-        if (state.enter) {
-            state.enter();
-        }
-    }
+    this.default_targets = this.states["/a"].getEffectiveTargetStates();
+    RuntimeClassBase.prototype.initializeStatechart.call(this);
 };
 };
 
 
 // add symbol 'c' to package 'rapid'
 // add symbol 'c' to package 'rapid'

+ 6 - 8
test/target_py/big_step_maximality/00_take_one.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:21 2016
+Date:   Tue Aug 09 09:35:55 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   take_one
 Model name:   take_one
@@ -82,11 +82,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/a"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/a"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -101,9 +98,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/big_step_maximality/01_take_many.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:21 2016
+Date:   Tue Aug 09 09:35:55 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   take_many
 Model name:   take_many
@@ -82,11 +82,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/a"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/a"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -101,9 +98,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/big_step_maximality/10_orthogonal_take_one.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:21 2016
+Date:   Tue Aug 09 09:35:55 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   orthogonal_take_one
 Model name:   orthogonal_take_one
@@ -130,11 +130,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/p"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/p"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -149,9 +146,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/big_step_maximality/11_orthogonal_take_many.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:21 2016
+Date:   Tue Aug 09 09:35:55 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   orthogonal_take_many
 Model name:   orthogonal_take_many
@@ -130,11 +130,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/p"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/p"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -149,9 +146,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/event_lifeline/00_take_one_next_small_step.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:21 2016
+Date:   Tue Aug 09 09:35:55 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   take_one_next_small_step
 Model name:   take_one_next_small_step
@@ -86,11 +86,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/a"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/a"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -105,9 +102,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/event_lifeline/02_take_one_queue.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:22 2016
+Date:   Tue Aug 09 09:35:55 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   take_one_queue
 Model name:   take_one_queue
@@ -86,11 +86,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/a"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/a"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -105,9 +102,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/event_lifeline/10_take_many_next_small_step.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:22 2016
+Date:   Tue Aug 09 09:35:55 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   take_many_next_small_step
 Model name:   take_many_next_small_step
@@ -86,11 +86,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/a"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/a"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -105,9 +102,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/event_lifeline/11_take_many_next_combo_step.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:23 2016
+Date:   Tue Aug 09 09:35:55 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   take_many_next_combo_step
 Model name:   take_many_next_combo_step
@@ -86,11 +86,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/a"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/a"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -105,9 +102,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/event_lifeline/12_take_many_queue.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:23 2016
+Date:   Tue Aug 09 09:35:55 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   take_many_queue
 Model name:   take_many_queue
@@ -86,11 +86,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/a"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/a"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -105,9 +102,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/event_lifeline/20_orthogonal_take_one_next_small_step.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:23 2016
+Date:   Tue Aug 09 09:35:56 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   orthogonal_take_one_next_small_step
 Model name:   orthogonal_take_one_next_small_step
@@ -132,11 +132,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/p"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/p"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -151,9 +148,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/event_lifeline/21_orthogonal_take_one_queue.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:23 2016
+Date:   Tue Aug 09 09:35:56 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   orthogonal_take_one_queue
 Model name:   orthogonal_take_one_queue
@@ -130,11 +130,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/p"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/p"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -149,9 +146,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/event_lifeline/30_orthogonal_take_many_next_small_step.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:23 2016
+Date:   Tue Aug 09 09:35:56 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   orthogonal_take_many_next_small_step
 Model name:   orthogonal_take_many_next_small_step
@@ -134,11 +134,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/p"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/p"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -153,9 +150,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/event_lifeline/31_orthogonal_take_many_next_combo_step.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:23 2016
+Date:   Tue Aug 09 09:35:56 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   orthogonal_take_many_next_combo_step
 Model name:   orthogonal_take_many_next_combo_step
@@ -129,11 +129,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/p"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/p"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -148,9 +145,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/event_lifeline/32_orthogonal_take_many_queue.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:23 2016
+Date:   Tue Aug 09 09:35:56 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   orthogonal_take_many_queue
 Model name:   orthogonal_take_many_queue
@@ -130,11 +130,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/p"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/p"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -149,9 +146,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/no_statechart/00_no_statechart_py.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:24 2016
+Date:   Tue Aug 09 09:35:56 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   no_statechart
 Model name:   no_statechart
@@ -117,11 +117,8 @@ class my_class(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/a"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/a"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -139,9 +136,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("my_class", [])
         self.object_manager.createInstance("my_class", [])

+ 6 - 8
test/target_py/original_semantics/after.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:24 2016
+Date:   Tue Aug 09 09:35:56 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestAfter
 Model name:   TestAfter
@@ -91,11 +91,8 @@ class Class1(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/composite"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/composite"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -110,9 +107,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("test_input")
         self.addInputPort("test_input")
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("Class1", [])
         self.object_manager.createInstance("Class1", [])

+ 8 - 13
test/target_py/original_semantics/after_0.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:24 2016
+Date:   Tue Aug 09 09:35:56 2016
 
 
 Model author: Yentl Van Tendeloo
 Model author: Yentl Van Tendeloo
 Model name:   after_0
 Model name:   after_0
@@ -85,11 +85,8 @@ class A(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/x"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/x"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class B(RuntimeClassBase):
 class B(RuntimeClassBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -148,11 +145,8 @@ class B(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/z"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/z"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -172,9 +166,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("A", [])
         self.object_manager.createInstance("A", [])
 
 

+ 8 - 13
test/target_py/original_semantics/associate_event.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:24 2016
+Date:   Tue Aug 09 09:35:57 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestAssociateEvent
 Model name:   TestAssociateEvent
@@ -79,11 +79,8 @@ class Class1(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/start"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/start"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class Class2(RuntimeClassBase):
 class Class2(RuntimeClassBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -133,11 +130,8 @@ class Class2(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/start"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/start"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -157,9 +151,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("test_input")
         self.addInputPort("test_input")
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("Class1", [])
         self.object_manager.createInstance("Class1", [])

+ 6 - 8
test/target_py/original_semantics/correct_duplicate_state_id.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:24 2016
+Date:   Tue Aug 09 09:35:57 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestCorrectDuplicateStateId
 Model name:   TestCorrectDuplicateStateId
@@ -74,11 +74,8 @@ class Class1(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/state1"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/state1"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -93,9 +90,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.object_manager.createInstance("Class1", [])
         self.object_manager.createInstance("Class1", [])
 
 
 class InputEvent:
 class InputEvent:

+ 6 - 8
test/target_py/original_semantics/enter_exit_hierarchy.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:24 2016
+Date:   Tue Aug 09 09:35:57 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestEnterExitHierarchy
 Model name:   TestEnterExitHierarchy
@@ -152,11 +152,8 @@ class Class1(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/outside"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/outside"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -171,9 +168,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("test_input")
         self.addInputPort("test_input")
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("Class1", [])
         self.object_manager.createInstance("Class1", [])

+ 6 - 8
test/target_py/original_semantics/guard.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:24 2016
+Date:   Tue Aug 09 09:35:57 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestGuard
 Model name:   TestGuard
@@ -92,11 +92,8 @@ class Class1(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/state_1"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/state_1"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -111,9 +108,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("Class1", [])
         self.object_manager.createInstance("Class1", [])
 
 

+ 6 - 8
test/target_py/original_semantics/history.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:24 2016
+Date:   Tue Aug 09 09:35:57 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestHistory
 Model name:   TestHistory
@@ -96,11 +96,8 @@ class Class1(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/composite_1"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/composite_1"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -115,9 +112,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("test_input")
         self.addInputPort("test_input")
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("Class1", [])
         self.object_manager.createInstance("Class1", [])

+ 6 - 8
test/target_py/original_semantics/history_deep.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:25 2016
+Date:   Tue Aug 09 09:35:57 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestHistoryDeep
 Model name:   TestHistoryDeep
@@ -192,11 +192,8 @@ class Class1(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/parallel"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/parallel"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -211,9 +208,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("Class1", [])
         self.object_manager.createInstance("Class1", [])
 
 

+ 6 - 8
test/target_py/original_semantics/history_parallel_deep.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:25 2016
+Date:   Tue Aug 09 09:35:57 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestHistoryParallelDeep
 Model name:   TestHistoryParallelDeep
@@ -191,11 +191,8 @@ class Class1(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/parallel"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/parallel"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -210,9 +207,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("Class1", [])
         self.object_manager.createInstance("Class1", [])
 
 

+ 6 - 8
test/target_py/original_semantics/inner_first.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:25 2016
+Date:   Tue Aug 09 09:35:57 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestInnerFirst
 Model name:   TestInnerFirst
@@ -83,11 +83,8 @@ class Class1(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/state1"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/state1"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -102,9 +99,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("test_input")
         self.addInputPort("test_input")
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("Class1", [])
         self.object_manager.createInstance("Class1", [])

+ 6 - 8
test/target_py/original_semantics/instate.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:25 2016
+Date:   Tue Aug 09 09:35:57 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestInstate
 Model name:   TestInstate
@@ -134,11 +134,8 @@ class Class1(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/parallel_1"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/parallel_1"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -153,9 +150,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("Class1", [])
         self.object_manager.createInstance("Class1", [])
 
 

+ 6 - 8
test/target_py/original_semantics/multiple_target.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:25 2016
+Date:   Tue Aug 09 09:35:57 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestMultipleTarget
 Model name:   TestMultipleTarget
@@ -107,11 +107,8 @@ class Class1(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/next_to_parallel"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/next_to_parallel"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -126,9 +123,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("test_input")
         self.addInputPort("test_input")
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("Class1", [])
         self.object_manager.createInstance("Class1", [])

+ 8 - 13
test/target_py/original_semantics/object_manager.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:25 2016
+Date:   Tue Aug 09 09:35:58 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestObjectManager
 Model name:   TestObjectManager
@@ -78,11 +78,8 @@ class Class1(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/start"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/start"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class Class2(RuntimeClassBase):
 class Class2(RuntimeClassBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -132,11 +129,8 @@ class Class2(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/start"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/start"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -155,9 +149,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("test_input")
         self.addInputPort("test_input")
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("Class1", [])
         self.object_manager.createInstance("Class1", [])

+ 6 - 8
test/target_py/original_semantics/outer_first.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:25 2016
+Date:   Tue Aug 09 09:35:58 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestOuterFirst
 Model name:   TestOuterFirst
@@ -83,11 +83,8 @@ class Class1(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/state1"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/state1"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -102,9 +99,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("test_input")
         self.addInputPort("test_input")
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("Class1", [])
         self.object_manager.createInstance("Class1", [])

+ 6 - 8
test/target_py/original_semantics/parallel.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:25 2016
+Date:   Tue Aug 09 09:35:58 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestParallel
 Model name:   TestParallel
@@ -114,11 +114,8 @@ class Class1(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/parallel_1"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/parallel_1"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -133,9 +130,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("test_input")
         self.addInputPort("test_input")
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("Class1", [])
         self.object_manager.createInstance("Class1", [])

+ 6 - 8
test/target_py/original_semantics/parallel_history.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:25 2016
+Date:   Tue Aug 09 09:35:58 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestParallelHistory
 Model name:   TestParallelHistory
@@ -158,11 +158,8 @@ class TestClass(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/parallel"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/parallel"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -177,9 +174,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("test_input")
         self.addInputPort("test_input")
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("TestClass", [])
         self.object_manager.createInstance("TestClass", [])

+ 6 - 8
test/target_py/original_semantics/parallel_history_2.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:25 2016
+Date:   Tue Aug 09 09:35:58 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestParallelHistory2
 Model name:   TestParallelHistory2
@@ -162,11 +162,8 @@ class TestClass(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/parallel"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/parallel"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -181,9 +178,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("test_input")
         self.addInputPort("test_input")
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("TestClass", [])
         self.object_manager.createInstance("TestClass", [])

+ 6 - 8
test/target_py/original_semantics/parallel_history_3.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:26 2016
+Date:   Tue Aug 09 09:35:58 2016
 
 
 Model author: Glenn De Jonghe
 Model author: Glenn De Jonghe
 Model name:   TestParallelHistory2
 Model name:   TestParallelHistory2
@@ -162,11 +162,8 @@ class TestClass(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/parallel"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/parallel"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -181,9 +178,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("test_input")
         self.addInputPort("test_input")
         self.addOutputPort("test_output")
         self.addOutputPort("test_output")
         self.object_manager.createInstance("TestClass", [])
         self.object_manager.createInstance("TestClass", [])

+ 6 - 8
test/target_py/priority/00_source_parent.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:26 2016
+Date:   Tue Aug 09 09:35:58 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   source_parent
 Model name:   source_parent
@@ -91,11 +91,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/parent"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/parent"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -110,9 +107,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/priority/01_source_child.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:26 2016
+Date:   Tue Aug 09 09:35:58 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   source_child
 Model name:   source_child
@@ -91,11 +91,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/parent"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/parent"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -110,9 +107,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/priority/10_source_parent_history.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:26 2016
+Date:   Tue Aug 09 09:35:58 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   source_parent_history
 Model name:   source_parent_history
@@ -82,11 +82,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/main"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/main"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -101,9 +98,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/priority/11_source_child_history.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:26 2016
+Date:   Tue Aug 09 09:35:58 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   source_child_history
 Model name:   source_child_history
@@ -82,11 +82,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/main"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/main"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -101,9 +98,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])

+ 6 - 8
test/target_py/timing/00_rapid_py.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)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Mon Aug 08 09:49:26 2016
+Date:   Tue Aug 09 09:35:59 2016
 
 
 Model author: Herr Joeri Exelmans
 Model author: Herr Joeri Exelmans
 Model name:   rapid
 Model name:   rapid
@@ -77,11 +77,8 @@ class c(RuntimeClassBase):
     
     
     def initializeStatechart(self):
     def initializeStatechart(self):
         # enter default state
         # enter default state
-        states = self.states["/a"].getEffectiveTargetStates()
-        self.updateConfiguration(states)
-        for state in states:
-            if state.enter:
-                state.enter()
+        self.default_targets = self.states["/a"].getEffectiveTargetStates()
+        RuntimeClassBase.initializeStatechart(self)
 
 
 class ObjectManager(ObjectManagerBase):
 class ObjectManager(ObjectManagerBase):
     def __init__(self, controller):
     def __init__(self, controller):
@@ -96,9 +93,10 @@ class ObjectManager(ObjectManagerBase):
         return instance
         return instance
 
 
 class Controller(ThreadsControllerBase):
 class Controller(ThreadsControllerBase):
-    def __init__(self, keep_running = None):
+    def __init__(self, keep_running = None, behind_schedule_callback = None):
         if keep_running == None: keep_running = True
         if keep_running == None: keep_running = True
-        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running)
+        if behind_schedule_callback == None: behind_schedule_callback = None
+        ThreadsControllerBase.__init__(self, ObjectManager(self), keep_running, behind_schedule_callback)
         self.addInputPort("in")
         self.addInputPort("in")
         self.addOutputPort("out")
         self.addOutputPort("out")
         self.object_manager.createInstance("c", [])
         self.object_manager.createInstance("c", [])