Andreas Mülder 11 лет назад
Родитель
Сommit
82d89a6baa

+ 15 - 11
plugins/org.yakindu.sct.domain.generic/src/org/yakindu/sct/domain/generic/extension/GenericDomainInjectorProvider.java

@@ -16,15 +16,16 @@ import java.util.Map;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.ui.shared.SharedStateModule;
 import org.eclipse.xtext.ui.shared.SharedStateModule;
 import org.yakindu.sct.domain.extension.IDomainInjectorProvider;
 import org.yakindu.sct.domain.extension.IDomainInjectorProvider;
+import org.yakindu.sct.domain.generic.modules.EntryRuleRuntimeModule;
+import org.yakindu.sct.domain.generic.modules.EntryRuleUIModule;
 import org.yakindu.sct.domain.generic.modules.GenericSequencerModule;
 import org.yakindu.sct.domain.generic.modules.GenericSequencerModule;
 import org.yakindu.sct.domain.generic.modules.GenericSimulationModule;
 import org.yakindu.sct.domain.generic.modules.GenericSimulationModule;
 import org.yakindu.sct.domain.generic.modules.GenericTypeSystemModule;
 import org.yakindu.sct.domain.generic.modules.GenericTypeSystemModule;
-import org.yakindu.sct.domain.generic.modules.EntryRuleRuntimeModule;
-import org.yakindu.sct.domain.generic.modules.EntryRuleUIModule;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.model.sgraph.Transition;
 import org.yakindu.sct.model.sgraph.Transition;
 import org.yakindu.sct.model.stext.STextRuntimeModule;
 import org.yakindu.sct.model.stext.STextRuntimeModule;
+import org.yakindu.sct.model.stext.stext.Guard;
 import org.yakindu.sct.model.stext.stext.StateSpecification;
 import org.yakindu.sct.model.stext.stext.StateSpecification;
 import org.yakindu.sct.model.stext.stext.StatechartSpecification;
 import org.yakindu.sct.model.stext.stext.StatechartSpecification;
 import org.yakindu.sct.model.stext.stext.TransitionSpecification;
 import org.yakindu.sct.model.stext.stext.TransitionSpecification;
@@ -54,29 +55,30 @@ public class GenericDomainInjectorProvider implements IDomainInjectorProvider {
 		semanticTargetToRuleMap.put(Statechart.class.getName(), StatechartSpecification.class);
 		semanticTargetToRuleMap.put(Statechart.class.getName(), StatechartSpecification.class);
 		semanticTargetToRuleMap.put(Transition.class.getName(), TransitionSpecification.class);
 		semanticTargetToRuleMap.put(Transition.class.getName(), TransitionSpecification.class);
 		semanticTargetToRuleMap.put(State.class.getName(), StateSpecification.class);
 		semanticTargetToRuleMap.put(State.class.getName(), StateSpecification.class);
+		semanticTargetToRuleMap.put(Guard.class.getName(), Guard.class);
 	}
 	}
 
 
-	protected Module getSharedStateModule() {
+	public Module getSharedStateModule() {
 		return new SharedStateModule();
 		return new SharedStateModule();
 	}
 	}
 
 
-	protected Module getLanguageRuntimeModule() {
+	public Module getLanguageRuntimeModule() {
 		return new STextRuntimeModule();
 		return new STextRuntimeModule();
 	}
 	}
 
 
-	protected Module getLanguageUIModule() {
+	public Module getLanguageUIModule() {
 		return new STextUiModule(STextActivator.getInstance());
 		return new STextUiModule(STextActivator.getInstance());
 	}
 	}
 
 
-	protected Module getTypeSystemModule() {
+	public Module getTypeSystemModule() {
 		return new GenericTypeSystemModule();
 		return new GenericTypeSystemModule();
 	}
 	}
 
 
-	protected Module getSimulationModule() {
+	public Module getSimulationModule() {
 		return new GenericSimulationModule();
 		return new GenericSimulationModule();
 	}
 	}
 
 
-	protected Module getSequencerModule() {
+	public Module getSequencerModule() {
 		return new GenericSequencerModule();
 		return new GenericSequencerModule();
 	}
 	}
 
 
@@ -95,9 +97,11 @@ public class GenericDomainInjectorProvider implements IDomainInjectorProvider {
 
 
 	@Override
 	@Override
 	public Injector getEmbeddedEditorInjector(String semanticTarget) {
 	public Injector getEmbeddedEditorInjector(String semanticTarget) {
-		if (embeddedInjectors.get(semanticTarget) == null)
-			embeddedInjectors.put(semanticTarget,
-					Guice.createInjector(getEmbeddedEditorModule(semanticTargetToRuleMap.get(semanticTarget))));
+		if (embeddedInjectors.get(semanticTarget) == null) {
+			Class<? extends EObject> rule = semanticTargetToRuleMap.get(semanticTarget);
+			org.eclipse.core.runtime.Assert.isNotNull(rule);
+			embeddedInjectors.put(semanticTarget, Guice.createInjector(getEmbeddedEditorModule(rule)));
+		}
 		return embeddedInjectors.get(semanticTarget);
 		return embeddedInjectors.get(semanticTarget);
 	}
 	}
 
 

+ 0 - 6
plugins/org.yakindu.sct.domain.generic/src/org/yakindu/sct/domain/generic/modules/GenericSimulationModule.java

@@ -26,12 +26,10 @@ import org.yakindu.sct.simulation.core.sexec.container.IExecutionContextInitiali
 import org.yakindu.sct.simulation.core.sexec.container.ISimulationEngineFactory;
 import org.yakindu.sct.simulation.core.sexec.container.ISimulationEngineFactory;
 import org.yakindu.sct.simulation.core.sexec.interpreter.DefaultExecutionFlowInterpreter;
 import org.yakindu.sct.simulation.core.sexec.interpreter.DefaultExecutionFlowInterpreter;
 import org.yakindu.sct.simulation.core.sexec.interpreter.DefaultTimingService;
 import org.yakindu.sct.simulation.core.sexec.interpreter.DefaultTimingService;
-import org.yakindu.sct.simulation.core.sexec.interpreter.DefaultTraceStepInterpreter;
 import org.yakindu.sct.simulation.core.sexec.interpreter.IExecutionFlowInterpreter;
 import org.yakindu.sct.simulation.core.sexec.interpreter.IExecutionFlowInterpreter;
 import org.yakindu.sct.simulation.core.sexec.interpreter.IOperationMockup;
 import org.yakindu.sct.simulation.core.sexec.interpreter.IOperationMockup;
 import org.yakindu.sct.simulation.core.sexec.interpreter.IStatementInterpreter;
 import org.yakindu.sct.simulation.core.sexec.interpreter.IStatementInterpreter;
 import org.yakindu.sct.simulation.core.sexec.interpreter.ITimingService;
 import org.yakindu.sct.simulation.core.sexec.interpreter.ITimingService;
-import org.yakindu.sct.simulation.core.sexec.interpreter.ITraceStepInterpreter;
 import org.yakindu.sct.simulation.core.sexec.interpreter.JavaOperationMockup;
 import org.yakindu.sct.simulation.core.sexec.interpreter.JavaOperationMockup;
 import org.yakindu.sct.simulation.core.sexec.interpreter.StextStatementInterpreter;
 import org.yakindu.sct.simulation.core.sexec.interpreter.StextStatementInterpreter;
 import org.yakindu.sct.simulation.core.sruntime.ExecutionContext;
 import org.yakindu.sct.simulation.core.sruntime.ExecutionContext;
@@ -62,10 +60,6 @@ public class GenericSimulationModule extends AbstractGenericModule {
 		return DefaultSimulationEngineFactory.class;
 		return DefaultSimulationEngineFactory.class;
 	}
 	}
 
 
-	public Class<? extends ITraceStepInterpreter> bindITraceStepInterpreter() {
-		return DefaultTraceStepInterpreter.class;
-	}
-
 	public Class<? extends IModelSequencer> bindIModelSequencer() {
 	public Class<? extends IModelSequencer> bindIModelSequencer() {
 		return ModelSequencer.class;
 		return ModelSequencer.class;
 	}
 	}

+ 3 - 0
plugins/org.yakindu.sct.simulation.core.sexec/src/org/yakindu/sct/simulation/core/sexec/interpreter/ITraceStepInterpreter.java

@@ -13,11 +13,14 @@ package org.yakindu.sct.simulation.core.sexec.interpreter;
 import org.yakindu.sct.model.sexec.Trace;
 import org.yakindu.sct.model.sexec.Trace;
 import org.yakindu.sct.simulation.core.sruntime.ExecutionContext;
 import org.yakindu.sct.simulation.core.sruntime.ExecutionContext;
 
 
+import com.google.inject.ImplementedBy;
+
 /**
 /**
  * 
  * 
  * @author andreas muelder - Initial contribution and API
  * @author andreas muelder - Initial contribution and API
  * 
  * 
  */
  */
+@ImplementedBy(DefaultTraceStepInterpreter.class)
 public interface ITraceStepInterpreter {
 public interface ITraceStepInterpreter {
 
 
 	public void evaluate(Trace trace, ExecutionContext context);
 	public void evaluate(Trace trace, ExecutionContext context);