Explorar el Código

Add distinctive labelling for operations (#723)

This needs a new meta type ExecutionOperation to do type switch in label provider.
Andreas Mülder hace 8 años
padre
commit
d2c34c21f2
Se han modificado 23 ficheros con 344 adiciones y 82 borrados
  1. 57 49
      plugins/org.yakindu.sct.simulation.core.sexec/src/org/yakindu/sct/simulation/core/sexec/container/DefaultExecutionContextInitializer.xtend
  2. 1 0
      plugins/org.yakindu.sct.simulation.core/model/sruntime.ecore
  3. 1 1
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/CompositeSlot.java
  4. 6 0
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/EventDirection.java
  5. 1 1
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/ExecutionContext.java
  6. 1 1
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/ExecutionEvent.java
  7. 25 0
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/ExecutionOperation.java
  8. 5 4
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/ExecutionSlot.java
  9. 9 0
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/SRuntimeFactory.java
  10. 86 2
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/SRuntimePackage.java
  11. 1 1
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/impl/CompositeSlotImpl.java
  12. 10 9
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/impl/ExecutionContextImpl.java
  13. 1 1
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/impl/ExecutionEventImpl.java
  14. 45 0
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/impl/ExecutionOperationImpl.java
  15. 10 9
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/impl/ExecutionSlotImpl.java
  16. 0 2
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/impl/ExecutionVariableImpl.java
  17. 12 0
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/impl/SRuntimeFactoryImpl.java
  18. 22 0
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/impl/SRuntimePackageImpl.java
  19. 18 0
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/util/SRuntimeAdapterFactory.java
  20. 25 1
      plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/util/SRuntimeSwitch.java
  21. BIN
      plugins/org.yakindu.sct.simulation.ui/icons/Operation.png
  22. 2 0
      plugins/org.yakindu.sct.simulation.ui/src/org/yakindu/sct/simulation/ui/SimulationImages.java
  23. 6 1
      plugins/org.yakindu.sct.simulation.ui/src/org/yakindu/sct/simulation/ui/view/ExecutionContextLabelProvider.java

+ 57 - 49
plugins/org.yakindu.sct.simulation.core.sexec/src/org/yakindu/sct/simulation/core/sexec/container/DefaultExecutionContextInitializer.xtend

@@ -33,9 +33,8 @@ import org.yakindu.sct.simulation.core.sruntime.CompositeSlot
 import org.yakindu.sct.simulation.core.sruntime.EventDirection
 import org.yakindu.sct.simulation.core.sruntime.ExecutionContext
 import org.yakindu.sct.simulation.core.sruntime.ExecutionSlot
+import org.yakindu.sct.simulation.core.sruntime.SRuntimeFactory
 import org.yakindu.sct.simulation.core.sruntime.impl.CompositeSlotImpl
-import org.yakindu.sct.simulation.core.sruntime.impl.ExecutionEventImpl
-import org.yakindu.sct.simulation.core.sruntime.impl.ExecutionVariableImpl
 
 /**
  * 
@@ -52,8 +51,11 @@ class DefaultExecutionContextInitializer implements IExecutionContextInitializer
 	override initialize(ExecutionContext context, ExecutionFlow flow) {
 		flow.scopes.forEach[context.slots += transform]
 	}
-	
-	def dispatch ExecutionSlot create composite : createImportSlot() transform(ImportScope scope) {
+
+	def dispatch ExecutionSlot transform(ImportScope scope) {
+		val composite = SRuntimeFactory.eINSTANCE.createCompositeSlot => [
+			name = "import"
+		]
 		// retrieve namespaces from variable names and create corresponding composite slots
 		for (Declaration decl : scope.declarations.filter(ImportDeclaration).map[declaration]) {
 			val pkg = EcoreUtil2.getContainerOfType(decl, Package)
@@ -68,76 +70,82 @@ class DefaultExecutionContextInitializer implements IExecutionContextInitializer
 				if (!slot.slots.exists[fqName == declarationSlot.fqName]) {
 					slot.slots += declarationSlot
 				}
-			}
-			else {
+			} else {
 				composite.slots += decl.transform
 			}
 		}
+		composite
 	}
-	
-	/**
-	 * Create only one root slot for imports independently on how many ImportScopes exist
-	 */
-	def CompositeSlot create slot : new CompositeSlotImpl() createImportSlot() {
-		slot.name = "imports"
-	}
-	
-	def getSlotFor(List<ExecutionSlot> slots, String name) {
+
+	def getSlotFor(List<ExecutionSlot> slots, String name) {
 		val existingSlot = slots.findFirst[it.name == name]
 		if (existingSlot != null && existingSlot instanceof CompositeSlot) {
 			existingSlot as CompositeSlot
-		}
-		else {
+		} else {
 			val newSlot = new CompositeSlotImpl()
 			newSlot.name = name
 			slots += newSlot
 			newSlot
-		}
+		}
 	}
 
-	def dispatch ExecutionSlot create new CompositeSlotImpl() transform(InternalScope scope) {
-		it.name = "internal"
-		scope.declarations.forEach[decl|it.slots += decl.transform]
+	def dispatch ExecutionSlot transform(InternalScope scope) {
+		SRuntimeFactory.eINSTANCE.createCompositeSlot => [
+			name = "internal"
+			scope.declarations.forEach[decl|it.slots += decl.transform]
+		]
 	}
 
-	def dispatch ExecutionSlot create new CompositeSlotImpl() transform(Scope scope) {
-		it.name = "time events"
-		scope.declarations.forEach[decl|it.slots += decl.transform]
+	def dispatch ExecutionSlot transform(Scope scope) {
+		SRuntimeFactory.eINSTANCE.createCompositeSlot => [
+			name = "time events"
+			scope.declarations.forEach[decl|slots += decl.transform]
+		]
 	}
 
-	def dispatch ExecutionSlot create new CompositeSlotImpl() transform(InterfaceScope scope) {
-		if(scope.name != null) it.name = scope.name else it.name = "default"
-		scope.declarations.forEach[decl|it.slots += decl.transform]
+	def dispatch ExecutionSlot transform(InterfaceScope scope) {
+		SRuntimeFactory.eINSTANCE.createCompositeSlot => [
+			if(scope.name != null) name = scope.name else name = "default"
+			scope.declarations.forEach[decl|slots += decl.transform]
+		]
 	}
 
-	def dispatch ExecutionSlot create new ExecutionVariableImpl() transform(VariableDefinition variable) {
-		it.name = variable.fullyQualifiedName.lastSegment
-		it.fqName = variable.fullyQualifiedName.toString
-		it.type = variable.infer.type
-		it.value = it.type?.defaultValue
-		it.writable = !variable.const
+	def dispatch ExecutionSlot transform(VariableDefinition variable) {
+		SRuntimeFactory.eINSTANCE.createExecutionVariable => [
+			name = variable.fullyQualifiedName.lastSegment
+			fqName = variable.fullyQualifiedName.toString
+			type = variable.infer.type
+			value = it.type?.defaultValue
+			writable = !variable.const
+		]
 	}
 
-	def dispatch ExecutionSlot create new ExecutionEventImpl() transform(EventDefinition event) {
-		it.name = event.fullyQualifiedName.lastSegment
-		it.fqName = event.fullyQualifiedName.toString
-		it.type = event.type
-		it.value = it.type?.defaultValue
-		it.direction = EventDirection.get(event.direction.value)
+	def dispatch ExecutionSlot transform(EventDefinition event) {
+		SRuntimeFactory.eINSTANCE.createExecutionEvent => [
+			name = event.fullyQualifiedName.lastSegment
+			fqName = event.fullyQualifiedName.toString
+			type = event.type
+			value = it.type?.defaultValue
+			direction = EventDirection.get(event.direction.value)
+		]
 	}
 
-	def dispatch ExecutionSlot create new ExecutionVariableImpl() transform(OperationDefinition op) {
-		it.name = op.fullyQualifiedName.lastSegment
-		it.fqName = op.fullyQualifiedName.toString
-		it.type = if(op.type != null) op.type else getType(ITypeSystem.VOID)
-		it.value = it.type.defaultValue
+	def dispatch ExecutionSlot transform(OperationDefinition op) {
+		SRuntimeFactory.eINSTANCE.createExecutionOperation => [
+			name = op.fullyQualifiedName.lastSegment
+			fqName = op.fullyQualifiedName.toString
+			type = if(op.type != null) op.type else getType(ITypeSystem.VOID)
+			value = it.type.defaultValue
+		]
 	}
 
-	def dispatch ExecutionSlot create new ExecutionEventImpl() transform(TimeEvent event) {
-		it.name = event.fullyQualifiedName.lastSegment
-		it.fqName = event.fullyQualifiedName.toString
-		it.type = getType(ITypeSystem.INTEGER)
-		it.value = it.type.defaultValue
+	def dispatch ExecutionSlot transform(TimeEvent event) {
+		SRuntimeFactory.eINSTANCE.createExecutionEvent => [
+			name = event.fullyQualifiedName.lastSegment
+			fqName = event.fullyQualifiedName.toString
+			type = getType(ITypeSystem.INTEGER)
+			value = type.defaultValue
+		]
 	}
 
 }

+ 1 - 0
plugins/org.yakindu.sct.simulation.core/model/sruntime.ecore

@@ -52,4 +52,5 @@
   <eClassifiers xsi:type="ecore:EClass" name="ReferenceSlot" eSuperTypes="#//CompositeSlot">
     <eStructuralFeatures xsi:type="ecore:EReference" name="reference" eType="#//ExecutionSlot"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ExecutionOperation" eSuperTypes="#//ExecutionVariable"/>
 </ecore:EPackage>

+ 1 - 1
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/CompositeSlot.java

@@ -19,10 +19,10 @@ import java.util.List;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.CompositeSlot#getSlots <em>Slots</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.simulation.core.sruntime.SRuntimePackage#getCompositeSlot()
  * @model

+ 6 - 0
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/EventDirection.java

@@ -126,6 +126,8 @@ public enum EventDirection implements Enumerator {
 	 * Returns the '<em><b>Event Direction</b></em>' literal with the specified literal value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static EventDirection get(String literal) {
@@ -142,6 +144,8 @@ public enum EventDirection implements Enumerator {
 	 * Returns the '<em><b>Event Direction</b></em>' literal with the specified name.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static EventDirection getByName(String name) {
@@ -158,6 +162,8 @@ public enum EventDirection implements Enumerator {
 	 * Returns the '<em><b>Event Direction</b></em>' literal with the specified integer value.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
 	 * @generated
 	 */
 	public static EventDirection get(int value) {

+ 1 - 1
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/ExecutionContext.java

@@ -25,13 +25,13 @@ import org.yakindu.sct.model.sgraph.RegularState;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.ExecutionContext#getActiveStates <em>Active States</em>}</li>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.ExecutionContext#getExecutedElements <em>Executed Elements</em>}</li>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.ExecutionContext#getSuspendedElements <em>Suspended Elements</em>}</li>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.ExecutionContext#isSnapshot <em>Snapshot</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.simulation.core.sruntime.SRuntimePackage#getExecutionContext()
  * @model

+ 1 - 1
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/ExecutionEvent.java

@@ -18,12 +18,12 @@ package org.yakindu.sct.simulation.core.sruntime;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.ExecutionEvent#isRaised <em>Raised</em>}</li>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.ExecutionEvent#isScheduled <em>Scheduled</em>}</li>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.ExecutionEvent#getDirection <em>Direction</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.simulation.core.sruntime.SRuntimePackage#getExecutionEvent()
  * @model

+ 25 - 0
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/ExecutionOperation.java

@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2013 committers of YAKINDU and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * Contributors:
+ * committers of YAKINDU - initial API and implementation
+ * 
+ */
+package org.yakindu.sct.simulation.core.sruntime;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Execution Operation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.yakindu.sct.simulation.core.sruntime.SRuntimePackage#getExecutionOperation()
+ * @model
+ * @generated
+ */
+public interface ExecutionOperation extends ExecutionVariable {
+} // ExecutionOperation

+ 5 - 4
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/ExecutionSlot.java

@@ -11,6 +11,7 @@
 package org.yakindu.sct.simulation.core.sruntime;
 
 import org.yakindu.base.base.NamedElement;
+import org.yakindu.base.types.Type;
 
 /**
  * <!-- begin-user-doc -->
@@ -19,13 +20,13 @@ import org.yakindu.base.base.NamedElement;
  *
  * <p>
  * The following features are supported:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.ExecutionSlot#getValue <em>Value</em>}</li>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.ExecutionSlot#getFqName <em>Fq Name</em>}</li>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.ExecutionSlot#isWritable <em>Writable</em>}</li>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.ExecutionSlot#getType <em>Type</em>}</li>
  * </ul>
- * </p>
  *
  * @see org.yakindu.sct.simulation.core.sruntime.SRuntimePackage#getExecutionSlot()
  * @model abstract="true"
@@ -41,12 +42,12 @@ public interface ExecutionSlot extends NamedElement {
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Type</em>' reference.
-	 * @see #setType(org.yakindu.base.types.Type)
+	 * @see #setType(Type)
 	 * @see org.yakindu.sct.simulation.core.sruntime.SRuntimePackage#getExecutionSlot_Type()
 	 * @model
 	 * @generated
 	 */
-	org.yakindu.base.types.Type getType();
+	Type getType();
 
 	/**
 	 * Sets the value of the '{@link org.yakindu.sct.simulation.core.sruntime.ExecutionSlot#getType <em>Type</em>}' reference.
@@ -56,7 +57,7 @@ public interface ExecutionSlot extends NamedElement {
 	 * @see #getType()
 	 * @generated
 	 */
-	void setType(org.yakindu.base.types.Type value);
+	void setType(Type value);
 
 	/**
 	 * Returns the value of the '<em><b>Value</b></em>' attribute.

+ 9 - 0
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/SRuntimeFactory.java

@@ -74,6 +74,15 @@ public interface SRuntimeFactory extends EFactory {
 	 */
 	ReferenceSlot createReferenceSlot();
 
+	/**
+	 * Returns a new object of class '<em>Execution Operation</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Execution Operation</em>'.
+	 * @generated
+	 */
+	ExecutionOperation createExecutionOperation();
+
 	/**
 	 * Returns the package supported by this factory.
 	 * <!-- begin-user-doc -->

+ 86 - 2
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/SRuntimePackage.java

@@ -550,6 +550,70 @@ public interface SRuntimePackage extends EPackage {
 	 */
 	int REFERENCE_SLOT_FEATURE_COUNT = COMPOSITE_SLOT_FEATURE_COUNT + 1;
 
+	/**
+	 * The meta object id for the '{@link org.yakindu.sct.simulation.core.sruntime.impl.ExecutionOperationImpl <em>Execution Operation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.yakindu.sct.simulation.core.sruntime.impl.ExecutionOperationImpl
+	 * @see org.yakindu.sct.simulation.core.sruntime.impl.SRuntimePackageImpl#getExecutionOperation()
+	 * @generated
+	 */
+	int EXECUTION_OPERATION = 6;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXECUTION_OPERATION__NAME = EXECUTION_VARIABLE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXECUTION_OPERATION__VALUE = EXECUTION_VARIABLE__VALUE;
+
+	/**
+	 * The feature id for the '<em><b>Fq Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXECUTION_OPERATION__FQ_NAME = EXECUTION_VARIABLE__FQ_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Writable</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXECUTION_OPERATION__WRITABLE = EXECUTION_VARIABLE__WRITABLE;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXECUTION_OPERATION__TYPE = EXECUTION_VARIABLE__TYPE;
+
+	/**
+	 * The number of structural features of the '<em>Execution Operation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXECUTION_OPERATION_FEATURE_COUNT = EXECUTION_VARIABLE_FEATURE_COUNT + 0;
+
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.simulation.core.sruntime.EventDirection <em>Event Direction</em>}' enum.
 	 * <!-- begin-user-doc -->
@@ -558,7 +622,7 @@ public interface SRuntimePackage extends EPackage {
 	 * @see org.yakindu.sct.simulation.core.sruntime.impl.SRuntimePackageImpl#getEventDirection()
 	 * @generated
 	 */
-	int EVENT_DIRECTION = 6;
+	int EVENT_DIRECTION = 7;
 
 	/**
 	 * The meta object id for the '<em>Java Object</em>' data type.
@@ -568,7 +632,7 @@ public interface SRuntimePackage extends EPackage {
 	 * @see org.yakindu.sct.simulation.core.sruntime.impl.SRuntimePackageImpl#getJavaObject()
 	 * @generated
 	 */
-	int JAVA_OBJECT = 7;
+	int JAVA_OBJECT = 8;
 
 
 	/**
@@ -774,6 +838,16 @@ public interface SRuntimePackage extends EPackage {
 	 */
 	EReference getReferenceSlot_Reference();
 
+	/**
+	 * Returns the meta object for class '{@link org.yakindu.sct.simulation.core.sruntime.ExecutionOperation <em>Execution Operation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Execution Operation</em>'.
+	 * @see org.yakindu.sct.simulation.core.sruntime.ExecutionOperation
+	 * @generated
+	 */
+	EClass getExecutionOperation();
+
 	/**
 	 * Returns the meta object for enum '{@link org.yakindu.sct.simulation.core.sruntime.EventDirection <em>Event Direction</em>}'.
 	 * <!-- begin-user-doc -->
@@ -981,6 +1055,16 @@ public interface SRuntimePackage extends EPackage {
 		 */
 		EReference REFERENCE_SLOT__REFERENCE = eINSTANCE.getReferenceSlot_Reference();
 
+		/**
+		 * The meta object literal for the '{@link org.yakindu.sct.simulation.core.sruntime.impl.ExecutionOperationImpl <em>Execution Operation</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.yakindu.sct.simulation.core.sruntime.impl.ExecutionOperationImpl
+		 * @see org.yakindu.sct.simulation.core.sruntime.impl.SRuntimePackageImpl#getExecutionOperation()
+		 * @generated
+		 */
+		EClass EXECUTION_OPERATION = eINSTANCE.getExecutionOperation();
+
 		/**
 		 * The meta object literal for the '{@link org.yakindu.sct.simulation.core.sruntime.EventDirection <em>Event Direction</em>}' enum.
 		 * <!-- begin-user-doc -->

+ 1 - 1
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/impl/CompositeSlotImpl.java

@@ -28,10 +28,10 @@ import org.yakindu.sct.simulation.core.sruntime.SRuntimePackage;
  * <em><b>Composite Slot</b></em>'. <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.impl.CompositeSlotImpl#getSlots <em>Slots</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */

+ 10 - 9
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/impl/ExecutionContextImpl.java

@@ -27,6 +27,7 @@ import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.yakindu.base.base.impl.NamedElementImpl;
+import org.yakindu.base.types.Type;
 import org.yakindu.sct.model.sgraph.RegularState;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.simulation.core.sruntime.CompositeSlot;
@@ -45,6 +46,7 @@ import com.google.common.collect.Sets;
  * <em><b>Execution Context</b></em>'. <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.impl.ExecutionContextImpl#getValue <em>Value</em>}</li>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.impl.ExecutionContextImpl#getFqName <em>Fq Name</em>}</li>
@@ -56,7 +58,6 @@ import com.google.common.collect.Sets;
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.impl.ExecutionContextImpl#getSuspendedElements <em>Suspended Elements</em>}</li>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.impl.ExecutionContextImpl#isSnapshot <em>Snapshot</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
@@ -126,7 +127,7 @@ public class ExecutionContextImpl extends NamedElementImpl implements ExecutionC
 	 * @generated
 	 * @ordered
 	 */
-	protected org.yakindu.base.types.Type type;
+	protected Type type;
 
 	/**
 	 * The cached value of the '{@link #getSlots() <em>Slots</em>}' containment reference list.
@@ -206,10 +207,10 @@ public class ExecutionContextImpl extends NamedElementImpl implements ExecutionC
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * @generated
 	 */
-	public org.yakindu.base.types.Type getType() {
+	public Type getType() {
 		if (type != null && type.eIsProxy()) {
 			InternalEObject oldType = (InternalEObject)type;
-			type = (org.yakindu.base.types.Type)eResolveProxy(oldType);
+			type = (Type)eResolveProxy(oldType);
 			if (type != oldType) {
 				if (eNotificationRequired())
 					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SRuntimePackage.EXECUTION_CONTEXT__TYPE, oldType, type));
@@ -223,7 +224,7 @@ public class ExecutionContextImpl extends NamedElementImpl implements ExecutionC
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public org.yakindu.base.types.Type basicGetType() {
+	public Type basicGetType() {
 		return type;
 	}
 
@@ -232,8 +233,8 @@ public class ExecutionContextImpl extends NamedElementImpl implements ExecutionC
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setType(org.yakindu.base.types.Type newType) {
-		org.yakindu.base.types.Type oldType = type;
+	public void setType(Type newType) {
+		Type oldType = type;
 		type = newType;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, SRuntimePackage.EXECUTION_CONTEXT__TYPE, oldType, type));
@@ -593,7 +594,7 @@ public class ExecutionContextImpl extends NamedElementImpl implements ExecutionC
 				setWritable((Boolean)newValue);
 				return;
 			case SRuntimePackage.EXECUTION_CONTEXT__TYPE:
-				setType((org.yakindu.base.types.Type)newValue);
+				setType((Type)newValue);
 				return;
 			case SRuntimePackage.EXECUTION_CONTEXT__SLOTS:
 				getSlots().clear();
@@ -635,7 +636,7 @@ public class ExecutionContextImpl extends NamedElementImpl implements ExecutionC
 				setWritable(WRITABLE_EDEFAULT);
 				return;
 			case SRuntimePackage.EXECUTION_CONTEXT__TYPE:
-				setType((org.yakindu.base.types.Type)null);
+				setType((Type)null);
 				return;
 			case SRuntimePackage.EXECUTION_CONTEXT__SLOTS:
 				getSlots().clear();

+ 1 - 1
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/impl/ExecutionEventImpl.java

@@ -23,12 +23,12 @@ import org.yakindu.sct.simulation.core.sruntime.SRuntimePackage;
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.impl.ExecutionEventImpl#isRaised <em>Raised</em>}</li>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.impl.ExecutionEventImpl#isScheduled <em>Scheduled</em>}</li>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.impl.ExecutionEventImpl#getDirection <em>Direction</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */

+ 45 - 0
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/impl/ExecutionOperationImpl.java

@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2013 committers of YAKINDU and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * Contributors:
+ * committers of YAKINDU - initial API and implementation
+ * 
+ */
+package org.yakindu.sct.simulation.core.sruntime.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.yakindu.sct.simulation.core.sruntime.ExecutionOperation;
+import org.yakindu.sct.simulation.core.sruntime.SRuntimePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Execution Operation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ExecutionOperationImpl extends ExecutionVariableImpl implements ExecutionOperation {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExecutionOperationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SRuntimePackage.Literals.EXECUTION_OPERATION;
+	}
+
+} //ExecutionOperationImpl

+ 10 - 9
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/impl/ExecutionSlotImpl.java

@@ -15,6 +15,7 @@ import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.yakindu.base.base.impl.NamedElementImpl;
+import org.yakindu.base.types.Type;
 import org.yakindu.sct.simulation.core.sruntime.ExecutionSlot;
 import org.yakindu.sct.simulation.core.sruntime.SRuntimePackage;
 
@@ -24,13 +25,13 @@ import org.yakindu.sct.simulation.core.sruntime.SRuntimePackage;
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
+ * </p>
  * <ul>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.impl.ExecutionSlotImpl#getValue <em>Value</em>}</li>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.impl.ExecutionSlotImpl#getFqName <em>Fq Name</em>}</li>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.impl.ExecutionSlotImpl#isWritable <em>Writable</em>}</li>
  *   <li>{@link org.yakindu.sct.simulation.core.sruntime.impl.ExecutionSlotImpl#getType <em>Type</em>}</li>
  * </ul>
- * </p>
  *
  * @generated
  */
@@ -103,7 +104,7 @@ public abstract class ExecutionSlotImpl extends NamedElementImpl implements Exec
 	 * @generated
 	 * @ordered
 	 */
-	protected org.yakindu.base.types.Type type;
+	protected Type type;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -129,10 +130,10 @@ public abstract class ExecutionSlotImpl extends NamedElementImpl implements Exec
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public org.yakindu.base.types.Type getType() {
+	public Type getType() {
 		if (type != null && type.eIsProxy()) {
 			InternalEObject oldType = (InternalEObject)type;
-			type = (org.yakindu.base.types.Type)eResolveProxy(oldType);
+			type = (Type)eResolveProxy(oldType);
 			if (type != oldType) {
 				if (eNotificationRequired())
 					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SRuntimePackage.EXECUTION_SLOT__TYPE, oldType, type));
@@ -146,7 +147,7 @@ public abstract class ExecutionSlotImpl extends NamedElementImpl implements Exec
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public org.yakindu.base.types.Type basicGetType() {
+	public Type basicGetType() {
 		return type;
 	}
 
@@ -155,8 +156,8 @@ public abstract class ExecutionSlotImpl extends NamedElementImpl implements Exec
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setType(org.yakindu.base.types.Type newType) {
-		org.yakindu.base.types.Type oldType = type;
+	public void setType(Type newType) {
+		Type oldType = type;
 		type = newType;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, SRuntimePackage.EXECUTION_SLOT__TYPE, oldType, type));
@@ -264,7 +265,7 @@ public abstract class ExecutionSlotImpl extends NamedElementImpl implements Exec
 				setWritable((Boolean)newValue);
 				return;
 			case SRuntimePackage.EXECUTION_SLOT__TYPE:
-				setType((org.yakindu.base.types.Type)newValue);
+				setType((Type)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -288,7 +289,7 @@ public abstract class ExecutionSlotImpl extends NamedElementImpl implements Exec
 				setWritable(WRITABLE_EDEFAULT);
 				return;
 			case SRuntimePackage.EXECUTION_SLOT__TYPE:
-				setType((org.yakindu.base.types.Type)null);
+				setType((Type)null);
 				return;
 		}
 		super.eUnset(featureID);

+ 0 - 2
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/impl/ExecutionVariableImpl.java

@@ -18,8 +18,6 @@ import org.yakindu.sct.simulation.core.sruntime.SRuntimePackage;
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Execution Variable</b></em>'.
  * <!-- end-user-doc -->
- * <p>
- * </p>
  *
  * @generated
  */

+ 12 - 0
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/impl/SRuntimeFactoryImpl.java

@@ -16,6 +16,7 @@ import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.impl.EFactoryImpl;
 import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.yakindu.sct.simulation.core.sruntime.*;
 import org.yakindu.sct.simulation.core.sruntime.Any;
 import org.yakindu.sct.simulation.core.sruntime.CompositeSlot;
 import org.yakindu.sct.simulation.core.sruntime.EventDirection;
@@ -73,6 +74,7 @@ public class SRuntimeFactoryImpl extends EFactoryImpl implements SRuntimeFactory
 			case SRuntimePackage.EXECUTION_VARIABLE: return createExecutionVariable();
 			case SRuntimePackage.COMPOSITE_SLOT: return createCompositeSlot();
 			case SRuntimePackage.REFERENCE_SLOT: return createReferenceSlot();
+			case SRuntimePackage.EXECUTION_OPERATION: return createExecutionOperation();
 			default:
 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
 		}
@@ -156,6 +158,16 @@ public class SRuntimeFactoryImpl extends EFactoryImpl implements SRuntimeFactory
 		return referenceSlot;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ExecutionOperation createExecutionOperation() {
+		ExecutionOperationImpl executionOperation = new ExecutionOperationImpl();
+		return executionOperation;
+	}
+
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * @generated

+ 22 - 0
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/impl/SRuntimePackageImpl.java

@@ -25,6 +25,7 @@ import org.yakindu.sct.simulation.core.sruntime.CompositeSlot;
 import org.yakindu.sct.simulation.core.sruntime.EventDirection;
 import org.yakindu.sct.simulation.core.sruntime.ExecutionContext;
 import org.yakindu.sct.simulation.core.sruntime.ExecutionEvent;
+import org.yakindu.sct.simulation.core.sruntime.ExecutionOperation;
 import org.yakindu.sct.simulation.core.sruntime.ExecutionSlot;
 import org.yakindu.sct.simulation.core.sruntime.ExecutionVariable;
 import org.yakindu.sct.simulation.core.sruntime.ReferenceSlot;
@@ -80,6 +81,13 @@ public class SRuntimePackageImpl extends EPackageImpl implements SRuntimePackage
 	 */
 	private EClass referenceSlotEClass = null;
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass executionOperationEClass = null;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -329,6 +337,15 @@ public class SRuntimePackageImpl extends EPackageImpl implements SRuntimePackage
 		return (EReference)referenceSlotEClass.getEStructuralFeatures().get(0);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getExecutionOperation() {
+		return executionOperationEClass;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -400,6 +417,8 @@ public class SRuntimePackageImpl extends EPackageImpl implements SRuntimePackage
 		referenceSlotEClass = createEClass(REFERENCE_SLOT);
 		createEReference(referenceSlotEClass, REFERENCE_SLOT__REFERENCE);
 
+		executionOperationEClass = createEClass(EXECUTION_OPERATION);
+
 		// Create enums
 		eventDirectionEEnum = createEEnum(EVENT_DIRECTION);
 
@@ -447,6 +466,7 @@ public class SRuntimePackageImpl extends EPackageImpl implements SRuntimePackage
 		executionVariableEClass.getESuperTypes().add(this.getExecutionSlot());
 		compositeSlotEClass.getESuperTypes().add(this.getExecutionSlot());
 		referenceSlotEClass.getESuperTypes().add(this.getCompositeSlot());
+		executionOperationEClass.getESuperTypes().add(this.getExecutionVariable());
 
 		// Initialize classes and features; add operations and parameters
 		initEClass(executionContextEClass, ExecutionContext.class, "ExecutionContext", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -495,6 +515,8 @@ public class SRuntimePackageImpl extends EPackageImpl implements SRuntimePackage
 		initEClass(referenceSlotEClass, ReferenceSlot.class, "ReferenceSlot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getReferenceSlot_Reference(), this.getExecutionSlot(), null, "reference", null, 0, 1, ReferenceSlot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(executionOperationEClass, ExecutionOperation.class, "ExecutionOperation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
 		// Initialize enums and add enum literals
 		initEEnum(eventDirectionEEnum, EventDirection.class, "EventDirection");
 		addEEnumLiteral(eventDirectionEEnum, EventDirection.LOCAL);

+ 18 - 0
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/util/SRuntimeAdapterFactory.java

@@ -102,6 +102,10 @@ public class SRuntimeAdapterFactory extends AdapterFactoryImpl {
 				return createReferenceSlotAdapter();
 			}
 			@Override
+			public Adapter caseExecutionOperation(ExecutionOperation object) {
+				return createExecutionOperationAdapter();
+			}
+			@Override
 			public Adapter caseNamedElement(NamedElement object) {
 				return createNamedElementAdapter();
 			}
@@ -209,6 +213,20 @@ public class SRuntimeAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
+	/**
+	 * Creates a new adapter for an object of class '{@link org.yakindu.sct.simulation.core.sruntime.ExecutionOperation <em>Execution Operation</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.simulation.core.sruntime.ExecutionOperation
+	 * @generated
+	 */
+	public Adapter createExecutionOperationAdapter() {
+		return null;
+	}
+
 	/**
 	 * Creates a new adapter for an object of class '{@link org.yakindu.base.base.NamedElement <em>Named Element</em>}'.
 	 * <!-- begin-user-doc -->

+ 25 - 1
plugins/org.yakindu.sct.simulation.core/src/org/yakindu/sct/simulation/core/sruntime/util/SRuntimeSwitch.java

@@ -57,7 +57,7 @@ public class SRuntimeSwitch<T> extends Switch<T> {
 	 * Checks whether this is a switch for the given package.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @parameter ePackage the package in question.
+	 * @param ePackage the package in question.
 	 * @return whether this is a switch for the given package.
 	 * @generated
 	 */
@@ -125,6 +125,15 @@ public class SRuntimeSwitch<T> extends Switch<T> {
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case SRuntimePackage.EXECUTION_OPERATION: {
+				ExecutionOperation executionOperation = (ExecutionOperation)theEObject;
+				T result = caseExecutionOperation(executionOperation);
+				if (result == null) result = caseExecutionVariable(executionOperation);
+				if (result == null) result = caseExecutionSlot(executionOperation);
+				if (result == null) result = caseNamedElement(executionOperation);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			default: return defaultCase(theEObject);
 		}
 	}
@@ -219,6 +228,21 @@ public class SRuntimeSwitch<T> extends Switch<T> {
 		return null;
 	}
 
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Execution Operation</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>Execution Operation</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseExecutionOperation(ExecutionOperation object) {
+		return null;
+	}
+
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Named Element</em>'.
 	 * <!-- begin-user-doc -->

BIN
plugins/org.yakindu.sct.simulation.ui/icons/Operation.png


+ 2 - 0
plugins/org.yakindu.sct.simulation.ui/src/org/yakindu/sct/simulation/ui/SimulationImages.java

@@ -30,6 +30,8 @@ public enum SimulationImages {
 	EVENT_DISABLED("icons/Event_disabled.gif"),
 
 	VARIABLE("icons/Variable.gif"),
+	
+	OPERATION("icons/Operation.png"),
 
 	SCOPE("icons/Scope.gif"),
 

+ 6 - 1
plugins/org.yakindu.sct.simulation.ui/src/org/yakindu/sct/simulation/ui/view/ExecutionContextLabelProvider.java

@@ -17,6 +17,7 @@ import org.eclipse.swt.custom.StyleRange;
 import org.yakindu.base.types.EnumerationType;
 import org.yakindu.sct.simulation.core.sruntime.CompositeSlot;
 import org.yakindu.sct.simulation.core.sruntime.ExecutionEvent;
+import org.yakindu.sct.simulation.core.sruntime.ExecutionOperation;
 import org.yakindu.sct.simulation.core.sruntime.ExecutionSlot;
 import org.yakindu.sct.simulation.core.sruntime.ExecutionVariable;
 import org.yakindu.sct.simulation.core.sruntime.ReferenceSlot;
@@ -63,7 +64,7 @@ public class ExecutionContextLabelProvider extends StyledCellLabelProvider {
 			if (value != null) {
 				if (((ExecutionSlot) element).getType().getOriginType() instanceof EnumerationType) {
 					EnumerationType enumType = (EnumerationType) ((ExecutionSlot) element).getType().getOriginType();
-					String text = enumType.getEnumerator().get(((Long)value).intValue()).getName();
+					String text = enumType.getEnumerator().get(((Long) value).intValue()).getName();
 					cell.setText(text);
 				} else {
 					cell.setText(value.toString());
@@ -95,6 +96,10 @@ public class ExecutionContextLabelProvider extends StyledCellLabelProvider {
 					cell.setImage(SimulationImages.EVENT_DISABLED.image());
 				}
 			}
+		} else if (element instanceof ExecutionOperation) {
+			ExecutionVariable variable = (ExecutionVariable) element;
+			cell.setText(variable.getName());
+			cell.setImage(SimulationImages.OPERATION.image());
 		} else if (element instanceof ExecutionVariable) {
 			ExecutionVariable variable = (ExecutionVariable) element;
 			cell.setText(variable.getName());