Browse Source

Added ModelSequencer to Test

Andreas Mülder 14 years ago
parent
commit
12851c44a8

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

@@ -18,3 +18,4 @@ Require-Bundle: org.yakindu.sct.model.sexec;bundle-version="1.0.0",
  org.eclipse.xtend;bundle-version="0.7.0",
  org.eclipse.xtend.typesystem.emf;bundle-version="0.7.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.yakindu.sct.generator.cpp.templates

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

@@ -1,7 +1,16 @@
 «IMPORT sexec»
 
 «DEFINE main FOR ExecutionFlow»
+
 «FILE 'Main.cpp'»
-	Hello C++
+Execution States:
+«EXPAND executionStates FOREACH this.states»
+
 «ENDFILE»
+«ENDDEFINE»
+
+
+«DEFINE executionStates FOR ExecutionState»
+Name: «this.name»
+Simple Name: «this.simpleName»
 «ENDDEFINE»

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

@@ -11,6 +11,7 @@ import org.yakindu.sct.model.sgraph.State
 import org.yakindu.sct.model.sexec.ExecutionFlow
 import org.yakindu.sct.model.sexec.ExecutionState
 import org.eclipse.xtext.naming.IQualifiedNameProvider
+import org.yakindu.sct.model.sexec.Cycle
 
 class ModelSequencer {
 	
@@ -18,14 +19,14 @@ class ModelSequencer {
 
 	def ExecutionFlow create r : SexecFactory::eINSTANCE.createExecutionFlow transform(Statechart statechart){
 		var content = EcoreUtil2::eAllContentsAsList(statechart)
-		var leafStates = content.filter(e | e instanceof State && (e as State).simple)
-		r.states.addAll(leafStates.map( s | transform(s as State)));
+		val leafStates = content.filter(e | e instanceof State && (e as State).simple)
+		r.states.addAll(leafStates.map( s | (s as State).transform));
 	}
 	
 	
 	def ExecutionState create r : SexecFactory::eINSTANCE.createExecutionState transform(State state){
 		r.simpleName = state.name
-		r.name = state.fullyQualifiedName.toString	
+		r.name = state.fullyQualifiedName.toString.replaceAll(" ", "")
 	}
 	
 	

+ 2 - 1
test-plugins/org.yakindu.sct.generator.cpp.test/META-INF/MANIFEST.MF

@@ -14,6 +14,7 @@ Require-Bundle: org.eclipse.core.runtime,
  org.yakindu.sct.model.sgraph;bundle-version="1.0.0",
  org.eclipse.xtend.typesystem.emf;bundle-version="1.0.1",
  org.yakindu.sct.model.stext;bundle-version="1.0.0",
- org.yakindu.sct.model.sexec;bundle-version="1.0.0"
+ org.yakindu.sct.model.sexec;bundle-version="1.0.0",
+ org.yakindu.sct.generator.cpp;bundle-version="1.0.0"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy

+ 2 - 1
test-plugins/org.yakindu.sct.generator.cpp.test/src/org/yakindu/sct/generator/cpp/test/generator/AbstractGeneratorTest.java

@@ -22,6 +22,7 @@ import org.eclipse.xpand2.output.OutputImpl;
 import org.eclipse.xtend.expression.Variable;
 import org.eclipse.xtend.typesystem.emf.EmfRegistryMetaModel;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
+import org.yakindu.sct.model.sexec.SexecPackage;
 import org.yakindu.sct.model.sgraph.SGraphPackage;
 import org.yakindu.sct.model.stext.stext.StextPackage;
 
@@ -93,7 +94,7 @@ public class AbstractGeneratorTest {
 			@Override
 			protected EPackage[] allPackages() {
 				return new EPackage[] { SGraphPackage.eINSTANCE,
-						StextPackage.eINSTANCE, EcorePackage.eINSTANCE };
+						StextPackage.eINSTANCE, EcorePackage.eINSTANCE, SexecPackage.eINSTANCE };
 			}
 		};
 		execCtx.registerMetaModel(metamodel);

+ 4 - 3
test-plugins/org.yakindu.sct.generator.cpp.test/src/org/yakindu/sct/generator/cpp/test/generator/CPPGeneratorTest.java

@@ -5,6 +5,7 @@ import java.util.Collections;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.Assert;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.resource.Resource;
@@ -27,7 +28,6 @@ import com.google.inject.Injector;
  */
 public class CPPGeneratorTest extends AbstractGeneratorTest {
 
-	
 	@Inject
 	private ModelSequencer sequencer;
 
@@ -36,7 +36,7 @@ public class CPPGeneratorTest extends AbstractGeneratorTest {
 		Injector injector = Guice.createInjector(new TestModule());
 		injector.injectMembers(this);
 	}
-	
+
 	@Test
 	public void testExecuteGenerator() throws Exception {
 
@@ -56,8 +56,9 @@ public class CPPGeneratorTest extends AbstractGeneratorTest {
 		resource.load(Collections.emptyMap());
 
 		Statechart statechart = (Statechart) resource.getContents().get(0);
-		
+		Assert.isNotNull(statechart);
 		ExecutionFlow flow = sequencer.transform(statechart);
+		Assert.isNotNull(flow);
 		generate(flow, templatePath, project);
 
 	}

+ 6 - 5
test-plugins/org.yakindu.sct.generator.cpp.test/src/org/yakindu/sct/generator/cpp/test/generator/TestModule.java

@@ -1,17 +1,18 @@
 package org.yakindu.sct.generator.cpp.test.generator;
 
+import org.eclipse.xtext.naming.DefaultDeclarativeQualifiedNameProvider;
 import org.eclipse.xtext.naming.IQualifiedNameProvider;
-import org.eclipse.xtext.naming.SimpleNameProvider;
 
 import com.google.inject.Binder;
 import com.google.inject.Module;
 
-public class TestModule implements Module{
+public class TestModule implements Module {
 
 	public void configure(Binder binder) {
-	
-		binder.bind(IQualifiedNameProvider.class).to(SimpleNameProvider.class);
+
+		binder.bind(IQualifiedNameProvider.class).to(
+				DefaultDeclarativeQualifiedNameProvider.class);
 
 	}
-	
+
 }