Преглед на файлове

Introduced IModelSequencer interface and added binding within SequencerModule

Alexander Nyßen преди 12 години
родител
ревизия
8235172728

+ 2 - 2
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/impl/AbstractSExecModelGenerator.java

@@ -33,7 +33,7 @@ import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
 import org.yakindu.sct.model.sexec.transformation.FlowOptimizer;
-import org.yakindu.sct.model.sexec.transformation.ModelSequencer;
+import org.yakindu.sct.model.sexec.transformation.IModelSequencer;
 import org.yakindu.sct.model.sgen.FeatureConfiguration;
 import org.yakindu.sct.model.sgen.GeneratorEntry;
 import org.yakindu.sct.model.sgraph.Statechart;
@@ -72,7 +72,7 @@ public abstract class AbstractSExecModelGenerator extends
 	protected ExecutionFlow createExecutionFlow(Statechart statechart,
 			GeneratorEntry entry) {
 		Injector injector = getInjector(entry);
-		ModelSequencer sequencer = injector.getInstance(ModelSequencer.class);
+		IModelSequencer sequencer = injector.getInstance(IModelSequencer.class);
 		ExecutionFlow flow = sequencer.transform(statechart);
 		Assert.isNotNull(flow, "Error creation ExecutionFlow");
 

+ 3 - 3
plugins/org.yakindu.sct.model.sexec.interpreter/src/org/yakindu/sct/model/sexec/interpreter/factory/SexecExecutionFacadeFactory.java

@@ -13,7 +13,7 @@ package org.yakindu.sct.model.sexec.interpreter.factory;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
 import org.yakindu.sct.model.sexec.interpreter.IExecutionFlowInterpreter;
 import org.yakindu.sct.model.sexec.interpreter.InterpreterModule;
-import org.yakindu.sct.model.sexec.transformation.ModelSequencer;
+import org.yakindu.sct.model.sexec.transformation.IModelSequencer;
 import org.yakindu.sct.model.sexec.transformation.SequencerModule;
 import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.simulation.core.runtime.IExecutionFacadeFactory;
@@ -32,9 +32,9 @@ import com.google.inject.util.Modules;
 public class SexecExecutionFacadeFactory implements IExecutionFacadeFactory {
 
 	@Inject
-	private ModelSequencer sequencer;
+	protected IModelSequencer sequencer;
 	@Inject
-	private IExecutionFlowInterpreter interpreter;
+	protected IExecutionFlowInterpreter interpreter;
 
 	public SexecExecutionFacadeFactory() {
 		Guice.createInjector(

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

@@ -0,0 +1,9 @@
+package org.yakindu.sct.model.sexec.transformation;
+
+import org.yakindu.sct.model.sexec.ExecutionFlow;
+import org.yakindu.sct.model.sgraph.Statechart;
+
+public interface IModelSequencer {
+
+	public ExecutionFlow transform(Statechart statechart);
+}

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

@@ -18,7 +18,7 @@ import org.yakindu.sct.model.stext.stext.FeatureCall
 import org.yakindu.sct.model.stext.stext.OperationDefinition
 import org.yakindu.sct.model.stext.stext.VariableDefinition
 
-class ModelSequencer {
+class ModelSequencer implements IModelSequencer {
 	 
 	@Inject extension IQualifiedNameProvider qfnProvider
 	@Inject extension SexecElementMapping mapping
@@ -33,7 +33,7 @@ class ModelSequencer {
 	 */ 
 
 
-	def ExecutionFlow transform(Statechart sc) {
+	override ExecutionFlow transform(Statechart sc) {
 		val ef = sc.create
 		
 		// during mapping the basic structural elements will be mapped from the source statechart to the execution flow

+ 4 - 0
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/transformation/SequencerModule.java

@@ -28,6 +28,10 @@ public class SequencerModule extends AbstractGenericModule {
 				.toInstance(Boolean.FALSE);
 	}
 
+	public Class<? extends IModelSequencer> bindIModelSequencer(){
+		return ModelSequencer.class;
+	}
+	
 	public Class<? extends IQualifiedNameProvider> bindIQualifiedNameProvider() {
 		return SGraphNameProvider.class;
 	}

+ 2 - 2
test-plugins/org.yakindu.sct.model.sexec.test/src/org/yakindu/sct/model/sexec/transformation/test/ModelSequencerTest.java

@@ -2,7 +2,7 @@ package org.yakindu.sct.model.sexec.transformation.test;
 
 import org.junit.Before;
 import org.yakindu.sct.model.sexec.transformation.BehaviorMapping;
-import org.yakindu.sct.model.sexec.transformation.ModelSequencer;
+import org.yakindu.sct.model.sexec.transformation.IModelSequencer;
 import org.yakindu.sct.model.sexec.transformation.SequencerModule;
 import org.yakindu.sct.model.sexec.transformation.StructureMapping;
 
@@ -18,7 +18,7 @@ import com.google.inject.Injector;
 public class ModelSequencerTest extends Assert {
 
 	@Inject
-	protected ModelSequencer sequencer;
+	protected IModelSequencer sequencer;
 
 	@Inject
 	protected BehaviorMapping behaviorMapping;

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

@@ -10,5 +10,6 @@ Require-Bundle: org.yakindu.sct.model.sexec;bundle-version="1.0.0",
  de.itemis.xtext.utils.gmf;bundle-version="1.0.0",
  org.eclipse.core.runtime;bundle-version="3.7.0",
  org.eclipse.gmf.runtime.emf.core;bundle-version="1.4.1",
- org.eclipse.xtext.junit4;bundle-version="2.3.0"
+ org.eclipse.xtext.junit4;bundle-version="2.3.0",
+ org.eclipse.xtext;bundle-version="2.3.0"
 Export-Package: org.yakindu.sct.test.models

+ 2 - 2
test-plugins/org.yakindu.sct.test.models/src/org/yakindu/sct/test/models/BaseTestModels.java

@@ -18,7 +18,7 @@ import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
-import org.yakindu.sct.model.sexec.transformation.ModelSequencer;
+import org.yakindu.sct.model.sexec.transformation.IModelSequencer;
 import org.yakindu.sct.model.sgraph.SGraphPackage;
 import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.model.sgraph.resource.AbstractSCTResource;
@@ -32,7 +32,7 @@ import com.google.inject.Inject;
 public abstract class BaseTestModels {
 
 	@Inject
-	private ModelSequencer sequencer;
+	private IModelSequencer sequencer;
 
 	public abstract String getModelDirectory();