Browse Source

Added NullState to avoid NPE.

markus.muehlbrandt@itemis.de 13 years ago
parent
commit
714dd1c09c
24 changed files with 1258 additions and 546 deletions
  1. 131 128
      examples/org.yakindu.sct.generator.java.trafficlight/src-gen/org/yakindu/sct/runtime/java/trafficlightwaiting/TrafficLightWaitingCycleBasedStatemachine.java
  2. 0 1
      examples/org.yakindu.sct.generator.java.trafficlight/src-gen/org/yakindu/sct/runtime/java/trafficlightwaiting/TrafficLightWaitingEventBasedStatemachine.java
  3. 16 13
      plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/templates/CustomCycleBasedStatemachine.xpt
  4. 4 1
      plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/templates/Naming.ext
  5. 28 25
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/interfacetest/InterfaceTestCycleBasedStatemachine.java
  6. 80 77
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_deephistory/Test_DeepHistoryCycleBasedStatemachine.java
  7. 18 15
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_expression/Test_ExpressionCycleBasedStatemachine.java
  8. 85 82
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_hierarchy/Test_HierarchyCycleBasedStatemachine.java
  9. 18 15
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_localactions/Test_LocalActionsCycleBasedStatemachine.java
  10. 11 1
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_parallelregions/DefaultInterface.java
  11. 49 0
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_parallelregions/DefaultInterfaceImpl.java
  12. 693 85
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_parallelregions/Test_ParallelRegionsCycleBasedStatemachine.java
  13. 80 77
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_shallowhistory/Test_ShallowHistoryCycleBasedStatemachine.java
  14. 35 26
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_transition/Test_TransitionCycleBasedStatemachine.java
  15. 1 0
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestExpressionCycleBasedStatemachine.java
  16. 1 0
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestExpressionEventBasedStatemachine.java
  17. 1 0
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestHierarchyCycleBasedStatemachine.java
  18. 1 0
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestHierarchyEventBasedStatemachine.java
  19. 1 0
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestInterfaceTestCycleBasedStatemachine.java
  20. 1 0
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestInterfaceTestEventBasedStatemachine.java
  21. 1 0
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestLocalActionsCycleBasedStatemachine.java
  22. 1 0
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestLocalActionsEventBasedStatemachine.java
  23. 1 0
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestParallelRegionsCycleBasedStatemachine.java
  24. 1 0
      test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestParallelRegionsEventBasedStatemachine.java

+ 131 - 128
examples/org.yakindu.sct.generator.java.trafficlight/src-gen/org/yakindu/sct/runtime/java/trafficlightwaiting/TrafficLightWaitingCycleBasedStatemachine.java

@@ -50,7 +50,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 			TimeEvents.YellowOff_time_event_0, 2, false);
 
 	public enum State {
-		On, StreetGreen, PedWaiting, WaitOn, WaitOff, StreetAttention, StreetRed, PedestrianGreen, PedestrianRed, StreetPrepare, Off, YellowOn, YellowOff,
+		On, StreetGreen, PedWaiting, WaitOn, WaitOff, StreetAttention, StreetRed, PedestrianGreen, PedestrianRed, StreetPrepare, Off, YellowOn, YellowOff, $NullState$
 	};
 
 	private InterfaceTrafficLightImpl interfaceTrafficLight;
@@ -101,7 +101,10 @@ public class TrafficLightWaitingCycleBasedStatemachine
 	}
 
 	public void init() {
-
+		for (int i = 0; i < stateVector.length; i++) {
+			stateVector[i] = State.$NullState$;
+		}
+		occuredEvents.clear();
 	}
 
 	public boolean isStateActive(State state) {
@@ -166,12 +169,12 @@ public class TrafficLightWaitingCycleBasedStatemachine
 			switch (stateVector[0]) {
 
 				case StreetGreen :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case WaitOn :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOn_time_event_0);
 
@@ -181,7 +184,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 					break;
 
 				case WaitOff :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOff_time_event_0);
 
@@ -191,35 +194,35 @@ public class TrafficLightWaitingCycleBasedStatemachine
 					break;
 
 				case StreetAttention :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetAttention_time_event_0);
 
 					break;
 
 				case StreetRed :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetRed_time_event_0);
 
 					break;
 
 				case PedestrianGreen :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(PedestrianGreen_time_event_0);
 
 					break;
 
 				case PedestrianRed :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(PedestrianRed_time_event_0);
 
 					break;
 
 				case StreetPrepare :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetPrepare_time_event_0);
 
@@ -244,7 +247,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 
 		} else {
 			if (occuredEvents.contains(defaultInterface.getEventKeypress1())) {
-				stateVector[0] = null;
+				stateVector[0] = State.$NullState$;
 
 				getTimerService().setTimer(PedWaiting_time_event_0, (7 * 1000),
 						cycleStartTime);
@@ -268,12 +271,12 @@ public class TrafficLightWaitingCycleBasedStatemachine
 			switch (stateVector[0]) {
 
 				case StreetGreen :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case WaitOn :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOn_time_event_0);
 
@@ -283,7 +286,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 					break;
 
 				case WaitOff :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOff_time_event_0);
 
@@ -293,35 +296,35 @@ public class TrafficLightWaitingCycleBasedStatemachine
 					break;
 
 				case StreetAttention :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetAttention_time_event_0);
 
 					break;
 
 				case StreetRed :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetRed_time_event_0);
 
 					break;
 
 				case PedestrianGreen :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(PedestrianGreen_time_event_0);
 
 					break;
 
 				case PedestrianRed :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(PedestrianRed_time_event_0);
 
 					break;
 
 				case StreetPrepare :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetPrepare_time_event_0);
 
@@ -350,14 +353,14 @@ public class TrafficLightWaitingCycleBasedStatemachine
 				switch (stateVector[0]) {
 
 					case WaitOn :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						getTimerService().resetTimer(WaitOn_time_event_0);
 
 						break;
 
 					case WaitOff :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						getTimerService().resetTimer(WaitOff_time_event_0);
 
@@ -380,7 +383,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 
 			} else {
 				if (occuredEvents.contains(WaitOn_time_event_0)) {
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOn_time_event_0);
 
@@ -403,12 +406,12 @@ public class TrafficLightWaitingCycleBasedStatemachine
 			switch (stateVector[0]) {
 
 				case StreetGreen :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case WaitOn :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOn_time_event_0);
 
@@ -418,7 +421,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 					break;
 
 				case WaitOff :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOff_time_event_0);
 
@@ -428,35 +431,35 @@ public class TrafficLightWaitingCycleBasedStatemachine
 					break;
 
 				case StreetAttention :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetAttention_time_event_0);
 
 					break;
 
 				case StreetRed :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetRed_time_event_0);
 
 					break;
 
 				case PedestrianGreen :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(PedestrianGreen_time_event_0);
 
 					break;
 
 				case PedestrianRed :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(PedestrianRed_time_event_0);
 
 					break;
 
 				case StreetPrepare :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetPrepare_time_event_0);
 
@@ -485,14 +488,14 @@ public class TrafficLightWaitingCycleBasedStatemachine
 				switch (stateVector[0]) {
 
 					case WaitOn :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						getTimerService().resetTimer(WaitOn_time_event_0);
 
 						break;
 
 					case WaitOff :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						getTimerService().resetTimer(WaitOff_time_event_0);
 
@@ -515,7 +518,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 
 			} else {
 				if (occuredEvents.contains(WaitOff_time_event_0)) {
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOff_time_event_0);
 
@@ -538,12 +541,12 @@ public class TrafficLightWaitingCycleBasedStatemachine
 			switch (stateVector[0]) {
 
 				case StreetGreen :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case WaitOn :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOn_time_event_0);
 
@@ -553,7 +556,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 					break;
 
 				case WaitOff :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOff_time_event_0);
 
@@ -563,35 +566,35 @@ public class TrafficLightWaitingCycleBasedStatemachine
 					break;
 
 				case StreetAttention :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetAttention_time_event_0);
 
 					break;
 
 				case StreetRed :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetRed_time_event_0);
 
 					break;
 
 				case PedestrianGreen :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(PedestrianGreen_time_event_0);
 
 					break;
 
 				case PedestrianRed :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(PedestrianRed_time_event_0);
 
 					break;
 
 				case StreetPrepare :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetPrepare_time_event_0);
 
@@ -616,7 +619,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 
 		} else {
 			if (occuredEvents.contains(StreetAttention_time_event_0)) {
-				stateVector[0] = null;
+				stateVector[0] = State.$NullState$;
 
 				getTimerService().resetTimer(StreetAttention_time_event_0);
 
@@ -639,12 +642,12 @@ public class TrafficLightWaitingCycleBasedStatemachine
 			switch (stateVector[0]) {
 
 				case StreetGreen :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case WaitOn :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOn_time_event_0);
 
@@ -654,7 +657,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 					break;
 
 				case WaitOff :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOff_time_event_0);
 
@@ -664,35 +667,35 @@ public class TrafficLightWaitingCycleBasedStatemachine
 					break;
 
 				case StreetAttention :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetAttention_time_event_0);
 
 					break;
 
 				case StreetRed :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetRed_time_event_0);
 
 					break;
 
 				case PedestrianGreen :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(PedestrianGreen_time_event_0);
 
 					break;
 
 				case PedestrianRed :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(PedestrianRed_time_event_0);
 
 					break;
 
 				case StreetPrepare :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetPrepare_time_event_0);
 
@@ -717,7 +720,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 
 		} else {
 			if (occuredEvents.contains(StreetRed_time_event_0)) {
-				stateVector[0] = null;
+				stateVector[0] = State.$NullState$;
 
 				getTimerService().resetTimer(StreetRed_time_event_0);
 
@@ -739,12 +742,12 @@ public class TrafficLightWaitingCycleBasedStatemachine
 			switch (stateVector[0]) {
 
 				case StreetGreen :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case WaitOn :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOn_time_event_0);
 
@@ -754,7 +757,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 					break;
 
 				case WaitOff :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOff_time_event_0);
 
@@ -764,35 +767,35 @@ public class TrafficLightWaitingCycleBasedStatemachine
 					break;
 
 				case StreetAttention :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetAttention_time_event_0);
 
 					break;
 
 				case StreetRed :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetRed_time_event_0);
 
 					break;
 
 				case PedestrianGreen :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(PedestrianGreen_time_event_0);
 
 					break;
 
 				case PedestrianRed :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(PedestrianRed_time_event_0);
 
 					break;
 
 				case StreetPrepare :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetPrepare_time_event_0);
 
@@ -817,7 +820,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 
 		} else {
 			if (occuredEvents.contains(PedestrianGreen_time_event_0)) {
-				stateVector[0] = null;
+				stateVector[0] = State.$NullState$;
 
 				getTimerService().resetTimer(PedestrianGreen_time_event_0);
 
@@ -839,12 +842,12 @@ public class TrafficLightWaitingCycleBasedStatemachine
 			switch (stateVector[0]) {
 
 				case StreetGreen :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case WaitOn :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOn_time_event_0);
 
@@ -854,7 +857,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 					break;
 
 				case WaitOff :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOff_time_event_0);
 
@@ -864,35 +867,35 @@ public class TrafficLightWaitingCycleBasedStatemachine
 					break;
 
 				case StreetAttention :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetAttention_time_event_0);
 
 					break;
 
 				case StreetRed :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetRed_time_event_0);
 
 					break;
 
 				case PedestrianGreen :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(PedestrianGreen_time_event_0);
 
 					break;
 
 				case PedestrianRed :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(PedestrianRed_time_event_0);
 
 					break;
 
 				case StreetPrepare :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetPrepare_time_event_0);
 
@@ -917,7 +920,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 
 		} else {
 			if (occuredEvents.contains(PedestrianRed_time_event_0)) {
-				stateVector[0] = null;
+				stateVector[0] = State.$NullState$;
 
 				getTimerService().resetTimer(PedestrianRed_time_event_0);
 
@@ -940,12 +943,12 @@ public class TrafficLightWaitingCycleBasedStatemachine
 			switch (stateVector[0]) {
 
 				case StreetGreen :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case WaitOn :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOn_time_event_0);
 
@@ -955,7 +958,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 					break;
 
 				case WaitOff :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(WaitOff_time_event_0);
 
@@ -965,35 +968,35 @@ public class TrafficLightWaitingCycleBasedStatemachine
 					break;
 
 				case StreetAttention :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetAttention_time_event_0);
 
 					break;
 
 				case StreetRed :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetRed_time_event_0);
 
 					break;
 
 				case PedestrianGreen :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(PedestrianGreen_time_event_0);
 
 					break;
 
 				case PedestrianRed :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(PedestrianRed_time_event_0);
 
 					break;
 
 				case StreetPrepare :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(StreetPrepare_time_event_0);
 
@@ -1018,7 +1021,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 
 		} else {
 			if (occuredEvents.contains(StreetPrepare_time_event_0)) {
-				stateVector[0] = null;
+				stateVector[0] = State.$NullState$;
 
 				getTimerService().resetTimer(StreetPrepare_time_event_0);
 
@@ -1044,14 +1047,14 @@ public class TrafficLightWaitingCycleBasedStatemachine
 			switch (stateVector[0]) {
 
 				case YellowOn :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(YellowOn_time_event_0);
 
 					break;
 
 				case YellowOff :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(YellowOff_time_event_0);
 
@@ -1073,7 +1076,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 
 		} else {
 			if (occuredEvents.contains(YellowOn_time_event_0)) {
-				stateVector[0] = null;
+				stateVector[0] = State.$NullState$;
 
 				getTimerService().resetTimer(YellowOn_time_event_0);
 
@@ -1094,14 +1097,14 @@ public class TrafficLightWaitingCycleBasedStatemachine
 			switch (stateVector[0]) {
 
 				case YellowOn :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(YellowOn_time_event_0);
 
 					break;
 
 				case YellowOff :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(YellowOff_time_event_0);
 
@@ -1123,7 +1126,7 @@ public class TrafficLightWaitingCycleBasedStatemachine
 
 		} else {
 			if (occuredEvents.contains(YellowOff_time_event_0)) {
-				stateVector[0] = null;
+				stateVector[0] = State.$NullState$;
 
 				getTimerService().resetTimer(YellowOff_time_event_0);
 
@@ -1143,52 +1146,52 @@ public class TrafficLightWaitingCycleBasedStatemachine
 		outEvents.clear();
 
 		for (nextStateIndex = 0; nextStateIndex < stateVector.length; nextStateIndex++) {
-			if (stateVector[nextStateIndex] != null) {
-				switch (stateVector[nextStateIndex]) {
-					case On :
-						reactOn();
-						break;
-					case StreetGreen :
-						reactStreetGreen();
-						break;
-					case PedWaiting :
-						reactPedWaiting();
-						break;
-					case WaitOn :
-						reactWaitOn();
-						break;
-					case WaitOff :
-						reactWaitOff();
-						break;
-					case StreetAttention :
-						reactStreetAttention();
-						break;
-					case StreetRed :
-						reactStreetRed();
-						break;
-					case PedestrianGreen :
-						reactPedestrianGreen();
-						break;
-					case PedestrianRed :
-						reactPedestrianRed();
-						break;
-					case StreetPrepare :
-						reactStreetPrepare();
-						break;
-					case Off :
-						reactOff();
-						break;
-					case YellowOn :
-						reactYellowOn();
-						break;
-					case YellowOff :
-						reactYellowOff();
-						break;
-					default :
-						// no state found
-				}
+
+			switch (stateVector[nextStateIndex]) {
+				case On :
+					reactOn();
+					break;
+				case StreetGreen :
+					reactStreetGreen();
+					break;
+				case PedWaiting :
+					reactPedWaiting();
+					break;
+				case WaitOn :
+					reactWaitOn();
+					break;
+				case WaitOff :
+					reactWaitOff();
+					break;
+				case StreetAttention :
+					reactStreetAttention();
+					break;
+				case StreetRed :
+					reactStreetRed();
+					break;
+				case PedestrianGreen :
+					reactPedestrianGreen();
+					break;
+				case PedestrianRed :
+					reactPedestrianRed();
+					break;
+				case StreetPrepare :
+					reactStreetPrepare();
+					break;
+				case Off :
+					reactOff();
+					break;
+				case YellowOn :
+					reactYellowOn();
+					break;
+				case YellowOff :
+					reactYellowOff();
+					break;
+				default :
+					// $NullState$
 			}
 		}
+
 		occuredEvents.clear();
 	}
 }

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

@@ -38,7 +38,6 @@ public class TrafficLightWaitingEventBasedStatemachine
 	public void runCycle() {
 		if (eventOccured()) {
 			Event<? extends Enum<?>> event = getOccuredEvents().poll();
-			System.out.println(event);
 			super.getOccuredEvents().add(event);
 			super.runCycle();
 		}

+ 16 - 13
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/templates/CustomCycleBasedStatemachine.xpt

@@ -106,7 +106,7 @@ else {
 
 «DEFINE ActionCode FOR ExitState-»
 	«getComment()-»
-	stateVector[«this.state.stateVector.offset»] = null;
+	stateVector[«this.state.stateVector.offset»] = State.«getNullStateName()»;
 	«REM»activeStates.remove(State.«state.getName()»);«ENDREM»
 «ENDDEFINE»
 
@@ -224,6 +224,7 @@ public class 
 		«FOREACH states AS state-»
 	      «state.getName()»,
 	    «ENDFOREACH-»
+	    «getNullStateName()»
 	};
 	
 	«FOREACH scopes.typeSelect(InterfaceScope) AS interface-»
@@ -271,9 +272,11 @@ public class 
 		return !occuredEvents.isEmpty();
 	}
 	
-	
 	public void init() {
-		
+		for (int i = 0; i < stateVector.length; i++) {
+			stateVector[i] = State.$NullState$;
+		}
+		occuredEvents.clear();
 	}
 	
 	public boolean isStateActive(State state){
@@ -374,18 +377,18 @@ public class 
 		outEvents.clear();
 		
 		for (nextStateIndex = 0; nextStateIndex < stateVector.length; nextStateIndex++) {
-			if (stateVector[nextStateIndex] != null) {
-				switch (stateVector[nextStateIndex]) {
-				«FOREACH this.states AS state-»
-    			case «state.getName()»:
-        			react«state.getName()»();
-        			break;
-				«ENDFOREACH-»
-				default:
-					// no state found
-				}
+			
+			switch (stateVector[nextStateIndex]) {
+			«FOREACH this.states AS state-»
+    		case «state.getName()»:
+        		react«state.getName()»();
+        		break;
+			«ENDFOREACH-»
+			default:
+				// «getNullStateName()»
 			}
 		}
+		
 		occuredEvents.clear();
 	}
 }

+ 4 - 1
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/templates/Naming.ext

@@ -152,4 +152,7 @@ String getComment(Step this) :
 	if comment!=null then
 		"//"+comment
 	else
-		null;
+		null;
+		
+String getNullStateName() :
+	"$NullState$";

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

@@ -19,7 +19,7 @@ import org.yakindu.sct.runtime.java.IStatemachine;
 public class InterfaceTestCycleBasedStatemachine implements IStatemachine {
 
 	public enum State {
-		State1, State2, State3, State4,
+		State1, State2, State3, State4, $NullState$
 	};
 
 	private DefaultInterfaceImpl defaultInterface;
@@ -56,7 +56,10 @@ public class InterfaceTestCycleBasedStatemachine implements IStatemachine {
 	}
 
 	public void init() {
-
+		for (int i = 0; i < stateVector.length; i++) {
+			stateVector[i] = State.$NullState$;
+		}
+		occuredEvents.clear();
 	}
 
 	public boolean isStateActive(State state) {
@@ -89,7 +92,7 @@ public class InterfaceTestCycleBasedStatemachine implements IStatemachine {
 	private void reactState1() {
 		if ((occuredEvents.contains(defaultInterface.getEventEvent1()) && (defaultInterface
 				.getVarVar2() > 0))) {
-			stateVector[0] = null;
+			stateVector[0] = State.$NullState$;
 
 			defaultInterface.raiseEvent2(22);
 
@@ -99,7 +102,7 @@ public class InterfaceTestCycleBasedStatemachine implements IStatemachine {
 		} else {
 			if ((occuredEvents.contains(interfaceOther.getEventEvent3()) && (defaultInterface
 					.getVarVar3() == 1))) {
-				stateVector[0] = null;
+				stateVector[0] = State.$NullState$;
 
 				interfaceOther.raiseEvent4();
 
@@ -109,7 +112,7 @@ public class InterfaceTestCycleBasedStatemachine implements IStatemachine {
 			} else {
 				if ((occuredEvents.contains(interfaceThird.getEventEvent5()) && (defaultInterface
 						.getVarVar1() == true))) {
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					interfaceThird.raiseEvent6(true);
 
@@ -122,7 +125,7 @@ public class InterfaceTestCycleBasedStatemachine implements IStatemachine {
 	}
 	private void reactState2() {
 		if (occuredEvents.contains(defaultInterface.getEventEvent1())) {
-			stateVector[0] = null;
+			stateVector[0] = State.$NullState$;
 
 			nextStateIndex = 0;
 			stateVector[0] = State.State1;
@@ -131,7 +134,7 @@ public class InterfaceTestCycleBasedStatemachine implements IStatemachine {
 	}
 	private void reactState3() {
 		if (occuredEvents.contains(interfaceOther.getEventEvent3())) {
-			stateVector[0] = null;
+			stateVector[0] = State.$NullState$;
 
 			nextStateIndex = 0;
 			stateVector[0] = State.State1;
@@ -140,7 +143,7 @@ public class InterfaceTestCycleBasedStatemachine implements IStatemachine {
 	}
 	private void reactState4() {
 		if (occuredEvents.contains(interfaceThird.getEventEvent5())) {
-			stateVector[0] = null;
+			stateVector[0] = State.$NullState$;
 
 			nextStateIndex = 0;
 			stateVector[0] = State.State1;
@@ -151,25 +154,25 @@ public class InterfaceTestCycleBasedStatemachine implements IStatemachine {
 		outEvents.clear();
 
 		for (nextStateIndex = 0; nextStateIndex < stateVector.length; nextStateIndex++) {
-			if (stateVector[nextStateIndex] != null) {
-				switch (stateVector[nextStateIndex]) {
-					case State1 :
-						reactState1();
-						break;
-					case State2 :
-						reactState2();
-						break;
-					case State3 :
-						reactState3();
-						break;
-					case State4 :
-						reactState4();
-						break;
-					default :
-						// no state found
-				}
+
+			switch (stateVector[nextStateIndex]) {
+				case State1 :
+					reactState1();
+					break;
+				case State2 :
+					reactState2();
+					break;
+				case State3 :
+					reactState3();
+					break;
+				case State4 :
+					reactState4();
+					break;
+				default :
+					// $NullState$
 			}
 		}
+
 		occuredEvents.clear();
 	}
 }

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

@@ -19,7 +19,7 @@ import org.yakindu.sct.runtime.java.IStatemachine;
 public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 
 	public enum State {
-		State1, State2, State3, State4, State6, State7, State8, State9, State5,
+		State1, State2, State3, State4, State6, State7, State8, State9, State5, $NullState$
 	};
 
 	private DefaultInterfaceImpl defaultInterface;
@@ -52,7 +52,10 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 	}
 
 	public void init() {
-
+		for (int i = 0; i < stateVector.length; i++) {
+			stateVector[i] = State.$NullState$;
+		}
+		occuredEvents.clear();
 	}
 
 	public boolean isStateActive(State state) {
@@ -76,7 +79,7 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 
 	private void reactState1() {
 		if (occuredEvents.contains(defaultInterface.getEventEvent1())) {
-			stateVector[0] = null;
+			stateVector[0] = State.$NullState$;
 
 			nextStateIndex = 0;
 			stateVector[0] = State.State3;
@@ -91,27 +94,27 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 			switch (stateVector[0]) {
 
 				case State3 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State6 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State8 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State9 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State5 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
@@ -124,7 +127,7 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 
 		} else {
 			if (occuredEvents.contains(defaultInterface.getEventEvent3())) {
-				stateVector[0] = null;
+				stateVector[0] = State.$NullState$;
 
 				nextStateIndex = 0;
 				stateVector[0] = State.State6;
@@ -141,27 +144,27 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 			switch (stateVector[0]) {
 
 				case State3 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State6 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State8 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State9 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State5 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
@@ -178,17 +181,17 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 				switch (stateVector[0]) {
 
 					case State6 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
 					case State8 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
 					case State9 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
@@ -201,7 +204,7 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 
 			} else {
 				if (occuredEvents.contains(defaultInterface.getEventEvent5())) {
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					nextStateIndex = 0;
 					stateVector[0] = State.State8;
@@ -220,27 +223,27 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 			switch (stateVector[0]) {
 
 				case State3 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State6 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State8 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State9 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State5 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
@@ -257,17 +260,17 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 				switch (stateVector[0]) {
 
 					case State6 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
 					case State8 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
 					case State9 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
@@ -284,12 +287,12 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 					switch (stateVector[0]) {
 
 						case State8 :
-							stateVector[0] = null;
+							stateVector[0] = State.$NullState$;
 
 							break;
 
 						case State9 :
-							stateVector[0] = null;
+							stateVector[0] = State.$NullState$;
 
 							break;
 
@@ -303,7 +306,7 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 				} else {
 					if (occuredEvents.contains(defaultInterface
 							.getEventEvent7())) {
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						nextStateIndex = 0;
 						stateVector[0] = State.State9;
@@ -322,27 +325,27 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 			switch (stateVector[0]) {
 
 				case State3 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State6 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State8 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State9 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State5 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
@@ -359,17 +362,17 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 				switch (stateVector[0]) {
 
 					case State6 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
 					case State8 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
 					case State9 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
@@ -386,12 +389,12 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 					switch (stateVector[0]) {
 
 						case State8 :
-							stateVector[0] = null;
+							stateVector[0] = State.$NullState$;
 
 							break;
 
 						case State9 :
-							stateVector[0] = null;
+							stateVector[0] = State.$NullState$;
 
 							break;
 
@@ -405,7 +408,7 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 				} else {
 					if (occuredEvents.contains(defaultInterface
 							.getEventEvent8())) {
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						nextStateIndex = 0;
 						stateVector[0] = State.State8;
@@ -424,27 +427,27 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 			switch (stateVector[0]) {
 
 				case State3 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State6 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State8 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State9 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State5 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
@@ -463,40 +466,40 @@ public class Test_DeepHistoryCycleBasedStatemachine implements IStatemachine {
 		outEvents.clear();
 
 		for (nextStateIndex = 0; nextStateIndex < stateVector.length; nextStateIndex++) {
-			if (stateVector[nextStateIndex] != null) {
-				switch (stateVector[nextStateIndex]) {
-					case State1 :
-						reactState1();
-						break;
-					case State2 :
-						reactState2();
-						break;
-					case State3 :
-						reactState3();
-						break;
-					case State4 :
-						reactState4();
-						break;
-					case State6 :
-						reactState6();
-						break;
-					case State7 :
-						reactState7();
-						break;
-					case State8 :
-						reactState8();
-						break;
-					case State9 :
-						reactState9();
-						break;
-					case State5 :
-						reactState5();
-						break;
-					default :
-						// no state found
-				}
+
+			switch (stateVector[nextStateIndex]) {
+				case State1 :
+					reactState1();
+					break;
+				case State2 :
+					reactState2();
+					break;
+				case State3 :
+					reactState3();
+					break;
+				case State4 :
+					reactState4();
+					break;
+				case State6 :
+					reactState6();
+					break;
+				case State7 :
+					reactState7();
+					break;
+				case State8 :
+					reactState8();
+					break;
+				case State9 :
+					reactState9();
+					break;
+				case State5 :
+					reactState5();
+					break;
+				default :
+					// $NullState$
 			}
 		}
+
 		occuredEvents.clear();
 	}
 }

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

@@ -19,7 +19,7 @@ import org.yakindu.sct.runtime.java.IStatemachine;
 public class Test_ExpressionCycleBasedStatemachine implements IStatemachine {
 
 	public enum State {
-		State1, State2,
+		State1, State2, $NullState$
 	};
 
 	private DefaultInterfaceImpl defaultInterface;
@@ -54,7 +54,10 @@ public class Test_ExpressionCycleBasedStatemachine implements IStatemachine {
 	}
 
 	public void init() {
-
+		for (int i = 0; i < stateVector.length; i++) {
+			stateVector[i] = State.$NullState$;
+		}
+		occuredEvents.clear();
 	}
 
 	public boolean isStateActive(State state) {
@@ -87,7 +90,7 @@ public class Test_ExpressionCycleBasedStatemachine implements IStatemachine {
 	private void reactState1() {
 		if ((occuredEvents.contains(defaultInterface.getEventEvent1()) && ((interfaceOther
 				.getVarVar1() == true) || (defaultInterface.getVarVar5() == false)))) {
-			stateVector[0] = null;
+			stateVector[0] = State.$NullState$;
 
 			defaultInterface.setVarVar2(1);
 
@@ -107,7 +110,7 @@ public class Test_ExpressionCycleBasedStatemachine implements IStatemachine {
 	private void reactState2() {
 		if ((occuredEvents.contains(defaultInterface.getEventEvent1()) && (defaultInterface
 				.getVarVar3() > 0))) {
-			stateVector[0] = null;
+			stateVector[0] = State.$NullState$;
 
 			defaultInterface.setVarVar5(true);
 
@@ -131,19 +134,19 @@ public class Test_ExpressionCycleBasedStatemachine implements IStatemachine {
 		outEvents.clear();
 
 		for (nextStateIndex = 0; nextStateIndex < stateVector.length; nextStateIndex++) {
-			if (stateVector[nextStateIndex] != null) {
-				switch (stateVector[nextStateIndex]) {
-					case State1 :
-						reactState1();
-						break;
-					case State2 :
-						reactState2();
-						break;
-					default :
-						// no state found
-				}
+
+			switch (stateVector[nextStateIndex]) {
+				case State1 :
+					reactState1();
+					break;
+				case State2 :
+					reactState2();
+					break;
+				default :
+					// $NullState$
 			}
 		}
+
 		occuredEvents.clear();
 	}
 }

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

@@ -19,7 +19,7 @@ import org.yakindu.sct.runtime.java.IStatemachine;
 public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 
 	public enum State {
-		State1, State9, State10, State2, State3, State4, State5, State6, State7, State8,
+		State1, State9, State10, State2, State3, State4, State5, State6, State7, State8, $NullState$
 	};
 
 	private DefaultInterfaceImpl defaultInterface;
@@ -52,7 +52,10 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 	}
 
 	public void init() {
-
+		for (int i = 0; i < stateVector.length; i++) {
+			stateVector[i] = State.$NullState$;
+		}
+		occuredEvents.clear();
 	}
 
 	public boolean isStateActive(State state) {
@@ -86,7 +89,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 			switch (stateVector[0]) {
 
 				case State9 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS1(defaultInterface.getVarS1() - (1));
@@ -94,7 +97,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					break;
 
 				case State10 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS1(defaultInterface.getVarS1() - (1));
@@ -115,7 +118,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 
 		} else {
 			if (occuredEvents.contains(defaultInterface.getEventEvent9())) {
-				stateVector[0] = null;
+				stateVector[0] = State.$NullState$;
 
 				defaultInterface.setVarS1(defaultInterface.getVarS1() - (1));
 
@@ -134,7 +137,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 			switch (stateVector[0]) {
 
 				case State9 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS1(defaultInterface.getVarS1() - (1));
@@ -142,7 +145,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					break;
 
 				case State10 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS1(defaultInterface.getVarS1() - (1));
@@ -163,7 +166,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 
 		} else {
 			if (occuredEvents.contains(defaultInterface.getEventEvent10())) {
-				stateVector[0] = null;
+				stateVector[0] = State.$NullState$;
 
 				defaultInterface.setVarS1(defaultInterface.getVarS1() - (1));
 
@@ -184,7 +187,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 			switch (stateVector[0]) {
 
 				case State3 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -192,7 +195,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					break;
 
 				case State5 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -203,7 +206,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					break;
 
 				case State7 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -217,7 +220,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					break;
 
 				case State8 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -244,7 +247,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 
 		} else {
 			if (occuredEvents.contains(defaultInterface.getEventEvent2())) {
-				stateVector[0] = null;
+				stateVector[0] = State.$NullState$;
 
 				defaultInterface.setVarS2(defaultInterface.getVarS2() - (1));
 
@@ -257,7 +260,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 
 			} else {
 				if (occuredEvents.contains(defaultInterface.getEventEvent11())) {
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -276,7 +279,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 				} else {
 					if (occuredEvents.contains(defaultInterface
 							.getEventEvent14())) {
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						defaultInterface
 								.setVarS2(defaultInterface.getVarS2() - (1));
@@ -306,7 +309,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 			switch (stateVector[0]) {
 
 				case State3 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -314,7 +317,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					break;
 
 				case State5 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -325,7 +328,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					break;
 
 				case State7 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -339,7 +342,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					break;
 
 				case State8 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -370,7 +373,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 				switch (stateVector[0]) {
 
 					case State5 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						defaultInterface
 								.setVarS2(defaultInterface.getVarS2() - (1));
@@ -378,7 +381,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 						break;
 
 					case State7 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						defaultInterface
 								.setVarS2(defaultInterface.getVarS2() - (1));
@@ -389,7 +392,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 						break;
 
 					case State8 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						defaultInterface
 								.setVarS2(defaultInterface.getVarS2() - (1));
@@ -411,7 +414,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 
 			} else {
 				if (occuredEvents.contains(defaultInterface.getEventEvent3())) {
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -428,7 +431,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 				} else {
 					if (occuredEvents.contains(defaultInterface
 							.getEventEvent12())) {
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						defaultInterface
 								.setVarS2(defaultInterface.getVarS2() - (1));
@@ -450,7 +453,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					} else {
 						if (occuredEvents.contains(defaultInterface
 								.getEventEvent15())) {
-							stateVector[0] = null;
+							stateVector[0] = State.$NullState$;
 
 							defaultInterface.setVarS2(defaultInterface
 									.getVarS2() - (1));
@@ -485,7 +488,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 			switch (stateVector[0]) {
 
 				case State3 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -493,7 +496,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					break;
 
 				case State5 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -504,7 +507,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					break;
 
 				case State7 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -518,7 +521,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					break;
 
 				case State8 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -549,7 +552,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 				switch (stateVector[0]) {
 
 					case State5 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						defaultInterface
 								.setVarS2(defaultInterface.getVarS2() - (1));
@@ -557,7 +560,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 						break;
 
 					case State7 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						defaultInterface
 								.setVarS2(defaultInterface.getVarS2() - (1));
@@ -568,7 +571,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 						break;
 
 					case State8 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						defaultInterface
 								.setVarS2(defaultInterface.getVarS2() - (1));
@@ -594,7 +597,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					switch (stateVector[0]) {
 
 						case State7 :
-							stateVector[0] = null;
+							stateVector[0] = State.$NullState$;
 
 							defaultInterface.setVarS2(defaultInterface
 									.getVarS2() - (1));
@@ -602,7 +605,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 							break;
 
 						case State8 :
-							stateVector[0] = null;
+							stateVector[0] = State.$NullState$;
 
 							defaultInterface.setVarS2(defaultInterface
 									.getVarS2() - (1));
@@ -624,7 +627,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 				} else {
 					if (occuredEvents.contains(defaultInterface
 							.getEventEvent4())) {
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						defaultInterface
 								.setVarS2(defaultInterface.getVarS2() - (1));
@@ -649,7 +652,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 			switch (stateVector[0]) {
 
 				case State3 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -657,7 +660,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					break;
 
 				case State5 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -668,7 +671,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					break;
 
 				case State7 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -682,7 +685,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					break;
 
 				case State8 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					defaultInterface
 							.setVarS2(defaultInterface.getVarS2() - (1));
@@ -713,7 +716,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 				switch (stateVector[0]) {
 
 					case State5 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						defaultInterface
 								.setVarS2(defaultInterface.getVarS2() - (1));
@@ -721,7 +724,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 						break;
 
 					case State7 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						defaultInterface
 								.setVarS2(defaultInterface.getVarS2() - (1));
@@ -732,7 +735,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 						break;
 
 					case State8 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						defaultInterface
 								.setVarS2(defaultInterface.getVarS2() - (1));
@@ -758,7 +761,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					switch (stateVector[0]) {
 
 						case State7 :
-							stateVector[0] = null;
+							stateVector[0] = State.$NullState$;
 
 							defaultInterface.setVarS2(defaultInterface
 									.getVarS2() - (1));
@@ -766,7 +769,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 							break;
 
 						case State8 :
-							stateVector[0] = null;
+							stateVector[0] = State.$NullState$;
 
 							defaultInterface.setVarS2(defaultInterface
 									.getVarS2() - (1));
@@ -788,7 +791,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 				} else {
 					if (occuredEvents.contains(defaultInterface
 							.getEventEvent5())) {
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						defaultInterface
 								.setVarS2(defaultInterface.getVarS2() - (1));
@@ -802,7 +805,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 					} else {
 						if (occuredEvents.contains(defaultInterface
 								.getEventEvent13())) {
-							stateVector[0] = null;
+							stateVector[0] = State.$NullState$;
 
 							defaultInterface.setVarS2(defaultInterface
 									.getVarS2() - (1));
@@ -827,7 +830,7 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 						} else {
 							if (occuredEvents.contains(defaultInterface
 									.getEventEvent16())) {
-								stateVector[0] = null;
+								stateVector[0] = State.$NullState$;
 
 								defaultInterface.setVarS2(defaultInterface
 										.getVarS2() - (1));
@@ -863,43 +866,43 @@ public class Test_HierarchyCycleBasedStatemachine implements IStatemachine {
 		outEvents.clear();
 
 		for (nextStateIndex = 0; nextStateIndex < stateVector.length; nextStateIndex++) {
-			if (stateVector[nextStateIndex] != null) {
-				switch (stateVector[nextStateIndex]) {
-					case State1 :
-						reactState1();
-						break;
-					case State9 :
-						reactState9();
-						break;
-					case State10 :
-						reactState10();
-						break;
-					case State2 :
-						reactState2();
-						break;
-					case State3 :
-						reactState3();
-						break;
-					case State4 :
-						reactState4();
-						break;
-					case State5 :
-						reactState5();
-						break;
-					case State6 :
-						reactState6();
-						break;
-					case State7 :
-						reactState7();
-						break;
-					case State8 :
-						reactState8();
-						break;
-					default :
-						// no state found
-				}
+
+			switch (stateVector[nextStateIndex]) {
+				case State1 :
+					reactState1();
+					break;
+				case State9 :
+					reactState9();
+					break;
+				case State10 :
+					reactState10();
+					break;
+				case State2 :
+					reactState2();
+					break;
+				case State3 :
+					reactState3();
+					break;
+				case State4 :
+					reactState4();
+					break;
+				case State5 :
+					reactState5();
+					break;
+				case State6 :
+					reactState6();
+					break;
+				case State7 :
+					reactState7();
+					break;
+				case State8 :
+					reactState8();
+					break;
+				default :
+					// $NullState$
 			}
 		}
+
 		occuredEvents.clear();
 	}
 }

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

@@ -34,7 +34,7 @@ public class Test_LocalActionsCycleBasedStatemachine
 			TimeEvents.State2_time_event_0, 4, false);
 
 	public enum State {
-		State1, State2,
+		State1, State2, $NullState$
 	};
 
 	private DefaultInterfaceImpl defaultInterface;
@@ -73,7 +73,10 @@ public class Test_LocalActionsCycleBasedStatemachine
 	}
 
 	public void init() {
-
+		for (int i = 0; i < stateVector.length; i++) {
+			stateVector[i] = State.$NullState$;
+		}
+		occuredEvents.clear();
 	}
 
 	public boolean isStateActive(State state) {
@@ -120,7 +123,7 @@ public class Test_LocalActionsCycleBasedStatemachine
 
 	private void reactState1() {
 		if (occuredEvents.contains(defaultInterface.getEventEvent1())) {
-			stateVector[0] = null;
+			stateVector[0] = State.$NullState$;
 
 			getTimerService().resetTimer(State1_time_event_0);
 			defaultInterface.setVarI(0);
@@ -150,7 +153,7 @@ public class Test_LocalActionsCycleBasedStatemachine
 	}
 	private void reactState2() {
 		if (occuredEvents.contains(defaultInterface.getEventEvent3())) {
-			stateVector[0] = null;
+			stateVector[0] = State.$NullState$;
 
 			getTimerService().resetTimer(State2_time_event_0);
 			defaultInterface.setVarJ(0);
@@ -180,19 +183,19 @@ public class Test_LocalActionsCycleBasedStatemachine
 		outEvents.clear();
 
 		for (nextStateIndex = 0; nextStateIndex < stateVector.length; nextStateIndex++) {
-			if (stateVector[nextStateIndex] != null) {
-				switch (stateVector[nextStateIndex]) {
-					case State1 :
-						reactState1();
-						break;
-					case State2 :
-						reactState2();
-						break;
-					default :
-						// no state found
-				}
+
+			switch (stateVector[nextStateIndex]) {
+				case State1 :
+					reactState1();
+					break;
+				case State2 :
+					reactState2();
+					break;
+				default :
+					// $NullState$
 			}
 		}
+
 		occuredEvents.clear();
 	}
 }

+ 11 - 1
test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_parallelregions/DefaultInterface.java

@@ -13,7 +13,7 @@ package org.yakindu.sct.runtime.java.test_parallelregions;
 public interface DefaultInterface {
 
 	public enum Events {
-		Event1, Event2, Event3, Event4, Event5, Event6, Event7, Event8, Event9, Event10,
+		Event1, Event2, Event3, Event4, Event5, Event6, Event7, Event8, Event9, Event10, Event11, Event12, Event13, Event14,
 	}
 
 	public void raiseEvent1();
@@ -36,6 +36,16 @@ public interface DefaultInterface {
 
 	public void raiseEvent10();
 
+	public void raiseEvent11();
+
+	public void raiseEvent12();
+
+	public void raiseEvent13();
+
+	public void raiseEvent14();
+
 	public int getVarReg3();
 	public void setVarReg3(int value);
+	public int getVarHierarchy();
+	public void setVarHierarchy(int value);
 }

+ 49 - 0
test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_parallelregions/DefaultInterfaceImpl.java

@@ -34,6 +34,14 @@ public class DefaultInterfaceImpl implements DefaultInterface {
 			0);
 	private final Event<Events> EventEvent10 = new Event<Events>(
 			Events.Event10, 0);
+	private final Event<Events> EventEvent11 = new Event<Events>(
+			Events.Event11, 0);
+	private final Event<Events> EventEvent12 = new Event<Events>(
+			Events.Event12, 0);
+	private final Event<Events> EventEvent13 = new Event<Events>(
+			Events.Event13, 0);
+	private final Event<Events> EventEvent14 = new Event<Events>(
+			Events.Event14, 0);
 
 	private Test_ParallelRegionsCycleBasedStatemachine statemachine;
 
@@ -122,6 +130,38 @@ public class DefaultInterfaceImpl implements DefaultInterface {
 		return EventEvent10;
 	}
 
+	public void raiseEvent11() {
+		statemachine.getOccuredEvents().add(EventEvent11);
+	}
+
+	public Event<Events> getEventEvent11() {
+		return EventEvent11;
+	}
+
+	public void raiseEvent12() {
+		statemachine.getOccuredEvents().add(EventEvent12);
+	}
+
+	public Event<Events> getEventEvent12() {
+		return EventEvent12;
+	}
+
+	public void raiseEvent13() {
+		statemachine.getOccuredEvents().add(EventEvent13);
+	}
+
+	public Event<Events> getEventEvent13() {
+		return EventEvent13;
+	}
+
+	public void raiseEvent14() {
+		statemachine.getOccuredEvents().add(EventEvent14);
+	}
+
+	public Event<Events> getEventEvent14() {
+		return EventEvent14;
+	}
+
 	private int varReg3 = -(1);
 
 	public int getVarReg3() {
@@ -131,4 +171,13 @@ public class DefaultInterfaceImpl implements DefaultInterface {
 	public void setVarReg3(int value) {
 		varReg3 = value;
 	}
+	private int varHierarchy;
+
+	public int getVarHierarchy() {
+		return varHierarchy;
+	}
+
+	public void setVarHierarchy(int value) {
+		varHierarchy = value;
+	}
 }

File diff suppressed because it is too large
+ 693 - 85
test-plugins/org.yakindu.sct.generator.java.runtime.test/src-gen/org/yakindu/sct/runtime/java/test_parallelregions/Test_ParallelRegionsCycleBasedStatemachine.java


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

@@ -19,7 +19,7 @@ import org.yakindu.sct.runtime.java.IStatemachine;
 public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine {
 
 	public enum State {
-		State1, State2, State3, State4, State6, State7, State8, State9, State5,
+		State1, State2, State3, State4, State6, State7, State8, State9, State5, $NullState$
 	};
 
 	private DefaultInterfaceImpl defaultInterface;
@@ -52,7 +52,10 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 	}
 
 	public void init() {
-
+		for (int i = 0; i < stateVector.length; i++) {
+			stateVector[i] = State.$NullState$;
+		}
+		occuredEvents.clear();
 	}
 
 	public boolean isStateActive(State state) {
@@ -76,7 +79,7 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 
 	private void reactState1() {
 		if (occuredEvents.contains(defaultInterface.getEventEvent1())) {
-			stateVector[0] = null;
+			stateVector[0] = State.$NullState$;
 
 			nextStateIndex = 0;
 			stateVector[0] = State.State3;
@@ -91,27 +94,27 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 			switch (stateVector[0]) {
 
 				case State3 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State6 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State8 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State9 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State5 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
@@ -124,7 +127,7 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 
 		} else {
 			if (occuredEvents.contains(defaultInterface.getEventEvent3())) {
-				stateVector[0] = null;
+				stateVector[0] = State.$NullState$;
 
 				nextStateIndex = 0;
 				stateVector[0] = State.State6;
@@ -141,27 +144,27 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 			switch (stateVector[0]) {
 
 				case State3 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State6 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State8 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State9 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State5 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
@@ -178,17 +181,17 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 				switch (stateVector[0]) {
 
 					case State6 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
 					case State8 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
 					case State9 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
@@ -201,7 +204,7 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 
 			} else {
 				if (occuredEvents.contains(defaultInterface.getEventEvent5())) {
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					nextStateIndex = 0;
 					stateVector[0] = State.State8;
@@ -220,27 +223,27 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 			switch (stateVector[0]) {
 
 				case State3 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State6 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State8 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State9 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State5 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
@@ -257,17 +260,17 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 				switch (stateVector[0]) {
 
 					case State6 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
 					case State8 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
 					case State9 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
@@ -284,12 +287,12 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 					switch (stateVector[0]) {
 
 						case State8 :
-							stateVector[0] = null;
+							stateVector[0] = State.$NullState$;
 
 							break;
 
 						case State9 :
-							stateVector[0] = null;
+							stateVector[0] = State.$NullState$;
 
 							break;
 
@@ -303,7 +306,7 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 				} else {
 					if (occuredEvents.contains(defaultInterface
 							.getEventEvent7())) {
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						nextStateIndex = 0;
 						stateVector[0] = State.State9;
@@ -322,27 +325,27 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 			switch (stateVector[0]) {
 
 				case State3 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State6 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State8 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State9 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State5 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
@@ -359,17 +362,17 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 				switch (stateVector[0]) {
 
 					case State6 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
 					case State8 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
 					case State9 :
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						break;
 
@@ -386,12 +389,12 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 					switch (stateVector[0]) {
 
 						case State8 :
-							stateVector[0] = null;
+							stateVector[0] = State.$NullState$;
 
 							break;
 
 						case State9 :
-							stateVector[0] = null;
+							stateVector[0] = State.$NullState$;
 
 							break;
 
@@ -405,7 +408,7 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 				} else {
 					if (occuredEvents.contains(defaultInterface
 							.getEventEvent8())) {
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						nextStateIndex = 0;
 						stateVector[0] = State.State8;
@@ -424,27 +427,27 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 			switch (stateVector[0]) {
 
 				case State3 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State6 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State8 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State9 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
 				case State5 :
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					break;
 
@@ -463,40 +466,40 @@ public class Test_ShallowHistoryCycleBasedStatemachine implements IStatemachine
 		outEvents.clear();
 
 		for (nextStateIndex = 0; nextStateIndex < stateVector.length; nextStateIndex++) {
-			if (stateVector[nextStateIndex] != null) {
-				switch (stateVector[nextStateIndex]) {
-					case State1 :
-						reactState1();
-						break;
-					case State2 :
-						reactState2();
-						break;
-					case State3 :
-						reactState3();
-						break;
-					case State4 :
-						reactState4();
-						break;
-					case State6 :
-						reactState6();
-						break;
-					case State7 :
-						reactState7();
-						break;
-					case State8 :
-						reactState8();
-						break;
-					case State9 :
-						reactState9();
-						break;
-					case State5 :
-						reactState5();
-						break;
-					default :
-						// no state found
-				}
+
+			switch (stateVector[nextStateIndex]) {
+				case State1 :
+					reactState1();
+					break;
+				case State2 :
+					reactState2();
+					break;
+				case State3 :
+					reactState3();
+					break;
+				case State4 :
+					reactState4();
+					break;
+				case State6 :
+					reactState6();
+					break;
+				case State7 :
+					reactState7();
+					break;
+				case State8 :
+					reactState8();
+					break;
+				case State9 :
+					reactState9();
+					break;
+				case State5 :
+					reactState5();
+					break;
+				default :
+					// $NullState$
 			}
 		}
+
 		occuredEvents.clear();
 	}
 }

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

@@ -34,7 +34,7 @@ public class Test_TransitionCycleBasedStatemachine
 			TimeEvents.State1_time_event_1, 7, false);
 
 	public enum State {
-		State1, State2,
+		State1, State2, $NullState$
 	};
 
 	private InterfaceAImpl interfaceA;
@@ -75,7 +75,10 @@ public class Test_TransitionCycleBasedStatemachine
 	}
 
 	public void init() {
-
+		for (int i = 0; i < stateVector.length; i++) {
+			stateVector[i] = State.$NullState$;
+		}
+		occuredEvents.clear();
 	}
 
 	public boolean isStateActive(State state) {
@@ -126,19 +129,22 @@ public class Test_TransitionCycleBasedStatemachine
 	}
 
 	private void reactState1() {
-		if ((occuredEvents.contains(interfaceA.getEventEvent1()) || occuredEvents
-				.contains(interfaceA.getEventEvent2()))) {
-			stateVector[0] = null;
+		if (((occuredEvents.contains(interfaceA.getEventEvent1()) || occuredEvents
+				.contains(interfaceA.getEventEvent2())) && (interfaceA
+				.getEventEvent1().getValue() < 0))) {
+			stateVector[0] = State.$NullState$;
 
 			getTimerService().resetTimer(State1_time_event_0);
 			getTimerService().resetTimer(State1_time_event_1);
 
+			defaultInterface.setVarI(2);
+
 			nextStateIndex = 0;
 			stateVector[0] = State.State2;
 
 		} else {
 			if ((defaultInterface.getVarI() == 5)) {
-				stateVector[0] = null;
+				stateVector[0] = State.$NullState$;
 
 				getTimerService().resetTimer(State1_time_event_0);
 				getTimerService().resetTimer(State1_time_event_1);
@@ -149,7 +155,7 @@ public class Test_TransitionCycleBasedStatemachine
 			} else {
 				if ((occuredEvents.contains(interfaceA.getEventEvent3()) && (defaultInterface
 						.getVarJ() < 20))) {
-					stateVector[0] = null;
+					stateVector[0] = State.$NullState$;
 
 					getTimerService().resetTimer(State1_time_event_0);
 					getTimerService().resetTimer(State1_time_event_1);
@@ -161,7 +167,7 @@ public class Test_TransitionCycleBasedStatemachine
 					if (((occuredEvents.contains(interfaceA.getEventEvent3()) || occuredEvents
 							.contains(interfaceA.getEventEvent4())) && (defaultInterface
 							.getVarJ() > 30))) {
-						stateVector[0] = null;
+						stateVector[0] = State.$NullState$;
 
 						getTimerService().resetTimer(State1_time_event_0);
 						getTimerService().resetTimer(State1_time_event_1);
@@ -172,7 +178,7 @@ public class Test_TransitionCycleBasedStatemachine
 					} else {
 						if (occuredEvents.contains(defaultInterface
 								.getEventEvent6())) {
-							stateVector[0] = null;
+							stateVector[0] = State.$NullState$;
 
 							getTimerService().resetTimer(State1_time_event_0);
 							getTimerService().resetTimer(State1_time_event_1);
@@ -185,7 +191,7 @@ public class Test_TransitionCycleBasedStatemachine
 						} else {
 							if (occuredEvents.contains(defaultInterface
 									.getEventEvent7())) {
-								stateVector[0] = null;
+								stateVector[0] = State.$NullState$;
 
 								getTimerService().resetTimer(
 										State1_time_event_0);
@@ -200,7 +206,7 @@ public class Test_TransitionCycleBasedStatemachine
 
 							} else {
 								if (occuredEvents.contains(State1_time_event_0)) {
-									stateVector[0] = null;
+									stateVector[0] = State.$NullState$;
 
 									getTimerService().resetTimer(
 											State1_time_event_0);
@@ -213,7 +219,7 @@ public class Test_TransitionCycleBasedStatemachine
 								} else {
 									if (occuredEvents
 											.contains(State1_time_event_1)) {
-										stateVector[0] = null;
+										stateVector[0] = State.$NullState$;
 
 										getTimerService().resetTimer(
 												State1_time_event_0);
@@ -224,15 +230,18 @@ public class Test_TransitionCycleBasedStatemachine
 										stateVector[0] = State.State2;
 
 									} else {
-										if (occuredEvents.contains(interfaceA
-												.getEventEvent1())) {
-											stateVector[0] = null;
+										if ((occuredEvents.contains(interfaceA
+												.getEventEvent1()) && (interfaceA
+												.getEventEvent1().getValue() > 5))) {
+											stateVector[0] = State.$NullState$;
 
 											getTimerService().resetTimer(
 													State1_time_event_0);
 											getTimerService().resetTimer(
 													State1_time_event_1);
 
+											defaultInterface.setVarI(1);
+
 											nextStateIndex = 0;
 											stateVector[0] = State.State2;
 
@@ -253,19 +262,19 @@ public class Test_TransitionCycleBasedStatemachine
 		outEvents.clear();
 
 		for (nextStateIndex = 0; nextStateIndex < stateVector.length; nextStateIndex++) {
-			if (stateVector[nextStateIndex] != null) {
-				switch (stateVector[nextStateIndex]) {
-					case State1 :
-						reactState1();
-						break;
-					case State2 :
-						reactState2();
-						break;
-					default :
-						// no state found
-				}
+
+			switch (stateVector[nextStateIndex]) {
+				case State1 :
+					reactState1();
+					break;
+				case State2 :
+					reactState2();
+					break;
+				default :
+					// $NullState$
 			}
 		}
+
 		occuredEvents.clear();
 	}
 }

+ 1 - 0
test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestExpressionCycleBasedStatemachine.java

@@ -14,6 +14,7 @@ public class TestExpressionCycleBasedStatemachine {
 	@Before
 	public void setUp() {
 		statemachine = new Test_ExpressionCycleBasedStatemachine();
+		statemachine.init();
 		statemachine.enter();
 	}
 

+ 1 - 0
test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestExpressionEventBasedStatemachine.java

@@ -20,6 +20,7 @@ public class TestExpressionEventBasedStatemachine {
 	@Before
 	public void setUp() {
 		statemachine = new Test_ExpressionEventBasedStatemachine();
+		statemachine.init();
 		statemachine.enter();
 		runtimeService = new RuntimeService(cyclePeriod);
 		runtimeService.addStatemachine(statemachine);

+ 1 - 0
test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestHierarchyCycleBasedStatemachine.java

@@ -30,6 +30,7 @@ public class TestHierarchyCycleBasedStatemachine {
 	@Before
 	public void setUp() {
 		statemachine = new Test_HierarchyCycleBasedStatemachine();
+		statemachine.init();
 		statemachine.enter();
 	}
 

+ 1 - 0
test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestHierarchyEventBasedStatemachine.java

@@ -36,6 +36,7 @@ public class TestHierarchyEventBasedStatemachine {
 	@Before
 	public void setUp() {
 		statemachine = new Test_HierarchyEventBasedStatemachine();
+		statemachine.init();
 		statemachine.enter();
 		runtimeService = new RuntimeService(cyclePeriod);
 		runtimeService.addStatemachine(statemachine);

+ 1 - 0
test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestInterfaceTestCycleBasedStatemachine.java

@@ -34,6 +34,7 @@ public class TestInterfaceTestCycleBasedStatemachine {
 	@Before
 	public void setUp() {
 		statemachine = new InterfaceTestCycleBasedStatemachine();
+		statemachine.init();
 		statemachine.enter();
 	}
 

+ 1 - 0
test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestInterfaceTestEventBasedStatemachine.java

@@ -76,6 +76,7 @@ public class TestInterfaceTestEventBasedStatemachine {
 						}
 					}
 				});
+		statemachine.init();
 		statemachine.enter();
 
 		runtimeService = new RuntimeService(cyclePeriod);

+ 1 - 0
test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestLocalActionsCycleBasedStatemachine.java

@@ -44,6 +44,7 @@ public class TestLocalActionsCycleBasedStatemachine {
 	public void setUp() {
 		statemachine = new Test_LocalActionsCycleBasedStatemachine();
 		statemachine.setTimerService(new TimerService());
+		statemachine.init();
 		statemachine.enter();
 	}
 

+ 1 - 0
test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestLocalActionsEventBasedStatemachine.java

@@ -51,6 +51,7 @@ public class TestLocalActionsEventBasedStatemachine {
 	public void setUp() {
 		statemachine = new Test_LocalActionsEventBasedStatemachine();
 		statemachine.setTimerService(new TimerService());
+		statemachine.init();
 		statemachine.enter();
 		runtimeService = new RuntimeService(cyclePeriod);
 		runtimeService.addStatemachine(statemachine);

+ 1 - 0
test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestParallelRegionsCycleBasedStatemachine.java

@@ -32,6 +32,7 @@ public class TestParallelRegionsCycleBasedStatemachine {
 	@Before
 	public void setUp() {
 		statemachine = new Test_ParallelRegionsCycleBasedStatemachine();
+		statemachine.init();
 		statemachine.enter();
 	}
 

+ 1 - 0
test-plugins/org.yakindu.sct.generator.java.runtime.test/src/org/yakindu/sct/generator/java/runtime/test/TestParallelRegionsEventBasedStatemachine.java

@@ -39,6 +39,7 @@ public class TestParallelRegionsEventBasedStatemachine {
 	@Before
 	public void setUp() {
 		statemachine = new Test_ParallelRegionsEventBasedStatemachine();
+		statemachine.init();
 		statemachine.enter();
 		runtimeService = new RuntimeService(cyclePeriod);
 		runtimeService.addStatemachine(statemachine);