Browse Source

Updated testcases and trafficlight example.

markus.muehlbrandt@itemis.de 13 years ago
parent
commit
3d082329b5
13 changed files with 1744 additions and 1856 deletions
  1. 188 235
      Examples/org.yakindu.sct.generator.java.trafficlight/TrafficLightWaiting.sct
  2. 0 1
      Examples/org.yakindu.sct.generator.java.trafficlight/src-gen/org/yakindu/sct/runtime/java/trafficlightwaiting/DefaultInterface.java
  3. 0 9
      Examples/org.yakindu.sct.generator.java.trafficlight/src-gen/org/yakindu/sct/runtime/java/trafficlightwaiting/DefaultInterfaceImpl.java
  4. 534 407
      Examples/org.yakindu.sct.generator.java.trafficlight/src-gen/org/yakindu/sct/runtime/java/trafficlightwaiting/TrafficLightWaitingCycleBasedStatemachine.java
  5. 2 2
      Examples/org.yakindu.sct.generator.java.trafficlight/src/org/yakindu/sct/examples/java/trafficlight/CrossingDemo.java
  6. 34 100
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/interfacetest/InterfaceTestCycleBasedStatemachine.java
  7. 179 174
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_deephistory/Test_DeepHistoryCycleBasedStatemachine.java
  8. 29 63
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_expression/Test_ExpressionCycleBasedStatemachine.java
  9. 448 361
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_hierarchy/Test_HierarchyCycleBasedStatemachine.java
  10. 37 99
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_localactions/Test_LocalActionsCycleBasedStatemachine.java
  11. 33 117
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_parallelregions/Test_ParallelRegionsCycleBasedStatemachine.java
  12. 179 174
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_shallowhistory/Test_ShallowHistoryCycleBasedStatemachine.java
  13. 81 114
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_transition/Test_TransitionCycleBasedStatemachine.java

+ 188 - 235
Examples/org.yakindu.sct.generator.java.trafficlight/TrafficLightWaiting.sct

@@ -1,144 +1,138 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/2.0.0" xmlns:stext="http://www.yakindu.org/sct/statechart/SText">
-  <sgraph:Statechart xmi:id="_NPjBgBA-EeGQ0KsLDV4EFg" name="TrafficLightWaiting" expression="interface TrafficLight:&#xD;&#xA;&#x9;var red:boolean&#xD;&#xA;&#x9;var yellow:boolean&#xD;&#xA;&#x9;var green:boolean&#xD;&#xA;&#xD;&#xA;interface Pedestrian:&#xD;&#xA;&#x9;var request:boolean&#xD;&#xA;&#x9;var red:boolean&#xD;&#xA;&#x9;var green:boolean&#xD;&#xA;&#xD;&#xA;interface:&#xD;&#xA;&#x9;in event keypress1&#xD;&#xA;&#x9;in event keypress2&#xD;&#xA;&#x9;in event keypress3">
-    <scopes xsi:type="stext:InterfaceScope" xmi:id="_ZdMr4BqLEeGkDZRZy8Mgeg" name="TrafficLight">
-      <declarations xsi:type="stext:VariableDefinition" xmi:id="_ZdMr4RqLEeGkDZRZy8Mgeg" name="red" type="boolean"/>
-      <declarations xsi:type="stext:VariableDefinition" xmi:id="_ZdMr4hqLEeGkDZRZy8Mgeg" name="yellow" type="boolean"/>
-      <declarations xsi:type="stext:VariableDefinition" xmi:id="_ZdMr4xqLEeGkDZRZy8Mgeg" name="green" type="boolean"/>
+  <sgraph:Statechart xmi:id="_NPjBgBA-EeGQ0KsLDV4EFg" name="TrafficLightWaiting" expression="interface TrafficLight:&#xD;&#xA;&#x9;var red:boolean&#xD;&#xA;&#x9;var yellow:boolean&#xD;&#xA;&#x9;var green:boolean&#xD;&#xA;&#xD;&#xA;interface Pedestrian:&#xD;&#xA;&#x9;var request:boolean&#xD;&#xA;&#x9;var red:boolean&#xD;&#xA;&#x9;var green:boolean&#xD;&#xA;&#xD;&#xA;interface:&#xD;&#xA;&#x9;in event keypress1&#xD;&#xA;&#x9;in event keypress2">
+    <scopes xsi:type="stext:InterfaceScope" xmi:id="_evn_sBy4EeGr28QZw3InCQ" name="TrafficLight">
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_evn_sRy4EeGr28QZw3InCQ" name="red" type="boolean"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_evn_shy4EeGr28QZw3InCQ" name="yellow" type="boolean"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_evn_sxy4EeGr28QZw3InCQ" name="green" type="boolean"/>
     </scopes>
-    <scopes xsi:type="stext:InterfaceScope" xmi:id="_ZdMr5BqLEeGkDZRZy8Mgeg" name="Pedestrian">
-      <declarations xsi:type="stext:VariableDefinition" xmi:id="_ZdMr5RqLEeGkDZRZy8Mgeg" name="request" type="boolean"/>
-      <declarations xsi:type="stext:VariableDefinition" xmi:id="_ZdMr5hqLEeGkDZRZy8Mgeg" name="red" type="boolean"/>
-      <declarations xsi:type="stext:VariableDefinition" xmi:id="_ZdMr5xqLEeGkDZRZy8Mgeg" name="green" type="boolean"/>
+    <scopes xsi:type="stext:InterfaceScope" xmi:id="_evn_tBy4EeGr28QZw3InCQ" name="Pedestrian">
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_evn_tRy4EeGr28QZw3InCQ" name="request" type="boolean"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_evn_thy4EeGr28QZw3InCQ" name="red" type="boolean"/>
+      <declarations xsi:type="stext:VariableDefinition" xmi:id="_evn_txy4EeGr28QZw3InCQ" name="green" type="boolean"/>
     </scopes>
-    <scopes xsi:type="stext:InterfaceScope" xmi:id="_ZdMr6BqLEeGkDZRZy8Mgeg">
-      <declarations xsi:type="stext:EventDefinition" xmi:id="_ZdMr6RqLEeGkDZRZy8Mgeg" name="keypress1" direction="in"/>
-      <declarations xsi:type="stext:EventDefinition" xmi:id="_ZdMr6hqLEeGkDZRZy8Mgeg" name="keypress2" direction="in"/>
-      <declarations xsi:type="stext:EventDefinition" xmi:id="_ZdMr6xqLEeGkDZRZy8Mgeg" name="keypress3" direction="in"/>
+    <scopes xsi:type="stext:InterfaceScope" xmi:id="_evn_uBy4EeGr28QZw3InCQ">
+      <declarations xsi:type="stext:EventDefinition" xmi:id="_evn_uRy4EeGr28QZw3InCQ" name="keypress1" direction="in"/>
+      <declarations xsi:type="stext:EventDefinition" xmi:id="_evn_uhy4EeGr28QZw3InCQ" name="keypress2" direction="in"/>
     </scopes>
     <regions xmi:id="_NPjBgxA-EeGQ0KsLDV4EFg" name="main region">
       <vertices xsi:type="sgraph:Entry" xmi:id="_NPjBjRA-EeGQ0KsLDV4EFg">
         <outgoingTransitions xmi:id="_NPsyhxA-EeGQ0KsLDV4EFg" target="_NPjBmBA-EeGQ0KsLDV4EFg"/>
       </vertices>
-      <vertices xsi:type="sgraph:State" xmi:id="_NPjBmBA-EeGQ0KsLDV4EFg" name="on" incomingTransitions="_NPsyhxA-EeGQ0KsLDV4EFg _6kP60BBPEeGQ0KsLDV4EFg __OsQsBBPEeGQ0KsLDV4EFg">
-        <scopes xmi:id="_ZdQWQBqLEeGkDZRZy8Mgeg"/>
-        <outgoingTransitions xmi:id="_Av3wkBBFEeGQ0KsLDV4EFg" expression="keypress3" target="_7PkwwBBEEeGQ0KsLDV4EFg">
-          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ZdSLcBqLEeGkDZRZy8Mgeg">
-            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_ZdSLcRqLEeGkDZRZy8Mgeg" event="_ZdMr6xqLEeGkDZRZy8Mgeg"/>
-          </trigger>
-        </outgoingTransitions>
+      <vertices xsi:type="sgraph:State" xmi:id="_NPjBmBA-EeGQ0KsLDV4EFg" name="on" incomingTransitions="_NPsyhxA-EeGQ0KsLDV4EFg __OsQsBBPEeGQ0KsLDV4EFg">
+        <scopes xmi:id="_evrqEBy4EeGr28QZw3InCQ"/>
         <outgoingTransitions xmi:id="_XlIREBBFEeGQ0KsLDV4EFg" expression="keypress2" target="_MF4mkBBFEeGQ0KsLDV4EFg">
-          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ZdVOwBqLEeGkDZRZy8Mgeg">
-            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_ZdVOwRqLEeGkDZRZy8Mgeg" event="_ZdMr6hqLEeGkDZRZy8Mgeg"/>
+          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_evs4MBy4EeGr28QZw3InCQ">
+            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_evs4MRy4EeGr28QZw3InCQ" event="_evn_uhy4EeGr28QZw3InCQ"/>
           </trigger>
         </outgoingTransitions>
         <subRegions xmi:id="_vZz18BA_EeGQ0KsLDV4EFg" name="r1">
           <vertices xsi:type="sgraph:State" xmi:id="_w8meYBA_EeGQ0KsLDV4EFg" expression="entry / TrafficLight.red = false; &#xD;&#xA;&#x9;TrafficLight.yellow = false;&#xD;&#xA;&#x9;TrafficLight.green = true;&#xD;&#xA;&#x9;Pedestrian.red = true;&#xD;&#xA;&#x9;Pedestrian.green = false;&#xD;&#xA;&#x9;Pedestrian.request = false;" name="StreetGreen" incomingTransitions="_pddaABBEEeGQ0KsLDV4EFg _yYuD0BBPEeGQ0KsLDV4EFg">
-            <scopes xmi:id="_ZdZgMBqLEeGkDZRZy8Mgeg">
-              <declarations xsi:type="stext:LocalReaction" xmi:id="_ZdZgMRqLEeGkDZRZy8Mgeg">
-                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ZdZgMhqLEeGkDZRZy8Mgeg">
-                  <triggers xsi:type="stext:EntryEvent" xmi:id="_ZdZgMxqLEeGkDZRZy8Mgeg"/>
+            <scopes xmi:id="_evwikBy4EeGr28QZw3InCQ">
+              <declarations xsi:type="stext:LocalReaction" xmi:id="_evwikRy4EeGr28QZw3InCQ">
+                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_evwikhy4EeGr28QZw3InCQ">
+                  <triggers xsi:type="stext:EntryEvent" xmi:id="_evwikxy4EeGr28QZw3InCQ"/>
                 </trigger>
-                <effect xsi:type="stext:ReactionEffect" xmi:id="_ZdZgNBqLEeGkDZRZy8Mgeg">
-                  <actions xsi:type="stext:Assignment" xmi:id="_ZdZgNRqLEeGkDZRZy8Mgeg" varRef="_ZdMr4RqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZdZgNhqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_ZdZgNxqLEeGkDZRZy8Mgeg"/>
+                <effect xsi:type="stext:ReactionEffect" xmi:id="_evwilBy4EeGr28QZw3InCQ">
+                  <actions xsi:type="stext:Assignment" xmi:id="_evwilRy4EeGr28QZw3InCQ" varRef="_evn_sRy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_evwilhy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_evwilxy4EeGr28QZw3InCQ"/>
                     </expression>
                   </actions>
-                  <actions xsi:type="stext:Assignment" xmi:id="_ZdZgOBqLEeGkDZRZy8Mgeg" varRef="_ZdMr4hqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZdZgORqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_ZdZgOhqLEeGkDZRZy8Mgeg"/>
+                  <actions xsi:type="stext:Assignment" xmi:id="_evwimBy4EeGr28QZw3InCQ" varRef="_evn_shy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_evwimRy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_evwimhy4EeGr28QZw3InCQ"/>
                     </expression>
                   </actions>
-                  <actions xsi:type="stext:Assignment" xmi:id="_ZdZgOxqLEeGkDZRZy8Mgeg" varRef="_ZdMr4xqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZdZgPBqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_ZdZgPRqLEeGkDZRZy8Mgeg" value="true"/>
+                  <actions xsi:type="stext:Assignment" xmi:id="_evwimxy4EeGr28QZw3InCQ" varRef="_evn_sxy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_evwinBy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_evwinRy4EeGr28QZw3InCQ" value="true"/>
                     </expression>
                   </actions>
-                  <actions xsi:type="stext:Assignment" xmi:id="_ZdZgPhqLEeGkDZRZy8Mgeg" varRef="_ZdMr5hqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZdZgPxqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_ZdZgQBqLEeGkDZRZy8Mgeg" value="true"/>
+                  <actions xsi:type="stext:Assignment" xmi:id="_evwinhy4EeGr28QZw3InCQ" varRef="_evn_thy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_evwinxy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_evwioBy4EeGr28QZw3InCQ" value="true"/>
                     </expression>
                   </actions>
-                  <actions xsi:type="stext:Assignment" xmi:id="_ZdZgQRqLEeGkDZRZy8Mgeg" varRef="_ZdMr5xqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZdZgQhqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_ZdZgQxqLEeGkDZRZy8Mgeg"/>
+                  <actions xsi:type="stext:Assignment" xmi:id="_evwioRy4EeGr28QZw3InCQ" varRef="_evn_txy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_evwiohy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_evwioxy4EeGr28QZw3InCQ"/>
                     </expression>
                   </actions>
-                  <actions xsi:type="stext:Assignment" xmi:id="_ZdZgRBqLEeGkDZRZy8Mgeg" varRef="_ZdMr5RqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZdZgRRqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_ZdZgRhqLEeGkDZRZy8Mgeg"/>
+                  <actions xsi:type="stext:Assignment" xmi:id="_evwipBy4EeGr28QZw3InCQ" varRef="_evn_tRy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_evwipRy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_evwiphy4EeGr28QZw3InCQ"/>
                     </expression>
                   </actions>
                 </effect>
               </declarations>
             </scopes>
             <outgoingTransitions xmi:id="_Lo2CEBBBEeGQ0KsLDV4EFg" expression="keypress1" target="_iAKe0BBAEeGQ0KsLDV4EFg">
-              <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ZdnioBqLEeGkDZRZy8Mgeg">
-                <triggers xsi:type="stext:RegularEventSpec" xmi:id="_ZdnioRqLEeGkDZRZy8Mgeg" event="_ZdMr6RqLEeGkDZRZy8Mgeg"/>
+              <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ev8v0By4EeGr28QZw3InCQ">
+                <triggers xsi:type="stext:RegularEventSpec" xmi:id="_ev8v0Ry4EeGr28QZw3InCQ" event="_evn_uRy4EeGr28QZw3InCQ"/>
               </trigger>
             </outgoingTransitions>
           </vertices>
           <vertices xsi:type="sgraph:State" xmi:id="_iAKe0BBAEeGQ0KsLDV4EFg" expression="exit / Pedestrian.request = false;" name="PedWaiting" incomingTransitions="_Lo2CEBBBEeGQ0KsLDV4EFg">
-            <scopes xmi:id="_Zdql8BqLEeGkDZRZy8Mgeg">
-              <declarations xsi:type="stext:LocalReaction" xmi:id="_Zdql8RqLEeGkDZRZy8Mgeg">
-                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_Zdql8hqLEeGkDZRZy8Mgeg">
-                  <triggers xsi:type="stext:ExitEvent" xmi:id="_Zdql8xqLEeGkDZRZy8Mgeg"/>
+            <scopes xmi:id="_ev_zIBy4EeGr28QZw3InCQ">
+              <declarations xsi:type="stext:LocalReaction" xmi:id="_ev_zIRy4EeGr28QZw3InCQ">
+                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ev_zIhy4EeGr28QZw3InCQ">
+                  <triggers xsi:type="stext:ExitEvent" xmi:id="_ev_zIxy4EeGr28QZw3InCQ"/>
                 </trigger>
-                <effect xsi:type="stext:ReactionEffect" xmi:id="_Zdql9BqLEeGkDZRZy8Mgeg">
-                  <actions xsi:type="stext:Assignment" xmi:id="_Zdql9RqLEeGkDZRZy8Mgeg" varRef="_ZdMr5RqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_Zdql9hqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_Zdql9xqLEeGkDZRZy8Mgeg"/>
+                <effect xsi:type="stext:ReactionEffect" xmi:id="_ev_zJBy4EeGr28QZw3InCQ">
+                  <actions xsi:type="stext:Assignment" xmi:id="_ev_zJRy4EeGr28QZw3InCQ" varRef="_evn_tRy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ev_zJhy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_ev_zJxy4EeGr28QZw3InCQ"/>
                     </expression>
                   </actions>
                 </effect>
               </declarations>
             </scopes>
             <outgoingTransitions xmi:id="_LDXEgBBDEeGQ0KsLDV4EFg" expression="after 7s" target="_SKct4BBBEeGQ0KsLDV4EFg">
-              <trigger xsi:type="stext:ReactionTrigger" xmi:id="_Zdu3YBqLEeGkDZRZy8Mgeg">
-                <triggers xsi:type="stext:TimeEventSpec" xmi:id="_Zdu3YRqLEeGkDZRZy8Mgeg" value="7"/>
+              <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewC2cBy4EeGr28QZw3InCQ">
+                <triggers xsi:type="stext:TimeEventSpec" xmi:id="_ewC2cRy4EeGr28QZw3InCQ" value="7"/>
               </trigger>
             </outgoingTransitions>
             <subRegions xmi:id="_iAKe0hBAEeGQ0KsLDV4EFg" name="r1">
               <vertices xsi:type="sgraph:State" xmi:id="_mjm00BBAEeGQ0KsLDV4EFg" expression="entry / &#xD;&#xA;Pedestrian.request = true;" name="waitOn" incomingTransitions="_wTHnEBBAEeGQ0KsLDV4EFg _OXpxsBBBEeGQ0KsLDV4EFg">
-                <scopes xmi:id="_ZdvecBqLEeGkDZRZy8Mgeg">
-                  <declarations xsi:type="stext:LocalReaction" xmi:id="_ZdvecRqLEeGkDZRZy8Mgeg">
-                    <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ZdvechqLEeGkDZRZy8Mgeg">
-                      <triggers xsi:type="stext:EntryEvent" xmi:id="_ZdvecxqLEeGkDZRZy8Mgeg"/>
+                <scopes xmi:id="_ewC2chy4EeGr28QZw3InCQ">
+                  <declarations xsi:type="stext:LocalReaction" xmi:id="_ewC2cxy4EeGr28QZw3InCQ">
+                    <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewC2dBy4EeGr28QZw3InCQ">
+                      <triggers xsi:type="stext:EntryEvent" xmi:id="_ewC2dRy4EeGr28QZw3InCQ"/>
                     </trigger>
-                    <effect xsi:type="stext:ReactionEffect" xmi:id="_ZdvedBqLEeGkDZRZy8Mgeg">
-                      <actions xsi:type="stext:Assignment" xmi:id="_ZdvedRqLEeGkDZRZy8Mgeg" varRef="_ZdMr5RqLEeGkDZRZy8Mgeg">
-                        <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZdvedhqLEeGkDZRZy8Mgeg">
-                          <value xsi:type="stext:BoolLiteral" xmi:id="_ZdvedxqLEeGkDZRZy8Mgeg" value="true"/>
+                    <effect xsi:type="stext:ReactionEffect" xmi:id="_ewC2dhy4EeGr28QZw3InCQ">
+                      <actions xsi:type="stext:Assignment" xmi:id="_ewC2dxy4EeGr28QZw3InCQ" varRef="_evn_tRy4EeGr28QZw3InCQ">
+                        <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewC2eBy4EeGr28QZw3InCQ">
+                          <value xsi:type="stext:BoolLiteral" xmi:id="_ewC2eRy4EeGr28QZw3InCQ" value="true"/>
                         </expression>
                       </actions>
                     </effect>
                   </declarations>
                 </scopes>
                 <outgoingTransitions xmi:id="_6LZ60BBAEeGQ0KsLDV4EFg" expression="after 500ms" target="_n6DDUBBAEeGQ0KsLDV4EFg">
-                  <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ZdyhwBqLEeGkDZRZy8Mgeg">
-                    <triggers xsi:type="stext:TimeEventSpec" xmi:id="_ZdyhwRqLEeGkDZRZy8Mgeg" value="500" unit="ms"/>
+                  <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewF5wBy4EeGr28QZw3InCQ">
+                    <triggers xsi:type="stext:TimeEventSpec" xmi:id="_ewF5wRy4EeGr28QZw3InCQ" value="500" unit="ms"/>
                   </trigger>
                 </outgoingTransitions>
               </vertices>
               <vertices xsi:type="sgraph:State" xmi:id="_n6DDUBBAEeGQ0KsLDV4EFg" expression="entry / &#xD;&#xA;Pedestrian.request = false;" name="waitOff" incomingTransitions="_6LZ60BBAEeGQ0KsLDV4EFg">
-                <scopes xmi:id="_ZdzI0BqLEeGkDZRZy8Mgeg">
-                  <declarations xsi:type="stext:LocalReaction" xmi:id="_ZdzI0RqLEeGkDZRZy8Mgeg">
-                    <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ZdzI0hqLEeGkDZRZy8Mgeg">
-                      <triggers xsi:type="stext:EntryEvent" xmi:id="_ZdzI0xqLEeGkDZRZy8Mgeg"/>
+                <scopes xmi:id="_ewF5why4EeGr28QZw3InCQ">
+                  <declarations xsi:type="stext:LocalReaction" xmi:id="_ewF5wxy4EeGr28QZw3InCQ">
+                    <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewF5xBy4EeGr28QZw3InCQ">
+                      <triggers xsi:type="stext:EntryEvent" xmi:id="_ewF5xRy4EeGr28QZw3InCQ"/>
                     </trigger>
-                    <effect xsi:type="stext:ReactionEffect" xmi:id="_ZdzI1BqLEeGkDZRZy8Mgeg">
-                      <actions xsi:type="stext:Assignment" xmi:id="_ZdzI1RqLEeGkDZRZy8Mgeg" varRef="_ZdMr5RqLEeGkDZRZy8Mgeg">
-                        <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZdzI1hqLEeGkDZRZy8Mgeg">
-                          <value xsi:type="stext:BoolLiteral" xmi:id="_ZdzI1xqLEeGkDZRZy8Mgeg"/>
+                    <effect xsi:type="stext:ReactionEffect" xmi:id="_ewF5xhy4EeGr28QZw3InCQ">
+                      <actions xsi:type="stext:Assignment" xmi:id="_ewF5xxy4EeGr28QZw3InCQ" varRef="_evn_tRy4EeGr28QZw3InCQ">
+                        <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewF5yBy4EeGr28QZw3InCQ">
+                          <value xsi:type="stext:BoolLiteral" xmi:id="_ewF5yRy4EeGr28QZw3InCQ"/>
                         </expression>
                       </actions>
                     </effect>
                   </declarations>
                 </scopes>
                 <outgoingTransitions xmi:id="_OXpxsBBBEeGQ0KsLDV4EFg" expression="after 500ms" target="_mjm00BBAEeGQ0KsLDV4EFg">
-                  <trigger xsi:type="stext:ReactionTrigger" xmi:id="_Zd2zMBqLEeGkDZRZy8Mgeg">
-                    <triggers xsi:type="stext:TimeEventSpec" xmi:id="_Zd2zMRqLEeGkDZRZy8Mgeg" value="500" unit="ms"/>
+                  <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewI9EBy4EeGr28QZw3InCQ">
+                    <triggers xsi:type="stext:TimeEventSpec" xmi:id="_ewI9ERy4EeGr28QZw3InCQ" value="500" unit="ms"/>
                   </trigger>
                 </outgoingTransitions>
               </vertices>
@@ -148,147 +142,147 @@
             </subRegions>
           </vertices>
           <vertices xsi:type="sgraph:State" xmi:id="_SKct4BBBEeGQ0KsLDV4EFg" expression="entry / TrafficLight.red = false;&#xD;&#xA;&#x9;TrafficLight.yellow = true;&#xD;&#xA;&#x9;TrafficLight.green = false;" name="StreetAttention" incomingTransitions="_LDXEgBBDEeGQ0KsLDV4EFg">
-            <scopes xmi:id="_Zd3aQBqLEeGkDZRZy8Mgeg">
-              <declarations xsi:type="stext:LocalReaction" xmi:id="_Zd3aQRqLEeGkDZRZy8Mgeg">
-                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_Zd3aQhqLEeGkDZRZy8Mgeg">
-                  <triggers xsi:type="stext:EntryEvent" xmi:id="_Zd3aQxqLEeGkDZRZy8Mgeg"/>
+            <scopes xmi:id="_ewJkIBy4EeGr28QZw3InCQ">
+              <declarations xsi:type="stext:LocalReaction" xmi:id="_ewJkIRy4EeGr28QZw3InCQ">
+                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewJkIhy4EeGr28QZw3InCQ">
+                  <triggers xsi:type="stext:EntryEvent" xmi:id="_ewJkIxy4EeGr28QZw3InCQ"/>
                 </trigger>
-                <effect xsi:type="stext:ReactionEffect" xmi:id="_Zd3aRBqLEeGkDZRZy8Mgeg">
-                  <actions xsi:type="stext:Assignment" xmi:id="_Zd3aRRqLEeGkDZRZy8Mgeg" varRef="_ZdMr4RqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_Zd3aRhqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_Zd3aRxqLEeGkDZRZy8Mgeg"/>
+                <effect xsi:type="stext:ReactionEffect" xmi:id="_ewJkJBy4EeGr28QZw3InCQ">
+                  <actions xsi:type="stext:Assignment" xmi:id="_ewJkJRy4EeGr28QZw3InCQ" varRef="_evn_sRy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewJkJhy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_ewJkJxy4EeGr28QZw3InCQ"/>
                     </expression>
                   </actions>
-                  <actions xsi:type="stext:Assignment" xmi:id="_Zd3aSBqLEeGkDZRZy8Mgeg" varRef="_ZdMr4hqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_Zd3aSRqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_Zd3aShqLEeGkDZRZy8Mgeg" value="true"/>
+                  <actions xsi:type="stext:Assignment" xmi:id="_ewJkKBy4EeGr28QZw3InCQ" varRef="_evn_shy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewJkKRy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_ewJkKhy4EeGr28QZw3InCQ" value="true"/>
                     </expression>
                   </actions>
-                  <actions xsi:type="stext:Assignment" xmi:id="_Zd3aSxqLEeGkDZRZy8Mgeg" varRef="_ZdMr4xqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_Zd3aTBqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_Zd3aTRqLEeGkDZRZy8Mgeg"/>
+                  <actions xsi:type="stext:Assignment" xmi:id="_ewJkKxy4EeGr28QZw3InCQ" varRef="_evn_sxy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewJkLBy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_ewJkLRy4EeGr28QZw3InCQ"/>
                     </expression>
                   </actions>
                 </effect>
               </declarations>
             </scopes>
             <outgoingTransitions xmi:id="_fS31UBBEEeGQ0KsLDV4EFg" expression="after 2s" target="_fO-pQBBDEeGQ0KsLDV4EFg">
-              <trigger xsi:type="stext:ReactionTrigger" xmi:id="_Zd_WEBqLEeGkDZRZy8Mgeg">
-                <triggers xsi:type="stext:TimeEventSpec" xmi:id="_Zd_WERqLEeGkDZRZy8Mgeg" value="2"/>
+              <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewQR0By4EeGr28QZw3InCQ">
+                <triggers xsi:type="stext:TimeEventSpec" xmi:id="_ewQR0Ry4EeGr28QZw3InCQ" value="2"/>
               </trigger>
             </outgoingTransitions>
           </vertices>
           <vertices xsi:type="sgraph:State" xmi:id="_fO-pQBBDEeGQ0KsLDV4EFg" expression="entry / TrafficLight.red = true;&#xD;&#xA;TrafficLight.yellow = false;&#xD;&#xA;TrafficLight.green = false;" name="StreetRed" incomingTransitions="_fS31UBBEEeGQ0KsLDV4EFg">
-            <scopes xmi:id="_Zd_WEhqLEeGkDZRZy8Mgeg">
-              <declarations xsi:type="stext:LocalReaction" xmi:id="_Zd_WExqLEeGkDZRZy8Mgeg">
-                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_Zd_9IBqLEeGkDZRZy8Mgeg">
-                  <triggers xsi:type="stext:EntryEvent" xmi:id="_Zd_9IRqLEeGkDZRZy8Mgeg"/>
+            <scopes xmi:id="_ewQR0hy4EeGr28QZw3InCQ">
+              <declarations xsi:type="stext:LocalReaction" xmi:id="_ewQR0xy4EeGr28QZw3InCQ">
+                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewQR1By4EeGr28QZw3InCQ">
+                  <triggers xsi:type="stext:EntryEvent" xmi:id="_ewQR1Ry4EeGr28QZw3InCQ"/>
                 </trigger>
-                <effect xsi:type="stext:ReactionEffect" xmi:id="_Zd_9IhqLEeGkDZRZy8Mgeg">
-                  <actions xsi:type="stext:Assignment" xmi:id="_Zd_9IxqLEeGkDZRZy8Mgeg" varRef="_ZdMr4RqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_Zd_9JBqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_Zd_9JRqLEeGkDZRZy8Mgeg" value="true"/>
+                <effect xsi:type="stext:ReactionEffect" xmi:id="_ewQR1hy4EeGr28QZw3InCQ">
+                  <actions xsi:type="stext:Assignment" xmi:id="_ewQR1xy4EeGr28QZw3InCQ" varRef="_evn_sRy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewQR2By4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_ewQR2Ry4EeGr28QZw3InCQ" value="true"/>
                     </expression>
                   </actions>
-                  <actions xsi:type="stext:Assignment" xmi:id="_Zd_9JhqLEeGkDZRZy8Mgeg" varRef="_ZdMr4hqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_Zd_9JxqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_Zd_9KBqLEeGkDZRZy8Mgeg"/>
+                  <actions xsi:type="stext:Assignment" xmi:id="_ewQR2hy4EeGr28QZw3InCQ" varRef="_evn_shy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewQR2xy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_ewQR3By4EeGr28QZw3InCQ"/>
                     </expression>
                   </actions>
-                  <actions xsi:type="stext:Assignment" xmi:id="_Zd_9KRqLEeGkDZRZy8Mgeg" varRef="_ZdMr4xqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_Zd_9KhqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_Zd_9KxqLEeGkDZRZy8Mgeg"/>
+                  <actions xsi:type="stext:Assignment" xmi:id="_ewQR3Ry4EeGr28QZw3InCQ" varRef="_evn_sxy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewQR3hy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_ewQR3xy4EeGr28QZw3InCQ"/>
                     </expression>
                   </actions>
                 </effect>
               </declarations>
             </scopes>
             <outgoingTransitions xmi:id="_g7TywBBEEeGQ0KsLDV4EFg" expression="after 2s" target="_12GAEBBDEeGQ0KsLDV4EFg">
-              <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ZeHR4BqLEeGkDZRZy8Mgeg">
-                <triggers xsi:type="stext:TimeEventSpec" xmi:id="_ZeHR4RqLEeGkDZRZy8Mgeg" value="2"/>
+              <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewW_gBy4EeGr28QZw3InCQ">
+                <triggers xsi:type="stext:TimeEventSpec" xmi:id="_ewW_gRy4EeGr28QZw3InCQ" value="2"/>
               </trigger>
             </outgoingTransitions>
           </vertices>
           <vertices xsi:type="sgraph:State" xmi:id="_12GAEBBDEeGQ0KsLDV4EFg" expression="entry / Pedestrian.red = false;&#xD;&#xA;Pedestrian.green = true;" name="PedestrianGreen" incomingTransitions="_g7TywBBEEeGQ0KsLDV4EFg">
-            <scopes xmi:id="_ZeH48BqLEeGkDZRZy8Mgeg">
-              <declarations xsi:type="stext:LocalReaction" xmi:id="_ZeH48RqLEeGkDZRZy8Mgeg">
-                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ZeH48hqLEeGkDZRZy8Mgeg">
-                  <triggers xsi:type="stext:EntryEvent" xmi:id="_ZeH48xqLEeGkDZRZy8Mgeg"/>
+            <scopes xmi:id="_ewXmkBy4EeGr28QZw3InCQ">
+              <declarations xsi:type="stext:LocalReaction" xmi:id="_ewXmkRy4EeGr28QZw3InCQ">
+                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewXmkhy4EeGr28QZw3InCQ">
+                  <triggers xsi:type="stext:EntryEvent" xmi:id="_ewXmkxy4EeGr28QZw3InCQ"/>
                 </trigger>
-                <effect xsi:type="stext:ReactionEffect" xmi:id="_ZeH49BqLEeGkDZRZy8Mgeg">
-                  <actions xsi:type="stext:Assignment" xmi:id="_ZeH49RqLEeGkDZRZy8Mgeg" varRef="_ZdMr5hqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZeH49hqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_ZeH49xqLEeGkDZRZy8Mgeg"/>
+                <effect xsi:type="stext:ReactionEffect" xmi:id="_ewXmlBy4EeGr28QZw3InCQ">
+                  <actions xsi:type="stext:Assignment" xmi:id="_ewXmlRy4EeGr28QZw3InCQ" varRef="_evn_thy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewXmlhy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_ewXmlxy4EeGr28QZw3InCQ"/>
                     </expression>
                   </actions>
-                  <actions xsi:type="stext:Assignment" xmi:id="_ZeH4-BqLEeGkDZRZy8Mgeg" varRef="_ZdMr5xqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZeH4-RqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_ZeH4-hqLEeGkDZRZy8Mgeg" value="true"/>
+                  <actions xsi:type="stext:Assignment" xmi:id="_ewXmmBy4EeGr28QZw3InCQ" varRef="_evn_txy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewXmmRy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_ewXmmhy4EeGr28QZw3InCQ" value="true"/>
                     </expression>
                   </actions>
                 </effect>
               </declarations>
             </scopes>
             <outgoingTransitions xmi:id="_iZox8BBEEeGQ0KsLDV4EFg" expression="after 7s" target="_K-JX7RBEEeGQ0KsLDV4EFg">
-              <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ZeNYgBqLEeGkDZRZy8Mgeg">
-                <triggers xsi:type="stext:TimeEventSpec" xmi:id="_ZeNYgRqLEeGkDZRZy8Mgeg" value="7"/>
+              <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewb4ABy4EeGr28QZw3InCQ">
+                <triggers xsi:type="stext:TimeEventSpec" xmi:id="_ewb4ARy4EeGr28QZw3InCQ" value="7"/>
               </trigger>
             </outgoingTransitions>
           </vertices>
           <vertices xsi:type="sgraph:State" xmi:id="_K-JX7RBEEeGQ0KsLDV4EFg" expression="entry / Pedestrian.red = true;&#xD;&#xA;Pedestrian.green = false;" name="PedestrianRed" incomingTransitions="_iZox8BBEEeGQ0KsLDV4EFg">
-            <scopes xmi:id="_ZeNYghqLEeGkDZRZy8Mgeg">
-              <declarations xsi:type="stext:LocalReaction" xmi:id="_ZeNYgxqLEeGkDZRZy8Mgeg">
-                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ZeNYhBqLEeGkDZRZy8Mgeg">
-                  <triggers xsi:type="stext:EntryEvent" xmi:id="_ZeNYhRqLEeGkDZRZy8Mgeg"/>
+            <scopes xmi:id="_ewcfEBy4EeGr28QZw3InCQ">
+              <declarations xsi:type="stext:LocalReaction" xmi:id="_ewcfERy4EeGr28QZw3InCQ">
+                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewcfEhy4EeGr28QZw3InCQ">
+                  <triggers xsi:type="stext:EntryEvent" xmi:id="_ewcfExy4EeGr28QZw3InCQ"/>
                 </trigger>
-                <effect xsi:type="stext:ReactionEffect" xmi:id="_ZeNYhhqLEeGkDZRZy8Mgeg">
-                  <actions xsi:type="stext:Assignment" xmi:id="_ZeNYhxqLEeGkDZRZy8Mgeg" varRef="_ZdMr5hqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZeNYiBqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_ZeNYiRqLEeGkDZRZy8Mgeg" value="true"/>
+                <effect xsi:type="stext:ReactionEffect" xmi:id="_ewcfFBy4EeGr28QZw3InCQ">
+                  <actions xsi:type="stext:Assignment" xmi:id="_ewcfFRy4EeGr28QZw3InCQ" varRef="_evn_thy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewcfFhy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_ewcfFxy4EeGr28QZw3InCQ" value="true"/>
                     </expression>
                   </actions>
-                  <actions xsi:type="stext:Assignment" xmi:id="_ZeNYihqLEeGkDZRZy8Mgeg" varRef="_ZdMr5xqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZeNYixqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_ZeNYjBqLEeGkDZRZy8Mgeg"/>
+                  <actions xsi:type="stext:Assignment" xmi:id="_ewcfGBy4EeGr28QZw3InCQ" varRef="_evn_txy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewcfGRy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_ewcfGhy4EeGr28QZw3InCQ"/>
                     </expression>
                   </actions>
                 </effect>
               </declarations>
             </scopes>
-            <outgoingTransitions xmi:id="_nVCU8BBEEeGQ0KsLDV4EFg" expression="after 3s" target="_TfjYTRBEEeGQ0KsLDV4EFg">
-              <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ZeS4EBqLEeGkDZRZy8Mgeg">
-                <triggers xsi:type="stext:TimeEventSpec" xmi:id="_ZeS4ERqLEeGkDZRZy8Mgeg" value="3"/>
+            <outgoingTransitions xmi:id="_nVCU8BBEEeGQ0KsLDV4EFg" expression="after 5s" target="_TfjYTRBEEeGQ0KsLDV4EFg">
+              <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewhXkBy4EeGr28QZw3InCQ">
+                <triggers xsi:type="stext:TimeEventSpec" xmi:id="_ewhXkRy4EeGr28QZw3InCQ" value="5"/>
               </trigger>
             </outgoingTransitions>
           </vertices>
           <vertices xsi:type="sgraph:State" xmi:id="_TfjYTRBEEeGQ0KsLDV4EFg" expression="entry / TrafficLight.red = true;&#xD;&#xA;&#x9;TrafficLight.yellow = true;&#xD;&#xA;&#x9;TrafficLight.green = false;" name="StreetPrepare" incomingTransitions="_nVCU8BBEEeGQ0KsLDV4EFg">
-            <scopes xmi:id="_ZeTfIBqLEeGkDZRZy8Mgeg">
-              <declarations xsi:type="stext:LocalReaction" xmi:id="_ZeTfIRqLEeGkDZRZy8Mgeg">
-                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ZeTfIhqLEeGkDZRZy8Mgeg">
-                  <triggers xsi:type="stext:EntryEvent" xmi:id="_ZeTfIxqLEeGkDZRZy8Mgeg"/>
+            <scopes xmi:id="_ewh-oBy4EeGr28QZw3InCQ">
+              <declarations xsi:type="stext:LocalReaction" xmi:id="_ewh-oRy4EeGr28QZw3InCQ">
+                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewh-ohy4EeGr28QZw3InCQ">
+                  <triggers xsi:type="stext:EntryEvent" xmi:id="_ewh-oxy4EeGr28QZw3InCQ"/>
                 </trigger>
-                <effect xsi:type="stext:ReactionEffect" xmi:id="_ZeTfJBqLEeGkDZRZy8Mgeg">
-                  <actions xsi:type="stext:Assignment" xmi:id="_ZeTfJRqLEeGkDZRZy8Mgeg" varRef="_ZdMr4RqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZeTfJhqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_ZeTfJxqLEeGkDZRZy8Mgeg" value="true"/>
+                <effect xsi:type="stext:ReactionEffect" xmi:id="_ewh-pBy4EeGr28QZw3InCQ">
+                  <actions xsi:type="stext:Assignment" xmi:id="_ewh-pRy4EeGr28QZw3InCQ" varRef="_evn_sRy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewh-phy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_ewh-pxy4EeGr28QZw3InCQ" value="true"/>
                     </expression>
                   </actions>
-                  <actions xsi:type="stext:Assignment" xmi:id="_ZeTfKBqLEeGkDZRZy8Mgeg" varRef="_ZdMr4hqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZeTfKRqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_ZeTfKhqLEeGkDZRZy8Mgeg" value="true"/>
+                  <actions xsi:type="stext:Assignment" xmi:id="_ewh-qBy4EeGr28QZw3InCQ" varRef="_evn_shy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewh-qRy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_ewh-qhy4EeGr28QZw3InCQ" value="true"/>
                     </expression>
                   </actions>
-                  <actions xsi:type="stext:Assignment" xmi:id="_ZeTfKxqLEeGkDZRZy8Mgeg" varRef="_ZdMr4xqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZeTfLBqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_ZeTfLRqLEeGkDZRZy8Mgeg"/>
+                  <actions xsi:type="stext:Assignment" xmi:id="_ewh-qxy4EeGr28QZw3InCQ" varRef="_evn_sxy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewh-rBy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_ewh-rRy4EeGr28QZw3InCQ"/>
                     </expression>
                   </actions>
                 </effect>
               </declarations>
             </scopes>
             <outgoingTransitions xmi:id="_pddaABBEEeGQ0KsLDV4EFg" expression="after 2s" target="_w8meYBA_EeGQ0KsLDV4EFg">
-              <trigger xsi:type="stext:ReactionTrigger" xmi:id="_Zeaz4BqLEeGkDZRZy8Mgeg">
-                <triggers xsi:type="stext:TimeEventSpec" xmi:id="_Zeaz4RqLEeGkDZRZy8Mgeg" value="2"/>
+              <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewoFQBy4EeGr28QZw3InCQ">
+                <triggers xsi:type="stext:TimeEventSpec" xmi:id="_ewoFQRy4EeGr28QZw3InCQ" value="2"/>
               </trigger>
             </outgoingTransitions>
           </vertices>
@@ -297,72 +291,69 @@
           </vertices>
         </subRegions>
       </vertices>
-      <vertices xsi:type="sgraph:State" xmi:id="_7PkwwBBEEeGQ0KsLDV4EFg" name="freeze" incomingTransitions="_Av3wkBBFEeGQ0KsLDV4EFg">
-        <scopes xmi:id="_Zeba8BqLEeGkDZRZy8Mgeg"/>
-        <outgoingTransitions xmi:id="_6kP60BBPEeGQ0KsLDV4EFg" expression="keypress3" target="_NPjBmBA-EeGQ0KsLDV4EFg">
-          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_Zeba8RqLEeGkDZRZy8Mgeg">
-            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_Zeba8hqLEeGkDZRZy8Mgeg" event="_ZdMr6xqLEeGkDZRZy8Mgeg"/>
-          </trigger>
-        </outgoingTransitions>
-      </vertices>
-      <vertices xsi:type="sgraph:State" xmi:id="_MF4mkBBFEeGQ0KsLDV4EFg" expression="entry / TrafficLight.red = false;&#xD;&#xA;&#x9;TrafficLight.green = false;&#xD;&#xA;&#x9;TrafficLight.yellow = false;&#xD;&#xA;&#x9;Pedestrian.red = true;" name="off" incomingTransitions="_XlIREBBFEeGQ0KsLDV4EFg">
-        <scopes xmi:id="_ZefFUBqLEeGkDZRZy8Mgeg">
-          <declarations xsi:type="stext:LocalReaction" xmi:id="_ZefFURqLEeGkDZRZy8Mgeg">
-            <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ZefFUhqLEeGkDZRZy8Mgeg">
-              <triggers xsi:type="stext:EntryEvent" xmi:id="_ZefFUxqLEeGkDZRZy8Mgeg"/>
+      <vertices xsi:type="sgraph:State" xmi:id="_MF4mkBBFEeGQ0KsLDV4EFg" expression="entry / TrafficLight.red = false;&#xD;&#xA;&#x9;TrafficLight.green = false;&#xD;&#xA;&#x9;TrafficLight.yellow = false;&#xD;&#xA;&#x9;Pedestrian.red = false;&#xD;&#xA;&#x9;Pedestrian.green = false;" name="off" incomingTransitions="_XlIREBBFEeGQ0KsLDV4EFg">
+        <scopes xmi:id="_ewpTYBy4EeGr28QZw3InCQ">
+          <declarations xsi:type="stext:LocalReaction" xmi:id="_ewpTYRy4EeGr28QZw3InCQ">
+            <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewpTYhy4EeGr28QZw3InCQ">
+              <triggers xsi:type="stext:EntryEvent" xmi:id="_ewpTYxy4EeGr28QZw3InCQ"/>
             </trigger>
-            <effect xsi:type="stext:ReactionEffect" xmi:id="_ZefFVBqLEeGkDZRZy8Mgeg">
-              <actions xsi:type="stext:Assignment" xmi:id="_ZefFVRqLEeGkDZRZy8Mgeg" varRef="_ZdMr4RqLEeGkDZRZy8Mgeg">
-                <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZefFVhqLEeGkDZRZy8Mgeg">
-                  <value xsi:type="stext:BoolLiteral" xmi:id="_ZefFVxqLEeGkDZRZy8Mgeg"/>
+            <effect xsi:type="stext:ReactionEffect" xmi:id="_ewpTZBy4EeGr28QZw3InCQ">
+              <actions xsi:type="stext:Assignment" xmi:id="_ewpTZRy4EeGr28QZw3InCQ" varRef="_evn_sRy4EeGr28QZw3InCQ">
+                <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewpTZhy4EeGr28QZw3InCQ">
+                  <value xsi:type="stext:BoolLiteral" xmi:id="_ewpTZxy4EeGr28QZw3InCQ"/>
+                </expression>
+              </actions>
+              <actions xsi:type="stext:Assignment" xmi:id="_ewpTaBy4EeGr28QZw3InCQ" varRef="_evn_sxy4EeGr28QZw3InCQ">
+                <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewpTaRy4EeGr28QZw3InCQ">
+                  <value xsi:type="stext:BoolLiteral" xmi:id="_ewpTahy4EeGr28QZw3InCQ"/>
                 </expression>
               </actions>
-              <actions xsi:type="stext:Assignment" xmi:id="_ZefFWBqLEeGkDZRZy8Mgeg" varRef="_ZdMr4xqLEeGkDZRZy8Mgeg">
-                <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZefFWRqLEeGkDZRZy8Mgeg">
-                  <value xsi:type="stext:BoolLiteral" xmi:id="_ZefFWhqLEeGkDZRZy8Mgeg"/>
+              <actions xsi:type="stext:Assignment" xmi:id="_ewpTaxy4EeGr28QZw3InCQ" varRef="_evn_shy4EeGr28QZw3InCQ">
+                <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewpTbBy4EeGr28QZw3InCQ">
+                  <value xsi:type="stext:BoolLiteral" xmi:id="_ewpTbRy4EeGr28QZw3InCQ"/>
                 </expression>
               </actions>
-              <actions xsi:type="stext:Assignment" xmi:id="_ZefFWxqLEeGkDZRZy8Mgeg" varRef="_ZdMr4hqLEeGkDZRZy8Mgeg">
-                <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZefFXBqLEeGkDZRZy8Mgeg">
-                  <value xsi:type="stext:BoolLiteral" xmi:id="_ZefFXRqLEeGkDZRZy8Mgeg"/>
+              <actions xsi:type="stext:Assignment" xmi:id="_ewpTbhy4EeGr28QZw3InCQ" varRef="_evn_thy4EeGr28QZw3InCQ">
+                <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewpTbxy4EeGr28QZw3InCQ">
+                  <value xsi:type="stext:BoolLiteral" xmi:id="_ewpTcBy4EeGr28QZw3InCQ"/>
                 </expression>
               </actions>
-              <actions xsi:type="stext:Assignment" xmi:id="_ZefFXhqLEeGkDZRZy8Mgeg" varRef="_ZdMr5hqLEeGkDZRZy8Mgeg">
-                <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ZefFXxqLEeGkDZRZy8Mgeg">
-                  <value xsi:type="stext:BoolLiteral" xmi:id="_ZefFYBqLEeGkDZRZy8Mgeg" value="true"/>
+              <actions xsi:type="stext:Assignment" xmi:id="_ewpTcRy4EeGr28QZw3InCQ" varRef="_evn_txy4EeGr28QZw3InCQ">
+                <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ewpTchy4EeGr28QZw3InCQ">
+                  <value xsi:type="stext:BoolLiteral" xmi:id="_ewpTcxy4EeGr28QZw3InCQ"/>
                 </expression>
               </actions>
             </effect>
           </declarations>
         </scopes>
         <outgoingTransitions xmi:id="__OsQsBBPEeGQ0KsLDV4EFg" expression="keypress2" target="_NPjBmBA-EeGQ0KsLDV4EFg">
-          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_Zeo2UBqLEeGkDZRZy8Mgeg">
-            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_Zeo2URqLEeGkDZRZy8Mgeg" event="_ZdMr6hqLEeGkDZRZy8Mgeg"/>
+          <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ewzrcBy4EeGr28QZw3InCQ">
+            <triggers xsi:type="stext:RegularEventSpec" xmi:id="_ewzrcRy4EeGr28QZw3InCQ" event="_evn_uhy4EeGr28QZw3InCQ"/>
           </trigger>
         </outgoingTransitions>
         <subRegions xmi:id="_xHG2gBBFEeGQ0KsLDV4EFg" name="r1">
           <vertices xsi:type="sgraph:State" xmi:id="_BVnsgBBGEeGQ0KsLDV4EFg" expression="entry / &#xA;&#x9;TrafficLight.yellow = true;&#xA;every 500ms / &#xA;&#x9;TrafficLight.yellow = !TrafficLight.yellow;" name="BlinkYellow" incomingTransitions="_EwURwBBGEeGQ0KsLDV4EFg">
-            <scopes xmi:id="_Zer5oBqLEeGkDZRZy8Mgeg">
-              <declarations xsi:type="stext:LocalReaction" xmi:id="_Zer5oRqLEeGkDZRZy8Mgeg">
-                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_Zer5ohqLEeGkDZRZy8Mgeg">
-                  <triggers xsi:type="stext:EntryEvent" xmi:id="_Zer5oxqLEeGkDZRZy8Mgeg"/>
+            <scopes xmi:id="_ew2uwBy4EeGr28QZw3InCQ">
+              <declarations xsi:type="stext:LocalReaction" xmi:id="_ew2uwRy4EeGr28QZw3InCQ">
+                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ew2uwhy4EeGr28QZw3InCQ">
+                  <triggers xsi:type="stext:EntryEvent" xmi:id="_ew2uwxy4EeGr28QZw3InCQ"/>
                 </trigger>
-                <effect xsi:type="stext:ReactionEffect" xmi:id="_Zer5pBqLEeGkDZRZy8Mgeg">
-                  <actions xsi:type="stext:Assignment" xmi:id="_Zer5pRqLEeGkDZRZy8Mgeg" varRef="_ZdMr4hqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_Zer5phqLEeGkDZRZy8Mgeg">
-                      <value xsi:type="stext:BoolLiteral" xmi:id="_Zer5pxqLEeGkDZRZy8Mgeg" value="true"/>
+                <effect xsi:type="stext:ReactionEffect" xmi:id="_ew2uxBy4EeGr28QZw3InCQ">
+                  <actions xsi:type="stext:Assignment" xmi:id="_ew2uxRy4EeGr28QZw3InCQ" varRef="_evn_shy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:PrimitiveValueExpression" xmi:id="_ew2uxhy4EeGr28QZw3InCQ">
+                      <value xsi:type="stext:BoolLiteral" xmi:id="_ew2uxxy4EeGr28QZw3InCQ" value="true"/>
                     </expression>
                   </actions>
                 </effect>
               </declarations>
-              <declarations xsi:type="stext:LocalReaction" xmi:id="_Zer5qBqLEeGkDZRZy8Mgeg">
-                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_Zer5qRqLEeGkDZRZy8Mgeg">
-                  <triggers xsi:type="stext:TimeEventSpec" xmi:id="_Zer5qhqLEeGkDZRZy8Mgeg" type="every" value="500" unit="ms"/>
+              <declarations xsi:type="stext:LocalReaction" xmi:id="_ew2uyBy4EeGr28QZw3InCQ">
+                <trigger xsi:type="stext:ReactionTrigger" xmi:id="_ew2uyRy4EeGr28QZw3InCQ">
+                  <triggers xsi:type="stext:TimeEventSpec" xmi:id="_ew2uyhy4EeGr28QZw3InCQ" type="every" value="500" unit="ms"/>
                 </trigger>
-                <effect xsi:type="stext:ReactionEffect" xmi:id="_Zer5qxqLEeGkDZRZy8Mgeg">
-                  <actions xsi:type="stext:Assignment" xmi:id="_Zer5rBqLEeGkDZRZy8Mgeg" varRef="_ZdMr4hqLEeGkDZRZy8Mgeg">
-                    <expression xsi:type="stext:LogicalNotExpression" xmi:id="_Zer5rRqLEeGkDZRZy8Mgeg">
-                      <operand xsi:type="stext:ElementReferenceExpression" xmi:id="_Zer5rhqLEeGkDZRZy8Mgeg" value="_ZdMr4hqLEeGkDZRZy8Mgeg"/>
+                <effect xsi:type="stext:ReactionEffect" xmi:id="_ew2uyxy4EeGr28QZw3InCQ">
+                  <actions xsi:type="stext:Assignment" xmi:id="_ew2uzBy4EeGr28QZw3InCQ" varRef="_evn_shy4EeGr28QZw3InCQ">
+                    <expression xsi:type="stext:LogicalNotExpression" xmi:id="_ew2uzRy4EeGr28QZw3InCQ">
+                      <operand xsi:type="stext:ElementReferenceExpression" xmi:id="_ew2uzhy4EeGr28QZw3InCQ" value="_evn_shy4EeGr28QZw3InCQ"/>
                     </expression>
                   </actions>
                 </effect>
@@ -603,22 +594,6 @@
           <styles xsi:type="notation:BooleanValueStyle" xmi:id="_NPsyhRA-EeGQ0KsLDV4EFg"/>
           <layoutConstraint xsi:type="notation:Bounds" xmi:id="_NPsyhhA-EeGQ0KsLDV4EFg" x="4" y="43" width="856" height="696"/>
         </children>
-        <children xmi:id="_7P4SwBBEEeGQ0KsLDV4EFg" type="State" element="_7PkwwBBEEeGQ0KsLDV4EFg">
-          <children xsi:type="notation:DecorationNode" xmi:id="_7P4SxBBEEeGQ0KsLDV4EFg" type="StateName">
-            <styles xsi:type="notation:ShapeStyle" xmi:id="_7P4SxRBEEeGQ0KsLDV4EFg"/>
-            <layoutConstraint xsi:type="notation:Location" xmi:id="_7P4SxhBEEeGQ0KsLDV4EFg"/>
-          </children>
-          <children xsi:type="notation:Compartment" xmi:id="_7P4SxxBEEeGQ0KsLDV4EFg" type="StateTextCompartment">
-            <children xsi:type="notation:Shape" xmi:id="_7P4SyBBEEeGQ0KsLDV4EFg" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
-              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_7P4SyRBEEeGQ0KsLDV4EFg"/>
-            </children>
-          </children>
-          <children xsi:type="notation:Compartment" xmi:id="_7P4SyhBEEeGQ0KsLDV4EFg" type="StateFigureCompartment"/>
-          <styles xsi:type="notation:ShapeStyle" xmi:id="_7P4SwRBEEeGQ0KsLDV4EFg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
-          <styles xsi:type="notation:FontStyle" xmi:id="_7P4SwhBEEeGQ0KsLDV4EFg"/>
-          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_7P4SyxBEEeGQ0KsLDV4EFg"/>
-          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_7P4SwxBEEeGQ0KsLDV4EFg" x="1043" y="119"/>
-        </children>
         <children xmi:id="_MGCXkBBFEeGQ0KsLDV4EFg" type="State" element="_MF4mkBBFEeGQ0KsLDV4EFg">
           <children xsi:type="notation:DecorationNode" xmi:id="_MGCXlBBFEeGQ0KsLDV4EFg" type="StateName">
             <styles xsi:type="notation:ShapeStyle" xmi:id="_MGCXlRBFEeGQ0KsLDV4EFg"/>
@@ -662,7 +637,7 @@
                     <layoutConstraint xsi:type="notation:Bounds" xmi:id="_EUppdRBGEeGQ0KsLDV4EFg"/>
                   </children>
                   <styles xsi:type="notation:ShapeStyle" xmi:id="_EUppcRBGEeGQ0KsLDV4EFg" fontName="Verdana" lineColor="4210752"/>
-                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_EUppchBGEeGQ0KsLDV4EFg" x="112" y="2"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_EUppchBGEeGQ0KsLDV4EFg" x="139" y="8"/>
                 </children>
                 <layoutConstraint xsi:type="notation:Bounds" xmi:id="_xHQAdBBFEeGQ0KsLDV4EFg"/>
               </children>
@@ -673,7 +648,7 @@
           <styles xsi:type="notation:ShapeStyle" xmi:id="_MGCXkRBFEeGQ0KsLDV4EFg" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
           <styles xsi:type="notation:FontStyle" xmi:id="_MGCXkhBFEeGQ0KsLDV4EFg"/>
           <styles xsi:type="notation:BooleanValueStyle" xmi:id="_MGMIlBBFEeGQ0KsLDV4EFg"/>
-          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_MGCXkxBFEeGQ0KsLDV4EFg" x="944" y="204" width="341" height="286"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_MGCXkxBFEeGQ0KsLDV4EFg" x="945" y="194" width="341" height="302"/>
         </children>
         <layoutConstraint xsi:type="notation:Bounds" xmi:id="_NPjBixA-EeGQ0KsLDV4EFg"/>
       </children>
@@ -809,17 +784,6 @@
       <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_peD28BBEEeGQ0KsLDV4EFg" id="(0.46320346320346323,0.05434782608695652)"/>
       <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_peD28RBEEeGQ0KsLDV4EFg" id="(0.0205761316872428,0.5328467153284672)"/>
     </edges>
-    <edges xmi:id="_Av3wkRBFEeGQ0KsLDV4EFg" type="Transition" element="_Av3wkBBFEeGQ0KsLDV4EFg" source="_NPjBmhA-EeGQ0KsLDV4EFg" target="_7P4SwBBEEeGQ0KsLDV4EFg">
-      <children xsi:type="notation:DecorationNode" xmi:id="_Av3wlRBFEeGQ0KsLDV4EFg" type="TransitionExpression">
-        <styles xsi:type="notation:ShapeStyle" xmi:id="_Av3wlhBFEeGQ0KsLDV4EFg"/>
-        <layoutConstraint xsi:type="notation:Location" xmi:id="_Av3wlxBFEeGQ0KsLDV4EFg" x="4" y="-13"/>
-      </children>
-      <styles xsi:type="notation:ConnectorStyle" xmi:id="_Av3wkhBFEeGQ0KsLDV4EFg" lineColor="4210752"/>
-      <styles xsi:type="notation:FontStyle" xmi:id="_Av3wlBBFEeGQ0KsLDV4EFg" fontName="Verdana"/>
-      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_Av3wkxBFEeGQ0KsLDV4EFg" points="[1, -1, -186, 15]$[184, -16, -3, 0]"/>
-      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_AweNgBBFEeGQ0KsLDV4EFg" id="(0.9964953271028038,0.12643678160919541)"/>
-      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_AweNgRBFEeGQ0KsLDV4EFg" id="(0.058823529411764705,0.16393442622950818)"/>
-    </edges>
     <edges xmi:id="_XlRbABBFEeGQ0KsLDV4EFg" type="Transition" element="_XlIREBBFEeGQ0KsLDV4EFg" source="_NPjBmhA-EeGQ0KsLDV4EFg" target="_MGCXkBBFEeGQ0KsLDV4EFg">
       <children xsi:type="notation:DecorationNode" xmi:id="_XlRbBBBFEeGQ0KsLDV4EFg" type="TransitionExpression">
         <styles xsi:type="notation:ShapeStyle" xmi:id="_XlRbBRBFEeGQ0KsLDV4EFg"/>
@@ -851,17 +815,6 @@
       <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_yY3NwhBPEeGQ0KsLDV4EFg" points="[7, 0, -124, -1]$[127, 0, -4, -1]"/>
       <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_yZT5sBBPEeGQ0KsLDV4EFg" id="(0.01646090534979424,0.35036496350364965)"/>
     </edges>
-    <edges xmi:id="_6kP60RBPEeGQ0KsLDV4EFg" type="Transition" element="_6kP60BBPEeGQ0KsLDV4EFg" source="_7P4SwBBEEeGQ0KsLDV4EFg" target="_NPjBmhA-EeGQ0KsLDV4EFg">
-      <children xsi:type="notation:DecorationNode" xmi:id="_6kP61RBPEeGQ0KsLDV4EFg" type="TransitionExpression">
-        <styles xsi:type="notation:ShapeStyle" xmi:id="_6kP61hBPEeGQ0KsLDV4EFg"/>
-        <layoutConstraint xsi:type="notation:Location" xmi:id="_6kP61xBPEeGQ0KsLDV4EFg" x="-5" y="9"/>
-      </children>
-      <styles xsi:type="notation:ConnectorStyle" xmi:id="_6kP60hBPEeGQ0KsLDV4EFg" lineColor="4210752"/>
-      <styles xsi:type="notation:FontStyle" xmi:id="_6kP61BBPEeGQ0KsLDV4EFg" fontName="Verdana"/>
-      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_6kP60xBPEeGQ0KsLDV4EFg" points="[-2, -4, 378, 0]$[-368, -11, 12, -7]"/>
-      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_6ksmwBBPEeGQ0KsLDV4EFg" id="(0.0196078431372549,0.7868852459016393)"/>
-      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_6ksmwRBPEeGQ0KsLDV4EFg" id="(0.9929906542056075,0.1752873563218391)"/>
-    </edges>
     <edges xmi:id="__O1aoBBPEeGQ0KsLDV4EFg" type="Transition" element="__OsQsBBPEeGQ0KsLDV4EFg" source="_MGCXkBBFEeGQ0KsLDV4EFg" target="_NPjBmhA-EeGQ0KsLDV4EFg">
       <children xsi:type="notation:DecorationNode" xmi:id="__O1apBBPEeGQ0KsLDV4EFg" type="TransitionExpression">
         <styles xsi:type="notation:ShapeStyle" xmi:id="__O1apRBPEeGQ0KsLDV4EFg"/>

+ 0 - 1
Examples/org.yakindu.sct.generator.java.trafficlight/src-gen/org/yakindu/sct/runtime/java/trafficlightwaiting/DefaultInterface.java

@@ -14,6 +14,5 @@ public interface DefaultInterface {
 
 	public void raiseKeypress1();
 	public void raiseKeypress2();
-	public void raiseKeypress3();
 
 }

+ 0 - 9
Examples/org.yakindu.sct.generator.java.trafficlight/src-gen/org/yakindu/sct/runtime/java/trafficlightwaiting/DefaultInterfaceImpl.java

@@ -16,7 +16,6 @@ public class DefaultInterfaceImpl implements DefaultInterface {
 
 	private final Event EventKeypress1 = new Event("keypress1");
 	private final Event EventKeypress2 = new Event("keypress2");
-	private final Event EventKeypress3 = new Event("keypress3");
 
 	private TrafficLightWaitingCycleBasedStatemachine statemachine;
 
@@ -41,12 +40,4 @@ public class DefaultInterfaceImpl implements DefaultInterface {
 		return EventKeypress2;
 	}
 
-	public void raiseKeypress3() {
-		statemachine.getOccuredEvents().add(EventKeypress3);
-	}
-
-	public Event getEventKeypress3() {
-		return EventKeypress3;
-	}
-
 }

File diff suppressed because it is too large
+ 534 - 407
Examples/org.yakindu.sct.generator.java.trafficlight/src-gen/org/yakindu/sct/runtime/java/trafficlightwaiting/TrafficLightWaitingCycleBasedStatemachine.java


+ 2 - 2
Examples/org.yakindu.sct.generator.java.trafficlight/src/org/yakindu/sct/examples/java/trafficlight/CrossingDemo.java

@@ -138,8 +138,8 @@ public class CrossingDemo {
 		buttonComposite.setLayout(new FillLayout());
 
 		// create a button for each KEYPRESS event
-		Button[] button = new Button[3];
-		for (int i = 0; i < 3; i++) {
+		Button[] button = new Button[2];
+		for (int i = 0; i < 2; i++) {
 			button[i] = new Button(buttonComposite, SWT.PUSH);
 			button[i].setText("key" + (i + 1));
 			final int j = i;

+ 34 - 100
test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/interfacetest/InterfaceTestCycleBasedStatemachine.java

@@ -76,129 +76,63 @@ public class InterfaceTestCycleBasedStatemachine implements IStatemachine {
 	}
 
 	public void enter() {
-		enterSequenceState1();
-	}
-
-	private boolean conditionState1Tr0() {
-		return (occuredEvents.contains(defaultInterface.getEventEvent1()) && (defaultInterface
-				.getVarVar2() > 0));
-	}
-	private boolean conditionState1Tr1() {
-		return (occuredEvents.contains(interfaceOther.getEventEvent3()) && (defaultInterface
-				.getVarVar3() == 1));
-	}
-	private boolean conditionState1Tr2() {
-		return (occuredEvents.contains(interfaceThird.getEventEvent5()) && (defaultInterface
-				.getVarVar1() == true));
-	}
-	private boolean conditionState2Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent1());
-	}
-	private boolean conditionState3Tr0() {
-		return occuredEvents.contains(interfaceOther.getEventEvent3());
-	}
-	private boolean conditionState4Tr0() {
-		return occuredEvents.contains(interfaceThird.getEventEvent5());
-	}
-	private void actionsState1Tr0() {
-		exitSequenceState1();
-		enterSequenceState2();
-
-	}
-	private void actionsState1Tr1() {
-		exitSequenceState1();
-		enterSequenceState3();
-
-	}
-	private void actionsState1Tr2() {
-		exitSequenceState1();
-		enterSequenceState4();
+		activeStates.add(State.State1);
 
 	}
-	private void actionsState2Tr0() {
-		exitSequenceState2();
-		enterSequenceState1();
 
-	}
-	private void actionsState3Tr0() {
-		exitSequenceState3();
-		enterSequenceState1();
+	private void reactState1() {
+		if ((occuredEvents.contains(defaultInterface.getEventEvent1()) && (defaultInterface
+				.getVarVar2() > 0))) {
+			activeStates.remove(State.State1);
 
-	}
-	private void actionsState4Tr0() {
-		exitSequenceState4();
-		enterSequenceState1();
+			defaultInterface.raiseEvent2(22);
 
-	}
-	private void entryActionState2() {
-		defaultInterface.raiseEvent2(22);
+			activeStates.add(State.State2);
 
-	}
-	private void entryActionState3() {
-		interfaceOther.raiseEvent4();
+		} else {
+			if ((occuredEvents.contains(interfaceOther.getEventEvent3()) && (defaultInterface
+					.getVarVar3() == 1))) {
+				activeStates.remove(State.State1);
 
-	}
-	private void entryActionState4() {
-		interfaceThird.raiseEvent6(true);
+				interfaceOther.raiseEvent4();
 
-	}
+				activeStates.add(State.State3);
 
-	private void enterSequenceState1() {
-		activeStates.add(State.State1);
-	}
+			} else {
+				if ((occuredEvents.contains(interfaceThird.getEventEvent5()) && (defaultInterface
+						.getVarVar1() == true))) {
+					activeStates.remove(State.State1);
 
-	private void enterSequenceState2() {
-		entryActionState2();
-		activeStates.add(State.State2);
-	}
+					interfaceThird.raiseEvent6(true);
 
-	private void enterSequenceState3() {
-		entryActionState3();
-		activeStates.add(State.State3);
-	}
+					activeStates.add(State.State4);
 
-	private void enterSequenceState4() {
-		entryActionState4();
-		activeStates.add(State.State4);
-	}
-	private void exitSequenceState1() {
-		activeStates.remove(State.State1);
-	}
-	private void exitSequenceState2() {
-		activeStates.remove(State.State2);
-	}
-	private void exitSequenceState3() {
-		activeStates.remove(State.State3);
-	}
-	private void exitSequenceState4() {
-		activeStates.remove(State.State4);
-	}
-	private void reactState1() {
-		if (conditionState1Tr0()) {
-			actionsState1Tr0();
-		} else {
-			if (conditionState1Tr1()) {
-				actionsState1Tr1();
-			} else {
-				if (conditionState1Tr2()) {
-					actionsState1Tr2();
 				}
 			}
 		}
 	}
 	private void reactState2() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
+		if (occuredEvents.contains(defaultInterface.getEventEvent1())) {
+			activeStates.remove(State.State2);
+
+			activeStates.add(State.State1);
+
 		}
 	}
 	private void reactState3() {
-		if (conditionState3Tr0()) {
-			actionsState3Tr0();
+		if (occuredEvents.contains(interfaceOther.getEventEvent3())) {
+			activeStates.remove(State.State3);
+
+			activeStates.add(State.State1);
+
 		}
 	}
 	private void reactState4() {
-		if (conditionState4Tr0()) {
-			actionsState4Tr0();
+		if (occuredEvents.contains(interfaceThird.getEventEvent5())) {
+			activeStates.remove(State.State4);
+
+			activeStates.add(State.State1);
+
 		}
 	}
 	public void runCycle() {

+ 179 - 174
test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_deephistory/Test_DeepHistoryCycleBasedStatemachine.java

@@ -64,194 +64,95 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 	}
 
 	public void enter() {
-		enterSequenceState1();
-	}
-
-	private boolean conditionState1Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent1());
-	}
-	private boolean conditionState2Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent2());
-	}
-	private boolean conditionState3Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent3());
-	}
-	private boolean conditionState4Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent4());
-	}
-	private boolean conditionState6Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent5());
-	}
-	private boolean conditionState7Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent6());
-	}
-	private boolean conditionState8Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent7());
-	}
-	private boolean conditionState9Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent8());
-	}
-	private void actionsState1Tr0() {
-		exitSequenceState1();
-		enterSequenceState2();
+		activeStates.add(State.State1);
 
 	}
-	private void actionsState2Tr0() {
-		exitSequenceState2();
-		enterSequenceState1();
 
-	}
-	private void actionsState3Tr0() {
-		exitSequenceState3();
-		enterSequenceState4();
+	private void reactState1() {
+		if (occuredEvents.contains(defaultInterface.getEventEvent1())) {
+			activeStates.remove(State.State1);
 
-	}
-	private void actionsState4Tr0() {
-		exitSequenceState4();
-		enterSequenceState5();
+			activeStates.add(State.State3);
 
+		}
 	}
-	private void actionsState6Tr0() {
-		exitSequenceState6();
-		enterSequenceState7();
-
+	private void reactState2() {
 	}
-	private void actionsState7Tr0() {
-		exitSequenceState7();
-		enterSequenceState6();
+	private void reactState3() {
+		if (occuredEvents.contains(defaultInterface.getEventEvent2())) {
+			if (activeStates.contains(State.State3)) {
+				activeStates.remove(State.State3);
 
-	}
-	private void actionsState8Tr0() {
-		exitSequenceState8();
-		enterSequenceState9();
+			} else if (activeStates.contains(State.State6)) {
+				activeStates.remove(State.State6);
 
-	}
-	private void actionsState9Tr0() {
-		exitSequenceState9();
-		enterSequenceState8();
+			} else if (activeStates.contains(State.State8)) {
+				activeStates.remove(State.State8);
 
-	}
+			} else if (activeStates.contains(State.State9)) {
+				activeStates.remove(State.State9);
 
-	private void enterSequenceState1() {
-		activeStates.add(State.State1);
-	}
+			} else if (activeStates.contains(State.State5)) {
+				activeStates.remove(State.State5);
 
-	private void enterSequenceState2() {
-		enterSequenceState3();
-	}
+			}
 
-	private void enterSequenceState3() {
-		activeStates.add(State.State3);
-	}
+			activeStates.add(State.State1);
 
-	private void enterSequenceState4() {
-		enterSequenceState6();
-	}
+		} else {
+			if (occuredEvents.contains(defaultInterface.getEventEvent3())) {
+				activeStates.remove(State.State3);
 
-	private void enterSequenceState6() {
-		activeStates.add(State.State6);
-	}
+				activeStates.add(State.State6);
 
-	private void enterSequenceState7() {
-		enterSequenceState8();
-	}
+			}
 
-	private void enterSequenceState8() {
-		activeStates.add(State.State8);
+		}
 	}
-
-	private void enterSequenceState9() {
-		activeStates.add(State.State9);
+	private void reactState4() {
 	}
+	private void reactState6() {
+		if (occuredEvents.contains(defaultInterface.getEventEvent2())) {
+			if (activeStates.contains(State.State3)) {
+				activeStates.remove(State.State3);
 
-	private void enterSequenceState5() {
-		activeStates.add(State.State5);
-	}
-	private void exitSequenceState1() {
-		activeStates.remove(State.State1);
-	}
-	private void exitSequenceState2() {
-		if (activeStates.contains(State.State3)) {
-			exitSequenceState3();
+			} else if (activeStates.contains(State.State6)) {
+				activeStates.remove(State.State6);
 
-		} else if (activeStates.contains(State.State6)) {
-			exitSequenceState6();
+			} else if (activeStates.contains(State.State8)) {
+				activeStates.remove(State.State8);
 
-		} else if (activeStates.contains(State.State8)) {
-			exitSequenceState8();
+			} else if (activeStates.contains(State.State9)) {
+				activeStates.remove(State.State9);
 
-		} else if (activeStates.contains(State.State9)) {
-			exitSequenceState9();
+			} else if (activeStates.contains(State.State5)) {
+				activeStates.remove(State.State5);
 
-		} else if (activeStates.contains(State.State5)) {
-			exitSequenceState5();
+			}
 
-		}
-	}
-	private void exitSequenceState3() {
-		activeStates.remove(State.State3);
-	}
-	private void exitSequenceState4() {
-		if (activeStates.contains(State.State6)) {
-			exitSequenceState6();
+			activeStates.add(State.State1);
 
-		} else if (activeStates.contains(State.State8)) {
-			exitSequenceState8();
+		} else {
+			if (occuredEvents.contains(defaultInterface.getEventEvent4())) {
+				if (activeStates.contains(State.State6)) {
+					activeStates.remove(State.State6);
 
-		} else if (activeStates.contains(State.State9)) {
-			exitSequenceState9();
+				} else if (activeStates.contains(State.State8)) {
+					activeStates.remove(State.State8);
 
-		}
-	}
-	private void exitSequenceState6() {
-		activeStates.remove(State.State6);
-	}
-	private void exitSequenceState7() {
-		if (activeStates.contains(State.State8)) {
-			exitSequenceState8();
+				} else if (activeStates.contains(State.State9)) {
+					activeStates.remove(State.State9);
 
-		} else if (activeStates.contains(State.State9)) {
-			exitSequenceState9();
+				}
 
-		}
-	}
-	private void exitSequenceState8() {
-		activeStates.remove(State.State8);
-	}
-	private void exitSequenceState9() {
-		activeStates.remove(State.State9);
-	}
-	private void exitSequenceState5() {
-		activeStates.remove(State.State5);
-	}
-	private void reactState1() {
-		if (conditionState1Tr0()) {
-			actionsState1Tr0();
-		}
-	}
-	private void reactState2() {
-	}
-	private void reactState3() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
-		} else {
-			if (conditionState3Tr0()) {
-				actionsState3Tr0();
-			}
+				activeStates.add(State.State5);
 
-		}
-	}
-	private void reactState4() {
-	}
-	private void reactState6() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
-		} else {
-			if (conditionState4Tr0()) {
-				actionsState4Tr0();
 			} else {
-				if (conditionState6Tr0()) {
-					actionsState6Tr0();
+				if (occuredEvents.contains(defaultInterface.getEventEvent5())) {
+					activeStates.remove(State.State6);
+
+					activeStates.add(State.State8);
+
 				}
 
 			}
@@ -261,17 +162,60 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 	private void reactState7() {
 	}
 	private void reactState8() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
+		if (occuredEvents.contains(defaultInterface.getEventEvent2())) {
+			if (activeStates.contains(State.State3)) {
+				activeStates.remove(State.State3);
+
+			} else if (activeStates.contains(State.State6)) {
+				activeStates.remove(State.State6);
+
+			} else if (activeStates.contains(State.State8)) {
+				activeStates.remove(State.State8);
+
+			} else if (activeStates.contains(State.State9)) {
+				activeStates.remove(State.State9);
+
+			} else if (activeStates.contains(State.State5)) {
+				activeStates.remove(State.State5);
+
+			}
+
+			activeStates.add(State.State1);
+
 		} else {
-			if (conditionState4Tr0()) {
-				actionsState4Tr0();
+			if (occuredEvents.contains(defaultInterface.getEventEvent4())) {
+				if (activeStates.contains(State.State6)) {
+					activeStates.remove(State.State6);
+
+				} else if (activeStates.contains(State.State8)) {
+					activeStates.remove(State.State8);
+
+				} else if (activeStates.contains(State.State9)) {
+					activeStates.remove(State.State9);
+
+				}
+
+				activeStates.add(State.State5);
+
 			} else {
-				if (conditionState7Tr0()) {
-					actionsState7Tr0();
+				if (occuredEvents.contains(defaultInterface.getEventEvent6())) {
+					if (activeStates.contains(State.State8)) {
+						activeStates.remove(State.State8);
+
+					} else if (activeStates.contains(State.State9)) {
+						activeStates.remove(State.State9);
+
+					}
+
+					activeStates.add(State.State6);
+
 				} else {
-					if (conditionState8Tr0()) {
-						actionsState8Tr0();
+					if (occuredEvents.contains(defaultInterface
+							.getEventEvent7())) {
+						activeStates.remove(State.State8);
+
+						activeStates.add(State.State9);
+
 					}
 
 				}
@@ -281,17 +225,60 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 		}
 	}
 	private void reactState9() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
+		if (occuredEvents.contains(defaultInterface.getEventEvent2())) {
+			if (activeStates.contains(State.State3)) {
+				activeStates.remove(State.State3);
+
+			} else if (activeStates.contains(State.State6)) {
+				activeStates.remove(State.State6);
+
+			} else if (activeStates.contains(State.State8)) {
+				activeStates.remove(State.State8);
+
+			} else if (activeStates.contains(State.State9)) {
+				activeStates.remove(State.State9);
+
+			} else if (activeStates.contains(State.State5)) {
+				activeStates.remove(State.State5);
+
+			}
+
+			activeStates.add(State.State1);
+
 		} else {
-			if (conditionState4Tr0()) {
-				actionsState4Tr0();
+			if (occuredEvents.contains(defaultInterface.getEventEvent4())) {
+				if (activeStates.contains(State.State6)) {
+					activeStates.remove(State.State6);
+
+				} else if (activeStates.contains(State.State8)) {
+					activeStates.remove(State.State8);
+
+				} else if (activeStates.contains(State.State9)) {
+					activeStates.remove(State.State9);
+
+				}
+
+				activeStates.add(State.State5);
+
 			} else {
-				if (conditionState7Tr0()) {
-					actionsState7Tr0();
+				if (occuredEvents.contains(defaultInterface.getEventEvent6())) {
+					if (activeStates.contains(State.State8)) {
+						activeStates.remove(State.State8);
+
+					} else if (activeStates.contains(State.State9)) {
+						activeStates.remove(State.State9);
+
+					}
+
+					activeStates.add(State.State6);
+
 				} else {
-					if (conditionState9Tr0()) {
-						actionsState9Tr0();
+					if (occuredEvents.contains(defaultInterface
+							.getEventEvent8())) {
+						activeStates.remove(State.State9);
+
+						activeStates.add(State.State8);
+
 					}
 
 				}
@@ -301,8 +288,26 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 		}
 	}
 	private void reactState5() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
+		if (occuredEvents.contains(defaultInterface.getEventEvent2())) {
+			if (activeStates.contains(State.State3)) {
+				activeStates.remove(State.State3);
+
+			} else if (activeStates.contains(State.State6)) {
+				activeStates.remove(State.State6);
+
+			} else if (activeStates.contains(State.State8)) {
+				activeStates.remove(State.State8);
+
+			} else if (activeStates.contains(State.State9)) {
+				activeStates.remove(State.State9);
+
+			} else if (activeStates.contains(State.State5)) {
+				activeStates.remove(State.State5);
+
+			}
+
+			activeStates.add(State.State1);
+
 		} else {
 
 		}

+ 29 - 63
test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_expression/Test_ExpressionCycleBasedStatemachine.java

@@ -70,84 +70,50 @@ public class Test_ExpressionCycleBasedStatemachine implements IStatemachine {
 	}
 
 	public void enter() {
-		enterSequenceState1();
-	}
-
-	private boolean conditionState1Tr0() {
-		return (occuredEvents.contains(defaultInterface.getEventEvent1()) && ((interfaceOther
-				.getVarVar1() == true) || (defaultInterface.getVarVar5() == false)));
-	}
-	private boolean conditionState2Tr0() {
-		return (occuredEvents.contains(defaultInterface.getEventEvent1()) && (defaultInterface
-				.getVarVar3() > 0));
-	}
-	private boolean conditionState2Lr2() {
-		return true;
-	}
-	private void actionsState1Tr0() {
-		exitSequenceState1();
-		interfaceOther.setVarVar1(false);
-
-		enterSequenceState2();
-
-	}
-	private void actionsState2Tr0() {
-		exitSequenceState2();
-		defaultInterface.setVarVar5(true);
-
-		enterSequenceState1();
-
-	}
-	private void actionsState2Lr2() {
-		defaultInterface.setVarVar1(defaultInterface.getVarVar1() + (1));
-
-	}
-	private void entryActionState1() {
 		defaultInterface.setVarVar3(defaultInterface.getVarVar3()
 				+ ((defaultInterface.getVarVar2() * defaultInterface
 						.getVarVar3())));
 
+		activeStates.add(State.State1);
+
 	}
-	private void entryActionState2() {
-		defaultInterface.setVarVar3(defaultInterface.getVarVar3() / (5));
 
-		defaultInterface.setVarVar1(defaultInterface.getVarVar1() + (1));
+	private void reactState1() {
+		if ((occuredEvents.contains(defaultInterface.getEventEvent1()) && ((interfaceOther
+				.getVarVar1() == true) || (defaultInterface.getVarVar5() == false)))) {
+			activeStates.remove(State.State1);
+			defaultInterface.setVarVar2(1);
 
-	}
-	private void exitActionState1() {
-		defaultInterface.setVarVar2(1);
+			defaultInterface.setVarVar4(22.3);
 
-		defaultInterface.setVarVar4(22.3);
+			interfaceOther.setVarVar1(false);
 
-	}
+			defaultInterface.setVarVar3(defaultInterface.getVarVar3() / (5));
 
-	private void enterSequenceState1() {
-		entryActionState1();
-		activeStates.add(State.State1);
-	}
+			defaultInterface.setVarVar1(defaultInterface.getVarVar1() + (1));
+
+			activeStates.add(State.State2);
 
-	private void enterSequenceState2() {
-		entryActionState2();
-		activeStates.add(State.State2);
-	}
-	private void exitSequenceState1() {
-		activeStates.remove(State.State1);
-		exitActionState1();
-	}
-	private void exitSequenceState2() {
-		activeStates.remove(State.State2);
-	}
-	private void reactState1() {
-		if (conditionState1Tr0()) {
-			actionsState1Tr0();
 		}
 	}
 	private void reactState2() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
+		if ((occuredEvents.contains(defaultInterface.getEventEvent1()) && (defaultInterface
+				.getVarVar3() > 0))) {
+			activeStates.remove(State.State2);
+
+			defaultInterface.setVarVar5(true);
+
+			defaultInterface.setVarVar3(defaultInterface.getVarVar3()
+					+ ((defaultInterface.getVarVar2() * defaultInterface
+							.getVarVar3())));
+
+			activeStates.add(State.State1);
+
 		} else {
-			if (conditionState2Lr2()) {
-				actionsState2Lr2();
+			if (true) {
+				defaultInterface
+						.setVarVar1(defaultInterface.getVarVar1() + (1));
+
 			}
 
 		}

+ 448 - 361
test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_hierarchy/Test_HierarchyCycleBasedStatemachine.java

@@ -64,421 +64,292 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 	}
 
 	public void enter() {
-		enterSequenceState1();
-	}
+		defaultInterface.setVarS1(1);
 
-	private boolean conditionState1Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent1());
-	}
-	private boolean conditionState9Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent9());
-	}
-	private boolean conditionState10Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent10());
-	}
-	private boolean conditionState2Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent6());
-	}
-	private boolean conditionState3Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent2());
-	}
-	private boolean conditionState3Tr1() {
-		return occuredEvents.contains(defaultInterface.getEventEvent11());
-	}
-	private boolean conditionState3Tr2() {
-		return occuredEvents.contains(defaultInterface.getEventEvent14());
-	}
-	private boolean conditionState4Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent7());
-	}
-	private boolean conditionState5Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent3());
-	}
-	private boolean conditionState5Tr1() {
-		return occuredEvents.contains(defaultInterface.getEventEvent12());
-	}
-	private boolean conditionState5Tr2() {
-		return occuredEvents.contains(defaultInterface.getEventEvent15());
-	}
-	private boolean conditionState6Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent8());
-	}
-	private boolean conditionState7Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent4());
-	}
-	private boolean conditionState8Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent5());
-	}
-	private boolean conditionState8Tr1() {
-		return occuredEvents.contains(defaultInterface.getEventEvent13());
-	}
-	private boolean conditionState8Tr2() {
-		return occuredEvents.contains(defaultInterface.getEventEvent16());
-	}
-	private void actionsState1Tr0() {
-		exitSequenceState1();
-		enterSequenceState2();
+		defaultInterface.setVarS1(defaultInterface.getVarS1() + (1));
 
-	}
-	private void actionsState9Tr0() {
-		exitSequenceState9();
-		enterSequenceState10();
+		activeStates.add(State.State9);
 
 	}
-	private void actionsState10Tr0() {
-		exitSequenceState10();
-		enterSequenceState9();
 
+	private void reactState1() {
 	}
-	private void actionsState2Tr0() {
-		exitSequenceState2();
-		enterSequenceState1();
+	private void reactState9() {
+		if (occuredEvents.contains(defaultInterface.getEventEvent1())) {
+			if (activeStates.contains(State.State9)) {
+				activeStates.remove(State.State9);
+				defaultInterface.setVarS1(defaultInterface.getVarS1() - (1));
 
-	}
-	private void actionsState3Tr0() {
-		exitSequenceState3();
-		enterSequenceState4();
+			} else if (activeStates.contains(State.State10)) {
+				activeStates.remove(State.State10);
+				defaultInterface.setVarS1(defaultInterface.getVarS1() - (1));
 
-	}
-	private void actionsState3Tr1() {
-		exitSequenceState3();
-		exitActionState2();
-		enterSequenceState1();
+			}
+			defaultInterface.setVarS1(defaultInterface.getVarS1() - (1));
 
-	}
-	private void actionsState3Tr2() {
-		exitSequenceState3();
-		exitActionState2();
-		entryActionState1();
-		enterSequenceState9();
+			defaultInterface.setVarS2(1);
 
-	}
-	private void actionsState4Tr0() {
-		exitSequenceState4();
-		enterSequenceState3();
+			defaultInterface.setVarS2(defaultInterface.getVarS2() + (1));
 
-	}
-	private void actionsState5Tr0() {
-		exitSequenceState5();
-		enterSequenceState6();
+			activeStates.add(State.State3);
 
-	}
-	private void actionsState5Tr1() {
-		exitSequenceState5();
-		exitActionState4();
-		exitActionState2();
-		enterSequenceState1();
+		} else {
+			if (occuredEvents.contains(defaultInterface.getEventEvent9())) {
+				activeStates.remove(State.State9);
+				defaultInterface.setVarS1(defaultInterface.getVarS1() - (1));
 
-	}
-	private void actionsState5Tr2() {
-		exitSequenceState5();
-		exitActionState4();
-		exitActionState2();
-		entryActionState1();
-		enterSequenceState10();
+				defaultInterface.setVarS1(defaultInterface.getVarS1() + (1));
 
-	}
-	private void actionsState6Tr0() {
-		exitSequenceState6();
-		enterSequenceState5();
+				activeStates.add(State.State10);
 
-	}
-	private void actionsState7Tr0() {
-		exitSequenceState7();
-		enterSequenceState8();
+			}
 
+		}
 	}
-	private void actionsState8Tr0() {
-		exitSequenceState8();
-		enterSequenceState7();
+	private void reactState10() {
+		if (occuredEvents.contains(defaultInterface.getEventEvent1())) {
+			if (activeStates.contains(State.State9)) {
+				activeStates.remove(State.State9);
+				defaultInterface.setVarS1(defaultInterface.getVarS1() - (1));
 
-	}
-	private void actionsState8Tr1() {
-		exitSequenceState8();
-		exitActionState6();
-		exitActionState4();
-		exitActionState2();
-		enterSequenceState1();
+			} else if (activeStates.contains(State.State10)) {
+				activeStates.remove(State.State10);
+				defaultInterface.setVarS1(defaultInterface.getVarS1() - (1));
 
-	}
-	private void actionsState8Tr2() {
-		exitSequenceState8();
-		exitActionState6();
-		exitActionState4();
-		exitActionState2();
-		entryActionState1();
-		enterSequenceState10();
+			}
+			defaultInterface.setVarS1(defaultInterface.getVarS1() - (1));
 
-	}
-	private void entryActionState1() {
-		defaultInterface.setVarS1(1);
+			defaultInterface.setVarS2(1);
 
-	}
-	private void entryActionState9() {
-		defaultInterface.setVarS1(defaultInterface.getVarS1() + (1));
+			defaultInterface.setVarS2(defaultInterface.getVarS2() + (1));
 
-	}
-	private void entryActionState10() {
-		defaultInterface.setVarS1(defaultInterface.getVarS1() + (1));
+			activeStates.add(State.State3);
 
-	}
-	private void entryActionState2() {
-		defaultInterface.setVarS2(1);
+		} else {
+			if (occuredEvents.contains(defaultInterface.getEventEvent10())) {
+				activeStates.remove(State.State10);
+				defaultInterface.setVarS1(defaultInterface.getVarS1() - (1));
 
-	}
-	private void entryActionState3() {
-		defaultInterface.setVarS2(defaultInterface.getVarS2() + (1));
+				defaultInterface.setVarS1(defaultInterface.getVarS1() + (1));
 
-	}
-	private void entryActionState4() {
-		defaultInterface.setVarS2(defaultInterface.getVarS2() + (1));
+				activeStates.add(State.State9);
 
-	}
-	private void entryActionState5() {
-		defaultInterface.setVarS2(defaultInterface.getVarS2() + (1));
+			}
 
+		}
 	}
-	private void entryActionState6() {
-		defaultInterface.setVarS2(defaultInterface.getVarS2() + (1));
-
+	private void reactState2() {
 	}
-	private void entryActionState7() {
-		defaultInterface.setVarS2(defaultInterface.getVarS2() + (1));
+	private void reactState3() {
+		if (occuredEvents.contains(defaultInterface.getEventEvent6())) {
+			if (activeStates.contains(State.State3)) {
+				activeStates.remove(State.State3);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-	}
-	private void entryActionState8() {
-		defaultInterface.setVarS2(defaultInterface.getVarS2() + (1));
+			} else if (activeStates.contains(State.State5)) {
+				activeStates.remove(State.State5);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-	}
-	private void exitActionState1() {
-		defaultInterface.setVarS1(defaultInterface.getVarS1() - (1));
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-	}
-	private void exitActionState9() {
-		defaultInterface.setVarS1(defaultInterface.getVarS1() - (1));
+			} else if (activeStates.contains(State.State7)) {
+				activeStates.remove(State.State7);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-	}
-	private void exitActionState10() {
-		defaultInterface.setVarS1(defaultInterface.getVarS1() - (1));
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-	}
-	private void exitActionState2() {
-		defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-	}
-	private void exitActionState3() {
-		defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+			} else if (activeStates.contains(State.State8)) {
+				activeStates.remove(State.State8);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-	}
-	private void exitActionState4() {
-		defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-	}
-	private void exitActionState5() {
-		defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-	}
-	private void exitActionState6() {
-		defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+			}
+			defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-	}
-	private void exitActionState7() {
-		defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+			defaultInterface.setVarS1(1);
 
-	}
-	private void exitActionState8() {
-		defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+			defaultInterface.setVarS1(defaultInterface.getVarS1() + (1));
 
-	}
+			activeStates.add(State.State9);
 
-	private void enterSequenceState1() {
-		entryActionState1();
-		enterSequenceState9();
-	}
+		} else {
+			if (occuredEvents.contains(defaultInterface.getEventEvent2())) {
+				activeStates.remove(State.State3);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-	private void enterSequenceState9() {
-		entryActionState9();
-		activeStates.add(State.State9);
-	}
+				defaultInterface.setVarS2(defaultInterface.getVarS2() + (1));
 
-	private void enterSequenceState10() {
-		entryActionState10();
-		activeStates.add(State.State10);
-	}
+				defaultInterface.setVarS2(defaultInterface.getVarS2() + (1));
 
-	private void enterSequenceState2() {
-		entryActionState2();
-		enterSequenceState3();
-	}
+				activeStates.add(State.State5);
 
-	private void enterSequenceState3() {
-		entryActionState3();
-		activeStates.add(State.State3);
-	}
+			} else {
+				if (occuredEvents.contains(defaultInterface.getEventEvent11())) {
+					activeStates.remove(State.State3);
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
 
-	private void enterSequenceState4() {
-		entryActionState4();
-		enterSequenceState5();
-	}
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
 
-	private void enterSequenceState5() {
-		entryActionState5();
-		activeStates.add(State.State5);
-	}
+					defaultInterface.setVarS1(1);
 
-	private void enterSequenceState6() {
-		entryActionState6();
-		enterSequenceState7();
-	}
+					defaultInterface
+							.setVarS1(defaultInterface.getVarS1() + (1));
 
-	private void enterSequenceState7() {
-		entryActionState7();
-		activeStates.add(State.State7);
-	}
+					activeStates.add(State.State9);
 
-	private void enterSequenceState8() {
-		entryActionState8();
-		activeStates.add(State.State8);
-	}
-	private void exitSequenceState1() {
-		if (activeStates.contains(State.State9)) {
-			exitSequenceState9();
+				} else {
+					if (occuredEvents.contains(defaultInterface
+							.getEventEvent14())) {
+						activeStates.remove(State.State3);
+						defaultInterface
+								.setVarS2(defaultInterface.getVarS2() - (1));
 
-		} else if (activeStates.contains(State.State10)) {
-			exitSequenceState10();
+						defaultInterface
+								.setVarS2(defaultInterface.getVarS2() - (1));
 
-		}
-		exitActionState1();
-	}
-	private void exitSequenceState9() {
-		activeStates.remove(State.State9);
-		exitActionState9();
-	}
-	private void exitSequenceState10() {
-		activeStates.remove(State.State10);
-		exitActionState10();
-	}
-	private void exitSequenceState2() {
-		if (activeStates.contains(State.State3)) {
-			exitSequenceState3();
+						defaultInterface.setVarS1(1);
 
-		} else if (activeStates.contains(State.State5)) {
-			exitSequenceState5();
-			exitActionState4();
+						defaultInterface
+								.setVarS1(defaultInterface.getVarS1() + (1));
 
-		} else if (activeStates.contains(State.State7)) {
-			exitSequenceState7();
-			exitActionState6();
-			exitActionState4();
+						activeStates.add(State.State9);
 
-		} else if (activeStates.contains(State.State8)) {
-			exitSequenceState8();
-			exitActionState6();
-			exitActionState4();
+					}
+				}
+			}
 
 		}
-		exitActionState2();
 	}
-	private void exitSequenceState3() {
-		activeStates.remove(State.State3);
-		exitActionState3();
+	private void reactState4() {
 	}
-	private void exitSequenceState4() {
-		if (activeStates.contains(State.State5)) {
-			exitSequenceState5();
+	private void reactState5() {
+		if (occuredEvents.contains(defaultInterface.getEventEvent6())) {
+			if (activeStates.contains(State.State3)) {
+				activeStates.remove(State.State3);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-		} else if (activeStates.contains(State.State7)) {
-			exitSequenceState7();
-			exitActionState6();
+			} else if (activeStates.contains(State.State5)) {
+				activeStates.remove(State.State5);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-		} else if (activeStates.contains(State.State8)) {
-			exitSequenceState8();
-			exitActionState6();
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-		}
-		exitActionState4();
-	}
-	private void exitSequenceState5() {
-		activeStates.remove(State.State5);
-		exitActionState5();
-	}
-	private void exitSequenceState6() {
-		if (activeStates.contains(State.State7)) {
-			exitSequenceState7();
+			} else if (activeStates.contains(State.State7)) {
+				activeStates.remove(State.State7);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-		} else if (activeStates.contains(State.State8)) {
-			exitSequenceState8();
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-		}
-		exitActionState6();
-	}
-	private void exitSequenceState7() {
-		activeStates.remove(State.State7);
-		exitActionState7();
-	}
-	private void exitSequenceState8() {
-		activeStates.remove(State.State8);
-		exitActionState8();
-	}
-	private void reactState1() {
-	}
-	private void reactState9() {
-		if (conditionState1Tr0()) {
-			actionsState1Tr0();
-		} else {
-			if (conditionState9Tr0()) {
-				actionsState9Tr0();
-			}
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+			} else if (activeStates.contains(State.State8)) {
+				activeStates.remove(State.State8);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
-		}
-	}
-	private void reactState10() {
-		if (conditionState1Tr0()) {
-			actionsState1Tr0();
-		} else {
-			if (conditionState10Tr0()) {
-				actionsState10Tr0();
 			}
+			defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+			defaultInterface.setVarS1(1);
+
+			defaultInterface.setVarS1(defaultInterface.getVarS1() + (1));
+
+			activeStates.add(State.State9);
 
-		}
-	}
-	private void reactState2() {
-	}
-	private void reactState3() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
 		} else {
-			if (conditionState3Tr0()) {
-				actionsState3Tr0();
-			} else {
-				if (conditionState3Tr1()) {
-					actionsState3Tr1();
-				} else {
-					if (conditionState3Tr2()) {
-						actionsState3Tr2();
-					}
+			if (occuredEvents.contains(defaultInterface.getEventEvent7())) {
+				if (activeStates.contains(State.State5)) {
+					activeStates.remove(State.State5);
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+				} else if (activeStates.contains(State.State7)) {
+					activeStates.remove(State.State7);
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+				} else if (activeStates.contains(State.State8)) {
+					activeStates.remove(State.State8);
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
 				}
-			}
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+				defaultInterface.setVarS2(defaultInterface.getVarS2() + (1));
+
+				activeStates.add(State.State3);
 
-		}
-	}
-	private void reactState4() {
-	}
-	private void reactState5() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
-		} else {
-			if (conditionState4Tr0()) {
-				actionsState4Tr0();
 			} else {
-				if (conditionState5Tr0()) {
-					actionsState5Tr0();
+				if (occuredEvents.contains(defaultInterface.getEventEvent3())) {
+					activeStates.remove(State.State5);
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() + (1));
+
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() + (1));
+
+					activeStates.add(State.State7);
+
 				} else {
-					if (conditionState5Tr1()) {
-						actionsState5Tr1();
+					if (occuredEvents.contains(defaultInterface
+							.getEventEvent12())) {
+						activeStates.remove(State.State5);
+						defaultInterface
+								.setVarS2(defaultInterface.getVarS2() - (1));
+
+						defaultInterface
+								.setVarS2(defaultInterface.getVarS2() - (1));
+
+						defaultInterface
+								.setVarS2(defaultInterface.getVarS2() - (1));
+
+						defaultInterface.setVarS1(1);
+
+						defaultInterface
+								.setVarS1(defaultInterface.getVarS1() + (1));
+
+						activeStates.add(State.State9);
+
 					} else {
-						if (conditionState5Tr2()) {
-							actionsState5Tr2();
+						if (occuredEvents.contains(defaultInterface
+								.getEventEvent15())) {
+							activeStates.remove(State.State5);
+							defaultInterface.setVarS2(defaultInterface
+									.getVarS2() - (1));
+
+							defaultInterface.setVarS2(defaultInterface
+									.getVarS2() - (1));
+
+							defaultInterface.setVarS2(defaultInterface
+									.getVarS2() - (1));
+
+							defaultInterface.setVarS1(1);
+
+							defaultInterface.setVarS1(defaultInterface
+									.getVarS1() + (1));
+
+							activeStates.add(State.State10);
+
 						}
 					}
 				}
@@ -490,17 +361,105 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 	private void reactState6() {
 	}
 	private void reactState7() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
+		if (occuredEvents.contains(defaultInterface.getEventEvent6())) {
+			if (activeStates.contains(State.State3)) {
+				activeStates.remove(State.State3);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+			} else if (activeStates.contains(State.State5)) {
+				activeStates.remove(State.State5);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+			} else if (activeStates.contains(State.State7)) {
+				activeStates.remove(State.State7);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+			} else if (activeStates.contains(State.State8)) {
+				activeStates.remove(State.State8);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+			}
+			defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+			defaultInterface.setVarS1(1);
+
+			defaultInterface.setVarS1(defaultInterface.getVarS1() + (1));
+
+			activeStates.add(State.State9);
+
 		} else {
-			if (conditionState4Tr0()) {
-				actionsState4Tr0();
+			if (occuredEvents.contains(defaultInterface.getEventEvent7())) {
+				if (activeStates.contains(State.State5)) {
+					activeStates.remove(State.State5);
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+				} else if (activeStates.contains(State.State7)) {
+					activeStates.remove(State.State7);
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+				} else if (activeStates.contains(State.State8)) {
+					activeStates.remove(State.State8);
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+				}
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+				defaultInterface.setVarS2(defaultInterface.getVarS2() + (1));
+
+				activeStates.add(State.State3);
+
 			} else {
-				if (conditionState6Tr0()) {
-					actionsState6Tr0();
+				if (occuredEvents.contains(defaultInterface.getEventEvent8())) {
+					if (activeStates.contains(State.State7)) {
+						activeStates.remove(State.State7);
+						defaultInterface
+								.setVarS2(defaultInterface.getVarS2() - (1));
+
+					} else if (activeStates.contains(State.State8)) {
+						activeStates.remove(State.State8);
+						defaultInterface
+								.setVarS2(defaultInterface.getVarS2() - (1));
+
+					}
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() + (1));
+
+					activeStates.add(State.State5);
+
 				} else {
-					if (conditionState7Tr0()) {
-						actionsState7Tr0();
+					if (occuredEvents.contains(defaultInterface
+							.getEventEvent4())) {
+						activeStates.remove(State.State7);
+						defaultInterface
+								.setVarS2(defaultInterface.getVarS2() - (1));
+
+						defaultInterface
+								.setVarS2(defaultInterface.getVarS2() + (1));
+
+						activeStates.add(State.State8);
+
 					}
 
 				}
@@ -510,23 +469,151 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 		}
 	}
 	private void reactState8() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
+		if (occuredEvents.contains(defaultInterface.getEventEvent6())) {
+			if (activeStates.contains(State.State3)) {
+				activeStates.remove(State.State3);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+			} else if (activeStates.contains(State.State5)) {
+				activeStates.remove(State.State5);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+			} else if (activeStates.contains(State.State7)) {
+				activeStates.remove(State.State7);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+			} else if (activeStates.contains(State.State8)) {
+				activeStates.remove(State.State8);
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+			}
+			defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+			defaultInterface.setVarS1(1);
+
+			defaultInterface.setVarS1(defaultInterface.getVarS1() + (1));
+
+			activeStates.add(State.State9);
+
 		} else {
-			if (conditionState4Tr0()) {
-				actionsState4Tr0();
+			if (occuredEvents.contains(defaultInterface.getEventEvent7())) {
+				if (activeStates.contains(State.State5)) {
+					activeStates.remove(State.State5);
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+				} else if (activeStates.contains(State.State7)) {
+					activeStates.remove(State.State7);
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+				} else if (activeStates.contains(State.State8)) {
+					activeStates.remove(State.State8);
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+				}
+				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
+
+				defaultInterface.setVarS2(defaultInterface.getVarS2() + (1));
+
+				activeStates.add(State.State3);
+
 			} else {
-				if (conditionState6Tr0()) {
-					actionsState6Tr0();
+				if (occuredEvents.contains(defaultInterface.getEventEvent8())) {
+					if (activeStates.contains(State.State7)) {
+						activeStates.remove(State.State7);
+						defaultInterface
+								.setVarS2(defaultInterface.getVarS2() - (1));
+
+					} else if (activeStates.contains(State.State8)) {
+						activeStates.remove(State.State8);
+						defaultInterface
+								.setVarS2(defaultInterface.getVarS2() - (1));
+
+					}
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() - (1));
+
+					defaultInterface
+							.setVarS2(defaultInterface.getVarS2() + (1));
+
+					activeStates.add(State.State5);
+
 				} else {
-					if (conditionState8Tr0()) {
-						actionsState8Tr0();
+					if (occuredEvents.contains(defaultInterface
+							.getEventEvent5())) {
+						activeStates.remove(State.State8);
+						defaultInterface
+								.setVarS2(defaultInterface.getVarS2() - (1));
+
+						defaultInterface
+								.setVarS2(defaultInterface.getVarS2() + (1));
+
+						activeStates.add(State.State7);
+
 					} else {
-						if (conditionState8Tr1()) {
-							actionsState8Tr1();
+						if (occuredEvents.contains(defaultInterface
+								.getEventEvent13())) {
+							activeStates.remove(State.State8);
+							defaultInterface.setVarS2(defaultInterface
+									.getVarS2() - (1));
+
+							defaultInterface.setVarS2(defaultInterface
+									.getVarS2() - (1));
+
+							defaultInterface.setVarS2(defaultInterface
+									.getVarS2() - (1));
+
+							defaultInterface.setVarS2(defaultInterface
+									.getVarS2() - (1));
+
+							defaultInterface.setVarS1(1);
+
+							defaultInterface.setVarS1(defaultInterface
+									.getVarS1() + (1));
+
+							activeStates.add(State.State9);
+
 						} else {
-							if (conditionState8Tr2()) {
-								actionsState8Tr2();
+							if (occuredEvents.contains(defaultInterface
+									.getEventEvent16())) {
+								activeStates.remove(State.State8);
+								defaultInterface.setVarS2(defaultInterface
+										.getVarS2() - (1));
+
+								defaultInterface.setVarS2(defaultInterface
+										.getVarS2() - (1));
+
+								defaultInterface.setVarS2(defaultInterface
+										.getVarS2() - (1));
+
+								defaultInterface.setVarS2(defaultInterface
+										.getVarS2() - (1));
+
+								defaultInterface.setVarS1(1);
+
+								defaultInterface.setVarS1(defaultInterface
+										.getVarS1() + (1));
+
+								activeStates.add(State.State10);
+
 							}
 						}
 					}

+ 37 - 99
test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_localactions/Test_LocalActionsCycleBasedStatemachine.java

@@ -101,124 +101,62 @@ public class Test_LocalActionsCycleBasedStatemachine
 
 	public void enter() {
 		cycleStartTime = System.currentTimeMillis();
-		enterSequenceState1();
-	}
-
-	private boolean conditionState1Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent1());
-	}
-	private boolean conditionState1Lr2() {
-		return true;
-	}
-	private boolean conditionState1Lr3() {
-		return occuredEvents.contains(defaultInterface.getEventEvent2());
-	}
-	private boolean conditionState1Lr4() {
-		return occuredEvents.contains(State1_time_event_0);
-	}
-	private boolean conditionState2Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent3());
-	}
-	private boolean conditionState2Lr2() {
-		return (occuredEvents.contains(defaultInterface.getEventEvent2()) || occuredEvents
-				.contains(defaultInterface.getEventEvent4()));
-	}
-	private boolean conditionState2Lr3() {
-		return occuredEvents.contains(State2_time_event_0);
-	}
-	private void actionsState1Tr0() {
-		exitSequenceState1();
-		enterSequenceState2();
-
-	}
-	private void actionsState1Lr2() {
-		defaultInterface.setVarI(2);
-
-	}
-	private void actionsState1Lr3() {
-		defaultInterface.setVarI(3);
-
-	}
-	private void actionsState1Lr4() {
-		defaultInterface.setVarC(defaultInterface.getVarC() + (1));
-
-	}
-	private void actionsState2Tr0() {
-		exitSequenceState2();
-		enterSequenceState1();
-
-	}
-	private void actionsState2Lr2() {
-		defaultInterface.setVarJ(2);
-
-	}
-	private void actionsState2Lr3() {
-		defaultInterface.setVarJ(3);
-
-	}
-	private void entryActionState1() {
 		getTimerHandler().setTimer(State1_time_event_0, 100, cycleStartTime);
 		defaultInterface.setVarI(1);
 
-	}
-	private void entryActionState2() {
-		getTimerHandler().setTimer(State2_time_event_0, 200, cycleStartTime);
-		defaultInterface.setVarJ(1);
+		activeStates.add(State.State1);
 
 	}
-	private void exitActionState1() {
-		getTimerHandler().resetTimer(State1_time_event_0);
-		defaultInterface.setVarI(0);
 
-	}
-	private void exitActionState2() {
-		getTimerHandler().resetTimer(State2_time_event_0);
-		defaultInterface.setVarJ(0);
+	private void reactState1() {
+		if (occuredEvents.contains(defaultInterface.getEventEvent1())) {
+			activeStates.remove(State.State1);
+			getTimerHandler().resetTimer(State1_time_event_0);
+			defaultInterface.setVarI(0);
 
-	}
+			getTimerHandler()
+					.setTimer(State2_time_event_0, 200, cycleStartTime);
+			defaultInterface.setVarJ(1);
 
-	private void enterSequenceState1() {
-		entryActionState1();
-		activeStates.add(State.State1);
-	}
+			activeStates.add(State.State2);
 
-	private void enterSequenceState2() {
-		entryActionState2();
-		activeStates.add(State.State2);
-	}
-	private void exitSequenceState1() {
-		activeStates.remove(State.State1);
-		exitActionState1();
-	}
-	private void exitSequenceState2() {
-		activeStates.remove(State.State2);
-		exitActionState2();
-	}
-	private void reactState1() {
-		if (conditionState1Tr0()) {
-			actionsState1Tr0();
 		} else {
-			if (conditionState1Lr2()) {
-				actionsState1Lr2();
+			if (true) {
+				defaultInterface.setVarI(2);
+
 			}
-			if (conditionState1Lr3()) {
-				actionsState1Lr3();
+			if (occuredEvents.contains(defaultInterface.getEventEvent2())) {
+				defaultInterface.setVarI(3);
+
 			}
-			if (conditionState1Lr4()) {
-				actionsState1Lr4();
+			if (occuredEvents.contains(State1_time_event_0)) {
+				defaultInterface.setVarC(defaultInterface.getVarC() + (1));
+
 			}
 
 		}
 	}
 	private void reactState2() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
+		if (occuredEvents.contains(defaultInterface.getEventEvent3())) {
+			activeStates.remove(State.State2);
+			getTimerHandler().resetTimer(State2_time_event_0);
+			defaultInterface.setVarJ(0);
+
+			getTimerHandler()
+					.setTimer(State1_time_event_0, 100, cycleStartTime);
+			defaultInterface.setVarI(1);
+
+			activeStates.add(State.State1);
+
 		} else {
-			if (conditionState2Lr2()) {
-				actionsState2Lr2();
+			if ((occuredEvents.contains(defaultInterface.getEventEvent2()) || occuredEvents
+					.contains(defaultInterface.getEventEvent4()))) {
+				defaultInterface.setVarJ(2);
+
 			}
-			if (conditionState2Lr3()) {
-				actionsState2Lr3();
+			if (occuredEvents.contains(State2_time_event_0)) {
+				defaultInterface.setVarJ(3);
+
 			}
 
 		}

+ 33 - 117
test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_parallelregions/Test_ParallelRegionsCycleBasedStatemachine.java

@@ -66,141 +66,50 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 	}
 
 	public void enter() {
-		enterSequenceState1();
-	}
-
-	private boolean conditionState1Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent1());
-	}
-	private boolean conditionState3Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent2());
-	}
-	private boolean conditionState5Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent3());
-	}
-	private boolean conditionState6Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent4());
-	}
-	private boolean conditionState7Tr0() {
-		return (occuredEvents.contains(defaultInterface.getEventEvent5()) || occuredEvents
-				.contains(defaultInterface.getEventEvent3()));
-	}
-	private boolean conditionState8Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent6());
-	}
-	private void actionsState1Tr0() {
-		exitSequenceState1();
-		enterSequenceState2();
-
-	}
-	private void actionsState3Tr0() {
-		exitSequenceState3();
-		enterSequenceState4();
-
-	}
-	private void actionsState5Tr0() {
-		exitSequenceState5();
-		enterSequenceState6();
-
-	}
-	private void actionsState6Tr0() {
-		exitSequenceState6();
-		enterSequenceState5();
-
-	}
-	private void actionsState7Tr0() {
-		exitSequenceState7();
-		enterSequenceState8();
-
-	}
-	private void actionsState8Tr0() {
-		exitSequenceState8();
-		enterSequenceState7();
-
-	}
-
-	private void enterSequenceState1() {
 		activeStates.add(State.State1);
-	}
-
-	private void enterSequenceState2() {
-		enterSequenceState3();
-		enterSequenceState7();
-	}
-
-	private void enterSequenceState3() {
-		activeStates.add(State.State3);
-	}
 
-	private void enterSequenceState4() {
-		enterSequenceState5();
-		enterSequenceState9();
 	}
 
-	private void enterSequenceState5() {
-		activeStates.add(State.State5);
-	}
+	private void reactState1() {
+		if (occuredEvents.contains(defaultInterface.getEventEvent1())) {
+			activeStates.remove(State.State1);
 
-	private void enterSequenceState6() {
-		activeStates.add(State.State6);
-	}
+			activeStates.add(State.State3);
 
-	private void enterSequenceState9() {
-		activeStates.add(State.State9);
-	}
+			activeStates.add(State.State7);
 
-	private void enterSequenceState7() {
-		activeStates.add(State.State7);
-	}
-
-	private void enterSequenceState8() {
-		activeStates.add(State.State8);
-	}
-	private void exitSequenceState1() {
-		activeStates.remove(State.State1);
-	}
-	private void exitSequenceState3() {
-		activeStates.remove(State.State3);
-	}
-	private void exitSequenceState5() {
-		activeStates.remove(State.State5);
-	}
-	private void exitSequenceState6() {
-		activeStates.remove(State.State6);
-	}
-	private void exitSequenceState9() {
-		activeStates.remove(State.State9);
-	}
-	private void exitSequenceState7() {
-		activeStates.remove(State.State7);
-	}
-	private void exitSequenceState8() {
-		activeStates.remove(State.State8);
-	}
-	private void reactState1() {
-		if (conditionState1Tr0()) {
-			actionsState1Tr0();
 		}
 	}
 	private void reactState2() {
 	}
 	private void reactState3() {
-		if (conditionState3Tr0()) {
-			actionsState3Tr0();
+		if (occuredEvents.contains(defaultInterface.getEventEvent2())) {
+			activeStates.remove(State.State3);
+
+			activeStates.add(State.State5);
+
+			activeStates.add(State.State9);
+
 		}
 
 	}
 	private void reactState4() {
 	}
 	private void reactState5() {
-		if (conditionState5Tr0()) {
-			actionsState5Tr0();
+		if (occuredEvents.contains(defaultInterface.getEventEvent3())) {
+			activeStates.remove(State.State5);
+
+			activeStates.add(State.State6);
+
 		}
 
 	}
 	private void reactState6() {
-		if (conditionState6Tr0()) {
-			actionsState6Tr0();
+		if (occuredEvents.contains(defaultInterface.getEventEvent4())) {
+			activeStates.remove(State.State6);
+
+			activeStates.add(State.State5);
+
 		}
 
 	}
@@ -208,14 +117,21 @@ public class Test_ParallelRegionsCycleBasedStatemachine
 
 	}
 	private void reactState7() {
-		if (conditionState7Tr0()) {
-			actionsState7Tr0();
+		if ((occuredEvents.contains(defaultInterface.getEventEvent5()) || occuredEvents
+				.contains(defaultInterface.getEventEvent3()))) {
+			activeStates.remove(State.State7);
+
+			activeStates.add(State.State8);
+
 		}
 
 	}
 	private void reactState8() {
-		if (conditionState8Tr0()) {
-			actionsState8Tr0();
+		if (occuredEvents.contains(defaultInterface.getEventEvent6())) {
+			activeStates.remove(State.State8);
+
+			activeStates.add(State.State7);
+
 		}
 
 	}

+ 179 - 174
test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_shallowhistory/Test_ShallowHistoryCycleBasedStatemachine.java

@@ -64,194 +64,95 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 	}
 
 	public void enter() {
-		enterSequenceState1();
-	}
-
-	private boolean conditionState1Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent1());
-	}
-	private boolean conditionState2Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent2());
-	}
-	private boolean conditionState3Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent3());
-	}
-	private boolean conditionState4Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent4());
-	}
-	private boolean conditionState6Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent5());
-	}
-	private boolean conditionState7Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent6());
-	}
-	private boolean conditionState8Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent7());
-	}
-	private boolean conditionState9Tr0() {
-		return occuredEvents.contains(defaultInterface.getEventEvent8());
-	}
-	private void actionsState1Tr0() {
-		exitSequenceState1();
-		enterSequenceState2();
+		activeStates.add(State.State1);
 
 	}
-	private void actionsState2Tr0() {
-		exitSequenceState2();
-		enterSequenceState1();
 
-	}
-	private void actionsState3Tr0() {
-		exitSequenceState3();
-		enterSequenceState4();
+	private void reactState1() {
+		if (occuredEvents.contains(defaultInterface.getEventEvent1())) {
+			activeStates.remove(State.State1);
 
-	}
-	private void actionsState4Tr0() {
-		exitSequenceState4();
-		enterSequenceState5();
+			activeStates.add(State.State3);
 
+		}
 	}
-	private void actionsState6Tr0() {
-		exitSequenceState6();
-		enterSequenceState7();
-
+	private void reactState2() {
 	}
-	private void actionsState7Tr0() {
-		exitSequenceState7();
-		enterSequenceState6();
+	private void reactState3() {
+		if (occuredEvents.contains(defaultInterface.getEventEvent2())) {
+			if (activeStates.contains(State.State3)) {
+				activeStates.remove(State.State3);
 
-	}
-	private void actionsState8Tr0() {
-		exitSequenceState8();
-		enterSequenceState9();
+			} else if (activeStates.contains(State.State6)) {
+				activeStates.remove(State.State6);
 
-	}
-	private void actionsState9Tr0() {
-		exitSequenceState9();
-		enterSequenceState8();
+			} else if (activeStates.contains(State.State8)) {
+				activeStates.remove(State.State8);
 
-	}
+			} else if (activeStates.contains(State.State9)) {
+				activeStates.remove(State.State9);
 
-	private void enterSequenceState1() {
-		activeStates.add(State.State1);
-	}
+			} else if (activeStates.contains(State.State5)) {
+				activeStates.remove(State.State5);
 
-	private void enterSequenceState2() {
-		enterSequenceState3();
-	}
+			}
 
-	private void enterSequenceState3() {
-		activeStates.add(State.State3);
-	}
+			activeStates.add(State.State1);
 
-	private void enterSequenceState4() {
-		enterSequenceState6();
-	}
+		} else {
+			if (occuredEvents.contains(defaultInterface.getEventEvent3())) {
+				activeStates.remove(State.State3);
 
-	private void enterSequenceState6() {
-		activeStates.add(State.State6);
-	}
+				activeStates.add(State.State6);
 
-	private void enterSequenceState7() {
-		enterSequenceState8();
-	}
+			}
 
-	private void enterSequenceState8() {
-		activeStates.add(State.State8);
+		}
 	}
-
-	private void enterSequenceState9() {
-		activeStates.add(State.State9);
+	private void reactState4() {
 	}
+	private void reactState6() {
+		if (occuredEvents.contains(defaultInterface.getEventEvent2())) {
+			if (activeStates.contains(State.State3)) {
+				activeStates.remove(State.State3);
 
-	private void enterSequenceState5() {
-		activeStates.add(State.State5);
-	}
-	private void exitSequenceState1() {
-		activeStates.remove(State.State1);
-	}
-	private void exitSequenceState2() {
-		if (activeStates.contains(State.State3)) {
-			exitSequenceState3();
+			} else if (activeStates.contains(State.State6)) {
+				activeStates.remove(State.State6);
 
-		} else if (activeStates.contains(State.State6)) {
-			exitSequenceState6();
+			} else if (activeStates.contains(State.State8)) {
+				activeStates.remove(State.State8);
 
-		} else if (activeStates.contains(State.State8)) {
-			exitSequenceState8();
+			} else if (activeStates.contains(State.State9)) {
+				activeStates.remove(State.State9);
 
-		} else if (activeStates.contains(State.State9)) {
-			exitSequenceState9();
+			} else if (activeStates.contains(State.State5)) {
+				activeStates.remove(State.State5);
 
-		} else if (activeStates.contains(State.State5)) {
-			exitSequenceState5();
+			}
 
-		}
-	}
-	private void exitSequenceState3() {
-		activeStates.remove(State.State3);
-	}
-	private void exitSequenceState4() {
-		if (activeStates.contains(State.State6)) {
-			exitSequenceState6();
+			activeStates.add(State.State1);
 
-		} else if (activeStates.contains(State.State8)) {
-			exitSequenceState8();
+		} else {
+			if (occuredEvents.contains(defaultInterface.getEventEvent4())) {
+				if (activeStates.contains(State.State6)) {
+					activeStates.remove(State.State6);
 
-		} else if (activeStates.contains(State.State9)) {
-			exitSequenceState9();
+				} else if (activeStates.contains(State.State8)) {
+					activeStates.remove(State.State8);
 
-		}
-	}
-	private void exitSequenceState6() {
-		activeStates.remove(State.State6);
-	}
-	private void exitSequenceState7() {
-		if (activeStates.contains(State.State8)) {
-			exitSequenceState8();
+				} else if (activeStates.contains(State.State9)) {
+					activeStates.remove(State.State9);
 
-		} else if (activeStates.contains(State.State9)) {
-			exitSequenceState9();
+				}
 
-		}
-	}
-	private void exitSequenceState8() {
-		activeStates.remove(State.State8);
-	}
-	private void exitSequenceState9() {
-		activeStates.remove(State.State9);
-	}
-	private void exitSequenceState5() {
-		activeStates.remove(State.State5);
-	}
-	private void reactState1() {
-		if (conditionState1Tr0()) {
-			actionsState1Tr0();
-		}
-	}
-	private void reactState2() {
-	}
-	private void reactState3() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
-		} else {
-			if (conditionState3Tr0()) {
-				actionsState3Tr0();
-			}
+				activeStates.add(State.State5);
 
-		}
-	}
-	private void reactState4() {
-	}
-	private void reactState6() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
-		} else {
-			if (conditionState4Tr0()) {
-				actionsState4Tr0();
 			} else {
-				if (conditionState6Tr0()) {
-					actionsState6Tr0();
+				if (occuredEvents.contains(defaultInterface.getEventEvent5())) {
+					activeStates.remove(State.State6);
+
+					activeStates.add(State.State8);
+
 				}
 
 			}
@@ -261,17 +162,60 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 	private void reactState7() {
 	}
 	private void reactState8() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
+		if (occuredEvents.contains(defaultInterface.getEventEvent2())) {
+			if (activeStates.contains(State.State3)) {
+				activeStates.remove(State.State3);
+
+			} else if (activeStates.contains(State.State6)) {
+				activeStates.remove(State.State6);
+
+			} else if (activeStates.contains(State.State8)) {
+				activeStates.remove(State.State8);
+
+			} else if (activeStates.contains(State.State9)) {
+				activeStates.remove(State.State9);
+
+			} else if (activeStates.contains(State.State5)) {
+				activeStates.remove(State.State5);
+
+			}
+
+			activeStates.add(State.State1);
+
 		} else {
-			if (conditionState4Tr0()) {
-				actionsState4Tr0();
+			if (occuredEvents.contains(defaultInterface.getEventEvent4())) {
+				if (activeStates.contains(State.State6)) {
+					activeStates.remove(State.State6);
+
+				} else if (activeStates.contains(State.State8)) {
+					activeStates.remove(State.State8);
+
+				} else if (activeStates.contains(State.State9)) {
+					activeStates.remove(State.State9);
+
+				}
+
+				activeStates.add(State.State5);
+
 			} else {
-				if (conditionState7Tr0()) {
-					actionsState7Tr0();
+				if (occuredEvents.contains(defaultInterface.getEventEvent6())) {
+					if (activeStates.contains(State.State8)) {
+						activeStates.remove(State.State8);
+
+					} else if (activeStates.contains(State.State9)) {
+						activeStates.remove(State.State9);
+
+					}
+
+					activeStates.add(State.State6);
+
 				} else {
-					if (conditionState8Tr0()) {
-						actionsState8Tr0();
+					if (occuredEvents.contains(defaultInterface
+							.getEventEvent7())) {
+						activeStates.remove(State.State8);
+
+						activeStates.add(State.State9);
+
 					}
 
 				}
@@ -281,17 +225,60 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 		}
 	}
 	private void reactState9() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
+		if (occuredEvents.contains(defaultInterface.getEventEvent2())) {
+			if (activeStates.contains(State.State3)) {
+				activeStates.remove(State.State3);
+
+			} else if (activeStates.contains(State.State6)) {
+				activeStates.remove(State.State6);
+
+			} else if (activeStates.contains(State.State8)) {
+				activeStates.remove(State.State8);
+
+			} else if (activeStates.contains(State.State9)) {
+				activeStates.remove(State.State9);
+
+			} else if (activeStates.contains(State.State5)) {
+				activeStates.remove(State.State5);
+
+			}
+
+			activeStates.add(State.State1);
+
 		} else {
-			if (conditionState4Tr0()) {
-				actionsState4Tr0();
+			if (occuredEvents.contains(defaultInterface.getEventEvent4())) {
+				if (activeStates.contains(State.State6)) {
+					activeStates.remove(State.State6);
+
+				} else if (activeStates.contains(State.State8)) {
+					activeStates.remove(State.State8);
+
+				} else if (activeStates.contains(State.State9)) {
+					activeStates.remove(State.State9);
+
+				}
+
+				activeStates.add(State.State5);
+
 			} else {
-				if (conditionState7Tr0()) {
-					actionsState7Tr0();
+				if (occuredEvents.contains(defaultInterface.getEventEvent6())) {
+					if (activeStates.contains(State.State8)) {
+						activeStates.remove(State.State8);
+
+					} else if (activeStates.contains(State.State9)) {
+						activeStates.remove(State.State9);
+
+					}
+
+					activeStates.add(State.State6);
+
 				} else {
-					if (conditionState9Tr0()) {
-						actionsState9Tr0();
+					if (occuredEvents.contains(defaultInterface
+							.getEventEvent8())) {
+						activeStates.remove(State.State9);
+
+						activeStates.add(State.State8);
+
 					}
 
 				}
@@ -301,8 +288,26 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 		}
 	}
 	private void reactState5() {
-		if (conditionState2Tr0()) {
-			actionsState2Tr0();
+		if (occuredEvents.contains(defaultInterface.getEventEvent2())) {
+			if (activeStates.contains(State.State3)) {
+				activeStates.remove(State.State3);
+
+			} else if (activeStates.contains(State.State6)) {
+				activeStates.remove(State.State6);
+
+			} else if (activeStates.contains(State.State8)) {
+				activeStates.remove(State.State8);
+
+			} else if (activeStates.contains(State.State9)) {
+				activeStates.remove(State.State9);
+
+			} else if (activeStates.contains(State.State5)) {
+				activeStates.remove(State.State5);
+
+			}
+
+			activeStates.add(State.State1);
+
 		} else {
 
 		}

+ 81 - 114
test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_transition/Test_TransitionCycleBasedStatemachine.java

@@ -124,140 +124,107 @@ public class Test_TransitionCycleBasedStatemachine
 
 	public void enter() {
 		cycleStartTime = System.currentTimeMillis();
-		enterSequenceState1();
-	}
+		getTimerHandler().setTimer(State1_time_event_0, (10 * 1000),
+				cycleStartTime);
+		getTimerHandler().setTimer(State1_time_event_1, 100, cycleStartTime);
 
-	private boolean conditionState1Tr0() {
-		return (occuredEvents.contains(interfaceA.getEventEvent1()) || occuredEvents
-				.contains(interfaceA.getEventEvent2()));
-	}
-	private boolean conditionState1Tr1() {
-		return (defaultInterface.getVarI() == 5);
-	}
-	private boolean conditionState1Tr2() {
-		return (occuredEvents.contains(interfaceA.getEventEvent3()) && (defaultInterface
-				.getVarJ() < 20));
-	}
-	private boolean conditionState1Tr3() {
-		return ((occuredEvents.contains(interfaceA.getEventEvent3()) || occuredEvents
-				.contains(interfaceA.getEventEvent4())) && (defaultInterface
-				.getVarJ() > 30));
-	}
-	private boolean conditionState1Tr4() {
-		return occuredEvents.contains(defaultInterface.getEventEvent6());
-	}
-	private boolean conditionState1Tr5() {
-		return occuredEvents.contains(defaultInterface.getEventEvent7());
-	}
-	private boolean conditionState1Tr6() {
-		return occuredEvents.contains(State1_time_event_0);
-	}
-	private boolean conditionState1Tr7() {
-		return occuredEvents.contains(State1_time_event_1);
-	}
-	private boolean conditionState1Tr8() {
-		return occuredEvents.contains(interfaceA.getEventEvent1());
-	}
-	private void actionsState1Tr0() {
-		exitSequenceState1();
-		enterSequenceState2();
+		activeStates.add(State.State1);
 
 	}
-	private void actionsState1Tr1() {
-		exitSequenceState1();
-		enterSequenceState2();
 
-	}
-	private void actionsState1Tr2() {
-		exitSequenceState1();
-		enterSequenceState2();
+	private void reactState1() {
+		if ((occuredEvents.contains(interfaceA.getEventEvent1()) || occuredEvents
+				.contains(interfaceA.getEventEvent2()))) {
+			activeStates.remove(State.State1);
+			getTimerHandler().resetTimer(State1_time_event_0);
+			getTimerHandler().resetTimer(State1_time_event_1);
 
-	}
-	private void actionsState1Tr3() {
-		exitSequenceState1();
-		enterSequenceState2();
+			activeStates.add(State.State2);
 
-	}
-	private void actionsState1Tr4() {
-		exitSequenceState1();
-		defaultInterface.setVarI(15);
+		} else {
+			if ((defaultInterface.getVarI() == 5)) {
+				activeStates.remove(State.State1);
+				getTimerHandler().resetTimer(State1_time_event_0);
+				getTimerHandler().resetTimer(State1_time_event_1);
 
-		enterSequenceState2();
+				activeStates.add(State.State2);
 
-	}
-	private void actionsState1Tr5() {
-		exitSequenceState1();
-		defaultInterface.setVarJ((defaultInterface.getVarI() * 9));
+			} else {
+				if ((occuredEvents.contains(interfaceA.getEventEvent3()) && (defaultInterface
+						.getVarJ() < 20))) {
+					activeStates.remove(State.State1);
+					getTimerHandler().resetTimer(State1_time_event_0);
+					getTimerHandler().resetTimer(State1_time_event_1);
 
-		enterSequenceState2();
+					activeStates.add(State.State2);
 
-	}
-	private void actionsState1Tr6() {
-		exitSequenceState1();
-		enterSequenceState2();
+				} else {
+					if (((occuredEvents.contains(interfaceA.getEventEvent3()) || occuredEvents
+							.contains(interfaceA.getEventEvent4())) && (defaultInterface
+							.getVarJ() > 30))) {
+						activeStates.remove(State.State1);
+						getTimerHandler().resetTimer(State1_time_event_0);
+						getTimerHandler().resetTimer(State1_time_event_1);
 
-	}
-	private void actionsState1Tr7() {
-		exitSequenceState1();
-		enterSequenceState2();
+						activeStates.add(State.State2);
 
-	}
-	private void actionsState1Tr8() {
-		exitSequenceState1();
-		enterSequenceState2();
+					} else {
+						if (occuredEvents.contains(defaultInterface
+								.getEventEvent6())) {
+							activeStates.remove(State.State1);
+							getTimerHandler().resetTimer(State1_time_event_0);
+							getTimerHandler().resetTimer(State1_time_event_1);
 
-	}
-	private void entryActionState1() {
-		getTimerHandler().setTimer(State1_time_event_0, (10 * 1000),
-				cycleStartTime);
-		getTimerHandler().setTimer(State1_time_event_1, 100, cycleStartTime);
+							defaultInterface.setVarI(15);
 
-	}
-	private void exitActionState1() {
-		getTimerHandler().resetTimer(State1_time_event_0);
-		getTimerHandler().resetTimer(State1_time_event_1);
+							activeStates.add(State.State2);
 
-	}
+						} else {
+							if (occuredEvents.contains(defaultInterface
+									.getEventEvent7())) {
+								activeStates.remove(State.State1);
+								getTimerHandler().resetTimer(
+										State1_time_event_0);
+								getTimerHandler().resetTimer(
+										State1_time_event_1);
 
-	private void enterSequenceState1() {
-		entryActionState1();
-		activeStates.add(State.State1);
-	}
+								defaultInterface.setVarJ((defaultInterface
+										.getVarI() * 9));
+
+								activeStates.add(State.State2);
 
-	private void enterSequenceState2() {
-		activeStates.add(State.State2);
-	}
-	private void exitSequenceState1() {
-		activeStates.remove(State.State1);
-		exitActionState1();
-	}
-	private void reactState1() {
-		if (conditionState1Tr0()) {
-			actionsState1Tr0();
-		} else {
-			if (conditionState1Tr1()) {
-				actionsState1Tr1();
-			} else {
-				if (conditionState1Tr2()) {
-					actionsState1Tr2();
-				} else {
-					if (conditionState1Tr3()) {
-						actionsState1Tr3();
-					} else {
-						if (conditionState1Tr4()) {
-							actionsState1Tr4();
-						} else {
-							if (conditionState1Tr5()) {
-								actionsState1Tr5();
 							} else {
-								if (conditionState1Tr6()) {
-									actionsState1Tr6();
+								if (occuredEvents.contains(State1_time_event_0)) {
+									activeStates.remove(State.State1);
+									getTimerHandler().resetTimer(
+											State1_time_event_0);
+									getTimerHandler().resetTimer(
+											State1_time_event_1);
+
+									activeStates.add(State.State2);
+
 								} else {
-									if (conditionState1Tr7()) {
-										actionsState1Tr7();
+									if (occuredEvents
+											.contains(State1_time_event_1)) {
+										activeStates.remove(State.State1);
+										getTimerHandler().resetTimer(
+												State1_time_event_0);
+										getTimerHandler().resetTimer(
+												State1_time_event_1);
+
+										activeStates.add(State.State2);
+
 									} else {
-										if (conditionState1Tr8()) {
-											actionsState1Tr8();
+										if (occuredEvents.contains(interfaceA
+												.getEventEvent1())) {
+											activeStates.remove(State.State1);
+											getTimerHandler().resetTimer(
+													State1_time_event_0);
+											getTimerHandler().resetTimer(
+													State1_time_event_1);
+
+											activeStates.add(State.State2);
+
 										}
 									}
 								}