Переглянути джерело

changed sexec meta model:
- removed Cycle (replaced by Sequence)
- removed ExecutionFlow.sequences relationship
- added ExecutionFlow.exitSequence relationship
- renamed ExecutionState.cycle to ExecutionState.reactSequence
- added stateVector to ExecutionState

and changed dependent implementations and tests accordingly. ( YAKHMI-257 & YAKHMI-322 )

terfloth@itemis.de 14 роки тому
батько
коміт
87275f84ef
37 змінених файлів з 1439 додано та 1532 видалено
  1. 9 9
      plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/templates/CustomStatemachineC.xpt
  2. 6 6
      plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/templates/CustomStatemachine_cyCPP.xpt
  3. 2 2
      plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/templates/CustomStatemachine_cyH.xpt
  4. 6 6
      plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/templates/CustomStatemachine_evCPP.xpt
  5. 2 2
      plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/templates/CustomStatemachine_evH.xpt
  6. 1 1
      plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/templates/Dump.xpt
  7. 5 5
      plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/templates/CustomBaseStatemachine.xpt
  8. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateExecutionFlow_exitSequence_Sequence.gif
  9. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateExecutionState_reactSequence_Sequence.gif
  10. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateExecutionState_stateVector_StateVector.gif
  11. 3 0
      plugins/org.yakindu.sct.model.sexec.edit/plugin.properties
  12. 0 112
      plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/CycleItemProvider.java
  13. 8 18
      plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/ExecutionFlowItemProvider.java
  14. 9 22
      plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/ExecutionStateItemProvider.java
  15. 0 5
      plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/ReactionItemProvider.java
  16. 0 5
      plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/SequenceItemProvider.java
  17. 3 27
      plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/SexecItemProviderAdapterFactory.java
  18. 0 5
      plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/StateCaseItemProvider.java
  19. 1 1
      plugins/org.yakindu.sct.model.sexec/.settings/org.eclipse.core.resources.prefs
  20. 18 17
      plugins/org.yakindu.sct.model.sexec/model/sexec.ecore
  21. 825 723
      plugins/org.yakindu.sct.model.sexec/model/sexec.ecorediag
  22. 27 17
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/ExecutionFlow.java
  23. 54 27
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/ExecutionState.java
  24. 0 9
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/SexecFactory.java
  25. 144 182
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/SexecPackage.java
  26. 0 42
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/CycleImpl.java
  27. 65 35
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/ExecutionFlowImpl.java
  28. 124 58
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/ExecutionStateImpl.java
  29. 3 15
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/SexecFactoryImpl.java
  30. 48 59
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/SexecPackageImpl.java
  31. 5 5
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/transformation/ModelSequencer.xtend
  32. 10 29
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/util/SexecAdapterFactory.java
  33. 17 42
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/util/SexecSwitch.java
  34. 21 22
      plugins/org.yakindu.sct.model.sexec/xtend-gen/org/yakindu/sct/model/sexec/transformation/ModelSequencer.java
  35. 1 1
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerStateReactionTest.java
  36. 21 22
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerStateTest.java
  37. 1 1
      test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencertDeclarationsTest.java

+ 9 - 9
plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/templates/CustomStatemachineC.xpt

@@ -137,18 +137,18 @@ void 
   «ENDFOREACH -»
 «ENDDEFINE»
 
-«DEFINE CycleCode FOR Cycl
+«DEFINE ReactCode FOR Sequenc
 «EXPAND ActionCode FOREACH this.steps»
 «ENDDEFINE»
 
-«DEFINE CycleMethodsProto FOR ExecutionState»
-static void «StName().toFirstLower()»_cycle_«this.simpleName»(«StName()»* handle);
+«DEFINE ReactMethodsProto FOR ExecutionState»
+static void «StName().toFirstLower()»_react_«this.simpleName»(«StName()»* handle);
 «ENDDEFINE»
 
-«DEFINE CycleMethodsImplement FOR ExecutionState»
-void «StName().toFirstLower()»_cycle_«this.simpleName»(«StName()»* handle)
+«DEFINE ReactMethodsImplement FOR ExecutionState»
+void «StName().toFirstLower()»_react_«this.simpleName»(«StName()»* handle)
 {
-	«EXPAND CycleCode FOR cycl
+	«EXPAND ReactCode FOR reactSequenc
 }
 «ENDDEFINE»
 
@@ -222,7 +222,7 @@ void 
 
 «EXPAND ConditionMethodsProto FOREACH this.states»
 «EXPAND StatementMethodsProto FOREACH this.states»
-«EXPAND CycleMethodsProto FOREACH this.states»
+«EXPAND ReactMethodsProto FOREACH this.states»
 «EXPAND EnterMethodProto FOREACH this.states»
 «EXPAND ExitMethodProto FOREACH this.states»
 «EXPAND EnterSequenceProto FOREACH this.states»
@@ -230,7 +230,7 @@ void 
 
 «EXPAND ConditionMethodsImplement FOREACH this.states»
 «EXPAND StatementMethodsImplement FOREACH this.states»
-«EXPAND CycleMethodsImplement FOREACH this.states»
+«EXPAND ReactMethodsImplement FOREACH this.states»
 «EXPAND EnterMethodImplement FOREACH this.states»
 «EXPAND ExitMethodImplement FOREACH this.states»
 «EXPAND EnterSequenceImplement FOREACH this.states»
@@ -310,7 +310,7 @@ void statemachine_cy__runCycle(Statemachine_cy* handle)
 		switch(((StatemachineBase*)handle)->state[i]) {
 	«FOREACH this.states AS state»
 	    case _«state.simpleName»:
-	        «stName()»_cycle_«state.simpleName»((«StName()»*) handle);
+	        «stName()»_react_«state.simpleName»((«StName()»*) handle);
 	        break;
 	«ENDFOREACH»
 		default:

+ 6 - 6
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/templates/CustomStatemachine_cyCPP.xpt

@@ -86,14 +86,14 @@ void 
   «ENDFOREACH»
 «ENDDEFINE»
 
-«DEFINE CycleCode FOR Cycle- » 
+«DEFINE ReactCode FOR Sequence- » 
 «EXPAND ActionCode FOREACH this.steps»
 «ENDDEFINE»
 
-«DEFINE CycleMethodsImplement FOR ExecutionState -»
-void «StNameCy()»::cycle_«this.simpleName»()
+«DEFINE ReactMethodsImplement FOR ExecutionState -»
+void «StNameCy()»::react_«this.simpleName»()
 {
-	«EXPAND CycleCode FOR cycl
+	«EXPAND ReactCode FOR reactSequenc
 }
 «ENDDEFINE»
 
@@ -128,7 +128,7 @@ void 
 
 «EXPAND ConditionMethodsImplement FOREACH this.states -»
 «EXPAND StatementMethodsImplement FOREACH this.states -»
-«EXPAND CycleMethodsImplement FOREACH this.states -»
+«EXPAND ReactMethodsImplement FOREACH this.states -»
 «EXPAND EnterMethodImplement FOREACH this.states -»
 «EXPAND ExitMethodImplement FOREACH this.states -»
 
@@ -165,7 +165,7 @@ void 
 		switch(state[i]) {
 	«FOREACH this.states AS state»
 	    case _«state.simpleName»:
-	        cycle_«state.simpleName»();
+	        react_«state.simpleName»();
 	        break;
 	«ENDFOREACH»
 		default:

+ 2 - 2
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/templates/CustomStatemachine_cyH.xpt

@@ -53,9 +53,9 @@ protected:
 	  «ENDFOREACH -»
 	«ENDFOREACH -»
 
-	/* cycles */
+	/* state reactions */
 	«FOREACH states AS state -»
-	void cycle_«state.simpleName»();
+	void react_«state.simpleName»();
 	«ENDFOREACH -»
 	
 	/* entrys */

+ 6 - 6
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/templates/CustomStatemachine_evCPP.xpt

@@ -94,14 +94,14 @@ void 
   «ENDFOREACH»
 «ENDDEFINE»
 
-«DEFINE CycleCode FOR Cycl
+«DEFINE ReactCode FOR Sequenc
 «EXPAND ActionCode FOREACH this.steps»
 «ENDDEFINE»
 
-«DEFINE CycleMethodsImplement FOR ExecutionState»
-void «StNameEv()»::cycle_«this.simpleName»(const _Event& ev)
+«DEFINE ReactMethodsImplement FOR ExecutionState»
+void «StNameEv()»::react_«this.simpleName»(const _Event& ev)
 {
-	«EXPAND CycleCode FOR cycl
+	«EXPAND ReactCode FOR reactSequenc
 }
 «ENDDEFINE»
 
@@ -138,7 +138,7 @@ void 
 
 «EXPAND StatementMethodsImplement FOREACH this.states»
 
-«EXPAND CycleMethodsImplement FOREACH this.states»
+«EXPAND ReactMethodsImplement FOREACH this.states»
 
 «EXPAND EnterMethodImplement FOREACH this.states»
 
@@ -172,7 +172,7 @@ void 
 		switch(state[i]) {
 	«FOREACH this.states AS state»
 	    case _«state.simpleName»:
-	        cycle_«state.simpleName»(*ev);
+	        react_«state.simpleName»(*ev);
 	        break;
 	«ENDFOREACH»
 		default:

+ 2 - 2
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/templates/CustomStatemachine_evH.xpt

@@ -53,9 +53,9 @@ protected:
 	  «ENDFOREACH»
 	«ENDFOREACH»
 
-	/* cycles */
+	/* state reactions */
 	«FOREACH states AS state -»
-	void cycle_«state.simpleName»(const _Event& ev);
+	void react_«state.simpleName»(const _Event& ev);
 	«ENDFOREACH»
 	
 	/* entrys */

+ 1 - 1
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/templates/Dump.xpt

@@ -61,7 +61,7 @@ Simple Name: 
 
 «EXPAND ReactionFunctions FOR this»
 
-Cycle: «EXPAND code FOR this.cycl
+React: «EXPAND code FOR this.reactSequenc
 «ENDDEFINE»
 
 

+ 5 - 5
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/templates/CustomBaseStatemachine.xpt

@@ -117,9 +117,9 @@ else {
   «ENDFOREACH-»
 «ENDDEFINE»
 
-«DEFINE CycleMethodsImplement FOR ExecutionState-»
-	private void cycle«getName()»(Collection<?> events) {
-		«EXPAND ActionCode FOREACH cycle.steps-»
+«DEFINE ReactMethodsImplement FOR ExecutionState-»
+	private void react«getName()»(Collection<?> events) {
+		«EXPAND ActionCode FOREACH reactSequence.steps-»
 	}
 «ENDDEFINE»
 
@@ -316,7 +316,7 @@ public abstract class 
 «EXPAND ExitMethodImplement FOREACH this.states-»
 «EXPAND EnterSequenceImplement FOREACH this.states-»
 «EXPAND ExitSequenceImplement FOREACH this.states-»
-«EXPAND CycleMethodsImplement FOREACH this.states-»
+«EXPAND ReactMethodsImplement FOREACH this.states-»
 	protected void runCycle(Collection<?> events) {
 		«IF isTimedStatemachine()-»
 		cycleStartTime = System.currentTimeMillis();
@@ -326,7 +326,7 @@ public abstract class 
 			switch (state) {
 			«FOREACH this.states AS state-»
     		case «state.getName()»:
-        		cycle«state.getName()»(events);
+        		react«state.getName()»(events);
         		break;
 			«ENDFOREACH-»
 			default:

BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateExecutionFlow_exitSequence_Sequence.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateExecutionState_reactSequence_Sequence.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateExecutionState_stateVector_StateVector.gif


+ 3 - 0
plugins/org.yakindu.sct.model.sexec.edit/plugin.properties

@@ -76,3 +76,6 @@ _UI_StateCase_type = State Case
 _UI_StateSwitch_cases_feature = Cases
 _UI_StateCase_step_feature = Step
 _UI_StateCase_state_feature = State
+_UI_ExecutionFlow_exitSequence_feature = Exit Sequence
+_UI_ExecutionState_reactSequence_feature = React Sequence
+_UI_ExecutionState_stateVector_feature = State Vector

+ 0 - 112
plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/CycleItemProvider.java

@@ -1,112 +0,0 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.yakindu.sct.model.sexec.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.yakindu.sct.model.sexec.Cycle;
-
-/**
- * This is the item provider adapter for a {@link org.yakindu.sct.model.sexec.Cycle} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class CycleItemProvider
-	extends SequenceItemProvider
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public CycleItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This returns Cycle.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/Cycle"));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((Cycle)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Cycle_type") :
-			getString("_UI_Cycle_type") + " " + label;
-	}
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-}

+ 8 - 18
plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/ExecutionFlowItemProvider.java

@@ -103,9 +103,9 @@ public class ExecutionFlowItemProvider
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
 			childrenFeatures.add(SexecPackage.Literals.EXECUTION_FLOW__STATES);
-			childrenFeatures.add(SexecPackage.Literals.EXECUTION_FLOW__SEQUENCES);
 			childrenFeatures.add(SexecPackage.Literals.EXECUTION_FLOW__ENTER_SEQUENCE);
 			childrenFeatures.add(SexecPackage.Literals.EXECUTION_FLOW__STATE_VECTOR);
+			childrenFeatures.add(SexecPackage.Literals.EXECUTION_FLOW__EXIT_SEQUENCE);
 		}
 		return childrenFeatures;
 	}
@@ -164,9 +164,9 @@ public class ExecutionFlowItemProvider
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
 			case SexecPackage.EXECUTION_FLOW__STATES:
-			case SexecPackage.EXECUTION_FLOW__SEQUENCES:
 			case SexecPackage.EXECUTION_FLOW__ENTER_SEQUENCE:
 			case SexecPackage.EXECUTION_FLOW__STATE_VECTOR:
+			case SexecPackage.EXECUTION_FLOW__EXIT_SEQUENCE:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 		}
@@ -189,16 +189,6 @@ public class ExecutionFlowItemProvider
 				(SexecPackage.Literals.EXECUTION_FLOW__STATES,
 				 SexecFactory.eINSTANCE.createExecutionState()));
 
-		newChildDescriptors.add
-			(createChildParameter
-				(SexecPackage.Literals.EXECUTION_FLOW__SEQUENCES,
-				 SexecFactory.eINSTANCE.createSequence()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(SexecPackage.Literals.EXECUTION_FLOW__SEQUENCES,
-				 SexecFactory.eINSTANCE.createCycle()));
-
 		newChildDescriptors.add
 			(createChildParameter
 				(SexecPackage.Literals.EXECUTION_FLOW__ENTER_SEQUENCE,
@@ -206,13 +196,13 @@ public class ExecutionFlowItemProvider
 
 		newChildDescriptors.add
 			(createChildParameter
-				(SexecPackage.Literals.EXECUTION_FLOW__ENTER_SEQUENCE,
-				 SexecFactory.eINSTANCE.createCycle()));
+				(SexecPackage.Literals.EXECUTION_FLOW__STATE_VECTOR,
+				 SexecFactory.eINSTANCE.createStateVector()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(SexecPackage.Literals.EXECUTION_FLOW__STATE_VECTOR,
-				 SexecFactory.eINSTANCE.createStateVector()));
+				(SexecPackage.Literals.EXECUTION_FLOW__EXIT_SEQUENCE,
+				 SexecFactory.eINSTANCE.createSequence()));
 	}
 
 	/**
@@ -227,8 +217,8 @@ public class ExecutionFlowItemProvider
 		Object childObject = child;
 
 		boolean qualify =
-			childFeature == SexecPackage.Literals.EXECUTION_FLOW__SEQUENCES ||
-			childFeature == SexecPackage.Literals.EXECUTION_FLOW__ENTER_SEQUENCE;
+			childFeature == SexecPackage.Literals.EXECUTION_FLOW__ENTER_SEQUENCE ||
+			childFeature == SexecPackage.Literals.EXECUTION_FLOW__EXIT_SEQUENCE;
 
 		if (qualify) {
 			return getString

+ 9 - 22
plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/ExecutionStateItemProvider.java

@@ -123,12 +123,13 @@ public class ExecutionStateItemProvider
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
-			childrenFeatures.add(SexecPackage.Literals.EXECUTION_STATE__CYCLE);
+			childrenFeatures.add(SexecPackage.Literals.EXECUTION_STATE__REACT_SEQUENCE);
 			childrenFeatures.add(SexecPackage.Literals.EXECUTION_STATE__REACTIONS);
 			childrenFeatures.add(SexecPackage.Literals.EXECUTION_STATE__ENTRY_ACTION);
 			childrenFeatures.add(SexecPackage.Literals.EXECUTION_STATE__EXIT_ACTION);
 			childrenFeatures.add(SexecPackage.Literals.EXECUTION_STATE__ENTER_SEQUENCE);
 			childrenFeatures.add(SexecPackage.Literals.EXECUTION_STATE__EXIT_SEQUENCE);
+			childrenFeatures.add(SexecPackage.Literals.EXECUTION_STATE__STATE_VECTOR);
 		}
 		return childrenFeatures;
 	}
@@ -187,12 +188,13 @@ public class ExecutionStateItemProvider
 			case SexecPackage.EXECUTION_STATE__LEAF:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
-			case SexecPackage.EXECUTION_STATE__CYCLE:
+			case SexecPackage.EXECUTION_STATE__REACT_SEQUENCE:
 			case SexecPackage.EXECUTION_STATE__REACTIONS:
 			case SexecPackage.EXECUTION_STATE__ENTRY_ACTION:
 			case SexecPackage.EXECUTION_STATE__EXIT_ACTION:
 			case SexecPackage.EXECUTION_STATE__ENTER_SEQUENCE:
 			case SexecPackage.EXECUTION_STATE__EXIT_SEQUENCE:
+			case SexecPackage.EXECUTION_STATE__STATE_VECTOR:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 		}
@@ -212,8 +214,8 @@ public class ExecutionStateItemProvider
 
 		newChildDescriptors.add
 			(createChildParameter
-				(SexecPackage.Literals.EXECUTION_STATE__CYCLE,
-				 SexecFactory.eINSTANCE.createCycle()));
+				(SexecPackage.Literals.EXECUTION_STATE__REACT_SEQUENCE,
+				 SexecFactory.eINSTANCE.createSequence()));
 
 		newChildDescriptors.add
 			(createChildParameter
@@ -225,11 +227,6 @@ public class ExecutionStateItemProvider
 				(SexecPackage.Literals.EXECUTION_STATE__ENTRY_ACTION,
 				 SexecFactory.eINSTANCE.createSequence()));
 
-		newChildDescriptors.add
-			(createChildParameter
-				(SexecPackage.Literals.EXECUTION_STATE__ENTRY_ACTION,
-				 SexecFactory.eINSTANCE.createCycle()));
-
 		newChildDescriptors.add
 			(createChildParameter
 				(SexecPackage.Literals.EXECUTION_STATE__ENTRY_ACTION,
@@ -285,11 +282,6 @@ public class ExecutionStateItemProvider
 				(SexecPackage.Literals.EXECUTION_STATE__EXIT_ACTION,
 				 SexecFactory.eINSTANCE.createSequence()));
 
-		newChildDescriptors.add
-			(createChildParameter
-				(SexecPackage.Literals.EXECUTION_STATE__EXIT_ACTION,
-				 SexecFactory.eINSTANCE.createCycle()));
-
 		newChildDescriptors.add
 			(createChildParameter
 				(SexecPackage.Literals.EXECUTION_STATE__EXIT_ACTION,
@@ -345,11 +337,6 @@ public class ExecutionStateItemProvider
 				(SexecPackage.Literals.EXECUTION_STATE__ENTER_SEQUENCE,
 				 SexecFactory.eINSTANCE.createSequence()));
 
-		newChildDescriptors.add
-			(createChildParameter
-				(SexecPackage.Literals.EXECUTION_STATE__ENTER_SEQUENCE,
-				 SexecFactory.eINSTANCE.createCycle()));
-
 		newChildDescriptors.add
 			(createChildParameter
 				(SexecPackage.Literals.EXECUTION_STATE__EXIT_SEQUENCE,
@@ -357,8 +344,8 @@ public class ExecutionStateItemProvider
 
 		newChildDescriptors.add
 			(createChildParameter
-				(SexecPackage.Literals.EXECUTION_STATE__EXIT_SEQUENCE,
-				 SexecFactory.eINSTANCE.createCycle()));
+				(SexecPackage.Literals.EXECUTION_STATE__STATE_VECTOR,
+				 SexecFactory.eINSTANCE.createStateVector()));
 	}
 
 	/**
@@ -373,7 +360,7 @@ public class ExecutionStateItemProvider
 		Object childObject = child;
 
 		boolean qualify =
-			childFeature == SexecPackage.Literals.EXECUTION_STATE__CYCLE ||
+			childFeature == SexecPackage.Literals.EXECUTION_STATE__REACT_SEQUENCE ||
 			childFeature == SexecPackage.Literals.EXECUTION_STATE__ENTRY_ACTION ||
 			childFeature == SexecPackage.Literals.EXECUTION_STATE__EXIT_ACTION ||
 			childFeature == SexecPackage.Literals.EXECUTION_STATE__ENTER_SEQUENCE ||

+ 0 - 5
plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/ReactionItemProvider.java

@@ -193,11 +193,6 @@ public class ReactionItemProvider
 				(SexecPackage.Literals.REACTION__EFFECT,
 				 SexecFactory.eINSTANCE.createSequence()));
 
-		newChildDescriptors.add
-			(createChildParameter
-				(SexecPackage.Literals.REACTION__EFFECT,
-				 SexecFactory.eINSTANCE.createCycle()));
-
 		newChildDescriptors.add
 			(createChildParameter
 				(SexecPackage.Literals.REACTION__EFFECT,

+ 0 - 5
plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/SequenceItemProvider.java

@@ -153,11 +153,6 @@ public class SequenceItemProvider
 				(SexecPackage.Literals.SEQUENCE__STEPS,
 				 SexecFactory.eINSTANCE.createSequence()));
 
-		newChildDescriptors.add
-			(createChildParameter
-				(SexecPackage.Literals.SEQUENCE__STEPS,
-				 SexecFactory.eINSTANCE.createCycle()));
-
 		newChildDescriptors.add
 			(createChildParameter
 				(SexecPackage.Literals.SEQUENCE__STEPS,

+ 3 - 27
plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/SexecItemProviderAdapterFactory.java

@@ -165,29 +165,6 @@ public class SexecItemProviderAdapterFactory extends SexecAdapterFactory impleme
 		return namedElementItemProvider;
 	}
 
-	/**
-	 * This keeps track of the one adapter used for all {@link org.yakindu.sct.model.sexec.Cycle} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected CycleItemProvider cycleItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link org.yakindu.sct.model.sexec.Cycle}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createCycleAdapter() {
-		if (cycleItemProvider == null) {
-			cycleItemProvider = new CycleItemProvider(this);
-		}
-
-		return cycleItemProvider;
-	}
-
 	/**
 	 * This keeps track of the one adapter used for all {@link org.yakindu.sct.model.sexec.Check} instances.
 	 * <!-- begin-user-doc -->
@@ -609,14 +586,13 @@ public class SexecItemProviderAdapterFactory extends SexecAdapterFactory impleme
 	 * @generated
 	 */
 	public void dispose() {
-		if (executionFlowItemProvider != null) executionFlowItemProvider.dispose();
 		if (namedElementItemProvider != null) namedElementItemProvider.dispose();
-		if (stateVectorItemProvider != null) stateVectorItemProvider.dispose();
-		if (timeEventItemProvider != null) timeEventItemProvider.dispose();
+		if (executionFlowItemProvider != null) executionFlowItemProvider.dispose();
 		if (executionStateItemProvider != null) executionStateItemProvider.dispose();
 		if (reactionItemProvider != null) reactionItemProvider.dispose();
+		if (stateVectorItemProvider != null) stateVectorItemProvider.dispose();
+		if (timeEventItemProvider != null) timeEventItemProvider.dispose();
 		if (sequenceItemProvider != null) sequenceItemProvider.dispose();
-		if (cycleItemProvider != null) cycleItemProvider.dispose();
 		if (checkItemProvider != null) checkItemProvider.dispose();
 		if (checkRefItemProvider != null) checkRefItemProvider.dispose();
 		if (ifItemProvider != null) ifItemProvider.dispose();

+ 0 - 5
plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/StateCaseItemProvider.java

@@ -180,11 +180,6 @@ public class StateCaseItemProvider
 				(SexecPackage.Literals.STATE_CASE__STEP,
 				 SexecFactory.eINSTANCE.createSequence()));
 
-		newChildDescriptors.add
-			(createChildParameter
-				(SexecPackage.Literals.STATE_CASE__STEP,
-				 SexecFactory.eINSTANCE.createCycle()));
-
 		newChildDescriptors.add
 			(createChildParameter
 				(SexecPackage.Literals.STATE_CASE__STEP,

+ 1 - 1
plugins/org.yakindu.sct.model.sexec/.settings/org.eclipse.core.resources.prefs

@@ -1,4 +1,4 @@
-#Mon Nov 21 12:18:46 CET 2011
+#Tue Nov 29 17:11:14 CET 2011
 eclipse.preferences.version=1
 encoding//model/sexec.ecorediag=UTF-8
 encoding/<project>=UTF-8

+ 18 - 17
plugins/org.yakindu.sct.model.sexec/model/sexec.ecore

@@ -3,34 +3,24 @@
     xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="sexec"
     nsURI="http://www.yakindu.org/sct/sexec/1.0.0" nsPrefix="sexec">
+  <eClassifiers xsi:type="ecore:EClass" name="NamedElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ExecutionFlow" eSuperTypes="../../org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//ScopedElement #//NamedElement">
     <eStructuralFeatures xsi:type="ecore:EReference" name="states" upperBound="-1"
         eType="#//ExecutionState" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="sequences" upperBound="-1"
-        eType="#//Sequence" containment="true"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="enterSequence" eType="#//Sequence"
         containment="true"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="stateVector" eType="#//StateVector"
         containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="StateVector">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
-        defaultValueLiteral="1"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
-        defaultValueLiteral="0"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TimeEvent" eSuperTypes="../../org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//Event">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="periodic" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
-        defaultValueLiteral="false"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="exitSequence" eType="#//Sequence"
+        containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ExecutionState" eSuperTypes="#//NamedElement">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="simpleName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="leaf" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
         defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="cycle" eType="#//Cycle"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="reactSequence" eType="#//Sequence"
         containment="true"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="reactions" upperBound="-1"
         eType="#//Reaction" containment="true"/>
@@ -42,6 +32,8 @@
         containment="true"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="exitSequence" eType="#//Sequence"
         containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="stateVector" eType="#//StateVector"
+        containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Reaction" eSuperTypes="#//NamedElement">
     <eStructuralFeatures xsi:type="ecore:EReference" name="check" eType="#//Check"
@@ -50,6 +42,16 @@
         containment="true"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="transition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="StateVector">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        defaultValueLiteral="1"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        defaultValueLiteral="0"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TimeEvent" eSuperTypes="../../org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//Event">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="periodic" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+        defaultValueLiteral="false"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Step" abstract="true" eSuperTypes="#//NamedElement">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="comment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
   </eClassifiers>
@@ -57,7 +59,6 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="steps" upperBound="-1"
         eType="#//Step" containment="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Cycle" eSuperTypes="#//Sequence"/>
   <eClassifiers xsi:type="ecore:EClass" name="Check" eSuperTypes="#//Step">
     <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="ecore:EClass ../../org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore#//Statement"
         containment="true"/>

Різницю між файлами не показано, бо вона завелика
+ 825 - 723
plugins/org.yakindu.sct.model.sexec/model/sexec.ecorediag


+ 27 - 17
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/ExecutionFlow.java

@@ -18,9 +18,9 @@ import org.yakindu.sct.model.sgraph.ScopedElement;
  * The following features are supported:
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sexec.ExecutionFlow#getStates <em>States</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sexec.ExecutionFlow#getSequences <em>Sequences</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.ExecutionFlow#getEnterSequence <em>Enter Sequence</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.ExecutionFlow#getStateVector <em>State Vector</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sexec.ExecutionFlow#getExitSequence <em>Exit Sequence</em>}</li>
  * </ul>
  * </p>
  *
@@ -45,22 +45,6 @@ public interface ExecutionFlow extends ScopedElement, NamedElement {
 	 */
 	EList<ExecutionState> getStates();
 
-	/**
-	 * Returns the value of the '<em><b>Sequences</b></em>' containment reference list.
-	 * The list contents are of type {@link org.yakindu.sct.model.sexec.Sequence}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Sequences</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Sequences</em>' containment reference list.
-	 * @see org.yakindu.sct.model.sexec.SexecPackage#getExecutionFlow_Sequences()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<Sequence> getSequences();
-
 	/**
 	 * Returns the value of the '<em><b>Enter Sequence</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
@@ -113,4 +97,30 @@ public interface ExecutionFlow extends ScopedElement, NamedElement {
 	 */
 	void setStateVector(StateVector value);
 
+	/**
+	 * Returns the value of the '<em><b>Exit Sequence</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Exit Sequence</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Exit Sequence</em>' containment reference.
+	 * @see #setExitSequence(Sequence)
+	 * @see org.yakindu.sct.model.sexec.SexecPackage#getExecutionFlow_ExitSequence()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Sequence getExitSequence();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.sct.model.sexec.ExecutionFlow#getExitSequence <em>Exit Sequence</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Exit Sequence</em>' containment reference.
+	 * @see #getExitSequence()
+	 * @generated
+	 */
+	void setExitSequence(Sequence value);
+
 } // ExecutionFlow

+ 54 - 27
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/ExecutionState.java

@@ -18,12 +18,13 @@ import org.eclipse.emf.common.util.EList;
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sexec.ExecutionState#getSimpleName <em>Simple Name</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.ExecutionState#isLeaf <em>Leaf</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sexec.ExecutionState#getCycle <em>Cycle</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sexec.ExecutionState#getReactSequence <em>React Sequence</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.ExecutionState#getReactions <em>Reactions</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.ExecutionState#getEntryAction <em>Entry Action</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.ExecutionState#getExitAction <em>Exit Action</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.ExecutionState#getEnterSequence <em>Enter Sequence</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.ExecutionState#getExitSequence <em>Exit Sequence</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sexec.ExecutionState#getStateVector <em>State Vector</em>}</li>
  * </ul>
  * </p>
  *
@@ -58,32 +59,6 @@ public interface ExecutionState extends NamedElement {
 	 */
 	void setSimpleName(String value);
 
-	/**
-	 * Returns the value of the '<em><b>Cycle</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Cycle</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Cycle</em>' containment reference.
-	 * @see #setCycle(Cycle)
-	 * @see org.yakindu.sct.model.sexec.SexecPackage#getExecutionState_Cycle()
-	 * @model containment="true"
-	 * @generated
-	 */
-	Cycle getCycle();
-
-	/**
-	 * Sets the value of the '{@link org.yakindu.sct.model.sexec.ExecutionState#getCycle <em>Cycle</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Cycle</em>' containment reference.
-	 * @see #getCycle()
-	 * @generated
-	 */
-	void setCycle(Cycle value);
-
 	/**
 	 * Returns the value of the '<em><b>Reactions</b></em>' containment reference list.
 	 * The list contents are of type {@link org.yakindu.sct.model.sexec.Reaction}.
@@ -204,6 +179,32 @@ public interface ExecutionState extends NamedElement {
 	 */
 	void setExitSequence(Sequence value);
 
+	/**
+	 * Returns the value of the '<em><b>State Vector</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>State Vector</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>State Vector</em>' containment reference.
+	 * @see #setStateVector(StateVector)
+	 * @see org.yakindu.sct.model.sexec.SexecPackage#getExecutionState_StateVector()
+	 * @model containment="true"
+	 * @generated
+	 */
+	StateVector getStateVector();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.sct.model.sexec.ExecutionState#getStateVector <em>State Vector</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>State Vector</em>' containment reference.
+	 * @see #getStateVector()
+	 * @generated
+	 */
+	void setStateVector(StateVector value);
+
 	/**
 	 * Returns the value of the '<em><b>Leaf</b></em>' attribute.
 	 * The default value is <code>"false"</code>.
@@ -231,4 +232,30 @@ public interface ExecutionState extends NamedElement {
 	 */
 	void setLeaf(boolean value);
 
+	/**
+	 * Returns the value of the '<em><b>React Sequence</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>React Sequence</em>' containment reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>React Sequence</em>' containment reference.
+	 * @see #setReactSequence(Sequence)
+	 * @see org.yakindu.sct.model.sexec.SexecPackage#getExecutionState_ReactSequence()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Sequence getReactSequence();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.sct.model.sexec.ExecutionState#getReactSequence <em>React Sequence</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>React Sequence</em>' containment reference.
+	 * @see #getReactSequence()
+	 * @generated
+	 */
+	void setReactSequence(Sequence value);
+
 } // ExecutionState

+ 0 - 9
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/SexecFactory.java

@@ -61,15 +61,6 @@ public interface SexecFactory extends EFactory {
 	 */
 	NamedElement createNamedElement();
 
-	/**
-	 * Returns a new object of class '<em>Cycle</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Cycle</em>'.
-	 * @generated
-	 */
-	Cycle createCycle();
-
 	/**
 	 * Returns a new object of class '<em>Check</em>'.
 	 * <!-- begin-user-doc -->

+ 144 - 182
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/SexecPackage.java

@@ -68,107 +68,107 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getExecutionFlow()
 	 * @generated
 	 */
-	int EXECUTION_FLOW = 0;
+	int EXECUTION_FLOW = 1;
 
 	/**
-	 * The feature id for the '<em><b>Scopes</b></em>' containment reference list.
+	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.NamedElementImpl <em>Named Element</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @see org.yakindu.sct.model.sexec.impl.NamedElementImpl
+	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getNamedElement()
 	 * @generated
-	 * @ordered
 	 */
-	int EXECUTION_FLOW__SCOPES = SGraphPackage.SCOPED_ELEMENT__SCOPES;
+	int NAMED_ELEMENT = 0;
 
 	/**
-	 * The feature id for the '<em><b>Namespace</b></em>' attribute.
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXECUTION_FLOW__NAMESPACE = SGraphPackage.SCOPED_ELEMENT__NAMESPACE;
+	int NAMED_ELEMENT__NAME = 0;
 
 	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * The number of structural features of the '<em>Named Element</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXECUTION_FLOW__NAME = SGraphPackage.SCOPED_ELEMENT_FEATURE_COUNT + 0;
+	int NAMED_ELEMENT_FEATURE_COUNT = 1;
 
 	/**
-	 * The feature id for the '<em><b>States</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Scopes</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXECUTION_FLOW__STATES = SGraphPackage.SCOPED_ELEMENT_FEATURE_COUNT + 1;
+	int EXECUTION_FLOW__SCOPES = SGraphPackage.SCOPED_ELEMENT__SCOPES;
 
 	/**
-	 * The feature id for the '<em><b>Sequences</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Namespace</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXECUTION_FLOW__SEQUENCES = SGraphPackage.SCOPED_ELEMENT_FEATURE_COUNT + 2;
+	int EXECUTION_FLOW__NAMESPACE = SGraphPackage.SCOPED_ELEMENT__NAMESPACE;
 
 	/**
-	 * The feature id for the '<em><b>Enter Sequence</b></em>' containment reference.
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXECUTION_FLOW__ENTER_SEQUENCE = SGraphPackage.SCOPED_ELEMENT_FEATURE_COUNT + 3;
+	int EXECUTION_FLOW__NAME = SGraphPackage.SCOPED_ELEMENT_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>State Vector</b></em>' containment reference.
+	 * The feature id for the '<em><b>States</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXECUTION_FLOW__STATE_VECTOR = SGraphPackage.SCOPED_ELEMENT_FEATURE_COUNT + 4;
+	int EXECUTION_FLOW__STATES = SGraphPackage.SCOPED_ELEMENT_FEATURE_COUNT + 1;
 
 	/**
-	 * The number of structural features of the '<em>Execution Flow</em>' class.
+	 * The feature id for the '<em><b>Enter Sequence</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXECUTION_FLOW_FEATURE_COUNT = SGraphPackage.SCOPED_ELEMENT_FEATURE_COUNT + 5;
+	int EXECUTION_FLOW__ENTER_SEQUENCE = SGraphPackage.SCOPED_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
-	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.NamedElementImpl <em>Named Element</em>}' class.
+	 * The feature id for the '<em><b>State Vector</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.yakindu.sct.model.sexec.impl.NamedElementImpl
-	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getNamedElement()
 	 * @generated
+	 * @ordered
 	 */
-	int NAMED_ELEMENT = 1;
+	int EXECUTION_FLOW__STATE_VECTOR = SGraphPackage.SCOPED_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * The feature id for the '<em><b>Exit Sequence</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NAMED_ELEMENT__NAME = 0;
+	int EXECUTION_FLOW__EXIT_SEQUENCE = SGraphPackage.SCOPED_ELEMENT_FEATURE_COUNT + 4;
 
 	/**
-	 * The number of structural features of the '<em>Named Element</em>' class.
+	 * The number of structural features of the '<em>Execution Flow</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NAMED_ELEMENT_FEATURE_COUNT = 1;
+	int EXECUTION_FLOW_FEATURE_COUNT = SGraphPackage.SCOPED_ELEMENT_FEATURE_COUNT + 5;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.ExecutionStateImpl <em>Execution State</em>}' class.
@@ -178,7 +178,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getExecutionState()
 	 * @generated
 	 */
-	int EXECUTION_STATE = 4;
+	int EXECUTION_STATE = 2;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.ReactionImpl <em>Reaction</em>}' class.
@@ -188,7 +188,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getReaction()
 	 * @generated
 	 */
-	int REACTION = 5;
+	int REACTION = 3;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.StepImpl <em>Step</em>}' class.
@@ -210,16 +210,6 @@ public interface SexecPackage extends EPackage {
 	 */
 	int SEQUENCE = 7;
 
-	/**
-	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.CycleImpl <em>Cycle</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.yakindu.sct.model.sexec.impl.CycleImpl
-	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getCycle()
-	 * @generated
-	 */
-	int CYCLE = 8;
-
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.CheckImpl <em>Check</em>}' class.
 	 * <!-- begin-user-doc -->
@@ -228,7 +218,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getCheck()
 	 * @generated
 	 */
-	int CHECK = 9;
+	int CHECK = 8;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.IfImpl <em>If</em>}' class.
@@ -238,7 +228,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getIf()
 	 * @generated
 	 */
-	int IF = 11;
+	int IF = 10;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.ExecutionImpl <em>Execution</em>}' class.
@@ -248,7 +238,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getExecution()
 	 * @generated
 	 */
-	int EXECUTION = 12;
+	int EXECUTION = 11;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.EnterStateImpl <em>Enter State</em>}' class.
@@ -258,7 +248,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getEnterState()
 	 * @generated
 	 */
-	int ENTER_STATE = 13;
+	int ENTER_STATE = 12;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.ExitStateImpl <em>Exit State</em>}' class.
@@ -268,7 +258,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getExitState()
 	 * @generated
 	 */
-	int EXIT_STATE = 14;
+	int EXIT_STATE = 13;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.StateVectorImpl <em>State Vector</em>}' class.
@@ -278,34 +268,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getStateVector()
 	 * @generated
 	 */
-	int STATE_VECTOR = 2;
-
-	/**
-	 * The feature id for the '<em><b>Size</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATE_VECTOR__SIZE = 0;
-
-	/**
-	 * The feature id for the '<em><b>Offset</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATE_VECTOR__OFFSET = 1;
-
-	/**
-	 * The number of structural features of the '<em>State Vector</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int STATE_VECTOR_FEATURE_COUNT = 2;
+	int STATE_VECTOR = 4;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.TimeEventImpl <em>Time Event</em>}' class.
@@ -315,34 +278,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getTimeEvent()
 	 * @generated
 	 */
-	int TIME_EVENT = 3;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TIME_EVENT__NAME = SGraphPackage.EVENT__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Periodic</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TIME_EVENT__PERIODIC = SGraphPackage.EVENT_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Time Event</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TIME_EVENT_FEATURE_COUNT = SGraphPackage.EVENT_FEATURE_COUNT + 1;
+	int TIME_EVENT = 5;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -372,13 +308,13 @@ public interface SexecPackage extends EPackage {
 	int EXECUTION_STATE__LEAF = NAMED_ELEMENT_FEATURE_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>Cycle</b></em>' containment reference.
+	 * The feature id for the '<em><b>React Sequence</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXECUTION_STATE__CYCLE = NAMED_ELEMENT_FEATURE_COUNT + 2;
+	int EXECUTION_STATE__REACT_SEQUENCE = NAMED_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Reactions</b></em>' containment reference list.
@@ -425,6 +361,15 @@ public interface SexecPackage extends EPackage {
 	 */
 	int EXECUTION_STATE__EXIT_SEQUENCE = NAMED_ELEMENT_FEATURE_COUNT + 7;
 
+	/**
+	 * The feature id for the '<em><b>State Vector</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXECUTION_STATE__STATE_VECTOR = NAMED_ELEMENT_FEATURE_COUNT + 8;
+
 	/**
 	 * The number of structural features of the '<em>Execution State</em>' class.
 	 * <!-- begin-user-doc -->
@@ -432,7 +377,7 @@ public interface SexecPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int EXECUTION_STATE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 8;
+	int EXECUTION_STATE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 9;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -480,31 +425,31 @@ public interface SexecPackage extends EPackage {
 	int REACTION_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * The feature id for the '<em><b>Size</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STEP__NAME = NAMED_ELEMENT__NAME;
+	int STATE_VECTOR__SIZE = 0;
 
 	/**
-	 * The feature id for the '<em><b>Comment</b></em>' attribute.
+	 * The feature id for the '<em><b>Offset</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STEP__COMMENT = NAMED_ELEMENT_FEATURE_COUNT + 0;
+	int STATE_VECTOR__OFFSET = 1;
 
 	/**
-	 * The number of structural features of the '<em>Step</em>' class.
+	 * The number of structural features of the '<em>State Vector</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STEP_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1;
+	int STATE_VECTOR_FEATURE_COUNT = 2;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -513,34 +458,52 @@ public interface SexecPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int SEQUENCE__NAME = STEP__NAME;
+	int TIME_EVENT__NAME = SGraphPackage.EVENT__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Comment</b></em>' attribute.
+	 * The feature id for the '<em><b>Periodic</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SEQUENCE__COMMENT = STEP__COMMENT;
+	int TIME_EVENT__PERIODIC = SGraphPackage.EVENT_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Steps</b></em>' containment reference list.
+	 * The number of structural features of the '<em>Time Event</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SEQUENCE__STEPS = STEP_FEATURE_COUNT + 0;
+	int TIME_EVENT_FEATURE_COUNT = SGraphPackage.EVENT_FEATURE_COUNT + 1;
 
 	/**
-	 * The number of structural features of the '<em>Sequence</em>' class.
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SEQUENCE_FEATURE_COUNT = STEP_FEATURE_COUNT + 1;
+	int STEP__NAME = NAMED_ELEMENT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Comment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STEP__COMMENT = NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Step</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STEP_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -549,7 +512,7 @@ public interface SexecPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int CYCLE__NAME = SEQUENCE__NAME;
+	int SEQUENCE__NAME = STEP__NAME;
 
 	/**
 	 * The feature id for the '<em><b>Comment</b></em>' attribute.
@@ -558,7 +521,7 @@ public interface SexecPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int CYCLE__COMMENT = SEQUENCE__COMMENT;
+	int SEQUENCE__COMMENT = STEP__COMMENT;
 
 	/**
 	 * The feature id for the '<em><b>Steps</b></em>' containment reference list.
@@ -567,16 +530,16 @@ public interface SexecPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int CYCLE__STEPS = SEQUENCE__STEPS;
+	int SEQUENCE__STEPS = STEP_FEATURE_COUNT + 0;
 
 	/**
-	 * The number of structural features of the '<em>Cycle</em>' class.
+	 * The number of structural features of the '<em>Sequence</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CYCLE_FEATURE_COUNT = SEQUENCE_FEATURE_COUNT + 0;
+	int SEQUENCE_FEATURE_COUNT = STEP_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -622,7 +585,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getCall()
 	 * @generated
 	 */
-	int CALL = 15;
+	int CALL = 14;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.ScheduleTimeEventImpl <em>Schedule Time Event</em>}' class.
@@ -632,7 +595,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getScheduleTimeEvent()
 	 * @generated
 	 */
-	int SCHEDULE_TIME_EVENT = 16;
+	int SCHEDULE_TIME_EVENT = 15;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.UnscheduleTimeEventImpl <em>Unschedule Time Event</em>}' class.
@@ -642,7 +605,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getUnscheduleTimeEvent()
 	 * @generated
 	 */
-	int UNSCHEDULE_TIME_EVENT = 17;
+	int UNSCHEDULE_TIME_EVENT = 16;
 
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.CheckRefImpl <em>Check Ref</em>}' class.
@@ -652,7 +615,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getCheckRef()
 	 * @generated
 	 */
-	int CHECK_REF = 10;
+	int CHECK_REF = 9;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -987,7 +950,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getStateSwitch()
 	 * @generated
 	 */
-	int STATE_SWITCH = 18;
+	int STATE_SWITCH = 17;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -1033,7 +996,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getStateCase()
 	 * @generated
 	 */
-	int STATE_CASE = 19;
+	int STATE_CASE = 18;
 
 	/**
 	 * The feature id for the '<em><b>State</b></em>' reference.
@@ -1084,17 +1047,6 @@ public interface SexecPackage extends EPackage {
 	 */
 	EReference getExecutionFlow_States();
 
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.yakindu.sct.model.sexec.ExecutionFlow#getSequences <em>Sequences</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Sequences</em>'.
-	 * @see org.yakindu.sct.model.sexec.ExecutionFlow#getSequences()
-	 * @see #getExecutionFlow()
-	 * @generated
-	 */
-	EReference getExecutionFlow_Sequences();
-
 	/**
 	 * Returns the meta object for the containment reference '{@link org.yakindu.sct.model.sexec.ExecutionFlow#getEnterSequence <em>Enter Sequence</em>}'.
 	 * <!-- begin-user-doc -->
@@ -1117,6 +1069,17 @@ public interface SexecPackage extends EPackage {
 	 */
 	EReference getExecutionFlow_StateVector();
 
+	/**
+	 * Returns the meta object for the containment reference '{@link org.yakindu.sct.model.sexec.ExecutionFlow#getExitSequence <em>Exit Sequence</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Exit Sequence</em>'.
+	 * @see org.yakindu.sct.model.sexec.ExecutionFlow#getExitSequence()
+	 * @see #getExecutionFlow()
+	 * @generated
+	 */
+	EReference getExecutionFlow_ExitSequence();
+
 	/**
 	 * Returns the meta object for class '{@link org.yakindu.sct.model.sexec.ExecutionState <em>Execution State</em>}'.
 	 * <!-- begin-user-doc -->
@@ -1138,17 +1101,6 @@ public interface SexecPackage extends EPackage {
 	 */
 	EAttribute getExecutionState_SimpleName();
 
-	/**
-	 * Returns the meta object for the containment reference '{@link org.yakindu.sct.model.sexec.ExecutionState#getCycle <em>Cycle</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Cycle</em>'.
-	 * @see org.yakindu.sct.model.sexec.ExecutionState#getCycle()
-	 * @see #getExecutionState()
-	 * @generated
-	 */
-	EReference getExecutionState_Cycle();
-
 	/**
 	 * Returns the meta object for the containment reference list '{@link org.yakindu.sct.model.sexec.ExecutionState#getReactions <em>Reactions</em>}'.
 	 * <!-- begin-user-doc -->
@@ -1204,6 +1156,17 @@ public interface SexecPackage extends EPackage {
 	 */
 	EReference getExecutionState_ExitSequence();
 
+	/**
+	 * Returns the meta object for the containment reference '{@link org.yakindu.sct.model.sexec.ExecutionState#getStateVector <em>State Vector</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>State Vector</em>'.
+	 * @see org.yakindu.sct.model.sexec.ExecutionState#getStateVector()
+	 * @see #getExecutionState()
+	 * @generated
+	 */
+	EReference getExecutionState_StateVector();
+
 	/**
 	 * Returns the meta object for the attribute '{@link org.yakindu.sct.model.sexec.ExecutionState#isLeaf <em>Leaf</em>}'.
 	 * <!-- begin-user-doc -->
@@ -1215,6 +1178,17 @@ public interface SexecPackage extends EPackage {
 	 */
 	EAttribute getExecutionState_Leaf();
 
+	/**
+	 * Returns the meta object for the containment reference '{@link org.yakindu.sct.model.sexec.ExecutionState#getReactSequence <em>React Sequence</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>React Sequence</em>'.
+	 * @see org.yakindu.sct.model.sexec.ExecutionState#getReactSequence()
+	 * @see #getExecutionState()
+	 * @generated
+	 */
+	EReference getExecutionState_ReactSequence();
+
 	/**
 	 * Returns the meta object for class '{@link org.yakindu.sct.model.sexec.Reaction <em>Reaction</em>}'.
 	 * <!-- begin-user-doc -->
@@ -1279,16 +1253,6 @@ public interface SexecPackage extends EPackage {
 	 */
 	EAttribute getNamedElement_Name();
 
-	/**
-	 * Returns the meta object for class '{@link org.yakindu.sct.model.sexec.Cycle <em>Cycle</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Cycle</em>'.
-	 * @see org.yakindu.sct.model.sexec.Cycle
-	 * @generated
-	 */
-	EClass getCycle();
-
 	/**
 	 * Returns the meta object for class '{@link org.yakindu.sct.model.sexec.Check <em>Check</em>}'.
 	 * <!-- begin-user-doc -->
@@ -1700,28 +1664,28 @@ public interface SexecPackage extends EPackage {
 		EReference EXECUTION_FLOW__STATES = eINSTANCE.getExecutionFlow_States();
 
 		/**
-		 * The meta object literal for the '<em><b>Sequences</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Enter Sequence</b></em>' containment reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference EXECUTION_FLOW__SEQUENCES = eINSTANCE.getExecutionFlow_Sequences();
+		EReference EXECUTION_FLOW__ENTER_SEQUENCE = eINSTANCE.getExecutionFlow_EnterSequence();
 
 		/**
-		 * The meta object literal for the '<em><b>Enter Sequence</b></em>' containment reference feature.
+		 * The meta object literal for the '<em><b>State Vector</b></em>' containment reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference EXECUTION_FLOW__ENTER_SEQUENCE = eINSTANCE.getExecutionFlow_EnterSequence();
+		EReference EXECUTION_FLOW__STATE_VECTOR = eINSTANCE.getExecutionFlow_StateVector();
 
 		/**
-		 * The meta object literal for the '<em><b>State Vector</b></em>' containment reference feature.
+		 * The meta object literal for the '<em><b>Exit Sequence</b></em>' containment reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference EXECUTION_FLOW__STATE_VECTOR = eINSTANCE.getExecutionFlow_StateVector();
+		EReference EXECUTION_FLOW__EXIT_SEQUENCE = eINSTANCE.getExecutionFlow_ExitSequence();
 
 		/**
 		 * The meta object literal for the '{@link org.yakindu.sct.model.sexec.impl.ExecutionStateImpl <em>Execution State</em>}' class.
@@ -1741,14 +1705,6 @@ public interface SexecPackage extends EPackage {
 		 */
 		EAttribute EXECUTION_STATE__SIMPLE_NAME = eINSTANCE.getExecutionState_SimpleName();
 
-		/**
-		 * The meta object literal for the '<em><b>Cycle</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference EXECUTION_STATE__CYCLE = eINSTANCE.getExecutionState_Cycle();
-
 		/**
 		 * The meta object literal for the '<em><b>Reactions</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
@@ -1789,6 +1745,14 @@ public interface SexecPackage extends EPackage {
 		 */
 		EReference EXECUTION_STATE__EXIT_SEQUENCE = eINSTANCE.getExecutionState_ExitSequence();
 
+		/**
+		 * The meta object literal for the '<em><b>State Vector</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference EXECUTION_STATE__STATE_VECTOR = eINSTANCE.getExecutionState_StateVector();
+
 		/**
 		 * The meta object literal for the '<em><b>Leaf</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
@@ -1797,6 +1761,14 @@ public interface SexecPackage extends EPackage {
 		 */
 		EAttribute EXECUTION_STATE__LEAF = eINSTANCE.getExecutionState_Leaf();
 
+		/**
+		 * The meta object literal for the '<em><b>React Sequence</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference EXECUTION_STATE__REACT_SEQUENCE = eINSTANCE.getExecutionState_ReactSequence();
+
 		/**
 		 * The meta object literal for the '{@link org.yakindu.sct.model.sexec.impl.ReactionImpl <em>Reaction</em>}' class.
 		 * <!-- begin-user-doc -->
@@ -1849,16 +1821,6 @@ public interface SexecPackage extends EPackage {
 		 */
 		EAttribute NAMED_ELEMENT__NAME = eINSTANCE.getNamedElement_Name();
 
-		/**
-		 * The meta object literal for the '{@link org.yakindu.sct.model.sexec.impl.CycleImpl <em>Cycle</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.yakindu.sct.model.sexec.impl.CycleImpl
-		 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getCycle()
-		 * @generated
-		 */
-		EClass CYCLE = eINSTANCE.getCycle();
-
 		/**
 		 * The meta object literal for the '{@link org.yakindu.sct.model.sexec.impl.CheckImpl <em>Check</em>}' class.
 		 * <!-- begin-user-doc -->

+ 0 - 42
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/CycleImpl.java

@@ -1,42 +0,0 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id$
- */
-package org.yakindu.sct.model.sexec.impl;
-
-import org.eclipse.emf.ecore.EClass;
-import org.yakindu.sct.model.sexec.Cycle;
-import org.yakindu.sct.model.sexec.SexecPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Cycle</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * </p>
- *
- * @generated
- */
-public class CycleImpl extends SequenceImpl implements Cycle {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected CycleImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return SexecPackage.Literals.CYCLE;
-	}
-
-} //CycleImpl

+ 65 - 35
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/ExecutionFlowImpl.java

@@ -33,9 +33,9 @@ import org.yakindu.sct.model.sgraph.impl.ScopedElementImpl;
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sexec.impl.ExecutionFlowImpl#getName <em>Name</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.impl.ExecutionFlowImpl#getStates <em>States</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sexec.impl.ExecutionFlowImpl#getSequences <em>Sequences</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.impl.ExecutionFlowImpl#getEnterSequence <em>Enter Sequence</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.impl.ExecutionFlowImpl#getStateVector <em>State Vector</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sexec.impl.ExecutionFlowImpl#getExitSequence <em>Exit Sequence</em>}</li>
  * </ul>
  * </p>
  *
@@ -73,34 +73,34 @@ public class ExecutionFlowImpl extends ScopedElementImpl implements ExecutionFlo
 	protected EList<ExecutionState> states;
 
 	/**
-	 * The cached value of the '{@link #getSequences() <em>Sequences</em>}' containment reference list.
+	 * The cached value of the '{@link #getEnterSequence() <em>Enter Sequence</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getSequences()
+	 * @see #getEnterSequence()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<Sequence> sequences;
+	protected Sequence enterSequence;
 
 	/**
-	 * The cached value of the '{@link #getEnterSequence() <em>Enter Sequence</em>}' containment reference.
+	 * The cached value of the '{@link #getStateVector() <em>State Vector</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getEnterSequence()
+	 * @see #getStateVector()
 	 * @generated
 	 * @ordered
 	 */
-	protected Sequence enterSequence;
+	protected StateVector stateVector;
 
 	/**
-	 * The cached value of the '{@link #getStateVector() <em>State Vector</em>}' containment reference.
+	 * The cached value of the '{@link #getExitSequence() <em>Exit Sequence</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getStateVector()
+	 * @see #getExitSequence()
 	 * @generated
 	 * @ordered
 	 */
-	protected StateVector stateVector;
+	protected Sequence exitSequence;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -154,18 +154,6 @@ public class ExecutionFlowImpl extends ScopedElementImpl implements ExecutionFlo
 		return states;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList<Sequence> getSequences() {
-		if (sequences == null) {
-			sequences = new EObjectContainmentEList<Sequence>(Sequence.class, this, SexecPackage.EXECUTION_FLOW__SEQUENCES);
-		}
-		return sequences;
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -252,6 +240,49 @@ public class ExecutionFlowImpl extends ScopedElementImpl implements ExecutionFlo
 			eNotify(new ENotificationImpl(this, Notification.SET, SexecPackage.EXECUTION_FLOW__STATE_VECTOR, newStateVector, newStateVector));
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Sequence getExitSequence() {
+		return exitSequence;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetExitSequence(Sequence newExitSequence, NotificationChain msgs) {
+		Sequence oldExitSequence = exitSequence;
+		exitSequence = newExitSequence;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SexecPackage.EXECUTION_FLOW__EXIT_SEQUENCE, oldExitSequence, newExitSequence);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExitSequence(Sequence newExitSequence) {
+		if (newExitSequence != exitSequence) {
+			NotificationChain msgs = null;
+			if (exitSequence != null)
+				msgs = ((InternalEObject)exitSequence).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SexecPackage.EXECUTION_FLOW__EXIT_SEQUENCE, null, msgs);
+			if (newExitSequence != null)
+				msgs = ((InternalEObject)newExitSequence).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SexecPackage.EXECUTION_FLOW__EXIT_SEQUENCE, null, msgs);
+			msgs = basicSetExitSequence(newExitSequence, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SexecPackage.EXECUTION_FLOW__EXIT_SEQUENCE, newExitSequence, newExitSequence));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -262,12 +293,12 @@ public class ExecutionFlowImpl extends ScopedElementImpl implements ExecutionFlo
 		switch (featureID) {
 			case SexecPackage.EXECUTION_FLOW__STATES:
 				return ((InternalEList<?>)getStates()).basicRemove(otherEnd, msgs);
-			case SexecPackage.EXECUTION_FLOW__SEQUENCES:
-				return ((InternalEList<?>)getSequences()).basicRemove(otherEnd, msgs);
 			case SexecPackage.EXECUTION_FLOW__ENTER_SEQUENCE:
 				return basicSetEnterSequence(null, msgs);
 			case SexecPackage.EXECUTION_FLOW__STATE_VECTOR:
 				return basicSetStateVector(null, msgs);
+			case SexecPackage.EXECUTION_FLOW__EXIT_SEQUENCE:
+				return basicSetExitSequence(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -284,12 +315,12 @@ public class ExecutionFlowImpl extends ScopedElementImpl implements ExecutionFlo
 				return getName();
 			case SexecPackage.EXECUTION_FLOW__STATES:
 				return getStates();
-			case SexecPackage.EXECUTION_FLOW__SEQUENCES:
-				return getSequences();
 			case SexecPackage.EXECUTION_FLOW__ENTER_SEQUENCE:
 				return getEnterSequence();
 			case SexecPackage.EXECUTION_FLOW__STATE_VECTOR:
 				return getStateVector();
+			case SexecPackage.EXECUTION_FLOW__EXIT_SEQUENCE:
+				return getExitSequence();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -310,16 +341,15 @@ public class ExecutionFlowImpl extends ScopedElementImpl implements ExecutionFlo
 				getStates().clear();
 				getStates().addAll((Collection<? extends ExecutionState>)newValue);
 				return;
-			case SexecPackage.EXECUTION_FLOW__SEQUENCES:
-				getSequences().clear();
-				getSequences().addAll((Collection<? extends Sequence>)newValue);
-				return;
 			case SexecPackage.EXECUTION_FLOW__ENTER_SEQUENCE:
 				setEnterSequence((Sequence)newValue);
 				return;
 			case SexecPackage.EXECUTION_FLOW__STATE_VECTOR:
 				setStateVector((StateVector)newValue);
 				return;
+			case SexecPackage.EXECUTION_FLOW__EXIT_SEQUENCE:
+				setExitSequence((Sequence)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -338,15 +368,15 @@ public class ExecutionFlowImpl extends ScopedElementImpl implements ExecutionFlo
 			case SexecPackage.EXECUTION_FLOW__STATES:
 				getStates().clear();
 				return;
-			case SexecPackage.EXECUTION_FLOW__SEQUENCES:
-				getSequences().clear();
-				return;
 			case SexecPackage.EXECUTION_FLOW__ENTER_SEQUENCE:
 				setEnterSequence((Sequence)null);
 				return;
 			case SexecPackage.EXECUTION_FLOW__STATE_VECTOR:
 				setStateVector((StateVector)null);
 				return;
+			case SexecPackage.EXECUTION_FLOW__EXIT_SEQUENCE:
+				setExitSequence((Sequence)null);
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -363,12 +393,12 @@ public class ExecutionFlowImpl extends ScopedElementImpl implements ExecutionFlo
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
 			case SexecPackage.EXECUTION_FLOW__STATES:
 				return states != null && !states.isEmpty();
-			case SexecPackage.EXECUTION_FLOW__SEQUENCES:
-				return sequences != null && !sequences.isEmpty();
 			case SexecPackage.EXECUTION_FLOW__ENTER_SEQUENCE:
 				return enterSequence != null;
 			case SexecPackage.EXECUTION_FLOW__STATE_VECTOR:
 				return stateVector != null;
+			case SexecPackage.EXECUTION_FLOW__EXIT_SEQUENCE:
+				return exitSequence != null;
 		}
 		return super.eIsSet(featureID);
 	}

+ 124 - 58
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/ExecutionStateImpl.java

@@ -16,11 +16,11 @@ import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
-import org.yakindu.sct.model.sexec.Cycle;
 import org.yakindu.sct.model.sexec.ExecutionState;
 import org.yakindu.sct.model.sexec.Reaction;
 import org.yakindu.sct.model.sexec.Sequence;
 import org.yakindu.sct.model.sexec.SexecPackage;
+import org.yakindu.sct.model.sexec.StateVector;
 import org.yakindu.sct.model.sexec.Step;
 
 /**
@@ -32,12 +32,13 @@ import org.yakindu.sct.model.sexec.Step;
  * <ul>
  *   <li>{@link org.yakindu.sct.model.sexec.impl.ExecutionStateImpl#getSimpleName <em>Simple Name</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.impl.ExecutionStateImpl#isLeaf <em>Leaf</em>}</li>
- *   <li>{@link org.yakindu.sct.model.sexec.impl.ExecutionStateImpl#getCycle <em>Cycle</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sexec.impl.ExecutionStateImpl#getReactSequence <em>React Sequence</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.impl.ExecutionStateImpl#getReactions <em>Reactions</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.impl.ExecutionStateImpl#getEntryAction <em>Entry Action</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.impl.ExecutionStateImpl#getExitAction <em>Exit Action</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.impl.ExecutionStateImpl#getEnterSequence <em>Enter Sequence</em>}</li>
  *   <li>{@link org.yakindu.sct.model.sexec.impl.ExecutionStateImpl#getExitSequence <em>Exit Sequence</em>}</li>
+ *   <li>{@link org.yakindu.sct.model.sexec.impl.ExecutionStateImpl#getStateVector <em>State Vector</em>}</li>
  * </ul>
  * </p>
  *
@@ -85,14 +86,14 @@ public class ExecutionStateImpl extends NamedElementImpl implements ExecutionSta
 	protected boolean leaf = LEAF_EDEFAULT;
 
 	/**
-	 * The cached value of the '{@link #getCycle() <em>Cycle</em>}' containment reference.
+	 * The cached value of the '{@link #getReactSequence() <em>React Sequence</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getCycle()
+	 * @see #getReactSequence()
 	 * @generated
 	 * @ordered
 	 */
-	protected Cycle cycle;
+	protected Sequence reactSequence;
 
 	/**
 	 * The cached value of the '{@link #getReactions() <em>Reactions</em>}' containment reference list.
@@ -144,6 +145,16 @@ public class ExecutionStateImpl extends NamedElementImpl implements ExecutionSta
 	 */
 	protected Sequence exitSequence;
 
+	/**
+	 * The cached value of the '{@link #getStateVector() <em>State Vector</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStateVector()
+	 * @generated
+	 * @ordered
+	 */
+	protected StateVector stateVector;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -184,49 +195,6 @@ public class ExecutionStateImpl extends NamedElementImpl implements ExecutionSta
 			eNotify(new ENotificationImpl(this, Notification.SET, SexecPackage.EXECUTION_STATE__SIMPLE_NAME, oldSimpleName, simpleName));
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Cycle getCycle() {
-		return cycle;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetCycle(Cycle newCycle, NotificationChain msgs) {
-		Cycle oldCycle = cycle;
-		cycle = newCycle;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SexecPackage.EXECUTION_STATE__CYCLE, oldCycle, newCycle);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setCycle(Cycle newCycle) {
-		if (newCycle != cycle) {
-			NotificationChain msgs = null;
-			if (cycle != null)
-				msgs = ((InternalEObject)cycle).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SexecPackage.EXECUTION_STATE__CYCLE, null, msgs);
-			if (newCycle != null)
-				msgs = ((InternalEObject)newCycle).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SexecPackage.EXECUTION_STATE__CYCLE, null, msgs);
-			msgs = basicSetCycle(newCycle, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, SexecPackage.EXECUTION_STATE__CYCLE, newCycle, newCycle));
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -411,6 +379,49 @@ public class ExecutionStateImpl extends NamedElementImpl implements ExecutionSta
 			eNotify(new ENotificationImpl(this, Notification.SET, SexecPackage.EXECUTION_STATE__EXIT_SEQUENCE, newExitSequence, newExitSequence));
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public StateVector getStateVector() {
+		return stateVector;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetStateVector(StateVector newStateVector, NotificationChain msgs) {
+		StateVector oldStateVector = stateVector;
+		stateVector = newStateVector;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SexecPackage.EXECUTION_STATE__STATE_VECTOR, oldStateVector, newStateVector);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStateVector(StateVector newStateVector) {
+		if (newStateVector != stateVector) {
+			NotificationChain msgs = null;
+			if (stateVector != null)
+				msgs = ((InternalEObject)stateVector).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SexecPackage.EXECUTION_STATE__STATE_VECTOR, null, msgs);
+			if (newStateVector != null)
+				msgs = ((InternalEObject)newStateVector).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SexecPackage.EXECUTION_STATE__STATE_VECTOR, null, msgs);
+			msgs = basicSetStateVector(newStateVector, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SexecPackage.EXECUTION_STATE__STATE_VECTOR, newStateVector, newStateVector));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -432,6 +443,49 @@ public class ExecutionStateImpl extends NamedElementImpl implements ExecutionSta
 			eNotify(new ENotificationImpl(this, Notification.SET, SexecPackage.EXECUTION_STATE__LEAF, oldLeaf, leaf));
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Sequence getReactSequence() {
+		return reactSequence;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetReactSequence(Sequence newReactSequence, NotificationChain msgs) {
+		Sequence oldReactSequence = reactSequence;
+		reactSequence = newReactSequence;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SexecPackage.EXECUTION_STATE__REACT_SEQUENCE, oldReactSequence, newReactSequence);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReactSequence(Sequence newReactSequence) {
+		if (newReactSequence != reactSequence) {
+			NotificationChain msgs = null;
+			if (reactSequence != null)
+				msgs = ((InternalEObject)reactSequence).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SexecPackage.EXECUTION_STATE__REACT_SEQUENCE, null, msgs);
+			if (newReactSequence != null)
+				msgs = ((InternalEObject)newReactSequence).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SexecPackage.EXECUTION_STATE__REACT_SEQUENCE, null, msgs);
+			msgs = basicSetReactSequence(newReactSequence, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SexecPackage.EXECUTION_STATE__REACT_SEQUENCE, newReactSequence, newReactSequence));
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -440,8 +494,8 @@ public class ExecutionStateImpl extends NamedElementImpl implements ExecutionSta
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case SexecPackage.EXECUTION_STATE__CYCLE:
-				return basicSetCycle(null, msgs);
+			case SexecPackage.EXECUTION_STATE__REACT_SEQUENCE:
+				return basicSetReactSequence(null, msgs);
 			case SexecPackage.EXECUTION_STATE__REACTIONS:
 				return ((InternalEList<?>)getReactions()).basicRemove(otherEnd, msgs);
 			case SexecPackage.EXECUTION_STATE__ENTRY_ACTION:
@@ -452,6 +506,8 @@ public class ExecutionStateImpl extends NamedElementImpl implements ExecutionSta
 				return basicSetEnterSequence(null, msgs);
 			case SexecPackage.EXECUTION_STATE__EXIT_SEQUENCE:
 				return basicSetExitSequence(null, msgs);
+			case SexecPackage.EXECUTION_STATE__STATE_VECTOR:
+				return basicSetStateVector(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -468,8 +524,8 @@ public class ExecutionStateImpl extends NamedElementImpl implements ExecutionSta
 				return getSimpleName();
 			case SexecPackage.EXECUTION_STATE__LEAF:
 				return isLeaf();
-			case SexecPackage.EXECUTION_STATE__CYCLE:
-				return getCycle();
+			case SexecPackage.EXECUTION_STATE__REACT_SEQUENCE:
+				return getReactSequence();
 			case SexecPackage.EXECUTION_STATE__REACTIONS:
 				return getReactions();
 			case SexecPackage.EXECUTION_STATE__ENTRY_ACTION:
@@ -480,6 +536,8 @@ public class ExecutionStateImpl extends NamedElementImpl implements ExecutionSta
 				return getEnterSequence();
 			case SexecPackage.EXECUTION_STATE__EXIT_SEQUENCE:
 				return getExitSequence();
+			case SexecPackage.EXECUTION_STATE__STATE_VECTOR:
+				return getStateVector();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -499,8 +557,8 @@ public class ExecutionStateImpl extends NamedElementImpl implements ExecutionSta
 			case SexecPackage.EXECUTION_STATE__LEAF:
 				setLeaf((Boolean)newValue);
 				return;
-			case SexecPackage.EXECUTION_STATE__CYCLE:
-				setCycle((Cycle)newValue);
+			case SexecPackage.EXECUTION_STATE__REACT_SEQUENCE:
+				setReactSequence((Sequence)newValue);
 				return;
 			case SexecPackage.EXECUTION_STATE__REACTIONS:
 				getReactions().clear();
@@ -518,6 +576,9 @@ public class ExecutionStateImpl extends NamedElementImpl implements ExecutionSta
 			case SexecPackage.EXECUTION_STATE__EXIT_SEQUENCE:
 				setExitSequence((Sequence)newValue);
 				return;
+			case SexecPackage.EXECUTION_STATE__STATE_VECTOR:
+				setStateVector((StateVector)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -536,8 +597,8 @@ public class ExecutionStateImpl extends NamedElementImpl implements ExecutionSta
 			case SexecPackage.EXECUTION_STATE__LEAF:
 				setLeaf(LEAF_EDEFAULT);
 				return;
-			case SexecPackage.EXECUTION_STATE__CYCLE:
-				setCycle((Cycle)null);
+			case SexecPackage.EXECUTION_STATE__REACT_SEQUENCE:
+				setReactSequence((Sequence)null);
 				return;
 			case SexecPackage.EXECUTION_STATE__REACTIONS:
 				getReactions().clear();
@@ -554,6 +615,9 @@ public class ExecutionStateImpl extends NamedElementImpl implements ExecutionSta
 			case SexecPackage.EXECUTION_STATE__EXIT_SEQUENCE:
 				setExitSequence((Sequence)null);
 				return;
+			case SexecPackage.EXECUTION_STATE__STATE_VECTOR:
+				setStateVector((StateVector)null);
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -570,8 +634,8 @@ public class ExecutionStateImpl extends NamedElementImpl implements ExecutionSta
 				return SIMPLE_NAME_EDEFAULT == null ? simpleName != null : !SIMPLE_NAME_EDEFAULT.equals(simpleName);
 			case SexecPackage.EXECUTION_STATE__LEAF:
 				return leaf != LEAF_EDEFAULT;
-			case SexecPackage.EXECUTION_STATE__CYCLE:
-				return cycle != null;
+			case SexecPackage.EXECUTION_STATE__REACT_SEQUENCE:
+				return reactSequence != null;
 			case SexecPackage.EXECUTION_STATE__REACTIONS:
 				return reactions != null && !reactions.isEmpty();
 			case SexecPackage.EXECUTION_STATE__ENTRY_ACTION:
@@ -582,6 +646,8 @@ public class ExecutionStateImpl extends NamedElementImpl implements ExecutionSta
 				return enterSequence != null;
 			case SexecPackage.EXECUTION_STATE__EXIT_SEQUENCE:
 				return exitSequence != null;
+			case SexecPackage.EXECUTION_STATE__STATE_VECTOR:
+				return stateVector != null;
 		}
 		return super.eIsSet(featureID);
 	}

+ 3 - 15
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/SexecFactoryImpl.java

@@ -15,7 +15,6 @@ import org.yakindu.sct.model.sexec.*;
 import org.yakindu.sct.model.sexec.Call;
 import org.yakindu.sct.model.sexec.Check;
 import org.yakindu.sct.model.sexec.CheckRef;
-import org.yakindu.sct.model.sexec.Cycle;
 import org.yakindu.sct.model.sexec.EnterState;
 import org.yakindu.sct.model.sexec.Execution;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
@@ -76,14 +75,13 @@ public class SexecFactoryImpl extends EFactoryImpl implements SexecFactory {
 	@Override
 	public EObject create(EClass eClass) {
 		switch (eClass.getClassifierID()) {
-			case SexecPackage.EXECUTION_FLOW: return createExecutionFlow();
 			case SexecPackage.NAMED_ELEMENT: return createNamedElement();
-			case SexecPackage.STATE_VECTOR: return createStateVector();
-			case SexecPackage.TIME_EVENT: return createTimeEvent();
+			case SexecPackage.EXECUTION_FLOW: return createExecutionFlow();
 			case SexecPackage.EXECUTION_STATE: return createExecutionState();
 			case SexecPackage.REACTION: return createReaction();
+			case SexecPackage.STATE_VECTOR: return createStateVector();
+			case SexecPackage.TIME_EVENT: return createTimeEvent();
 			case SexecPackage.SEQUENCE: return createSequence();
-			case SexecPackage.CYCLE: return createCycle();
 			case SexecPackage.CHECK: return createCheck();
 			case SexecPackage.CHECK_REF: return createCheckRef();
 			case SexecPackage.IF: return createIf();
@@ -140,16 +138,6 @@ public class SexecFactoryImpl extends EFactoryImpl implements SexecFactory {
 		return namedElement;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Cycle createCycle() {
-		CycleImpl cycle = new CycleImpl();
-		return cycle;
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->

+ 48 - 59
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/SexecPackageImpl.java

@@ -14,7 +14,6 @@ import org.eclipse.emf.ecore.impl.EPackageImpl;
 import org.yakindu.sct.model.sexec.Call;
 import org.yakindu.sct.model.sexec.Check;
 import org.yakindu.sct.model.sexec.CheckRef;
-import org.yakindu.sct.model.sexec.Cycle;
 import org.yakindu.sct.model.sexec.EnterState;
 import org.yakindu.sct.model.sexec.Execution;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
@@ -70,13 +69,6 @@ public class SexecPackageImpl extends EPackageImpl implements SexecPackage {
 	 */
 	private EClass namedElementEClass = null;
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass cycleEClass = null;
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -269,7 +261,7 @@ public class SexecPackageImpl extends EPackageImpl implements SexecPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getExecutionFlow_Sequences() {
+	public EReference getExecutionFlow_EnterSequence() {
 		return (EReference)executionFlowEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -278,7 +270,7 @@ public class SexecPackageImpl extends EPackageImpl implements SexecPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getExecutionFlow_EnterSequence() {
+	public EReference getExecutionFlow_StateVector() {
 		return (EReference)executionFlowEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -287,7 +279,7 @@ public class SexecPackageImpl extends EPackageImpl implements SexecPackage {
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getExecutionFlow_StateVector() {
+	public EReference getExecutionFlow_ExitSequence() {
 		return (EReference)executionFlowEClass.getEStructuralFeatures().get(3);
 	}
 
@@ -309,15 +301,6 @@ public class SexecPackageImpl extends EPackageImpl implements SexecPackage {
 		return (EAttribute)executionStateEClass.getEStructuralFeatures().get(0);
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getExecutionState_Cycle() {
-		return (EReference)executionStateEClass.getEStructuralFeatures().get(2);
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -363,6 +346,15 @@ public class SexecPackageImpl extends EPackageImpl implements SexecPackage {
 		return (EReference)executionStateEClass.getEStructuralFeatures().get(7);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getExecutionState_StateVector() {
+		return (EReference)executionStateEClass.getEStructuralFeatures().get(8);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -372,6 +364,15 @@ public class SexecPackageImpl extends EPackageImpl implements SexecPackage {
 		return (EAttribute)executionStateEClass.getEStructuralFeatures().get(1);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getExecutionState_ReactSequence() {
+		return (EReference)executionStateEClass.getEStructuralFeatures().get(2);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -426,15 +427,6 @@ public class SexecPackageImpl extends EPackageImpl implements SexecPackage {
 		return (EAttribute)namedElementEClass.getEStructuralFeatures().get(0);
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getCycle() {
-		return cycleEClass;
-	}
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -778,45 +770,44 @@ public class SexecPackageImpl extends EPackageImpl implements SexecPackage {
 		isCreated = true;
 
 		// Create classes and their features
+		namedElementEClass = createEClass(NAMED_ELEMENT);
+		createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME);
+
 		executionFlowEClass = createEClass(EXECUTION_FLOW);
 		createEReference(executionFlowEClass, EXECUTION_FLOW__STATES);
-		createEReference(executionFlowEClass, EXECUTION_FLOW__SEQUENCES);
 		createEReference(executionFlowEClass, EXECUTION_FLOW__ENTER_SEQUENCE);
 		createEReference(executionFlowEClass, EXECUTION_FLOW__STATE_VECTOR);
-
-		namedElementEClass = createEClass(NAMED_ELEMENT);
-		createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME);
-
-		stateVectorEClass = createEClass(STATE_VECTOR);
-		createEAttribute(stateVectorEClass, STATE_VECTOR__SIZE);
-		createEAttribute(stateVectorEClass, STATE_VECTOR__OFFSET);
-
-		timeEventEClass = createEClass(TIME_EVENT);
-		createEAttribute(timeEventEClass, TIME_EVENT__PERIODIC);
+		createEReference(executionFlowEClass, EXECUTION_FLOW__EXIT_SEQUENCE);
 
 		executionStateEClass = createEClass(EXECUTION_STATE);
 		createEAttribute(executionStateEClass, EXECUTION_STATE__SIMPLE_NAME);
 		createEAttribute(executionStateEClass, EXECUTION_STATE__LEAF);
-		createEReference(executionStateEClass, EXECUTION_STATE__CYCLE);
+		createEReference(executionStateEClass, EXECUTION_STATE__REACT_SEQUENCE);
 		createEReference(executionStateEClass, EXECUTION_STATE__REACTIONS);
 		createEReference(executionStateEClass, EXECUTION_STATE__ENTRY_ACTION);
 		createEReference(executionStateEClass, EXECUTION_STATE__EXIT_ACTION);
 		createEReference(executionStateEClass, EXECUTION_STATE__ENTER_SEQUENCE);
 		createEReference(executionStateEClass, EXECUTION_STATE__EXIT_SEQUENCE);
+		createEReference(executionStateEClass, EXECUTION_STATE__STATE_VECTOR);
 
 		reactionEClass = createEClass(REACTION);
 		createEReference(reactionEClass, REACTION__CHECK);
 		createEReference(reactionEClass, REACTION__EFFECT);
 		createEAttribute(reactionEClass, REACTION__TRANSITION);
 
+		stateVectorEClass = createEClass(STATE_VECTOR);
+		createEAttribute(stateVectorEClass, STATE_VECTOR__SIZE);
+		createEAttribute(stateVectorEClass, STATE_VECTOR__OFFSET);
+
+		timeEventEClass = createEClass(TIME_EVENT);
+		createEAttribute(timeEventEClass, TIME_EVENT__PERIODIC);
+
 		stepEClass = createEClass(STEP);
 		createEAttribute(stepEClass, STEP__COMMENT);
 
 		sequenceEClass = createEClass(SEQUENCE);
 		createEReference(sequenceEClass, SEQUENCE__STEPS);
 
-		cycleEClass = createEClass(CYCLE);
-
 		checkEClass = createEClass(CHECK);
 		createEReference(checkEClass, CHECK__CONDITION);
 
@@ -888,12 +879,11 @@ public class SexecPackageImpl extends EPackageImpl implements SexecPackage {
 		// Add supertypes to classes
 		executionFlowEClass.getESuperTypes().add(theSGraphPackage.getScopedElement());
 		executionFlowEClass.getESuperTypes().add(this.getNamedElement());
-		timeEventEClass.getESuperTypes().add(theSGraphPackage.getEvent());
 		executionStateEClass.getESuperTypes().add(this.getNamedElement());
 		reactionEClass.getESuperTypes().add(this.getNamedElement());
+		timeEventEClass.getESuperTypes().add(theSGraphPackage.getEvent());
 		stepEClass.getESuperTypes().add(this.getNamedElement());
 		sequenceEClass.getESuperTypes().add(this.getStep());
-		cycleEClass.getESuperTypes().add(this.getSequence());
 		checkEClass.getESuperTypes().add(this.getStep());
 		checkRefEClass.getESuperTypes().add(this.getCheck());
 		ifEClass.getESuperTypes().add(this.getStep());
@@ -906,45 +896,44 @@ public class SexecPackageImpl extends EPackageImpl implements SexecPackage {
 		stateSwitchEClass.getESuperTypes().add(this.getStep());
 
 		// Initialize classes and features; add operations and parameters
+		initEClass(namedElementEClass, NamedElement.class, "NamedElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getNamedElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, NamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		initEClass(executionFlowEClass, ExecutionFlow.class, "ExecutionFlow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getExecutionFlow_States(), this.getExecutionState(), null, "states", null, 0, -1, ExecutionFlow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getExecutionFlow_Sequences(), this.getSequence(), null, "sequences", null, 0, -1, ExecutionFlow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getExecutionFlow_EnterSequence(), this.getSequence(), null, "enterSequence", null, 0, 1, ExecutionFlow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getExecutionFlow_StateVector(), this.getStateVector(), null, "stateVector", null, 0, 1, ExecutionFlow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(namedElementEClass, NamedElement.class, "NamedElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getNamedElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, NamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(stateVectorEClass, StateVector.class, "StateVector", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getStateVector_Size(), ecorePackage.getEInt(), "size", "1", 0, 1, StateVector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getStateVector_Offset(), ecorePackage.getEInt(), "offset", "0", 0, 1, StateVector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(timeEventEClass, TimeEvent.class, "TimeEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getTimeEvent_Periodic(), ecorePackage.getEBoolean(), "periodic", "false", 0, 1, TimeEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getExecutionFlow_ExitSequence(), this.getSequence(), null, "exitSequence", null, 0, 1, ExecutionFlow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(executionStateEClass, ExecutionState.class, "ExecutionState", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getExecutionState_SimpleName(), ecorePackage.getEString(), "simpleName", null, 0, 1, ExecutionState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getExecutionState_Leaf(), ecorePackage.getEBoolean(), "leaf", "false", 0, 1, ExecutionState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getExecutionState_Cycle(), this.getCycle(), null, "cycle", null, 0, 1, ExecutionState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getExecutionState_ReactSequence(), this.getSequence(), null, "reactSequence", null, 0, 1, ExecutionState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getExecutionState_Reactions(), this.getReaction(), null, "reactions", null, 0, -1, ExecutionState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getExecutionState_EntryAction(), this.getStep(), null, "entryAction", null, 0, 1, ExecutionState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getExecutionState_ExitAction(), this.getStep(), null, "exitAction", null, 0, 1, ExecutionState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getExecutionState_EnterSequence(), this.getSequence(), null, "enterSequence", null, 0, 1, ExecutionState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getExecutionState_ExitSequence(), this.getSequence(), null, "exitSequence", null, 0, 1, ExecutionState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getExecutionState_StateVector(), this.getStateVector(), null, "stateVector", null, 0, 1, ExecutionState.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(reactionEClass, Reaction.class, "Reaction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getReaction_Check(), this.getCheck(), null, "check", null, 0, 1, Reaction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getReaction_Effect(), this.getStep(), null, "effect", null, 0, 1, Reaction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getReaction_Transition(), ecorePackage.getEBoolean(), "transition", null, 0, 1, Reaction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(stateVectorEClass, StateVector.class, "StateVector", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getStateVector_Size(), ecorePackage.getEInt(), "size", "1", 0, 1, StateVector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getStateVector_Offset(), ecorePackage.getEInt(), "offset", "0", 0, 1, StateVector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(timeEventEClass, TimeEvent.class, "TimeEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTimeEvent_Periodic(), ecorePackage.getEBoolean(), "periodic", "false", 0, 1, TimeEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		initEClass(stepEClass, Step.class, "Step", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getStep_Comment(), ecorePackage.getEString(), "comment", null, 0, 1, Step.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(sequenceEClass, Sequence.class, "Sequence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getSequence_Steps(), this.getStep(), null, "steps", null, 0, -1, Sequence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEClass(cycleEClass, Cycle.class, "Cycle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
 		initEClass(checkEClass, Check.class, "Check", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getCheck_Condition(), theSGraphPackage.getStatement(), null, "condition", null, 0, 1, Check.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 

+ 5 - 5
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/transformation/ModelSequencer.xtend

@@ -468,16 +468,16 @@ class ModelSequencer {
 	}
 	
 
-	def Cycle defineCycle(RegularState state) {
+	def Sequence defineCycle(RegularState state) {
 	
 		val execState = state.create
 		val stateReaction = execState.createReactionSequence(null)
 		val parents = state.parentStates		
-		execState.cycle = parents.fold(null, [r, s | {
+		execState.reactSequence = parents.fold(null, [r, s | {
 			s.create.createReactionSequence(r)
 		}])
 		
-		return execState.cycle
+		return execState.reactSequence
 	}	
 
 
@@ -500,8 +500,8 @@ class ModelSequencer {
 //	}
 	
 
-	def Cycle createReactionSequence(ExecutionState state, Step localStep) {	
-		val cycle = sexecFactory.createCycle
+	def Sequence createReactionSequence(ExecutionState state, Step localStep) {	
+		val cycle = sexecFactory.createSequence
 		
 		val localReactions = state.reactions.filter(r | ! r.transition).toList
 		var localSteps = sexecFactory.createSequence

+ 10 - 29
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/util/SexecAdapterFactory.java

@@ -14,7 +14,6 @@ import org.yakindu.sct.model.sexec.*;
 import org.yakindu.sct.model.sexec.Call;
 import org.yakindu.sct.model.sexec.Check;
 import org.yakindu.sct.model.sexec.CheckRef;
-import org.yakindu.sct.model.sexec.Cycle;
 import org.yakindu.sct.model.sexec.EnterState;
 import org.yakindu.sct.model.sexec.Execution;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
@@ -90,21 +89,13 @@ public class SexecAdapterFactory extends AdapterFactoryImpl {
 	 */
 	protected SexecSwitch<Adapter> modelSwitch =
 		new SexecSwitch<Adapter>() {
-			@Override
-			public Adapter caseExecutionFlow(ExecutionFlow object) {
-				return createExecutionFlowAdapter();
-			}
 			@Override
 			public Adapter caseNamedElement(NamedElement object) {
 				return createNamedElementAdapter();
 			}
 			@Override
-			public Adapter caseStateVector(StateVector object) {
-				return createStateVectorAdapter();
-			}
-			@Override
-			public Adapter caseTimeEvent(TimeEvent object) {
-				return createTimeEventAdapter();
+			public Adapter caseExecutionFlow(ExecutionFlow object) {
+				return createExecutionFlowAdapter();
 			}
 			@Override
 			public Adapter caseExecutionState(ExecutionState object) {
@@ -115,6 +106,14 @@ public class SexecAdapterFactory extends AdapterFactoryImpl {
 				return createReactionAdapter();
 			}
 			@Override
+			public Adapter caseStateVector(StateVector object) {
+				return createStateVectorAdapter();
+			}
+			@Override
+			public Adapter caseTimeEvent(TimeEvent object) {
+				return createTimeEventAdapter();
+			}
+			@Override
 			public Adapter caseStep(Step object) {
 				return createStepAdapter();
 			}
@@ -123,10 +122,6 @@ public class SexecAdapterFactory extends AdapterFactoryImpl {
 				return createSequenceAdapter();
 			}
 			@Override
-			public Adapter caseCycle(Cycle object) {
-				return createCycleAdapter();
-			}
-			@Override
 			public Adapter caseCheck(Check object) {
 				return createCheckAdapter();
 			}
@@ -262,20 +257,6 @@ public class SexecAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
-	/**
-	 * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.sexec.Cycle <em>Cycle</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.yakindu.sct.model.sexec.Cycle
-	 * @generated
-	 */
-	public Adapter createCycleAdapter() {
-		return null;
-	}
-
 	/**
 	 * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.sexec.Check <em>Check</em>}'.
 	 * <!-- begin-user-doc -->

+ 17 - 42
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/util/SexecSwitch.java

@@ -13,7 +13,6 @@ import org.yakindu.sct.model.sexec.*;
 import org.yakindu.sct.model.sexec.Call;
 import org.yakindu.sct.model.sexec.Check;
 import org.yakindu.sct.model.sexec.CheckRef;
-import org.yakindu.sct.model.sexec.Cycle;
 import org.yakindu.sct.model.sexec.EnterState;
 import org.yakindu.sct.model.sexec.Execution;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
@@ -90,6 +89,12 @@ public class SexecSwitch<T> extends Switch<T> {
 	@Override
 	protected T doSwitch(int classifierID, EObject theEObject) {
 		switch (classifierID) {
+			case SexecPackage.NAMED_ELEMENT: {
+				NamedElement namedElement = (NamedElement)theEObject;
+				T result = caseNamedElement(namedElement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			case SexecPackage.EXECUTION_FLOW: {
 				ExecutionFlow executionFlow = (ExecutionFlow)theEObject;
 				T result = caseExecutionFlow(executionFlow);
@@ -98,9 +103,17 @@ public class SexecSwitch<T> extends Switch<T> {
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case SexecPackage.NAMED_ELEMENT: {
-				NamedElement namedElement = (NamedElement)theEObject;
-				T result = caseNamedElement(namedElement);
+			case SexecPackage.EXECUTION_STATE: {
+				ExecutionState executionState = (ExecutionState)theEObject;
+				T result = caseExecutionState(executionState);
+				if (result == null) result = caseNamedElement(executionState);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SexecPackage.REACTION: {
+				Reaction reaction = (Reaction)theEObject;
+				T result = caseReaction(reaction);
+				if (result == null) result = caseNamedElement(reaction);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -119,20 +132,6 @@ public class SexecSwitch<T> extends Switch<T> {
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case SexecPackage.EXECUTION_STATE: {
-				ExecutionState executionState = (ExecutionState)theEObject;
-				T result = caseExecutionState(executionState);
-				if (result == null) result = caseNamedElement(executionState);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case SexecPackage.REACTION: {
-				Reaction reaction = (Reaction)theEObject;
-				T result = caseReaction(reaction);
-				if (result == null) result = caseNamedElement(reaction);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
 			case SexecPackage.STEP: {
 				Step step = (Step)theEObject;
 				T result = caseStep(step);
@@ -148,15 +147,6 @@ public class SexecSwitch<T> extends Switch<T> {
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case SexecPackage.CYCLE: {
-				Cycle cycle = (Cycle)theEObject;
-				T result = caseCycle(cycle);
-				if (result == null) result = caseSequence(cycle);
-				if (result == null) result = caseStep(cycle);
-				if (result == null) result = caseNamedElement(cycle);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
 			case SexecPackage.CHECK: {
 				Check check = (Check)theEObject;
 				T result = caseCheck(check);
@@ -308,21 +298,6 @@ public class SexecSwitch<T> extends Switch<T> {
 		return null;
 	}
 
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Cycle</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Cycle</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseCycle(Cycle object) {
-		return null;
-	}
-
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Check</em>'.
 	 * <!-- begin-user-doc -->

+ 21 - 22
plugins/org.yakindu.sct.model.sexec/xtend-gen/org/yakindu/sct/model/sexec/transformation/ModelSequencer.java

@@ -22,7 +22,6 @@ import org.eclipse.xtext.xbase.lib.StringExtensions;
 import org.yakindu.sct.model.sexec.Call;
 import org.yakindu.sct.model.sexec.Check;
 import org.yakindu.sct.model.sexec.CheckRef;
-import org.yakindu.sct.model.sexec.Cycle;
 import org.yakindu.sct.model.sexec.EnterState;
 import org.yakindu.sct.model.sexec.Execution;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
@@ -896,17 +895,17 @@ public class ModelSequencer {
           }
         };
       Iterable<State> _filter_1 = IterableExtensions.<State>filter(_filter, _function);
-      final Function1<State,Cycle> _function_1 = new Function1<State,Cycle>() {
-          public Cycle apply(final State s_1) {
-            Cycle _defineCycle = ModelSequencer.this.defineCycle(s_1);
+      final Function1<State,Sequence> _function_1 = new Function1<State,Sequence>() {
+          public Sequence apply(final State s_1) {
+            Sequence _defineCycle = ModelSequencer.this.defineCycle(s_1);
             return _defineCycle;
           }
         };
       IterableExtensions.<State>forEach(_filter_1, _function_1);
       Iterable<FinalState> _filter_2 = IterableExtensions.<FinalState>filter(states, org.yakindu.sct.model.sgraph.FinalState.class);
-      final Function1<FinalState,Cycle> _function_2 = new Function1<FinalState,Cycle>() {
-          public Cycle apply(final FinalState s_2) {
-            Cycle _defineCycle_1 = ModelSequencer.this.defineCycle(s_2);
+      final Function1<FinalState,Sequence> _function_2 = new Function1<FinalState,Sequence>() {
+          public Sequence apply(final FinalState s_2) {
+            Sequence _defineCycle_1 = ModelSequencer.this.defineCycle(s_2);
             return _defineCycle_1;
           }
         };
@@ -915,33 +914,33 @@ public class ModelSequencer {
     }
   }
   
-  public Cycle defineCycle(final RegularState state) {
+  public Sequence defineCycle(final RegularState state) {
     {
       ExecutionState _create = this.factory.create(state);
       final ExecutionState execState = _create;
-      Cycle _createReactionSequence = this.createReactionSequence(execState, null);
-      final Cycle stateReaction = _createReactionSequence;
+      Sequence _createReactionSequence = this.createReactionSequence(execState, null);
+      final Sequence stateReaction = _createReactionSequence;
       List<RegularState> _parentStates = this.parentStates(state);
       final List<RegularState> parents = _parentStates;
-      final Function2<Cycle,RegularState,Cycle> _function = new Function2<Cycle,RegularState,Cycle>() {
-          public Cycle apply(final Cycle r , final RegularState s) {
+      final Function2<Sequence,RegularState,Sequence> _function = new Function2<Sequence,RegularState,Sequence>() {
+          public Sequence apply(final Sequence r , final RegularState s) {
             ExecutionState _create_1 = ModelSequencer.this.factory.create(s);
-            Cycle _createReactionSequence_1 = ModelSequencer.this.createReactionSequence(_create_1, r);
+            Sequence _createReactionSequence_1 = ModelSequencer.this.createReactionSequence(_create_1, r);
             return _createReactionSequence_1;
           }
         };
-      Cycle _fold = IterableExtensions.<RegularState, Cycle>fold(parents, null, _function);
-      execState.setCycle(_fold);
-      Cycle _cycle = execState.getCycle();
-      return _cycle;
+      Sequence _fold = IterableExtensions.<RegularState, Sequence>fold(parents, null, _function);
+      execState.setReactSequence(_fold);
+      Sequence _reactSequence = execState.getReactSequence();
+      return _reactSequence;
     }
   }
   
-  public Cycle createReactionSequence(final ExecutionState state, final Step localStep) {
+  public Sequence createReactionSequence(final ExecutionState state, final Step localStep) {
     {
       SexecFactory _sexecFactory = this.sexecFactory();
-      Cycle _createCycle = _sexecFactory.createCycle();
-      final Cycle cycle = _createCycle;
+      Sequence _createSequence = _sexecFactory.createSequence();
+      final Sequence cycle = _createSequence;
       EList<Reaction> _reactions = state.getReactions();
       final Function1<Reaction,Boolean> _function = new Function1<Reaction,Boolean>() {
           public Boolean apply(final Reaction r) {
@@ -954,8 +953,8 @@ public class ModelSequencer {
       List<Reaction> _list = IterableExtensions.<Reaction>toList(_filter);
       final List<Reaction> localReactions = _list;
       SexecFactory _sexecFactory_1 = this.sexecFactory();
-      Sequence _createSequence = _sexecFactory_1.createSequence();
-      Sequence localSteps = _createSequence;
+      Sequence _createSequence_1 = _sexecFactory_1.createSequence();
+      Sequence localSteps = _createSequence_1;
       EList<Step> _steps = localSteps.getSteps();
       final Function1<Reaction,If> _function_1 = new Function1<Reaction,If>() {
           public If apply(final Reaction lr) {

+ 1 - 1
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerStateReactionTest.java

@@ -241,7 +241,7 @@ public class ModelSequencerStateReactionTest extends ModelSequencerTest {
 		assertEquals(1, flow.getStates().size());
 		ExecutionState _s = flow.getStates().get(0);
 		assertEquals(s.getName(), _s.getSimpleName());
-		If _if = (If) flow.getStates().get(0).getCycle().getSteps().get(0);
+		If _if = (If) flow.getStates().get(0).getReactSequence().getSteps().get(0);
 
 		ElementReferenceExpression _ere = (ElementReferenceExpression) _if.getCheck().getCondition();
 		assertSame(te, _ere.getValue());

+ 21 - 22
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerStateTest.java

@@ -5,7 +5,6 @@ import static org.yakindu.sct.model.sexec.transformation.test.SCTTestUtil.*;
 
 import org.junit.Test;
 import org.yakindu.sct.model.sexec.Call;
-import org.yakindu.sct.model.sexec.Cycle;
 import org.yakindu.sct.model.sexec.EnterState;
 import org.yakindu.sct.model.sexec.Execution;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
@@ -454,9 +453,9 @@ public class ModelSequencerStateTest extends ModelSequencerTest {
 		ExecutionState s2 = flow.getStates().get(1);
 		assertEquals(tsc.s1.getName(), s1.getSimpleName());
 		assertEquals(tsc.s2.getName(), s2.getSimpleName());
-		assertNotNull(s1.getCycle());
+		assertNotNull(s1.getReactSequence());
 		
-		If _if = (If) s1.getCycle().getSteps().get(0);
+		If _if = (If) s1.getReactSequence().getSteps().get(0);
 		assertNotNull(_if.getThenStep());
 		assertTrue(_if.getThenStep() instanceof Call);
 		assertNull(_if.getElseStep());
@@ -473,9 +472,9 @@ public class ModelSequencerStateTest extends ModelSequencerTest {
 		// test state with two outgoing transitions
 		ExecutionState s3 = flow.getStates().get(2);
 		assertEquals(tsc.s3.getName(), s3.getSimpleName());
-		assertNotNull(s3.getCycle());
+		assertNotNull(s3.getReactSequence());
 		
-		_if = (If) s3.getCycle().getSteps().get(0);
+		_if = (If) s3.getReactSequence().getSteps().get(0);
 		assertNotNull(_if.getThenStep());
 		assertTrue(_if.getThenStep() instanceof Call);
 		assertNotNull(_if.getElseStep());
@@ -534,9 +533,9 @@ public class ModelSequencerStateTest extends ModelSequencerTest {
 		
 		assertEquals(4, s1.getReactions().size());
 		
-		assertNotNull(s1.getCycle());
+		assertNotNull(s1.getReactSequence());
 		
-		If _if = (If) s1.getCycle().getSteps().get(0);
+		If _if = (If) s1.getReactSequence().getSteps().get(0);
 		assertNotNull(_if.getThenStep());
 		assertTrue(_if.getThenStep() instanceof Call);
 		assertNotNull(_if.getElseStep());
@@ -619,10 +618,10 @@ public class ModelSequencerStateTest extends ModelSequencerTest {
 		
 		assertEquals(3, s1.getReactions().size());
 		
-		assertNotNull(s1.getCycle());
+		assertNotNull(s1.getReactSequence());
 		
 
-		Sequence _seq = (Sequence) s1.getCycle().getSteps().get(0);
+		Sequence _seq = (Sequence) s1.getReactSequence().getSteps().get(0);
 		assertEquals(3, _seq.getSteps().size());
 		
 		// check first local reaction
@@ -669,8 +668,8 @@ public class ModelSequencerStateTest extends ModelSequencerTest {
 		ExecutionState s1 = flow.getStates().get(0);
 		
 		assertEquals(0, s1.getReactions().size());		
-		assertNotNull(s1.getCycle());
-		assertEquals(0, s1.getCycle().getSteps().size());		
+		assertNotNull(s1.getReactSequence());
+		assertEquals(0, s1.getReactSequence().getSteps().size());		
 	}
 
 	
@@ -694,8 +693,8 @@ public class ModelSequencerStateTest extends ModelSequencerTest {
 		ExecutionState s1 = flow.getStates().get(0);
 		
 		assertEquals(0, s1.getReactions().size());		
-		assertNotNull(s1.getCycle());
-		assertEquals(0, s1.getCycle().getSteps().size());		
+		assertNotNull(s1.getReactSequence());
+		assertEquals(0, s1.getReactSequence().getSteps().size());		
 	}
 
 
@@ -720,10 +719,10 @@ public class ModelSequencerStateTest extends ModelSequencerTest {
 		ExecutionState s1 = flow.getStates().get(0);
 		
 		assertEquals(1, s1.getReactions().size());		
-		assertNotNull(s1.getCycle());
-		assertEquals(1, s1.getCycle().getSteps().size());	
+		assertNotNull(s1.getReactSequence());
+		assertEquals(1, s1.getReactSequence().getSteps().size());	
 	
-		Sequence _seq = (Sequence) s1.getCycle().getSteps().get(0);
+		Sequence _seq = (Sequence) s1.getReactSequence().getSteps().get(0);
 		
 		If _lr1 = (If) _seq.getSteps().get(0);
 		assertTrue(_lr1.getCheck().getCondition() instanceof ElementReferenceExpression);
@@ -800,7 +799,7 @@ public class ModelSequencerStateTest extends ModelSequencerTest {
 		assertEquals("sc.r.s2.r.s6", _s6.getName());
 		
 			
-		Cycle cycle = _s4.getCycle();
+		Sequence cycle = _s4.getReactSequence();
 		
 		Sequence _seq = (Sequence) cycle.getSteps().get(0);
 		
@@ -809,7 +808,7 @@ public class ModelSequencerStateTest extends ModelSequencerTest {
 		assertCall(_if.getThenStep(), _s1.getReactions().get(0).getEffect());
 		
 		// second entry is the s3 cycle with the transition reaction
-		cycle = (Cycle) _seq.getSteps().get(1);
+		cycle = (Sequence) _seq.getSteps().get(1);
 		_if = (If) cycle.getSteps().get(0);
 		assertCall(_if.getThenStep(), _s3.getReactions().get(0).getEffect());
 		assertTrue(_s3.getReactions().get(0).isTransition());
@@ -817,7 +816,7 @@ public class ModelSequencerStateTest extends ModelSequencerTest {
 				
 		// third is the s4 cycle with the transition reaction
 		_seq = (Sequence) _if.getElseStep();
-		cycle = (Cycle) _seq.getSteps().get(0);
+		cycle = (Sequence) _seq.getSteps().get(0);
 		_if = (If) cycle.getSteps().get(0);
 		assertCall(_if.getThenStep(), _s4.getReactions().get(0).getEffect());
 		assertTrue(_s4.getReactions().get(0).isTransition());
@@ -900,7 +899,7 @@ public class ModelSequencerStateTest extends ModelSequencerTest {
 		assertNull(_fs.getEntryAction());
 		assertNull(_fs.getExitAction());
 			
-		Cycle cycle = _fs.getCycle();
+		Sequence cycle = _fs.getReactSequence();
 		
 		Sequence _seq = (Sequence) cycle.getSteps().get(0);
 		
@@ -909,12 +908,12 @@ public class ModelSequencerStateTest extends ModelSequencerTest {
 		assertCall(_if.getThenStep(), _s1.getReactions().get(0).getEffect());
 		
 		// second entry is the s3 cycle with the transition reaction
-		cycle = (Cycle) _seq.getSteps().get(1);
+		cycle = (Sequence) _seq.getSteps().get(1);
 		_if = (If) cycle.getSteps().get(0);
 		assertCall(_if.getThenStep(), _s3.getReactions().get(0).getEffect());
 		assertTrue(_s3.getReactions().get(0).isTransition());
 		assertEquals(1,	cycle.getSteps().size());
-		assertNull( _if.getElseStep() );
+		assertNotNull( _if.getElseStep() );
 
 	}
 

+ 1 - 1
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencertDeclarationsTest.java

@@ -103,7 +103,7 @@ public class ModelSequencertDeclarationsTest extends ModelSequencerTest {
 		
 		assertEquals(2, flow.getStates().size());
 		assertEquals(s1.getName(), flow.getStates().get(0).getSimpleName());
-		If _if = (If) flow.getStates().get(0).getCycle().getSteps().get(0);
+		If _if = (If) flow.getStates().get(0).getReactSequence().getSteps().get(0);
 
 		ElementReferenceExpression _ere = (ElementReferenceExpression) _if.getCheck().getCondition();
 		assertSame(_e1, _ere.getValue());