Quellcode durchsuchen

Added base types to sgen meta model

Andreas Mülder vor 13 Jahren
Ursprung
Commit
f6434818e5
22 geänderte Dateien mit 1860 neuen und 186 gelöschten Zeilen
  1. 78 72
      plugins/org.yakindu.sct.model.sgen.edit/src/org/yakindu/sct/model/sgen/provider/FeatureConfigurationItemProvider.java
  2. 14 1
      plugins/org.yakindu.sct.model.sgen/model/emf/sgen.ecore
  3. 79 65
      plugins/org.yakindu.sct.model.sgen/model/emf/sgen.genmodel
  4. 53 0
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/BoolLiteral.java
  5. 5 8
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/FeatureParameterValue.java
  6. 53 0
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/IntLiteral.java
  7. 22 0
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/Literal.java
  8. 53 0
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/RealLiteral.java
  9. 36 0
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/SGenFactory.java
  10. 308 1
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/SGenPackage.java
  11. 53 0
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/StringLiteral.java
  12. 166 0
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/BoolLiteralImpl.java
  13. 20 36
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/FeatureParameterValueImpl.java
  14. 161 0
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/IntLiteralImpl.java
  15. 46 0
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/LiteralImpl.java
  16. 160 0
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/RealLiteralImpl.java
  17. 45 0
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/SGenFactoryImpl.java
  18. 133 2
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/SGenPackageImpl.java
  19. 160 0
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/StringLiteralImpl.java
  20. 14 1
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/sgen.ecore
  21. 91 0
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/util/SGenAdapterFactory.java
  22. 110 0
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/util/SGenSwitch.java

+ 78 - 72
plugins/org.yakindu.sct.model.sgen.edit/src/org/yakindu/sct/model/sgen/provider/FeatureConfigurationItemProvider.java

@@ -6,7 +6,6 @@
  */
 package org.yakindu.sct.model.sgen.provider;
 
-
 import java.util.Collection;
 import java.util.List;
 
@@ -24,27 +23,24 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 import org.eclipse.emf.edit.provider.ItemProviderAdapter;
 import org.eclipse.emf.edit.provider.ViewerNotification;
 import org.yakindu.sct.model.sgen.FeatureConfiguration;
+import org.yakindu.sct.model.sgen.FeatureType;
 import org.yakindu.sct.model.sgen.SGenFactory;
 import org.yakindu.sct.model.sgen.SGenPackage;
 
 /**
- * This is the item provider adapter for a {@link org.yakindu.sct.model.sgen.FeatureConfiguration} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
+ * This is the item provider adapter for a
+ * {@link org.yakindu.sct.model.sgen.FeatureConfiguration} object. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ * 
  * @generated
  */
-public class FeatureConfigurationItemProvider
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
+public class FeatureConfigurationItemProvider extends ItemProviderAdapter
+		implements IEditingDomainItemProvider, IStructuredItemContentProvider,
+		ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
 	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * This constructs an instance from a factory and a notifier. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public FeatureConfigurationItemProvider(AdapterFactory adapterFactory) {
@@ -52,9 +48,9 @@ public class FeatureConfigurationItemProvider
 	}
 
 	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * This returns the property descriptors for the adapted class. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -68,85 +64,94 @@ public class FeatureConfigurationItemProvider
 	}
 
 	/**
-	 * This adds a property descriptor for the Type feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * This adds a property descriptor for the Type feature. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	protected void addTypePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_FeatureConfiguration_type_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_FeatureConfiguration_type_feature", "_UI_FeatureConfiguration_type"),
-				 SGenPackage.Literals.FEATURE_CONFIGURATION__TYPE,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
+		itemPropertyDescriptors.add(createItemPropertyDescriptor(
+				((ComposeableAdapterFactory) adapterFactory)
+						.getRootAdapterFactory(),
+				getResourceLocator(),
+				getString("_UI_FeatureConfiguration_type_feature"),
+				getString("_UI_PropertyDescriptor_description",
+						"_UI_FeatureConfiguration_type_feature",
+						"_UI_FeatureConfiguration_type"),
+				SGenPackage.Literals.FEATURE_CONFIGURATION__TYPE, true, false,
+				true, null, null, null));
 	}
 
 	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * This specifies how to implement {@link #getChildren} and is used to
+	 * deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand},
+	 * {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in
+	 * {@link #createCommand}. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(
+			Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
-			childrenFeatures.add(SGenPackage.Literals.FEATURE_CONFIGURATION__PARAMETER_VALUES);
+			childrenFeatures
+					.add(SGenPackage.Literals.FEATURE_CONFIGURATION__PARAMETER_VALUES);
 		}
 		return childrenFeatures;
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
 	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
+		// Check the type of the specified child object and return the proper
+		// feature to use for
 		// adding (see {@link AddCommand}) it as a child.
 
 		return super.getChildFeature(object, child);
 	}
 
 	/**
-	 * This returns FeatureConfiguration.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * This returns FeatureConfiguration.gif. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
 	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/FeatureConfiguration"));
+		return overlayImage(object,
+				getResourceLocator()
+						.getImage("full/obj16/FeatureConfiguration"));
 	}
 
 	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * This returns the label text for the adapted class. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
+	 * 
 	 * @generated NOT
 	 */
 	@Override
 	public String getText(Object object) {
-		FeatureConfiguration configuration = ((FeatureConfiguration)object);
-		return configuration.getType().getName() + " feature";
+		FeatureConfiguration configuration = ((FeatureConfiguration) object);
+		FeatureType type = configuration.getType();
+		if (type != null) {
+			return type.getName() + " feature";
+		}
+		return "";
 	}
 
 	/**
-	 * 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 -->
+	 * 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
@@ -154,34 +159,35 @@ public class FeatureConfigurationItemProvider
 		updateChildren(notification);
 
 		switch (notification.getFeatureID(FeatureConfiguration.class)) {
-			case SGenPackage.FEATURE_CONFIGURATION__PARAMETER_VALUES:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
+		case SGenPackage.FEATURE_CONFIGURATION__PARAMETER_VALUES:
+			fireNotifyChanged(new ViewerNotification(notification,
+					notification.getNotifier(), true, false));
+			return;
 		}
 		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 -->
+	 * 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) {
+	protected void collectNewChildDescriptors(
+			Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
 
-		newChildDescriptors.add
-			(createChildParameter
-				(SGenPackage.Literals.FEATURE_CONFIGURATION__PARAMETER_VALUES,
-				 SGenFactory.eINSTANCE.createFeatureParameterValue()));
+		newChildDescriptors.add(createChildParameter(
+				SGenPackage.Literals.FEATURE_CONFIGURATION__PARAMETER_VALUES,
+				SGenFactory.eINSTANCE.createFeatureParameterValue()));
 	}
 
 	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * Return the resource locator for this item provider's resources. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override

+ 14 - 1
plugins/org.yakindu.sct.model.sgen/model/emf/sgen.ecore

@@ -57,7 +57,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" eType="#//FeatureParameter"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="featureConfiguration" eType="#//FeatureConfiguration"
         changeable="false" eOpposite="#//FeatureConfiguration/parameterValues"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="ecore:EClass ../../../org.eclipse.xtext.xbase/model/Xbase.ecore#//XExpression"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="#//Literal"
         containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="FeatureTypeLibrary">
@@ -71,4 +71,17 @@
     <eLiterals name="BOOLEAN"/>
     <eLiterals name="INTEGER" value="3"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Literal" abstract="true"/>
+  <eClassifiers xsi:type="ecore:EClass" name="BoolLiteral" eSuperTypes="#//Literal">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IntLiteral" eSuperTypes="#//Literal">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="RealLiteral" eSuperTypes="#//Literal">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="StringLiteral" eSuperTypes="#//Literal">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
 </ecore:EPackage>

+ 79 - 65
plugins/org.yakindu.sct.model.sgen/model/emf/sgen.genmodel

@@ -1,65 +1,79 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<genmodel:GenModel xmi:version="2.0"
-    xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
-    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.yakindu.sct.model.sgen/src"
-    modelPluginID="org.yakindu.sct.model.sgen" modelName="Sgen" importerID="org.eclipse.emf.importer.ecore"
-    complianceLevel="5.0" copyrightFields="false" usedGenPackages="../../../org.yakindu.sct.model.sgraph/model/emf/sgraph.genmodel#//sgraph ../../../org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel#//types ../../../org.eclipse.xtext.xbase/model/Xbase.genmodel#//xbase ../../../org.yakindu.base.types/model/base.genmodel#//base">
-  <foreignModel>sgen.ecore</foreignModel>
-  <genPackages prefix="SGen" basePackage="org.yakindu.sct.model" disposableProviderFactory="true"
-      loadInitialization="true" ecorePackage="sgen.ecore#/">
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="sgen.ecore#//ParameterTypes">
-      <genEnumLiterals ecoreEnumLiteral="sgen.ecore#//ParameterTypes/STRING"/>
-      <genEnumLiterals ecoreEnumLiteral="sgen.ecore#//ParameterTypes/FLOAT"/>
-      <genEnumLiterals ecoreEnumLiteral="sgen.ecore#//ParameterTypes/BOOLEAN"/>
-      <genEnumLiterals ecoreEnumLiteral="sgen.ecore#//ParameterTypes/INTEGER"/>
-    </genEnums>
-    <genClasses ecoreClass="sgen.ecore#//GeneratorModel">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sgen.ecore#//GeneratorModel/entries"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sgen.ecore#//GeneratorModel/generatorId"/>
-    </genClasses>
-    <genClasses ecoreClass="sgen.ecore#//GeneratorConfiguration">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sgen.ecore#//GeneratorConfiguration/configurations"/>
-    </genClasses>
-    <genClasses ecoreClass="sgen.ecore#//FeatureType">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sgen.ecore#//FeatureType/parameters"/>
-      <genFeatures property="Readonly" notify="false" createChild="false" ecoreFeature="ecore:EReference sgen.ecore#//FeatureType/library"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sgen.ecore#//FeatureType/optional"/>
-    </genClasses>
-    <genClasses ecoreClass="sgen.ecore#//FeatureParameter">
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference sgen.ecore#//FeatureParameter/featureType"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sgen.ecore#//FeatureParameter/optional"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sgen.ecore#//FeatureParameter/parameterType"/>
-    </genClasses>
-    <genClasses ecoreClass="sgen.ecore#//FeatureConfiguration">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference sgen.ecore#//FeatureConfiguration/type"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sgen.ecore#//FeatureConfiguration/parameterValues"/>
-      <genOperations ecoreOperation="sgen.ecore#//FeatureConfiguration/getParameterValue">
-        <genParameters ecoreParameter="sgen.ecore#//FeatureConfiguration/getParameterValue/parameterName"/>
-      </genOperations>
-    </genClasses>
-    <genClasses ecoreClass="sgen.ecore#//GeneratorEntry">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference sgen.ecore#//GeneratorEntry/statechart"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sgen.ecore#//GeneratorEntry/features"/>
-      <genOperations ecoreOperation="sgen.ecore#//GeneratorEntry/getFeatureConfiguration">
-        <genParameters ecoreParameter="sgen.ecore#//GeneratorEntry/getFeatureConfiguration/featureName"/>
-      </genOperations>
-    </genClasses>
-    <genClasses ecoreClass="sgen.ecore#//FeatureParameterValue">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference sgen.ecore#//FeatureParameterValue/parameter"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference sgen.ecore#//FeatureParameterValue/featureConfiguration"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sgen.ecore#//FeatureParameterValue/expression"/>
-      <genOperations ecoreOperation="sgen.ecore#//FeatureParameterValue/setValue">
-        <genParameters ecoreParameter="sgen.ecore#//FeatureParameterValue/setValue/string"/>
-      </genOperations>
-      <genOperations ecoreOperation="sgen.ecore#//FeatureParameterValue/setValue.1">
-        <genParameters ecoreParameter="sgen.ecore#//FeatureParameterValue/setValue.1/boolean"/>
-      </genOperations>
-      <genOperations ecoreOperation="sgen.ecore#//FeatureParameterValue/getStringValue"/>
-      <genOperations ecoreOperation="sgen.ecore#//FeatureParameterValue/getBooleanValue"/>
-    </genClasses>
-    <genClasses ecoreClass="sgen.ecore#//FeatureTypeLibrary">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sgen.ecore#//FeatureTypeLibrary/types"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sgen.ecore#//FeatureTypeLibrary/name"/>
-    </genClasses>
-  </genPackages>
-</genmodel:GenModel>
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.yakindu.sct.model.sgen/src"
+    modelPluginID="org.yakindu.sct.model.sgen" modelName="Sgen" importerID="org.eclipse.emf.importer.ecore"
+    complianceLevel="5.0" copyrightFields="false" usedGenPackages="../../../org.yakindu.base.types/model/base.genmodel#//base">
+  <foreignModel>sgen.ecore</foreignModel>
+  <genPackages prefix="SGen" basePackage="org.yakindu.sct.model" disposableProviderFactory="true"
+      loadInitialization="true" ecorePackage="sgen.ecore#/">
+    <genEnums typeSafeEnumCompatible="false" ecoreEnum="sgen.ecore#//ParameterTypes">
+      <genEnumLiterals ecoreEnumLiteral="sgen.ecore#//ParameterTypes/STRING"/>
+      <genEnumLiterals ecoreEnumLiteral="sgen.ecore#//ParameterTypes/FLOAT"/>
+      <genEnumLiterals ecoreEnumLiteral="sgen.ecore#//ParameterTypes/BOOLEAN"/>
+      <genEnumLiterals ecoreEnumLiteral="sgen.ecore#//ParameterTypes/INTEGER"/>
+    </genEnums>
+    <genClasses ecoreClass="sgen.ecore#//GeneratorModel">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sgen.ecore#//GeneratorModel/entries"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sgen.ecore#//GeneratorModel/generatorId"/>
+    </genClasses>
+    <genClasses ecoreClass="sgen.ecore#//GeneratorConfiguration">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sgen.ecore#//GeneratorConfiguration/configurations"/>
+    </genClasses>
+    <genClasses ecoreClass="sgen.ecore#//FeatureType">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sgen.ecore#//FeatureType/parameters"/>
+      <genFeatures property="Readonly" notify="false" createChild="false" ecoreFeature="ecore:EReference sgen.ecore#//FeatureType/library"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sgen.ecore#//FeatureType/optional"/>
+    </genClasses>
+    <genClasses ecoreClass="sgen.ecore#//FeatureParameter">
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference sgen.ecore#//FeatureParameter/featureType"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sgen.ecore#//FeatureParameter/optional"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sgen.ecore#//FeatureParameter/parameterType"/>
+    </genClasses>
+    <genClasses ecoreClass="sgen.ecore#//FeatureConfiguration">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference sgen.ecore#//FeatureConfiguration/type"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sgen.ecore#//FeatureConfiguration/parameterValues"/>
+      <genOperations ecoreOperation="sgen.ecore#//FeatureConfiguration/getParameterValue">
+        <genParameters ecoreParameter="sgen.ecore#//FeatureConfiguration/getParameterValue/parameterName"/>
+      </genOperations>
+    </genClasses>
+    <genClasses ecoreClass="sgen.ecore#//GeneratorEntry">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference sgen.ecore#//GeneratorEntry/elementRef"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sgen.ecore#//GeneratorEntry/features"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sgen.ecore#//GeneratorEntry/contentType"/>
+      <genOperations ecoreOperation="sgen.ecore#//GeneratorEntry/getFeatureConfiguration">
+        <genParameters ecoreParameter="sgen.ecore#//GeneratorEntry/getFeatureConfiguration/featureName"/>
+      </genOperations>
+    </genClasses>
+    <genClasses ecoreClass="sgen.ecore#//FeatureParameterValue">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference sgen.ecore#//FeatureParameterValue/parameter"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference sgen.ecore#//FeatureParameterValue/featureConfiguration"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sgen.ecore#//FeatureParameterValue/expression"/>
+      <genOperations ecoreOperation="sgen.ecore#//FeatureParameterValue/setValue">
+        <genParameters ecoreParameter="sgen.ecore#//FeatureParameterValue/setValue/string"/>
+      </genOperations>
+      <genOperations ecoreOperation="sgen.ecore#//FeatureParameterValue/setValue.1">
+        <genParameters ecoreParameter="sgen.ecore#//FeatureParameterValue/setValue.1/boolean"/>
+      </genOperations>
+      <genOperations ecoreOperation="sgen.ecore#//FeatureParameterValue/getStringValue"/>
+      <genOperations ecoreOperation="sgen.ecore#//FeatureParameterValue/getBooleanValue"/>
+    </genClasses>
+    <genClasses ecoreClass="sgen.ecore#//FeatureTypeLibrary">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference sgen.ecore#//FeatureTypeLibrary/types"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sgen.ecore#//FeatureTypeLibrary/name"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="sgen.ecore#//Literal"/>
+    <genClasses ecoreClass="sgen.ecore#//BoolLiteral">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sgen.ecore#//BoolLiteral/value"/>
+    </genClasses>
+    <genClasses ecoreClass="sgen.ecore#//IntLiteral">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sgen.ecore#//IntLiteral/value"/>
+    </genClasses>
+    <genClasses ecoreClass="sgen.ecore#//RealLiteral">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sgen.ecore#//RealLiteral/value"/>
+    </genClasses>
+    <genClasses ecoreClass="sgen.ecore#//StringLiteral">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute sgen.ecore#//StringLiteral/value"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>

+ 53 - 0
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/BoolLiteral.java

@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.yakindu.sct.model.sgen;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Bool Literal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgen.BoolLiteral#isValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.yakindu.sct.model.sgen.SGenPackage#getBoolLiteral()
+ * @model
+ * @generated
+ */
+public interface BoolLiteral extends Literal {
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(boolean)
+	 * @see org.yakindu.sct.model.sgen.SGenPackage#getBoolLiteral_Value()
+	 * @model
+	 * @generated
+	 */
+	boolean isValue();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.sct.model.sgen.BoolLiteral#isValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #isValue()
+	 * @generated
+	 */
+	void setValue(boolean value);
+
+} // BoolLiteral

+ 5 - 8
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/FeatureParameterValue.java

@@ -7,7 +7,6 @@
 package org.yakindu.sct.model.sgen;
 
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.xtext.xbase.XExpression;
 
 /**
  * <!-- begin-user-doc --> A representation of the model object '
@@ -26,7 +25,6 @@ import org.eclipse.xtext.xbase.XExpression;
  * @model
  * @generated
  */
-@SuppressWarnings("restriction")
 public interface FeatureParameterValue extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Parameter</b></em>' reference. <!--
@@ -85,22 +83,22 @@ public interface FeatureParameterValue extends EObject {
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Expression</em>' containment reference.
-	 * @see #setExpression(XExpression)
+	 * @see #setExpression(Literal)
 	 * @see org.yakindu.sct.model.sgen.SGenPackage#getFeatureParameterValue_Expression()
 	 * @model containment="true"
 	 * @generated
 	 */
-	XExpression getExpression();
+	Literal getExpression();
 
 	/**
 	 * Sets the value of the '{@link org.yakindu.sct.model.sgen.FeatureParameterValue#getExpression <em>Expression</em>}' containment reference.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Expression</em>' containment reference.
 	 * @see #getExpression()
 	 * @generated
 	 */
-	void setExpression(XExpression value);
+	void setExpression(Literal value);
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
@@ -130,6 +128,5 @@ public interface FeatureParameterValue extends EObject {
 	 */
 	boolean getBooleanValue();
 	
-	Object getValue();
 
 } // FeatureParameterValue

+ 53 - 0
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/IntLiteral.java

@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.yakindu.sct.model.sgen;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Int Literal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgen.IntLiteral#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.yakindu.sct.model.sgen.SGenPackage#getIntLiteral()
+ * @model
+ * @generated
+ */
+public interface IntLiteral extends Literal {
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(int)
+	 * @see org.yakindu.sct.model.sgen.SGenPackage#getIntLiteral_Value()
+	 * @model
+	 * @generated
+	 */
+	int getValue();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.sct.model.sgen.IntLiteral#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(int value);
+
+} // IntLiteral

+ 22 - 0
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/Literal.java

@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.yakindu.sct.model.sgen;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Literal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.yakindu.sct.model.sgen.SGenPackage#getLiteral()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Literal extends EObject {
+} // Literal

+ 53 - 0
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/RealLiteral.java

@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.yakindu.sct.model.sgen;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Real Literal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgen.RealLiteral#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.yakindu.sct.model.sgen.SGenPackage#getRealLiteral()
+ * @model
+ * @generated
+ */
+public interface RealLiteral extends Literal {
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(float)
+	 * @see org.yakindu.sct.model.sgen.SGenPackage#getRealLiteral_Value()
+	 * @model
+	 * @generated
+	 */
+	float getValue();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.sct.model.sgen.RealLiteral#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(float value);
+
+} // RealLiteral

+ 36 - 0
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/SGenFactory.java

@@ -97,6 +97,42 @@ public interface SGenFactory extends EFactory {
 	 */
 	FeatureTypeLibrary createFeatureTypeLibrary();
 
+	/**
+	 * Returns a new object of class '<em>Bool Literal</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Bool Literal</em>'.
+	 * @generated
+	 */
+	BoolLiteral createBoolLiteral();
+
+	/**
+	 * Returns a new object of class '<em>Int Literal</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Int Literal</em>'.
+	 * @generated
+	 */
+	IntLiteral createIntLiteral();
+
+	/**
+	 * Returns a new object of class '<em>Real Literal</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Real Literal</em>'.
+	 * @generated
+	 */
+	RealLiteral createRealLiteral();
+
+	/**
+	 * Returns a new object of class '<em>String Literal</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>String Literal</em>'.
+	 * @generated
+	 */
+	StringLiteral createStringLiteral();
+
 	/**
 	 * Returns the package supported by this factory.
 	 * <!-- begin-user-doc -->

+ 308 - 1
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/SGenPackage.java

@@ -403,6 +403,137 @@ public interface SGenPackage extends EPackage {
 	int FEATURE_TYPE_LIBRARY_FEATURE_COUNT = 2;
 
 
+	/**
+	 * The meta object id for the '{@link org.yakindu.sct.model.sgen.impl.LiteralImpl <em>Literal</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.yakindu.sct.model.sgen.impl.LiteralImpl
+	 * @see org.yakindu.sct.model.sgen.impl.SGenPackageImpl#getLiteral()
+	 * @generated
+	 */
+	int LITERAL = 8;
+
+	/**
+	 * The number of structural features of the '<em>Literal</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LITERAL_FEATURE_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.yakindu.sct.model.sgen.impl.BoolLiteralImpl <em>Bool Literal</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.yakindu.sct.model.sgen.impl.BoolLiteralImpl
+	 * @see org.yakindu.sct.model.sgen.impl.SGenPackageImpl#getBoolLiteral()
+	 * @generated
+	 */
+	int BOOL_LITERAL = 9;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BOOL_LITERAL__VALUE = LITERAL_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Bool Literal</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BOOL_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.yakindu.sct.model.sgen.impl.IntLiteralImpl <em>Int Literal</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.yakindu.sct.model.sgen.impl.IntLiteralImpl
+	 * @see org.yakindu.sct.model.sgen.impl.SGenPackageImpl#getIntLiteral()
+	 * @generated
+	 */
+	int INT_LITERAL = 10;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INT_LITERAL__VALUE = LITERAL_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Int Literal</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INT_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.yakindu.sct.model.sgen.impl.RealLiteralImpl <em>Real Literal</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.yakindu.sct.model.sgen.impl.RealLiteralImpl
+	 * @see org.yakindu.sct.model.sgen.impl.SGenPackageImpl#getRealLiteral()
+	 * @generated
+	 */
+	int REAL_LITERAL = 11;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REAL_LITERAL__VALUE = LITERAL_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Real Literal</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REAL_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.yakindu.sct.model.sgen.impl.StringLiteralImpl <em>String Literal</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.yakindu.sct.model.sgen.impl.StringLiteralImpl
+	 * @see org.yakindu.sct.model.sgen.impl.SGenPackageImpl#getStringLiteral()
+	 * @generated
+	 */
+	int STRING_LITERAL = 12;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRING_LITERAL__VALUE = LITERAL_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>String Literal</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRING_LITERAL_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 1;
+
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sgen.ParameterTypes <em>Parameter Types</em>}' enum.
 	 * <!-- begin-user-doc -->
@@ -411,7 +542,7 @@ public interface SGenPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sgen.impl.SGenPackageImpl#getParameterTypes()
 	 * @generated
 	 */
-	int PARAMETER_TYPES = 8;
+	int PARAMETER_TYPES = 13;
 
 
 	/**
@@ -703,6 +834,100 @@ public interface SGenPackage extends EPackage {
 	 */
 	EAttribute getFeatureTypeLibrary_Name();
 
+	/**
+	 * Returns the meta object for class '{@link org.yakindu.sct.model.sgen.Literal <em>Literal</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Literal</em>'.
+	 * @see org.yakindu.sct.model.sgen.Literal
+	 * @generated
+	 */
+	EClass getLiteral();
+
+	/**
+	 * Returns the meta object for class '{@link org.yakindu.sct.model.sgen.BoolLiteral <em>Bool Literal</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Bool Literal</em>'.
+	 * @see org.yakindu.sct.model.sgen.BoolLiteral
+	 * @generated
+	 */
+	EClass getBoolLiteral();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.yakindu.sct.model.sgen.BoolLiteral#isValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.yakindu.sct.model.sgen.BoolLiteral#isValue()
+	 * @see #getBoolLiteral()
+	 * @generated
+	 */
+	EAttribute getBoolLiteral_Value();
+
+	/**
+	 * Returns the meta object for class '{@link org.yakindu.sct.model.sgen.IntLiteral <em>Int Literal</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Int Literal</em>'.
+	 * @see org.yakindu.sct.model.sgen.IntLiteral
+	 * @generated
+	 */
+	EClass getIntLiteral();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.yakindu.sct.model.sgen.IntLiteral#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.yakindu.sct.model.sgen.IntLiteral#getValue()
+	 * @see #getIntLiteral()
+	 * @generated
+	 */
+	EAttribute getIntLiteral_Value();
+
+	/**
+	 * Returns the meta object for class '{@link org.yakindu.sct.model.sgen.RealLiteral <em>Real Literal</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Real Literal</em>'.
+	 * @see org.yakindu.sct.model.sgen.RealLiteral
+	 * @generated
+	 */
+	EClass getRealLiteral();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.yakindu.sct.model.sgen.RealLiteral#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.yakindu.sct.model.sgen.RealLiteral#getValue()
+	 * @see #getRealLiteral()
+	 * @generated
+	 */
+	EAttribute getRealLiteral_Value();
+
+	/**
+	 * Returns the meta object for class '{@link org.yakindu.sct.model.sgen.StringLiteral <em>String Literal</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>String Literal</em>'.
+	 * @see org.yakindu.sct.model.sgen.StringLiteral
+	 * @generated
+	 */
+	EClass getStringLiteral();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.yakindu.sct.model.sgen.StringLiteral#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Value</em>'.
+	 * @see org.yakindu.sct.model.sgen.StringLiteral#getValue()
+	 * @see #getStringLiteral()
+	 * @generated
+	 */
+	EAttribute getStringLiteral_Value();
+
 	/**
 	 * Returns the meta object for enum '{@link org.yakindu.sct.model.sgen.ParameterTypes <em>Parameter Types</em>}'.
 	 * <!-- begin-user-doc -->
@@ -967,6 +1192,88 @@ public interface SGenPackage extends EPackage {
 		 */
 		EAttribute FEATURE_TYPE_LIBRARY__NAME = eINSTANCE.getFeatureTypeLibrary_Name();
 
+		/**
+		 * The meta object literal for the '{@link org.yakindu.sct.model.sgen.impl.LiteralImpl <em>Literal</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.yakindu.sct.model.sgen.impl.LiteralImpl
+		 * @see org.yakindu.sct.model.sgen.impl.SGenPackageImpl#getLiteral()
+		 * @generated
+		 */
+		EClass LITERAL = eINSTANCE.getLiteral();
+
+		/**
+		 * The meta object literal for the '{@link org.yakindu.sct.model.sgen.impl.BoolLiteralImpl <em>Bool Literal</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.yakindu.sct.model.sgen.impl.BoolLiteralImpl
+		 * @see org.yakindu.sct.model.sgen.impl.SGenPackageImpl#getBoolLiteral()
+		 * @generated
+		 */
+		EClass BOOL_LITERAL = eINSTANCE.getBoolLiteral();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BOOL_LITERAL__VALUE = eINSTANCE.getBoolLiteral_Value();
+
+		/**
+		 * The meta object literal for the '{@link org.yakindu.sct.model.sgen.impl.IntLiteralImpl <em>Int Literal</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.yakindu.sct.model.sgen.impl.IntLiteralImpl
+		 * @see org.yakindu.sct.model.sgen.impl.SGenPackageImpl#getIntLiteral()
+		 * @generated
+		 */
+		EClass INT_LITERAL = eINSTANCE.getIntLiteral();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute INT_LITERAL__VALUE = eINSTANCE.getIntLiteral_Value();
+
+		/**
+		 * The meta object literal for the '{@link org.yakindu.sct.model.sgen.impl.RealLiteralImpl <em>Real Literal</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.yakindu.sct.model.sgen.impl.RealLiteralImpl
+		 * @see org.yakindu.sct.model.sgen.impl.SGenPackageImpl#getRealLiteral()
+		 * @generated
+		 */
+		EClass REAL_LITERAL = eINSTANCE.getRealLiteral();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute REAL_LITERAL__VALUE = eINSTANCE.getRealLiteral_Value();
+
+		/**
+		 * The meta object literal for the '{@link org.yakindu.sct.model.sgen.impl.StringLiteralImpl <em>String Literal</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.yakindu.sct.model.sgen.impl.StringLiteralImpl
+		 * @see org.yakindu.sct.model.sgen.impl.SGenPackageImpl#getStringLiteral()
+		 * @generated
+		 */
+		EClass STRING_LITERAL = eINSTANCE.getStringLiteral();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute STRING_LITERAL__VALUE = eINSTANCE.getStringLiteral_Value();
+
 		/**
 		 * The meta object literal for the '{@link org.yakindu.sct.model.sgen.ParameterTypes <em>Parameter Types</em>}' enum.
 		 * <!-- begin-user-doc -->

+ 53 - 0
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/StringLiteral.java

@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.yakindu.sct.model.sgen;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>String Literal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgen.StringLiteral#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.yakindu.sct.model.sgen.SGenPackage#getStringLiteral()
+ * @model
+ * @generated
+ */
+public interface StringLiteral extends Literal {
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' attribute.
+	 * @see #setValue(String)
+	 * @see org.yakindu.sct.model.sgen.SGenPackage#getStringLiteral_Value()
+	 * @model
+	 * @generated
+	 */
+	String getValue();
+
+	/**
+	 * Sets the value of the '{@link org.yakindu.sct.model.sgen.StringLiteral#getValue <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' attribute.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(String value);
+
+} // StringLiteral

+ 166 - 0
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/BoolLiteralImpl.java

@@ -0,0 +1,166 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.yakindu.sct.model.sgen.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.yakindu.sct.model.sgen.BoolLiteral;
+import org.yakindu.sct.model.sgen.SGenPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Bool Literal</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgen.impl.BoolLiteralImpl#isValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BoolLiteralImpl extends LiteralImpl implements BoolLiteral {
+	/**
+	 * The default value of the '{@link #isValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean VALUE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BoolLiteralImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SGenPackage.Literals.BOOL_LITERAL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValue(boolean newValue) {
+		boolean oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SGenPackage.BOOL_LITERAL__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SGenPackage.BOOL_LITERAL__VALUE:
+				return isValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SGenPackage.BOOL_LITERAL__VALUE:
+				setValue((Boolean)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SGenPackage.BOOL_LITERAL__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SGenPackage.BOOL_LITERAL__VALUE:
+				return value != VALUE_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (value: ");
+		result.append(value);
+		result.append(')');
+		return result.toString();
+	}
+
+} //BoolLiteralImpl

+ 20 - 36
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/FeatureParameterValueImpl.java

@@ -12,15 +12,14 @@ import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.xtext.xbase.XBooleanLiteral;
-import org.eclipse.xtext.xbase.XExpression;
-import org.eclipse.xtext.xbase.XStringLiteral;
-import org.eclipse.xtext.xbase.XbaseFactory;
-import org.eclipse.xtext.xbase.interpreter.IExpressionInterpreter;
+import org.yakindu.sct.model.sgen.BoolLiteral;
 import org.yakindu.sct.model.sgen.FeatureConfiguration;
 import org.yakindu.sct.model.sgen.FeatureParameter;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
+import org.yakindu.sct.model.sgen.Literal;
+import org.yakindu.sct.model.sgen.SGenFactory;
 import org.yakindu.sct.model.sgen.SGenPackage;
+import org.yakindu.sct.model.sgen.StringLiteral;
 
 /**
  * <!-- begin-user-doc --> An implementation of the model object '
@@ -55,7 +54,7 @@ public class FeatureParameterValueImpl extends EObjectImpl implements
 	 * @generated
 	 * @ordered
 	 */
-	protected XExpression expression;
+	protected Literal expression;
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
@@ -123,17 +122,17 @@ public class FeatureParameterValueImpl extends EObjectImpl implements
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * @generated
 	 */
-	public XExpression getExpression() {
+	public Literal getExpression() {
 		return expression;
 	}
 
 	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetExpression(XExpression newExpression,
-			NotificationChain msgs) {
-		XExpression oldExpression = expression;
+	public NotificationChain basicSetExpression(Literal newExpression, NotificationChain msgs) {
+		Literal oldExpression = expression;
 		expression = newExpression;
 		if (eNotificationRequired()) {
 			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SGenPackage.FEATURE_PARAMETER_VALUE__EXPRESSION, oldExpression, newExpression);
@@ -143,10 +142,11 @@ public class FeatureParameterValueImpl extends EObjectImpl implements
 	}
 
 	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setExpression(XExpression newExpression) {
+	public void setExpression(Literal newExpression) {
 		if (newExpression != expression) {
 			NotificationChain msgs = null;
 			if (expression != null)
@@ -166,7 +166,7 @@ public class FeatureParameterValueImpl extends EObjectImpl implements
 	 * @generated NOT
 	 */
 	public void setValue(String string) {
-		XStringLiteral literal = XbaseFactory.eINSTANCE.createXStringLiteral();
+		StringLiteral literal = SGenFactory.eINSTANCE.createStringLiteral();
 		literal.setValue(string);
 		setExpression(literal);
 	}
@@ -177,9 +177,8 @@ public class FeatureParameterValueImpl extends EObjectImpl implements
 	 * @generated NOT
 	 */
 	public void setValue(boolean boolean_) {
-		XBooleanLiteral literal = XbaseFactory.eINSTANCE
-				.createXBooleanLiteral();
-		literal.setIsTrue(boolean_);
+		BoolLiteral literal = SGenFactory.eINSTANCE.createBoolLiteral();
+		literal.setValue(boolean_);
 		setExpression(literal);
 	}
 
@@ -189,14 +188,7 @@ public class FeatureParameterValueImpl extends EObjectImpl implements
 	 * @generated NOT
 	 */
 	public String getStringValue() {
-		return (String) getInterpreter().evaluate(getExpression()).getResult();
-	}
-
-	private IExpressionInterpreter getInterpreter() {
-		if (eResource() instanceof IExpressionInterpreter) {
-			return (IExpressionInterpreter) eResource();
-		}
-		throw new IllegalStateException();
+		return ((StringLiteral)expression).getValue();
 	}
 
 	/**
@@ -205,17 +197,9 @@ public class FeatureParameterValueImpl extends EObjectImpl implements
 	 * @generated NOT
 	 */
 	public boolean getBooleanValue() {
-		return (Boolean) getInterpreter().evaluate(getExpression()).getResult();
+		return ((BoolLiteral)expression).isValue();
 	}
 
-	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
-	 * 
-	 * @generated NOT
-	 */
-	public Object getValue() {
-		return getInterpreter().evaluate(getExpression()).getResult();
-	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
@@ -292,7 +276,7 @@ public class FeatureParameterValueImpl extends EObjectImpl implements
 				setParameter((FeatureParameter)newValue);
 				return;
 			case SGenPackage.FEATURE_PARAMETER_VALUE__EXPRESSION:
-				setExpression((XExpression)newValue);
+				setExpression((Literal)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -309,7 +293,7 @@ public class FeatureParameterValueImpl extends EObjectImpl implements
 				setParameter((FeatureParameter)null);
 				return;
 			case SGenPackage.FEATURE_PARAMETER_VALUE__EXPRESSION:
-				setExpression((XExpression)null);
+				setExpression((Literal)null);
 				return;
 		}
 		super.eUnset(featureID);

+ 161 - 0
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/IntLiteralImpl.java

@@ -0,0 +1,161 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.yakindu.sct.model.sgen.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.yakindu.sct.model.sgen.IntLiteral;
+import org.yakindu.sct.model.sgen.SGenPackage;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '
+ * <em><b>Int Literal</b></em>'. <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.yakindu.sct.model.sgen.impl.IntLiteralImpl#getValue <em>Value
+ * </em>}</li>
+ * </ul>
+ * </p>
+ * 
+ * @generated
+ */
+public class IntLiteralImpl extends LiteralImpl implements IntLiteral {
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int VALUE_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected int value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	protected IntLiteralImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SGenPackage.Literals.INT_LITERAL;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public int getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	public void setValue(int newValue) {
+		int oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					SGenPackage.INT_LITERAL__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case SGenPackage.INT_LITERAL__VALUE:
+			return getValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case SGenPackage.INT_LITERAL__VALUE:
+			setValue((Integer) newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case SGenPackage.INT_LITERAL__VALUE:
+			setValue(VALUE_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case SGenPackage.INT_LITERAL__VALUE:
+			return value != VALUE_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
+	 */
+	@Override
+	public String toString() {
+		return String.valueOf(getValue());
+	}
+
+} // IntLiteralImpl

+ 46 - 0
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/LiteralImpl.java

@@ -0,0 +1,46 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.yakindu.sct.model.sgen.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.yakindu.sct.model.sgen.Literal;
+import org.yakindu.sct.model.sgen.SGenPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Literal</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class LiteralImpl extends EObjectImpl implements Literal {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected LiteralImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SGenPackage.Literals.LITERAL;
+	}
+	
+
+} //LiteralImpl

+ 160 - 0
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/RealLiteralImpl.java

@@ -0,0 +1,160 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.yakindu.sct.model.sgen.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.yakindu.sct.model.sgen.RealLiteral;
+import org.yakindu.sct.model.sgen.SGenPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Real Literal</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgen.impl.RealLiteralImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RealLiteralImpl extends LiteralImpl implements RealLiteral {
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final float VALUE_EDEFAULT = 0.0F;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected float value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected RealLiteralImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SGenPackage.Literals.REAL_LITERAL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public float getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValue(float newValue) {
+		float oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SGenPackage.REAL_LITERAL__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SGenPackage.REAL_LITERAL__VALUE:
+				return getValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SGenPackage.REAL_LITERAL__VALUE:
+				setValue((Float)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SGenPackage.REAL_LITERAL__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SGenPackage.REAL_LITERAL__VALUE:
+				return value != VALUE_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	@Override
+	public String toString() {
+		return String.valueOf(getValue());
+	}
+
+} //RealLiteralImpl

+ 45 - 0
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/SGenFactoryImpl.java

@@ -12,6 +12,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.model.sgen.*;
 import org.yakindu.sct.model.sgen.FeatureConfiguration;
 import org.yakindu.sct.model.sgen.FeatureParameter;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
@@ -76,6 +77,10 @@ public class SGenFactoryImpl extends EFactoryImpl implements SGenFactory {
 			case SGenPackage.GENERATOR_ENTRY: return createGeneratorEntry();
 			case SGenPackage.FEATURE_PARAMETER_VALUE: return createFeatureParameterValue();
 			case SGenPackage.FEATURE_TYPE_LIBRARY: return createFeatureTypeLibrary();
+			case SGenPackage.BOOL_LITERAL: return createBoolLiteral();
+			case SGenPackage.INT_LITERAL: return createIntLiteral();
+			case SGenPackage.REAL_LITERAL: return createRealLiteral();
+			case SGenPackage.STRING_LITERAL: return createStringLiteral();
 			default:
 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
 		}
@@ -191,6 +196,46 @@ public class SGenFactoryImpl extends EFactoryImpl implements SGenFactory {
 		return featureTypeLibrary;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BoolLiteral createBoolLiteral() {
+		BoolLiteralImpl boolLiteral = new BoolLiteralImpl();
+		return boolLiteral;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public IntLiteral createIntLiteral() {
+		IntLiteralImpl intLiteral = new IntLiteralImpl();
+		return intLiteral;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public RealLiteral createRealLiteral() {
+		RealLiteralImpl realLiteral = new RealLiteralImpl();
+		return realLiteral;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public StringLiteral createStringLiteral() {
+		StringLiteralImpl stringLiteral = new StringLiteralImpl();
+		return stringLiteral;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->

+ 133 - 2
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/SGenPackageImpl.java

@@ -20,6 +20,7 @@ import org.eclipse.emf.ecore.EReference;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
+import org.yakindu.base.base.BasePackage;
 import org.eclipse.xtext.xbase.XbasePackage;
 import org.yakindu.sct.model.sgen.SGenFactory;
 import org.yakindu.sct.model.sgen.SGenPackage;
@@ -96,6 +97,41 @@ public class SGenPackageImpl extends EPackageImpl implements SGenPackage {
 	 */
 	private EClass featureTypeLibraryEClass = null;
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass literalEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass boolLiteralEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass intLiteralEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass realLiteralEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass stringLiteralEClass = null;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -148,8 +184,7 @@ public class SGenPackageImpl extends EPackageImpl implements SGenPackage {
 		isInited = true;
 
 		// Initialize simple dependencies
-		SGraphPackage.eINSTANCE.eClass();
-		XbasePackage.eINSTANCE.eClass();
+		BasePackage.eINSTANCE.eClass();
 
 		// Load packages
 		theSGenPackage.loadPackage();
@@ -433,6 +468,102 @@ public class SGenPackageImpl extends EPackageImpl implements SGenPackage {
         return (EAttribute)getFeatureTypeLibrary().getEStructuralFeatures().get(1);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getLiteral() {
+		if (literalEClass == null) {
+			literalEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGenPackage.eNS_URI).getEClassifiers().get(9);
+		}
+		return literalEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getBoolLiteral() {
+		if (boolLiteralEClass == null) {
+			boolLiteralEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGenPackage.eNS_URI).getEClassifiers().get(10);
+		}
+		return boolLiteralEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBoolLiteral_Value() {
+        return (EAttribute)getBoolLiteral().getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getIntLiteral() {
+		if (intLiteralEClass == null) {
+			intLiteralEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGenPackage.eNS_URI).getEClassifiers().get(11);
+		}
+		return intLiteralEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getIntLiteral_Value() {
+        return (EAttribute)getIntLiteral().getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getRealLiteral() {
+		if (realLiteralEClass == null) {
+			realLiteralEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGenPackage.eNS_URI).getEClassifiers().get(12);
+		}
+		return realLiteralEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getRealLiteral_Value() {
+        return (EAttribute)getRealLiteral().getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getStringLiteral() {
+		if (stringLiteralEClass == null) {
+			stringLiteralEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(SGenPackage.eNS_URI).getEClassifiers().get(13);
+		}
+		return stringLiteralEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getStringLiteral_Value() {
+        return (EAttribute)getStringLiteral().getEStructuralFeatures().get(0);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->

+ 160 - 0
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/StringLiteralImpl.java

@@ -0,0 +1,160 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.yakindu.sct.model.sgen.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.yakindu.sct.model.sgen.SGenPackage;
+import org.yakindu.sct.model.sgen.StringLiteral;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>String Literal</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.yakindu.sct.model.sgen.impl.StringLiteralImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StringLiteralImpl extends LiteralImpl implements StringLiteral {
+	/**
+	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String value = VALUE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected StringLiteralImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SGenPackage.Literals.STRING_LITERAL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValue(String newValue) {
+		String oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SGenPackage.STRING_LITERAL__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SGenPackage.STRING_LITERAL__VALUE:
+				return getValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SGenPackage.STRING_LITERAL__VALUE:
+				setValue((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SGenPackage.STRING_LITERAL__VALUE:
+				setValue(VALUE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SGenPackage.STRING_LITERAL__VALUE:
+				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	@Override
+	public String toString() {
+		return String.valueOf(getValue());
+	}
+
+} //StringLiteralImpl

+ 14 - 1
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/sgen.ecore

@@ -57,7 +57,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" eType="#//FeatureParameter"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="featureConfiguration" eType="#//FeatureConfiguration"
         changeable="false" eOpposite="#//FeatureConfiguration/parameterValues"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="ecore:EClass http://www.eclipse.org/xtext/xbase/Xbase#//XExpression"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="#//Literal"
         containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="FeatureTypeLibrary">
@@ -71,4 +71,17 @@
     <eLiterals name="BOOLEAN"/>
     <eLiterals name="INTEGER" value="3"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Literal" abstract="true"/>
+  <eClassifiers xsi:type="ecore:EClass" name="BoolLiteral" eSuperTypes="#//Literal">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IntLiteral" eSuperTypes="#//Literal">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="RealLiteral" eSuperTypes="#//Literal">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="StringLiteral" eSuperTypes="#//Literal">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
 </ecore:EPackage>

+ 91 - 0
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/util/SGenAdapterFactory.java

@@ -11,6 +11,7 @@ import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
 import org.eclipse.emf.ecore.EObject;
 import org.yakindu.base.base.NamedElement;
+import org.yakindu.sct.model.sgen.*;
 import org.yakindu.sct.model.sgen.FeatureConfiguration;
 import org.yakindu.sct.model.sgen.FeatureParameter;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
@@ -110,6 +111,26 @@ public class SGenAdapterFactory extends AdapterFactoryImpl {
 				return createFeatureTypeLibraryAdapter();
 			}
 			@Override
+			public Adapter caseLiteral(Literal object) {
+				return createLiteralAdapter();
+			}
+			@Override
+			public Adapter caseBoolLiteral(BoolLiteral object) {
+				return createBoolLiteralAdapter();
+			}
+			@Override
+			public Adapter caseIntLiteral(IntLiteral object) {
+				return createIntLiteralAdapter();
+			}
+			@Override
+			public Adapter caseRealLiteral(RealLiteral object) {
+				return createRealLiteralAdapter();
+			}
+			@Override
+			public Adapter caseStringLiteral(StringLiteral object) {
+				return createStringLiteralAdapter();
+			}
+			@Override
 			public Adapter caseNamedElement(NamedElement object) {
 				return createNamedElementAdapter();
 			}
@@ -245,6 +266,76 @@ public class SGenAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
+	/**
+	 * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.sgen.Literal <em>Literal</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.sgen.Literal
+	 * @generated
+	 */
+	public Adapter createLiteralAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.sgen.BoolLiteral <em>Bool Literal</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.sgen.BoolLiteral
+	 * @generated
+	 */
+	public Adapter createBoolLiteralAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.sgen.IntLiteral <em>Int Literal</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.sgen.IntLiteral
+	 * @generated
+	 */
+	public Adapter createIntLiteralAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.sgen.RealLiteral <em>Real Literal</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.sgen.RealLiteral
+	 * @generated
+	 */
+	public Adapter createRealLiteralAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.sgen.StringLiteral <em>String Literal</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.sgen.StringLiteral
+	 * @generated
+	 */
+	public Adapter createStringLiteralAdapter() {
+		return null;
+	}
+
 	/**
 	 * Creates a new adapter for an object of class '{@link org.yakindu.base.base.NamedElement <em>Named Element</em>}'.
 	 * <!-- begin-user-doc -->

+ 110 - 0
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/util/SGenSwitch.java

@@ -10,6 +10,7 @@ import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
 import org.yakindu.base.base.NamedElement;
+import org.yakindu.sct.model.sgen.*;
 import org.yakindu.sct.model.sgen.FeatureConfiguration;
 import org.yakindu.sct.model.sgen.FeatureParameter;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
@@ -127,6 +128,40 @@ public class SGenSwitch<T> extends Switch<T> {
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case SGenPackage.LITERAL: {
+				Literal literal = (Literal)theEObject;
+				T result = caseLiteral(literal);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SGenPackage.BOOL_LITERAL: {
+				BoolLiteral boolLiteral = (BoolLiteral)theEObject;
+				T result = caseBoolLiteral(boolLiteral);
+				if (result == null) result = caseLiteral(boolLiteral);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SGenPackage.INT_LITERAL: {
+				IntLiteral intLiteral = (IntLiteral)theEObject;
+				T result = caseIntLiteral(intLiteral);
+				if (result == null) result = caseLiteral(intLiteral);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SGenPackage.REAL_LITERAL: {
+				RealLiteral realLiteral = (RealLiteral)theEObject;
+				T result = caseRealLiteral(realLiteral);
+				if (result == null) result = caseLiteral(realLiteral);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SGenPackage.STRING_LITERAL: {
+				StringLiteral stringLiteral = (StringLiteral)theEObject;
+				T result = caseStringLiteral(stringLiteral);
+				if (result == null) result = caseLiteral(stringLiteral);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			default: return defaultCase(theEObject);
 		}
 	}
@@ -251,6 +286,81 @@ public class SGenSwitch<T> extends Switch<T> {
 		return null;
 	}
 
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Literal</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>Literal</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLiteral(Literal object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Bool Literal</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>Bool Literal</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseBoolLiteral(BoolLiteral object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Int Literal</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>Int Literal</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIntLiteral(IntLiteral object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Real Literal</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>Real Literal</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseRealLiteral(RealLiteral object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>String Literal</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>String Literal</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseStringLiteral(StringLiteral object) {
+		return null;
+	}
+
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Named Element</em>'.
 	 * <!-- begin-user-doc -->