Sfoglia il codice sorgente

Added Proposal Provider for .sgen model

Andreas Mülder 14 anni fa
parent
commit
f104443ce9
36 ha cambiato i file con 1034 aggiunte e 921 eliminazioni
  1. 3 3
      plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/features/CDefaultFeatureValueProvider.java
  2. 11 10
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/AbstractDefaultFeatureValueProvider.java
  3. 2 2
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/IDefaultFeatureValueProvider.java
  4. 4 4
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/impl/CoreLibraryDefaultFeatureValueProvider.java
  5. 3 3
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/impl/GenericJavaLibraryDefaultValueProvider.java
  6. 3 3
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/impl/XpandLibraryDefaultFeatureValueProvider.java
  7. 1 1
      plugins/org.yakindu.sct.generator.genmodel.ui/.settings/org.eclipse.core.resources.prefs
  8. 1 0
      plugins/org.yakindu.sct.generator.genmodel.ui/META-INF/MANIFEST.MF
  9. 0 14
      plugins/org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g
  10. 49 49
      plugins/org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGenLexer.java
  11. 506 558
      plugins/org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGenParser.java
  12. 15 1
      plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/SGenUiModule.java
  13. 1 2
      plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/help/GenModelEObjectHover.java
  14. 3 3
      plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/help/HelpSystemDocumentationProvider.java
  15. 67 0
      plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/templates/SGenProposalCreator.xtend
  16. 98 0
      plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/templates/SGenTemplateProposalProvider.java
  17. 1 1
      plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/wizard/GeneratorProjectTemplate.xtend
  18. 2 2
      plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/wizard/ModelCreator.java
  19. 1 0
      plugins/org.yakindu.sct.generator.genmodel/META-INF/MANIFEST.MF
  20. 2 2
      plugins/org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/SGen.xmi
  21. 2 2
      plugins/org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g
  22. 16 26
      plugins/org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGenParser.java
  23. 4 4
      plugins/org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/serializer/AbstractSGenSemanticSequencer.java
  24. 8 8
      plugins/org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/services/SGenGrammarAccess.java
  25. 12 2
      plugins/org.yakindu.sct.generator.genmodel/src/org/yakindu/sct/generator/genmodel/SGen.xtext
  26. 6 0
      plugins/org.yakindu.sct.generator.genmodel/src/org/yakindu/sct/generator/genmodel/SGenRuntimeModule.java
  27. 5 6
      plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/features/JavaFeatureValueProvider.java
  28. 42 47
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/BoolLiteralImpl.java
  29. 2 0
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/FeatureConfigurationImpl.java
  30. 1 2
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/FeatureParameterValueImpl.java
  31. 0 2
      plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/SGenPackageImpl.java
  32. 137 156
      plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/BoolLiteralImpl.java
  33. 1 1
      plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/SText.xtext
  34. 1 1
      test-plugins/org.yakindu.sct.generator.genmodel.test/src/org/yakindu/sct/generator/genmodel/test/HelpIntegrationTest.java
  35. 16 1
      test-plugins/org.yakindu.sct.generator.genmodel.test/src/org/yakindu/sct/generator/genmodel/test/SGenJavaValidatorTest.java
  36. 8 5
      test-plugins/org.yakindu.sct.generator.genmodel.test/src/org/yakindu/sct/generator/genmodel/test/SGenParserRuleTest.java

+ 3 - 3
plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/features/CDefaultFeatureValueProvider.java

@@ -12,10 +12,10 @@ package org.yakindu.sct.generator.c.features;
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.ecore.EObject;
 import org.yakindu.sct.generator.core.features.AbstractDefaultFeatureValueProvider;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
 import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
-import org.yakindu.sct.model.sgraph.Statechart;
 
 /**
  * 
@@ -31,8 +31,8 @@ public class CDefaultFeatureValueProvider extends
 
 	@Override
 	protected void setDefaultValue(FeatureParameterValue parameterValue,
-			Statechart statechart) {
-		//TODO: Implement my default properties
+			EObject contextElement) {
+		// TODO: Implement my default properties
 	}
 
 	public IStatus validateParameterValue(FeatureParameterValue value) {

+ 11 - 10
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/AbstractDefaultFeatureValueProvider.java

@@ -16,13 +16,13 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
 import org.yakindu.sct.generator.core.GeneratorActivator;
 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.FeatureType;
 import org.yakindu.sct.model.sgen.SGenFactory;
-import org.yakindu.sct.model.sgraph.Statechart;
 
 /**
  * 
@@ -35,16 +35,17 @@ public abstract class AbstractDefaultFeatureValueProvider implements
 	protected static final SGenFactory factory = SGenFactory.eINSTANCE;
 
 	protected abstract void setDefaultValue(
-			FeatureParameterValue parameterValue, Statechart statechart);
+			FeatureParameterValue parameterValue, EObject contextElement);
 
 	public final FeatureConfiguration createDefaultFeatureConfiguration(
-			FeatureType type, Statechart statechart) {
+			FeatureType type, EObject contextElement) {
 		FeatureConfiguration config = createConfiguration(type);
 		EList<FeatureParameter> parameters = type.getParameters();
 		for (FeatureParameter parameter : parameters) {
 			FeatureParameterValue parameterValue = createParameterValue(
-					parameter, statechart);
-			if (parameterValue != null && parameterValue.getExpression() != null) {
+					parameter, contextElement);
+			if (parameterValue != null
+					&& parameterValue.getExpression() != null) {
 				config.getParameterValues().add(parameterValue);
 			}
 		}
@@ -52,11 +53,11 @@ public abstract class AbstractDefaultFeatureValueProvider implements
 	}
 
 	protected FeatureParameterValue createParameterValue(
-			FeatureParameter parameter, Statechart statechart) {
+			FeatureParameter parameter, EObject contextElement) {
 		FeatureParameterValue parameterValue = factory
 				.createFeatureParameterValue();
 		parameterValue.setParameter(parameter);
-		setDefaultValue(parameterValue, statechart);
+		setDefaultValue(parameterValue, contextElement);
 		return parameterValue;
 	}
 
@@ -67,15 +68,15 @@ public abstract class AbstractDefaultFeatureValueProvider implements
 	}
 
 	/**
-	 * get the {@link IProject} containing the given {@link Statechart}
+	 * get the {@link IProject} containing the given {@link EObject}
 	 * 
 	 */
-	protected IProject getProject(Statechart statechart) {
+	protected IProject getProject(EObject contextElement) {
 		return ResourcesPlugin
 				.getWorkspace()
 				.getRoot()
 				.getFile(
-						new Path(statechart.eResource().getURI()
+						new Path(contextElement.eResource().getURI()
 								.toPlatformString(true))).getProject();
 	}
 

+ 2 - 2
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/IDefaultFeatureValueProvider.java

@@ -11,11 +11,11 @@
 package org.yakindu.sct.generator.core.features;
 
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.ecore.EObject;
 import org.yakindu.sct.model.sgen.FeatureConfiguration;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
 import org.yakindu.sct.model.sgen.FeatureType;
 import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
-import org.yakindu.sct.model.sgraph.Statechart;
 
 /**
  * 
@@ -25,7 +25,7 @@ import org.yakindu.sct.model.sgraph.Statechart;
 public interface IDefaultFeatureValueProvider {
 
 	public FeatureConfiguration createDefaultFeatureConfiguration(
-			FeatureType type, Statechart statechart);
+			FeatureType type, EObject contextElement);
 	
 	public IStatus validateParameterValue(FeatureParameterValue value);
 

+ 4 - 4
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/impl/CoreLibraryDefaultFeatureValueProvider.java

@@ -12,17 +12,17 @@ package org.yakindu.sct.generator.core.features.impl;
 
 import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.DEBUG_FEATURE_DUMP_SEXEC;
 import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.LIBRARY_NAME;
+import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.LICENSE_TEXT;
 import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.OUTLET_FEATURE_TARGET_FOLDER;
 import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.OUTLET_FEATURE_TARGET_PROJECT;
-import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.LICENSE_TEXT;
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.ecore.EObject;
 import org.yakindu.sct.generator.core.features.AbstractDefaultFeatureValueProvider;
 import org.yakindu.sct.model.sgen.BoolLiteral;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
 import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
-import org.yakindu.sct.model.sgraph.Statechart;
 
 /**
  * 
@@ -37,12 +37,12 @@ public class CoreLibraryDefaultFeatureValueProvider extends
 
 	@Override
 	protected void setDefaultValue(FeatureParameterValue parameterValue,
-			Statechart statechart) {
+			EObject contextElement) {
 		String parameterName = parameterValue.getParameter().getName();
 		if (OUTLET_FEATURE_TARGET_FOLDER.equals(parameterName)) {
 			parameterValue.setValue("src-gen");
 		} else if (OUTLET_FEATURE_TARGET_PROJECT.equals(parameterName)) {
-			parameterValue.setValue(getProject(statechart).getName());
+			parameterValue.setValue(getProject(contextElement).getName());
 		} else if (DEBUG_FEATURE_DUMP_SEXEC.equals(parameterName)) {
 			parameterValue.setValue(false);
 		} else if (LICENSE_TEXT.equals(parameterName)) {

+ 3 - 3
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/impl/GenericJavaLibraryDefaultValueProvider.java

@@ -16,10 +16,10 @@ import static org.yakindu.sct.generator.core.features.impl.IGenericJavaFeatureCo
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.ecore.EObject;
 import org.yakindu.sct.generator.core.features.AbstractDefaultFeatureValueProvider;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
 import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
-import org.yakindu.sct.model.sgraph.Statechart;
 
 /**
  * 
@@ -37,10 +37,10 @@ public class GenericJavaLibraryDefaultValueProvider extends
 
 	@Override
 	protected void setDefaultValue(FeatureParameterValue parameterValue,
-			Statechart statechart) {
+			EObject contextElement) {
 		String parameterName = parameterValue.getParameter().getName();
 		if (GENERATOR_PROJECT.equals(parameterName)) {
-			parameterValue.setValue(getProject(statechart).getName());
+			parameterValue.setValue(getProject(contextElement).getName());
 		} else if (GENERATOR_CLASS.equals(parameterName)) {
 			parameterValue.setValue("org.yakindu.sct.generator.Generator");
 		}

+ 3 - 3
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/impl/XpandLibraryDefaultFeatureValueProvider.java

@@ -16,10 +16,10 @@ import static org.yakindu.sct.generator.core.features.IXpandFeatureConstants.TEM
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.ecore.EObject;
 import org.yakindu.sct.generator.core.features.AbstractDefaultFeatureValueProvider;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
 import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
-import org.yakindu.sct.model.sgraph.Statechart;
 
 /**
  * 
@@ -37,14 +37,14 @@ public class XpandLibraryDefaultFeatureValueProvider extends
 
 	@Override
 	protected void setDefaultValue(final FeatureParameterValue parameterValue,
-			final Statechart statechart) {
+			final EObject contextElement) {
 		String parameterName = parameterValue.getParameter().getName();
 		if (TEMPLATE_FEATURE_TEMPLATE_PATH.equals(parameterName)) {
 			parameterValue
 					.setValue("org::yakindu::sct::generator::xpand::Main::main");
 		}
 		if (TEMPLATE_FEATURE_TEMPLATE_PROJECT.equals(parameterName)) {
-			parameterValue.setValue(getProject(statechart).getName());
+			parameterValue.setValue(getProject(contextElement).getName());
 		}
 	}
 

+ 1 - 1
plugins/org.yakindu.sct.generator.genmodel.ui/.settings/org.eclipse.core.resources.prefs

@@ -1,4 +1,4 @@
-#Tue Apr 17 16:00:54 CEST 2012
+#Fri Apr 20 11:27:40 CEST 2012
 eclipse.preferences.version=1
 encoding//src/org/yakindu/sct/generator/genmodel/ui/wizard/GeneratorProjectTemplate.xtend=UTF-8
 encoding//src/org/yakindu/sct/generator/genmodel/ui/wizard/XpandDefaultTemplate.xpt=ISO-8859-1

+ 1 - 0
plugins/org.yakindu.sct.generator.genmodel.ui/META-INF/MANIFEST.MF

@@ -34,5 +34,6 @@ Import-Package: org.apache.log4j,
  org.apache.commons.logging
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Export-Package: org.yakindu.sct.generator.genmodel.ui.contentassist.antlr,
+ org.yakindu.sct.generator.genmodel.ui.help,
  org.yakindu.sct.generator.genmodel.ui.internal
 Bundle-Activator: org.yakindu.sct.generator.genmodel.ui.internal.SGenActivator

+ 0 - 14
plugins/org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g

@@ -539,17 +539,10 @@ rule__GeneratorModel__Group__4__Impl
     }
 :
 (
-(
-{ before(grammarAccess.getGeneratorModelAccess().getEntriesAssignment_4()); }
-(rule__GeneratorModel__EntriesAssignment_4)
-{ after(grammarAccess.getGeneratorModelAccess().getEntriesAssignment_4()); }
-)
-(
 { before(grammarAccess.getGeneratorModelAccess().getEntriesAssignment_4()); }
 (rule__GeneratorModel__EntriesAssignment_4)*
 { after(grammarAccess.getGeneratorModelAccess().getEntriesAssignment_4()); }
 )
-)
 
 ;
 finally {
@@ -897,17 +890,10 @@ rule__FeatureConfiguration__Group__4__Impl
     }
 :
 (
-(
-{ before(grammarAccess.getFeatureConfigurationAccess().getParameterValuesAssignment_4()); }
-(rule__FeatureConfiguration__ParameterValuesAssignment_4)
-{ after(grammarAccess.getFeatureConfigurationAccess().getParameterValuesAssignment_4()); }
-)
-(
 { before(grammarAccess.getFeatureConfigurationAccess().getParameterValuesAssignment_4()); }
 (rule__FeatureConfiguration__ParameterValuesAssignment_4)*
 { after(grammarAccess.getFeatureConfigurationAccess().getParameterValuesAssignment_4()); }
 )
-)
 
 ;
 finally {

+ 49 - 49
plugins/org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGenLexer.java

@@ -213,10 +213,10 @@ public class InternalSGenLexer extends Lexer {
         try {
             int _type = RULE_BOOL;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1670:11: ( ( 'true' | 'false' | 'yes' | 'no' ) )
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1670:13: ( 'true' | 'false' | 'yes' | 'no' )
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1656:11: ( ( 'true' | 'false' | 'yes' | 'no' ) )
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1656:13: ( 'true' | 'false' | 'yes' | 'no' )
             {
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1670:13: ( 'true' | 'false' | 'yes' | 'no' )
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1656:13: ( 'true' | 'false' | 'yes' | 'no' )
             int alt1=4;
             switch ( input.LA(1) ) {
             case 't':
@@ -248,7 +248,7 @@ public class InternalSGenLexer extends Lexer {
 
             switch (alt1) {
                 case 1 :
-                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1670:14: 'true'
+                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1656:14: 'true'
                     {
                     match("true"); 
 
@@ -256,7 +256,7 @@ public class InternalSGenLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1670:21: 'false'
+                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1656:21: 'false'
                     {
                     match("false"); 
 
@@ -264,7 +264,7 @@ public class InternalSGenLexer extends Lexer {
                     }
                     break;
                 case 3 :
-                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1670:29: 'yes'
+                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1656:29: 'yes'
                     {
                     match("yes"); 
 
@@ -272,7 +272,7 @@ public class InternalSGenLexer extends Lexer {
                     }
                     break;
                 case 4 :
-                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1670:35: 'no'
+                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1656:35: 'no'
                     {
                     match("no"); 
 
@@ -298,13 +298,13 @@ public class InternalSGenLexer extends Lexer {
         try {
             int _type = RULE_FLOAT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1672:12: ( RULE_INT '.' RULE_INT ( 'e' ( '-' | '+' ) RULE_INT )? ( 'f' | 'F' | 'd' | 'D' )? )
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1672:14: RULE_INT '.' RULE_INT ( 'e' ( '-' | '+' ) RULE_INT )? ( 'f' | 'F' | 'd' | 'D' )?
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1658:12: ( RULE_INT '.' RULE_INT ( 'e' ( '-' | '+' ) RULE_INT )? ( 'f' | 'F' | 'd' | 'D' )? )
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1658:14: RULE_INT '.' RULE_INT ( 'e' ( '-' | '+' ) RULE_INT )? ( 'f' | 'F' | 'd' | 'D' )?
             {
             mRULE_INT(); 
             match('.'); 
             mRULE_INT(); 
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1672:36: ( 'e' ( '-' | '+' ) RULE_INT )?
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1658:36: ( 'e' ( '-' | '+' ) RULE_INT )?
             int alt2=2;
             int LA2_0 = input.LA(1);
 
@@ -313,7 +313,7 @@ public class InternalSGenLexer extends Lexer {
             }
             switch (alt2) {
                 case 1 :
-                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1672:37: 'e' ( '-' | '+' ) RULE_INT
+                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1658:37: 'e' ( '-' | '+' ) RULE_INT
                     {
                     match('e'); 
                     if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
@@ -332,7 +332,7 @@ public class InternalSGenLexer extends Lexer {
 
             }
 
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1672:62: ( 'f' | 'F' | 'd' | 'D' )?
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1658:62: ( 'f' | 'F' | 'd' | 'D' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -374,10 +374,10 @@ public class InternalSGenLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1674:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1674:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1660:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1660:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1674:11: ( '^' )?
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1660:11: ( '^' )?
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -386,7 +386,7 @@ public class InternalSGenLexer extends Lexer {
             }
             switch (alt4) {
                 case 1 :
-                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1674:11: '^'
+                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1660:11: '^'
                     {
                     match('^'); 
 
@@ -404,7 +404,7 @@ public class InternalSGenLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1674:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1660:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop5:
             do {
                 int alt5=2;
@@ -453,10 +453,10 @@ public class InternalSGenLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1676:10: ( ( '0' .. '9' )+ )
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1676:12: ( '0' .. '9' )+
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1662:10: ( ( '0' .. '9' )+ )
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1662:12: ( '0' .. '9' )+
             {
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1676:12: ( '0' .. '9' )+
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1662:12: ( '0' .. '9' )+
             int cnt6=0;
             loop6:
             do {
@@ -470,7 +470,7 @@ public class InternalSGenLexer extends Lexer {
 
                 switch (alt6) {
             	case 1 :
-            	    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1676:13: '0' .. '9'
+            	    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1662:13: '0' .. '9'
             	    {
             	    matchRange('0','9'); 
 
@@ -502,10 +502,10 @@ public class InternalSGenLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1678:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1678:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1664:13: ( ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1664:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
             {
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1678:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1664:15: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -523,10 +523,10 @@ public class InternalSGenLexer extends Lexer {
             }
             switch (alt9) {
                 case 1 :
-                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1678:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1664:16: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
                     {
                     match('\"'); 
-                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1678:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
+                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1664:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\"' ) ) )*
                     loop7:
                     do {
                         int alt7=3;
@@ -542,7 +542,7 @@ public class InternalSGenLexer extends Lexer {
 
                         switch (alt7) {
                     	case 1 :
-                    	    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1678:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+                    	    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1664:21: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
                     	    {
                     	    match('\\'); 
                     	    if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
@@ -558,7 +558,7 @@ public class InternalSGenLexer extends Lexer {
                     	    }
                     	    break;
                     	case 2 :
-                    	    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1678:66: ~ ( ( '\\\\' | '\"' ) )
+                    	    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1664:66: ~ ( ( '\\\\' | '\"' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -583,10 +583,10 @@ public class InternalSGenLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1678:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1664:86: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
                     {
                     match('\''); 
-                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1678:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1664:91: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' ) | ~ ( ( '\\\\' | '\\'' ) ) )*
                     loop8:
                     do {
                         int alt8=3;
@@ -602,7 +602,7 @@ public class InternalSGenLexer extends Lexer {
 
                         switch (alt8) {
                     	case 1 :
-                    	    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1678:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
+                    	    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1664:92: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | 'u' | '\"' | '\\'' | '\\\\' )
                     	    {
                     	    match('\\'); 
                     	    if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||(input.LA(1)>='t' && input.LA(1)<='u') ) {
@@ -618,7 +618,7 @@ public class InternalSGenLexer extends Lexer {
                     	    }
                     	    break;
                     	case 2 :
-                    	    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1678:137: ~ ( ( '\\\\' | '\\'' ) )
+                    	    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1664:137: ~ ( ( '\\\\' | '\\'' ) )
                     	    {
                     	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
                     	        input.consume();
@@ -661,12 +661,12 @@ public class InternalSGenLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1680:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1680:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1666:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1666:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1680:24: ( options {greedy=false; } : . )*
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1666:24: ( options {greedy=false; } : . )*
             loop10:
             do {
                 int alt10=2;
@@ -691,7 +691,7 @@ public class InternalSGenLexer extends Lexer {
 
                 switch (alt10) {
             	case 1 :
-            	    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1680:52: .
+            	    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1666:52: .
             	    {
             	    matchAny(); 
 
@@ -721,12 +721,12 @@ public class InternalSGenLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1682:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1682:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1668:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1668:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1682:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1668:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop11:
             do {
                 int alt11=2;
@@ -739,7 +739,7 @@ public class InternalSGenLexer extends Lexer {
 
                 switch (alt11) {
             	case 1 :
-            	    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1682:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1668:24: ~ ( ( '\\n' | '\\r' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -759,7 +759,7 @@ public class InternalSGenLexer extends Lexer {
                 }
             } while (true);
 
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1682:40: ( ( '\\r' )? '\\n' )?
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1668:40: ( ( '\\r' )? '\\n' )?
             int alt13=2;
             int LA13_0 = input.LA(1);
 
@@ -768,9 +768,9 @@ public class InternalSGenLexer extends Lexer {
             }
             switch (alt13) {
                 case 1 :
-                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1682:41: ( '\\r' )? '\\n'
+                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1668:41: ( '\\r' )? '\\n'
                     {
-                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1682:41: ( '\\r' )?
+                    // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1668:41: ( '\\r' )?
                     int alt12=2;
                     int LA12_0 = input.LA(1);
 
@@ -779,7 +779,7 @@ public class InternalSGenLexer extends Lexer {
                     }
                     switch (alt12) {
                         case 1 :
-                            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1682:41: '\\r'
+                            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1668:41: '\\r'
                             {
                             match('\r'); 
 
@@ -811,10 +811,10 @@ public class InternalSGenLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1684:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1684:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1670:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1670:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1684:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1670:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt14=0;
             loop14:
             do {
@@ -868,8 +868,8 @@ public class InternalSGenLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1686:16: ( . )
-            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1686:18: .
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1672:16: ( . )
+            // ../org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGen.g:1672:18: .
             {
             matchAny(); 
 

File diff suppressed because it is too large
+ 506 - 558
plugins/org.yakindu.sct.generator.genmodel.ui/src-gen/org/yakindu/sct/generator/genmodel/ui/contentassist/antlr/internal/InternalSGenParser.java


+ 15 - 1
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/SGenUiModule.java

@@ -5,11 +5,14 @@ package org.yakindu.sct.generator.genmodel.ui;
 
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.eclipse.xtext.documentation.IEObjectDocumentationProvider;
+import org.eclipse.xtext.ui.editor.contentassist.ITemplateProposalProvider;
+import org.eclipse.xtext.ui.editor.hover.DispatchingEObjectTextHover;
 import org.eclipse.xtext.ui.editor.hover.IEObjectHover;
 import org.eclipse.xtext.ui.editor.syntaxcoloring.ISemanticHighlightingCalculator;
-import org.yakindu.sct.generator.genmodel.ui.help.HelpSystemDocumentationProvider;
 import org.yakindu.sct.generator.genmodel.ui.help.GenModelEObjectHover;
+import org.yakindu.sct.generator.genmodel.ui.help.HelpSystemDocumentationProvider;
 import org.yakindu.sct.generator.genmodel.ui.highlighting.SGenSemanticHighlightingCalculator;
+import org.yakindu.sct.generator.genmodel.ui.templates.SGenTemplateProposalProvider;
 
 /**
  * Use this class to register components to be used within the IDE.
@@ -27,10 +30,21 @@ public class SGenUiModule extends
 	public Class<? extends IEObjectDocumentationProvider> bindIEObjectDocumentationProvider() {
 		return HelpSystemDocumentationProvider.class;
 	}
+	
+	public Class<? extends DispatchingEObjectTextHover> bindDispatchingEObjectTextHover(){
+		return GenModelEObjectHover.class;
+	}
 
 	@Override
 	public Class<? extends IEObjectHover> bindIEObjectHover() {
 		return GenModelEObjectHover.class;
 	}
 
+	@Override
+	public Class<? extends ITemplateProposalProvider> bindITemplateProposalProvider() {
+		return SGenTemplateProposalProvider.class;
+	}
+	
+	
+
 }

+ 1 - 2
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/help/GenModelEObjectHover.java

@@ -15,7 +15,6 @@ import org.eclipse.jface.text.IInformationControlCreator;
 import org.eclipse.jface.text.IRegion;
 import org.eclipse.jface.text.ITextViewer;
 import org.eclipse.xtext.resource.IGlobalServiceProvider;
-import org.eclipse.xtext.ui.editor.hover.AbstractEObjectHover;
 import org.eclipse.xtext.ui.editor.hover.DispatchingEObjectTextHover;
 import org.eclipse.xtext.ui.editor.hover.IEObjectHover;
 import org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider;
@@ -31,7 +30,7 @@ import com.google.inject.Inject;
  * @author andreas muelder - Initial contribution and API
  * 
  */
-public class GenModelEObjectHover extends AbstractEObjectHover implements
+public class GenModelEObjectHover extends DispatchingEObjectTextHover implements
 		IEObjectHover {
 
 	private IInformationControlCreatorProvider lastCreatorProvider;

+ 3 - 3
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/help/HelpSystemDocumentationProvider.java

@@ -25,7 +25,7 @@ public class HelpSystemDocumentationProvider extends
 		AbstractHelpSystemDocumentationProvider implements
 		IEObjectDocumentationProvider {
 
-	private static final String EMPTY_STRING = "";
+	public static final String EMPTY_DOCUMENTATION = "";
 
 	@Override
 	protected String getContextId() {
@@ -49,7 +49,7 @@ public class HelpSystemDocumentationProvider extends
 				return getFeatureTypeDocumentation(type.getName());
 			}
 		}
-		return EMPTY_STRING;
+		return EMPTY_DOCUMENTATION;
 	}
 
 	protected String getFeatureTypeDocumentation(String name) {
@@ -59,6 +59,6 @@ public class HelpSystemDocumentationProvider extends
 		if (beginIndex >= 0 && endIndex >= 0 && endIndex > beginIndex) {
 			return helpContent.substring(beginIndex, endIndex);
 		}
-		return EMPTY_STRING;
+		return EMPTY_DOCUMENTATION;
 	}
 }

+ 67 - 0
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/templates/SGenProposalCreator.xtend

@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2012 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.generator.genmodel.ui.templates
+
+import org.yakindu.sct.model.sgen.FeatureType
+import org.eclipse.emf.ecore.EObject
+import org.yakindu.sct.model.sgen.FeatureParameter
+import org.yakindu.sct.generator.core.features.IDefaultFeatureValueProvider
+import org.eclipse.xtend.typesystem.emf.EcoreUtil2
+import org.yakindu.base.types.LibraryDescriptor
+import org.yakindu.sct.generator.core.extensions.LibraryExtensions
+import org.yakindu.sct.model.sgen.FeatureParameterValue
+import org.yakindu.sct.model.sgen.FeatureConfiguration
+import org.yakindu.sct.model.sgen.ParameterTypes
+
+/**
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+class SGenProposalCreator {
+
+	 def createProposal(FeatureType featureType, IDefaultFeatureValueProvider defaultProvider,
+		EObject context){
+			 var defaultConfiguration  = defaultProvider.createDefaultFeatureConfiguration(featureType,context)
+			'''
+			feature «featureType.name» {
+				«FOR param :featureType.parameters»
+				«param.name» = «defaultConfiguration.value(param)»
+				«ENDFOR»
+			}
+			'''.toString
+		}
+		
+	def value(FeatureConfiguration value, FeatureParameter param){
+		 var defaultValue = value.getParameterValue(param.name)
+		 if(defaultValue != null) {
+		 	if(param.parameterType.equals(ParameterTypes::STRING))
+		 		return ''' "«defaultValue.expression»" '''.toString
+		 	else
+		 		return defaultValue.expression
+		 }
+		 switch param.parameterType {
+		 	case ParameterTypes::STRING:
+		 		return "\"\""
+		 	case ParameterTypes::BOOLEAN:
+		 		return "false"
+		 	case ParameterTypes::FLOAT:
+		 		return "0.0"	
+		 	case ParameterTypes::INTEGER:
+		 		return "0"
+		 }
+		 null
+		 
+	}
+	
+		
+
+}

+ 98 - 0
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/templates/SGenTemplateProposalProvider.java

@@ -0,0 +1,98 @@
+/**
+ * Copyright (c) 2012 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.generator.genmodel.ui.templates;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.jface.text.templates.ContextTypeRegistry;
+import org.eclipse.jface.text.templates.Template;
+import org.eclipse.jface.text.templates.TemplateContext;
+import org.eclipse.jface.text.templates.TemplateProposal;
+import org.eclipse.jface.text.templates.persistence.TemplateStore;
+import org.eclipse.xtext.EcoreUtil2;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.ITemplateAcceptor;
+import org.eclipse.xtext.ui.editor.templates.ContextTypeIdHelper;
+import org.eclipse.xtext.ui.editor.templates.DefaultTemplateProposalProvider;
+import org.yakindu.sct.generator.core.extensions.LibraryExtensions;
+import org.yakindu.sct.generator.core.extensions.LibraryExtensions.LibraryDescriptor;
+import org.yakindu.sct.generator.genmodel.services.SGenGrammarAccess;
+import org.yakindu.sct.model.sgen.FeatureType;
+import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
+import org.yakindu.sct.model.sgen.GeneratorModel;
+
+import com.google.inject.Inject;
+/**
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+public class SGenTemplateProposalProvider extends
+		DefaultTemplateProposalProvider {
+
+	@Inject
+	private SGenGrammarAccess gaccess;
+	@Inject
+	private SGenProposalCreator creator;
+
+	private final ContextTypeIdHelper helper;
+
+	@Inject
+	public SGenTemplateProposalProvider(TemplateStore templateStore,
+			ContextTypeRegistry registry, ContextTypeIdHelper helper) {
+		super(templateStore, registry, helper);
+		this.helper = helper;
+	}
+
+	@Override
+	protected void createTemplates(TemplateContext templateContext,
+			ContentAssistContext context, ITemplateAcceptor acceptor) {
+		super.createTemplates(templateContext, context, acceptor);
+
+		String id = helper.getId(gaccess.getFeatureConfigurationRule());
+		if (templateContext.getContextType().getId().equals(id)) {
+			createFeatureConfigurationTemplates(templateContext, context,
+					acceptor);
+		}
+	}
+
+	private void createFeatureConfigurationTemplates(
+			TemplateContext templateContext, ContentAssistContext context,
+			ITemplateAcceptor acceptor) {
+		GeneratorModel model = (GeneratorModel) EcoreUtil2
+				.getRootContainer(context.getCurrentModel());
+
+		Iterable<LibraryDescriptor> libraryDescriptor = LibraryExtensions
+				.getLibraryDescriptor(model.getGeneratorId());
+		for (LibraryDescriptor desc : libraryDescriptor) {
+			ResourceSet set = new ResourceSetImpl();
+			Resource resource = set.getResource(desc.getURI(), true);
+			FeatureTypeLibrary lib = (FeatureTypeLibrary) resource
+					.getContents().get(0);
+			EList<FeatureType> types = lib.getTypes();
+
+			for (FeatureType featureType : types) {
+				Template template = new Template(featureType.getName()
+						+ " feature", "Creates feature "
+						+ featureType.getName(), featureType.getName(),
+						creator.createProposal(featureType,
+								desc.createFeatureValueProvider(),
+								context.getCurrentModel()), false);
+				TemplateProposal proposal = createProposal(template,
+						templateContext, context, getImage(template),
+						getRelevance(template));
+				acceptor.accept(proposal);
+			}
+		}
+	}
+}

+ 1 - 1
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/wizard/GeneratorProjectTemplate.xtend

@@ -7,7 +7,7 @@
  * Contributors:
  * 	committers of YAKINDU - initial API and implementation
  * 
- */
+ */ 
 package org.yakindu.sct.generator.genmodel.ui.wizard
 
 import org.eclipse.xtext.generator.IGenerator

+ 2 - 2
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/wizard/ModelCreator.java

@@ -59,7 +59,7 @@ public class ModelCreator {
 		GeneratorEntry entry = factory.createGeneratorEntry();
 		entry.setContentType("statechart");
 		entry.setElementRef(statechart);
-		List<FeatureType> featureTypes = getFeatureTypes();
+		List<FeatureType> featureTypes = getFeatureTypes(generatorId);
 		for (FeatureType featureType : featureTypes) {
 			FeatureConfiguration config = createFeatureConfiguration(
 					statechart, featureType);
@@ -86,7 +86,7 @@ public class ModelCreator {
 		return null;
 	}
 
-	public List<FeatureType> getFeatureTypes() {
+	public static List<FeatureType> getFeatureTypes(String generatorId) {
 		ArrayList<FeatureType> features = Lists.newArrayList();
 		Iterable<LibraryDescriptor> libraryDescriptor = LibraryExtensions
 				.getLibraryDescriptor(generatorId);

+ 1 - 0
plugins/org.yakindu.sct.generator.genmodel/META-INF/MANIFEST.MF

@@ -32,6 +32,7 @@ Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Export-Package: org.yakindu.sct.generator.genmodel,
  org.yakindu.sct.generator.genmodel.parser.antlr,
  org.yakindu.sct.generator.genmodel.parser.antlr.internal,
+ org.yakindu.sct.generator.genmodel.resource,
  org.yakindu.sct.generator.genmodel.serializer,
  org.yakindu.sct.generator.genmodel.services,
  org.yakindu.sct.generator.genmodel.validation

+ 2 - 2
plugins/org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/SGen.xmi

@@ -21,7 +21,7 @@
           <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.11"/>
         </elements>
         <elements xsi:type="xtext:Keyword" value="{"/>
-        <elements xsi:type="xtext:Assignment" cardinality="+" feature="entries" operator="+=">
+        <elements xsi:type="xtext:Assignment" cardinality="*" feature="entries" operator="+=">
           <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>
         </elements>
         <elements xsi:type="xtext:Keyword" value="}"/>
@@ -70,7 +70,7 @@
           </terminal>
         </elements>
         <elements xsi:type="xtext:Keyword" value="{"/>
-        <elements xsi:type="xtext:Assignment" cardinality="+" feature="parameterValues" operator="+=">
+        <elements xsi:type="xtext:Assignment" cardinality="*" feature="parameterValues" operator="+=">
           <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>
         </elements>
         <elements xsi:type="xtext:Keyword" value="}"/>

+ 2 - 2
plugins/org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g

@@ -125,7 +125,7 @@ ruleGeneratorModel returns [EObject current=null]
 	    }
 
 )
-)+	otherlv_5='}' 
+)*	otherlv_5='}' 
     {
     	newLeafNode(otherlv_5, grammarAccess.getGeneratorModelAccess().getRightCurlyBracketKeyword_5());
     }
@@ -275,7 +275,7 @@ ruleFeatureConfiguration returns [EObject current=null]
 	    }
 
 )
-)+	otherlv_5='}' 
+)*	otherlv_5='}' 
     {
     	newLeafNode(otherlv_5, grammarAccess.getFeatureConfigurationAccess().getRightCurlyBracketKeyword_5());
     }

+ 16 - 26
plugins/org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGenParser.java

@@ -117,7 +117,7 @@ public class InternalSGenParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleGeneratorModel"
-    // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:76:1: ruleGeneratorModel returns [EObject current=null] : (otherlv_0= 'GeneratorModel' otherlv_1= 'for' ( (lv_generatorId_2_0= ruleQID ) ) otherlv_3= '{' ( (lv_entries_4_0= ruleGeneratorEntry ) )+ otherlv_5= '}' ) ;
+    // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:76:1: ruleGeneratorModel returns [EObject current=null] : (otherlv_0= 'GeneratorModel' otherlv_1= 'for' ( (lv_generatorId_2_0= ruleQID ) ) otherlv_3= '{' ( (lv_entries_4_0= ruleGeneratorEntry ) )* otherlv_5= '}' ) ;
     public final EObject ruleGeneratorModel() throws RecognitionException {
         EObject current = null;
 
@@ -133,11 +133,11 @@ public class InternalSGenParser extends AbstractInternalAntlrParser {
          enterRule(); 
             
         try {
-            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:79:28: ( (otherlv_0= 'GeneratorModel' otherlv_1= 'for' ( (lv_generatorId_2_0= ruleQID ) ) otherlv_3= '{' ( (lv_entries_4_0= ruleGeneratorEntry ) )+ otherlv_5= '}' ) )
-            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:80:1: (otherlv_0= 'GeneratorModel' otherlv_1= 'for' ( (lv_generatorId_2_0= ruleQID ) ) otherlv_3= '{' ( (lv_entries_4_0= ruleGeneratorEntry ) )+ otherlv_5= '}' )
+            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:79:28: ( (otherlv_0= 'GeneratorModel' otherlv_1= 'for' ( (lv_generatorId_2_0= ruleQID ) ) otherlv_3= '{' ( (lv_entries_4_0= ruleGeneratorEntry ) )* otherlv_5= '}' ) )
+            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:80:1: (otherlv_0= 'GeneratorModel' otherlv_1= 'for' ( (lv_generatorId_2_0= ruleQID ) ) otherlv_3= '{' ( (lv_entries_4_0= ruleGeneratorEntry ) )* otherlv_5= '}' )
             {
-            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:80:1: (otherlv_0= 'GeneratorModel' otherlv_1= 'for' ( (lv_generatorId_2_0= ruleQID ) ) otherlv_3= '{' ( (lv_entries_4_0= ruleGeneratorEntry ) )+ otherlv_5= '}' )
-            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:80:3: otherlv_0= 'GeneratorModel' otherlv_1= 'for' ( (lv_generatorId_2_0= ruleQID ) ) otherlv_3= '{' ( (lv_entries_4_0= ruleGeneratorEntry ) )+ otherlv_5= '}'
+            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:80:1: (otherlv_0= 'GeneratorModel' otherlv_1= 'for' ( (lv_generatorId_2_0= ruleQID ) ) otherlv_3= '{' ( (lv_entries_4_0= ruleGeneratorEntry ) )* otherlv_5= '}' )
+            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:80:3: otherlv_0= 'GeneratorModel' otherlv_1= 'for' ( (lv_generatorId_2_0= ruleQID ) ) otherlv_3= '{' ( (lv_entries_4_0= ruleGeneratorEntry ) )* otherlv_5= '}'
             {
             otherlv_0=(Token)match(input,13,FOLLOW_13_in_ruleGeneratorModel122); 
 
@@ -182,8 +182,7 @@ public class InternalSGenParser extends AbstractInternalAntlrParser {
 
                 	newLeafNode(otherlv_3, grammarAccess.getGeneratorModelAccess().getLeftCurlyBracketKeyword_3());
                 
-            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:110:1: ( (lv_entries_4_0= ruleGeneratorEntry ) )+
-            int cnt1=0;
+            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:110:1: ( (lv_entries_4_0= ruleGeneratorEntry ) )*
             loop1:
             do {
                 int alt1=2;
@@ -228,12 +227,8 @@ public class InternalSGenParser extends AbstractInternalAntlrParser {
             	    break;
 
             	default :
-            	    if ( cnt1 >= 1 ) break loop1;
-                        EarlyExitException eee =
-                            new EarlyExitException(1, input);
-                        throw eee;
+            	    break loop1;
                 }
-                cnt1++;
             } while (true);
 
             otherlv_5=(Token)match(input,16,FOLLOW_16_in_ruleGeneratorModel201); 
@@ -484,7 +479,7 @@ public class InternalSGenParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleFeatureConfiguration"
-    // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:229:1: ruleFeatureConfiguration returns [EObject current=null] : ( () otherlv_1= 'feature' ( (otherlv_2= RULE_ID ) ) otherlv_3= '{' ( (lv_parameterValues_4_0= ruleFeatureParameterValue ) )+ otherlv_5= '}' ) ;
+    // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:229:1: ruleFeatureConfiguration returns [EObject current=null] : ( () otherlv_1= 'feature' ( (otherlv_2= RULE_ID ) ) otherlv_3= '{' ( (lv_parameterValues_4_0= ruleFeatureParameterValue ) )* otherlv_5= '}' ) ;
     public final EObject ruleFeatureConfiguration() throws RecognitionException {
         EObject current = null;
 
@@ -498,11 +493,11 @@ public class InternalSGenParser extends AbstractInternalAntlrParser {
          enterRule(); 
             
         try {
-            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:232:28: ( ( () otherlv_1= 'feature' ( (otherlv_2= RULE_ID ) ) otherlv_3= '{' ( (lv_parameterValues_4_0= ruleFeatureParameterValue ) )+ otherlv_5= '}' ) )
-            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:233:1: ( () otherlv_1= 'feature' ( (otherlv_2= RULE_ID ) ) otherlv_3= '{' ( (lv_parameterValues_4_0= ruleFeatureParameterValue ) )+ otherlv_5= '}' )
+            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:232:28: ( ( () otherlv_1= 'feature' ( (otherlv_2= RULE_ID ) ) otherlv_3= '{' ( (lv_parameterValues_4_0= ruleFeatureParameterValue ) )* otherlv_5= '}' ) )
+            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:233:1: ( () otherlv_1= 'feature' ( (otherlv_2= RULE_ID ) ) otherlv_3= '{' ( (lv_parameterValues_4_0= ruleFeatureParameterValue ) )* otherlv_5= '}' )
             {
-            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:233:1: ( () otherlv_1= 'feature' ( (otherlv_2= RULE_ID ) ) otherlv_3= '{' ( (lv_parameterValues_4_0= ruleFeatureParameterValue ) )+ otherlv_5= '}' )
-            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:233:2: () otherlv_1= 'feature' ( (otherlv_2= RULE_ID ) ) otherlv_3= '{' ( (lv_parameterValues_4_0= ruleFeatureParameterValue ) )+ otherlv_5= '}'
+            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:233:1: ( () otherlv_1= 'feature' ( (otherlv_2= RULE_ID ) ) otherlv_3= '{' ( (lv_parameterValues_4_0= ruleFeatureParameterValue ) )* otherlv_5= '}' )
+            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:233:2: () otherlv_1= 'feature' ( (otherlv_2= RULE_ID ) ) otherlv_3= '{' ( (lv_parameterValues_4_0= ruleFeatureParameterValue ) )* otherlv_5= '}'
             {
             // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:233:2: ()
             // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:234:5: 
@@ -544,8 +539,7 @@ public class InternalSGenParser extends AbstractInternalAntlrParser {
 
                 	newLeafNode(otherlv_3, grammarAccess.getFeatureConfigurationAccess().getLeftCurlyBracketKeyword_3());
                 
-            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:260:1: ( (lv_parameterValues_4_0= ruleFeatureParameterValue ) )+
-            int cnt3=0;
+            // ../org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/parser/antlr/internal/InternalSGen.g:260:1: ( (lv_parameterValues_4_0= ruleFeatureParameterValue ) )*
             loop3:
             do {
                 int alt3=2;
@@ -590,12 +584,8 @@ public class InternalSGenParser extends AbstractInternalAntlrParser {
             	    break;
 
             	default :
-            	    if ( cnt3 >= 1 ) break loop3;
-                        EarlyExitException eee =
-                            new EarlyExitException(3, input);
-                        throw eee;
+            	    break loop3;
                 }
-                cnt3++;
             } while (true);
 
             otherlv_5=(Token)match(input,16,FOLLOW_16_in_ruleFeatureConfiguration521); 
@@ -1542,7 +1532,7 @@ public class InternalSGenParser extends AbstractInternalAntlrParser {
     public static final BitSet FOLLOW_13_in_ruleGeneratorModel122 = new BitSet(new long[]{0x0000000000004000L});
     public static final BitSet FOLLOW_14_in_ruleGeneratorModel134 = new BitSet(new long[]{0x0000000000000010L});
     public static final BitSet FOLLOW_ruleQID_in_ruleGeneratorModel155 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_15_in_ruleGeneratorModel167 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_15_in_ruleGeneratorModel167 = new BitSet(new long[]{0x0000000000010010L});
     public static final BitSet FOLLOW_ruleGeneratorEntry_in_ruleGeneratorModel188 = new BitSet(new long[]{0x0000000000010010L});
     public static final BitSet FOLLOW_16_in_ruleGeneratorModel201 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_ruleGeneratorEntry_in_entryRuleGeneratorEntry237 = new BitSet(new long[]{0x0000000000000000L});
@@ -1556,7 +1546,7 @@ public class InternalSGenParser extends AbstractInternalAntlrParser {
     public static final BitSet FOLLOW_EOF_in_entryRuleFeatureConfiguration409 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_17_in_ruleFeatureConfiguration455 = new BitSet(new long[]{0x0000000000000010L});
     public static final BitSet FOLLOW_RULE_ID_in_ruleFeatureConfiguration475 = new BitSet(new long[]{0x0000000000008000L});
-    public static final BitSet FOLLOW_15_in_ruleFeatureConfiguration487 = new BitSet(new long[]{0x0000000000000010L});
+    public static final BitSet FOLLOW_15_in_ruleFeatureConfiguration487 = new BitSet(new long[]{0x0000000000010010L});
     public static final BitSet FOLLOW_ruleFeatureParameterValue_in_ruleFeatureConfiguration508 = new BitSet(new long[]{0x0000000000010010L});
     public static final BitSet FOLLOW_16_in_ruleFeatureConfiguration521 = new BitSet(new long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_ruleFeatureParameterValue_in_entryRuleFeatureParameterValue557 = new BitSet(new long[]{0x0000000000000000L});

+ 4 - 4
plugins/org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/serializer/AbstractSGenSemanticSequencer.java

@@ -129,11 +129,11 @@ public class AbstractSGenSemanticSequencer extends AbstractSemanticSequencer {
 	
 	/**
 	 * Constraint:
-	 *     (type=[FeatureType|ID] parameterValues+=FeatureParameterValue+)
+	 *     (type=[FeatureType|ID] parameterValues+=FeatureParameterValue*)
 	 *
 	 * Features:
 	 *    type[1, 1]
-	 *    parameterValues[1, *]
+	 *    parameterValues[0, *]
 	 */
 	protected void sequence_FeatureConfiguration(EObject context, FeatureConfiguration semanticObject) {
 		genericSequencer.createSequence(context, semanticObject);
@@ -169,10 +169,10 @@ public class AbstractSGenSemanticSequencer extends AbstractSemanticSequencer {
 	
 	/**
 	 * Constraint:
-	 *     (generatorId=QID entries+=GeneratorEntry+)
+	 *     (generatorId=QID entries+=GeneratorEntry*)
 	 *
 	 * Features:
-	 *    entries[1, *]
+	 *    entries[0, *]
 	 *    generatorId[1, 1]
 	 */
 	protected void sequence_GeneratorModel(EObject context, GeneratorModel semanticObject) {

+ 8 - 8
plugins/org.yakindu.sct.generator.genmodel/src-gen/org/yakindu/sct/generator/genmodel/services/SGenGrammarAccess.java

@@ -32,10 +32,10 @@ public class SGenGrammarAccess extends AbstractGrammarElementFinder {
 		/// **
 		// * @author Andreas Muelder
 		// * / GeneratorModel returns gen::GeneratorModel:
-		//	"GeneratorModel" "for" generatorId=QID "{" entries+=GeneratorEntry+ "}";
+		//	"GeneratorModel" "for" generatorId=QID "{" entries+=GeneratorEntry* "}";
 		public ParserRule getRule() { return rule; }
 
-		//"GeneratorModel" "for" generatorId=QID "{" entries+=GeneratorEntry+ "}"
+		//"GeneratorModel" "for" generatorId=QID "{" entries+=GeneratorEntry* "}"
 		public Group getGroup() { return cGroup; }
 
 		//"GeneratorModel"
@@ -53,7 +53,7 @@ public class SGenGrammarAccess extends AbstractGrammarElementFinder {
 		//"{"
 		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
 
-		//entries+=GeneratorEntry+
+		//entries+=GeneratorEntry*
 		public Assignment getEntriesAssignment_4() { return cEntriesAssignment_4; }
 
 		//GeneratorEntry
@@ -125,10 +125,10 @@ public class SGenGrammarAccess extends AbstractGrammarElementFinder {
 		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
 		
 		//FeatureConfiguration returns gen::FeatureConfiguration:
-		//	{gen::FeatureConfiguration} "feature" type=[gen::FeatureType] "{" parameterValues+=FeatureParameterValue+ "}";
+		//	{gen::FeatureConfiguration} "feature" type=[gen::FeatureType] "{" parameterValues+=FeatureParameterValue* "}";
 		public ParserRule getRule() { return rule; }
 
-		//{gen::FeatureConfiguration} "feature" type=[gen::FeatureType] "{" parameterValues+=FeatureParameterValue+ "}"
+		//{gen::FeatureConfiguration} "feature" type=[gen::FeatureType] "{" parameterValues+=FeatureParameterValue* "}"
 		public Group getGroup() { return cGroup; }
 
 		//{gen::FeatureConfiguration}
@@ -149,7 +149,7 @@ public class SGenGrammarAccess extends AbstractGrammarElementFinder {
 		//"{"
 		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
 
-		//parameterValues+=FeatureParameterValue+
+		//parameterValues+=FeatureParameterValue*
 		public Assignment getParameterValuesAssignment_4() { return cParameterValuesAssignment_4; }
 
 		//FeatureParameterValue
@@ -397,7 +397,7 @@ public class SGenGrammarAccess extends AbstractGrammarElementFinder {
 	/// **
 	// * @author Andreas Muelder
 	// * / GeneratorModel returns gen::GeneratorModel:
-	//	"GeneratorModel" "for" generatorId=QID "{" entries+=GeneratorEntry+ "}";
+	//	"GeneratorModel" "for" generatorId=QID "{" entries+=GeneratorEntry* "}";
 	public GeneratorModelElements getGeneratorModelAccess() {
 		return (pGeneratorModel != null) ? pGeneratorModel : (pGeneratorModel = new GeneratorModelElements());
 	}
@@ -417,7 +417,7 @@ public class SGenGrammarAccess extends AbstractGrammarElementFinder {
 	}
 
 	//FeatureConfiguration returns gen::FeatureConfiguration:
-	//	{gen::FeatureConfiguration} "feature" type=[gen::FeatureType] "{" parameterValues+=FeatureParameterValue+ "}";
+	//	{gen::FeatureConfiguration} "feature" type=[gen::FeatureType] "{" parameterValues+=FeatureParameterValue* "}";
 	public FeatureConfigurationElements getFeatureConfigurationAccess() {
 		return (pFeatureConfiguration != null) ? pFeatureConfiguration : (pFeatureConfiguration = new FeatureConfigurationElements());
 	}

+ 12 - 2
plugins/org.yakindu.sct.generator.genmodel/src/org/yakindu/sct/generator/genmodel/SGen.xtext

@@ -1,3 +1,13 @@
+/**
+ * Copyright (c) 2011 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
+ */
 grammar org.yakindu.sct.generator.genmodel.SGen with org.eclipse.xtext.common.Terminals
 
 import "http://www.eclipse.org/emf/2002/Ecore" as ecore
@@ -9,7 +19,7 @@ import "platform:/resource/org.yakindu.sct.model.sgraph/model/emf/sgraph.ecore"
  */
 GeneratorModel returns gen::GeneratorModel:
 	'GeneratorModel' 'for' generatorId=QID '{'
-	(entries+=GeneratorEntry)+
+	(entries+=GeneratorEntry)*
 	'}';
  
 GeneratorEntry returns gen::GeneratorEntry:
@@ -19,7 +29,7 @@ GeneratorEntry returns gen::GeneratorEntry:
  
 FeatureConfiguration returns gen::FeatureConfiguration:
 	{gen::FeatureConfiguration} 'feature' type=[gen::FeatureType] '{'
-	(parameterValues+=FeatureParameterValue)+
+	(parameterValues+=FeatureParameterValue)*
 	'}';
 
 FeatureParameterValue returns gen::FeatureParameterValue:

+ 6 - 0
plugins/org.yakindu.sct.generator.genmodel/src/org/yakindu/sct/generator/genmodel/SGenRuntimeModule.java

@@ -10,6 +10,8 @@
  */
 package org.yakindu.sct.generator.genmodel;
 
+import org.eclipse.xtext.linking.ILinker;
+import org.eclipse.xtext.linking.impl.Linker;
 import org.eclipse.xtext.naming.IQualifiedNameProvider;
 import org.eclipse.xtext.naming.SimpleNameProvider;
 
@@ -25,5 +27,9 @@ public class SGenRuntimeModule extends
 		return SimpleNameProvider.class;
 	}
 
+	@Override
+	public Class<? extends ILinker> bindILinker() {
+		return Linker.class;
+	}
 
 }

+ 5 - 6
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/features/JavaFeatureValueProvider.java

@@ -12,9 +12,8 @@ package org.yakindu.sct.generator.java.features;
 
 import static org.yakindu.sct.generator.java.features.IJavaFeatureConstants.BASE_PACKAGE;
 import static org.yakindu.sct.generator.java.features.IJavaFeatureConstants.IMPLEMENTATION_SUFFIX;
-import static org.yakindu.sct.generator.java.features.IJavaFeatureConstants.LIBRARY_NAME;
 import static org.yakindu.sct.generator.java.features.IJavaFeatureConstants.JAVA_KEYWORDS;
-import org.yakindu.sct.generator.java.features.JavaFeatureConstants;
+import static org.yakindu.sct.generator.java.features.IJavaFeatureConstants.LIBRARY_NAME;
 
 import java.util.Arrays;
 import java.util.regex.Matcher;
@@ -22,10 +21,10 @@ import java.util.regex.Pattern;
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.ecore.EObject;
 import org.yakindu.sct.generator.core.features.AbstractDefaultFeatureValueProvider;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
 import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
-import org.yakindu.sct.model.sgraph.Statechart;
 
 /**
  * 
@@ -40,10 +39,10 @@ public class JavaFeatureValueProvider extends
 
 	@Override
 	protected void setDefaultValue(FeatureParameterValue parameterValue,
-			Statechart statechart) {
+			EObject contextElement) {
 		if (parameterValue.getParameter().getName().equals(BASE_PACKAGE)) {
-			parameterValue.setValue("org.yakindu.sct."
-					+ JavaFeatureConstants.getValidStatemachineName(statechart.getName()));
+			parameterValue.setValue("org.yakindu.sct");
+					//+ JavaFeatureConstants.getValidStatemachineName(statechart.getName()));
 		} else if (parameterValue.getParameter().getName()
 				.equals(IMPLEMENTATION_SUFFIX)) {
 			parameterValue.setValue("impl");

+ 42 - 47
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/BoolLiteralImpl.java

@@ -16,23 +16,23 @@ 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 -->
+ * <!-- 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>
+ * <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 -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @see #isValue()
 	 * @generated
 	 * @ordered
@@ -41,8 +41,8 @@ public class BoolLiteralImpl extends LiteralImpl implements BoolLiteral {
 
 	/**
 	 * The cached value of the '{@link #isValue() <em>Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @see #isValue()
 	 * @generated
 	 * @ordered
@@ -50,8 +50,8 @@ public class BoolLiteralImpl extends LiteralImpl implements BoolLiteral {
 	protected boolean value = VALUE_EDEFAULT;
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	protected BoolLiteralImpl() {
@@ -59,8 +59,8 @@ public class BoolLiteralImpl extends LiteralImpl implements BoolLiteral {
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
@@ -69,8 +69,8 @@ public class BoolLiteralImpl extends LiteralImpl implements BoolLiteral {
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean isValue() {
@@ -78,89 +78,84 @@ public class BoolLiteralImpl extends LiteralImpl implements BoolLiteral {
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- 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));
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					SGenPackage.BOOL_LITERAL__VALUE, oldValue, value));
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- 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();
+		case SGenPackage.BOOL_LITERAL__VALUE:
+			return isValue();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- 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;
+		case SGenPackage.BOOL_LITERAL__VALUE:
+			setValue((Boolean) newValue);
+			return;
 		}
 		super.eSet(featureID, newValue);
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case SGenPackage.BOOL_LITERAL__VALUE:
-				setValue(VALUE_EDEFAULT);
-				return;
+		case SGenPackage.BOOL_LITERAL__VALUE:
+			setValue(VALUE_EDEFAULT);
+			return;
 		}
 		super.eUnset(featureID);
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case SGenPackage.BOOL_LITERAL__VALUE:
-				return value != VALUE_EDEFAULT;
+		case SGenPackage.BOOL_LITERAL__VALUE:
+			return value != VALUE_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
+	 * @generated NOT
 	 */
 	@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();
+		return String.valueOf(value);
 	}
 
-} //BoolLiteralImpl
+} // BoolLiteralImpl

+ 2 - 0
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/FeatureConfigurationImpl.java

@@ -126,6 +126,8 @@ public class FeatureConfigurationImpl extends EObjectImpl implements
 	 * @generated NOT
 	 */
 	public FeatureParameterValue getParameterValue(String parameterName) {
+		if(parameterValues == null)
+			return null;
 		for (FeatureParameterValue value : parameterValues) {
 			if (value.getParameter().getName() != null
 					&& value.getParameter().getName().equals(parameterName)) {

+ 1 - 2
plugins/org.yakindu.sct.model.sgen/src/org/yakindu/sct/model/sgen/impl/FeatureParameterValueImpl.java

@@ -35,7 +35,6 @@ import org.yakindu.sct.model.sgen.StringLiteral;
  *
  * @generated
  */
-@SuppressWarnings("restriction")
 public class FeatureParameterValueImpl extends EObjectImpl implements
 		FeatureParameterValue {
 	/**
@@ -188,7 +187,7 @@ public class FeatureParameterValueImpl extends EObjectImpl implements
 	 * @generated NOT
 	 */
 	public String getStringValue() {
-		return ((StringLiteral)expression).getValue();
+		return expression.toString();
 	}
 
 	/**

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

@@ -21,10 +21,8 @@ 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;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
 
 /**
  * <!-- begin-user-doc -->

+ 137 - 156
plugins/org.yakindu.sct.model.stext/src-gen/org/yakindu/sct/model/stext/stext/impl/BoolLiteralImpl.java

@@ -2,7 +2,7 @@
  * <copyright>
  * </copyright>
  *
-
+
  */
 package org.yakindu.sct.model.stext.stext.impl;
 
@@ -16,165 +16,146 @@ import org.yakindu.sct.model.stext.stext.BoolLiteral;
 import org.yakindu.sct.model.stext.stext.StextPackage;
 
 /**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Bool Literal</b></em>'.
- * <!-- end-user-doc -->
+ * <!-- 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.stext.stext.impl.BoolLiteralImpl#isValue <em>Value</em>}</li>
+ * <li>{@link org.yakindu.sct.model.stext.stext.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 StextPackage.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, StextPackage.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 StextPackage.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 StextPackage.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 StextPackage.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 StextPackage.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
+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 StextPackage.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,
+					StextPackage.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 StextPackage.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 StextPackage.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 StextPackage.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 StextPackage.BOOL_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(isValue());
+	}
+
+} // BoolLiteralImpl

+ 1 - 1
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/SText.xtext

@@ -84,7 +84,7 @@ EventDefinition:
 	 (direction=Direction)? 'event' name=ID (':' type=[types::Type|FQN])?;// (derivation=EventDerivation)?;
 
 //EventDerivation:
-//	'=' condition=Expression (':' value=Expression)?;
+//	 (':' value=Expression)?;
 
 enum Direction:
 	LOCAL='local' | IN='in' | OUT='out';

+ 1 - 1
test-plugins/org.yakindu.sct.generator.genmodel.test/src/org/yakindu/sct/generator/genmodel/test/HelpIntegrationTest.java

@@ -33,7 +33,7 @@ import com.google.inject.Inject;
 import com.google.inject.Injector;
 
 /**
- * Test that checks if all Generator Features have a corresponding documentation
+ * Checks if all Generator Features have a corresponding documentation
  * section in the user guide.
  * 
  * @author andreas muelder - Initial contribution and API

+ 16 - 1
test-plugins/org.yakindu.sct.generator.genmodel.test/src/org/yakindu/sct/generator/genmodel/test/SGenJavaValidatorTest.java

@@ -14,8 +14,10 @@ import static junit.framework.Assert.fail;
 
 import java.lang.reflect.Method;
 
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.junit4.InjectWith;
 import org.eclipse.xtext.junit4.XtextRunner;
+import org.eclipse.xtext.junit4.validation.AssertableDiagnostics;
 import org.eclipse.xtext.junit4.validation.ValidatorTester;
 import org.eclipse.xtext.validation.Check;
 import org.junit.After;
@@ -25,6 +27,7 @@ import org.junit.runner.RunWith;
 import org.yakindu.sct.generator.genmodel.test.util.AbstractSGenTest;
 import org.yakindu.sct.generator.genmodel.test.util.SGenInjectorProvider;
 import org.yakindu.sct.generator.genmodel.validation.SGenJavaValidator;
+import org.yakindu.sct.model.sgen.FeatureConfiguration;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
@@ -57,14 +60,26 @@ public class SGenJavaValidatorTest extends AbstractSGenTest {
 		tester = null;
 	}
 
+	/**
+	 * @see SGenJavaValidator#checkContentType(org.yakindu.sct.model.sgen.GeneratorEntry)
+	 */
 	@Test
 	public void checkContentType() {
 		fail("Implement me");
 	}
 
+	/**
+	 * @see SGenJavaValidator#checkParameterValueType(org.yakindu.sct.model.sgen.FeatureParameterValue)
+	 * 
+	 */
 	@Test
 	public void checkParameterValueType() {
-		fail("Implement me");
+		EObject result = parseExpression(
+				"feature Outlet { targetFolder = 'folder' }",
+				FeatureConfiguration.class.getSimpleName());
+		AssertableDiagnostics validate = tester.validate(result);
+		validate.assertOK();
+
 	}
 
 	@Test

+ 8 - 5
test-plugins/org.yakindu.sct.generator.genmodel.test/src/org/yakindu/sct/generator/genmodel/test/SGenParserRuleTest.java

@@ -10,12 +10,15 @@
  */
 package org.yakindu.sct.generator.genmodel.test;
 
+import static junit.framework.Assert.fail;
+
 import org.eclipse.xtext.junit4.InjectWith;
 import org.eclipse.xtext.junit4.XtextRunner;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.yakindu.sct.generator.genmodel.test.util.AbstractSGenTest;
 import org.yakindu.sct.generator.genmodel.test.util.SGenInjectorProvider;
+import org.yakindu.sct.model.sgen.GeneratorModel;
 
 /**
  * 
@@ -28,11 +31,11 @@ public class SGenParserRuleTest extends AbstractSGenTest {
 
 	/**
 	 * GeneratorModel returns gen::GeneratorModel: 'GeneratorModel' 'for'
-	 * generatorId=QID '{' (entries+=GeneratorEntry)+ '}';
+	 * generatorId=QID '{' (entries+=GeneratorEntry)* '}';
 	 */
 	@Test
 	public void testGeneratorModel() {
-
+		parseExpression("GeneratorModel for yakindu::java { }", GeneratorModel.class.getSimpleName());
 	}
 
 	/**
@@ -42,7 +45,7 @@ public class SGenParserRuleTest extends AbstractSGenTest {
 	 */
 	@Test
 	public void testGeneratorEntry() {
-
+		fail("Implement me");
 	}
 
 	/**
@@ -52,7 +55,7 @@ public class SGenParserRuleTest extends AbstractSGenTest {
 	 */
 	@Test
 	public void testFeatureConfiguration() {
-
+		fail("Implement me");
 	}
 
 	/**
@@ -62,7 +65,7 @@ public class SGenParserRuleTest extends AbstractSGenTest {
 	 */
 	@Test
 	public void testFeatureParameterValue() {
-
+		fail("Implement me");
 	}
 
 }