浏览代码

Moved SequencerModule to default domain

Andreas Mülder 10 年之前
父节点
当前提交
d294186d5d

+ 6 - 0
plugins/org.yakindu.sct.domain.default_/src/org/yakindu/sct/domain/default_/extension/DefaultDomainModuleProvider.java

@@ -10,6 +10,7 @@
  */
 package org.yakindu.sct.domain.default_.extension;
 
+import org.yakindu.sct.domain.default_.modules.DefaultSequencerModule;
 import org.yakindu.sct.domain.default_.modules.DefaultSimulationModule;
 import org.yakindu.sct.domain.default_.modules.DefaultTypeSystemModule;
 import org.yakindu.sct.domain.extension.IDomainModuleProvider;
@@ -44,6 +45,11 @@ public class DefaultDomainModuleProvider implements IDomainModuleProvider {
 	public Module getResourceModule() {
 		return Modules.combine(new STextRuntimeModule(), getTypeSystemModule());
 	}
+	
+	@Override
+	public Module getSequencerModule() {
+		return new DefaultSequencerModule();
+	}
 
 	@Override
 	public Module getEmbeddedEditorModule(String semanticTarget) {

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

@@ -1,13 +1,24 @@
-package org.yakindu.sct.model.sexec.transformation;
+/**
+ * Copyright (c) 2015 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.domain.default_.modules;
 
 import org.eclipse.xtext.naming.IQualifiedNameProvider;
 import org.eclipse.xtext.resource.IResourceDescriptions;
 import org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions;
 import org.eclipse.xtext.service.AbstractGenericModule;
 import org.yakindu.base.types.inferrer.ITypeSystemInferrer;
-import org.yakindu.base.types.typesystem.ITypeSystem;
 import org.yakindu.sct.model.sexec.naming.DefaultNamingService;
 import org.yakindu.sct.model.sexec.naming.INamingService;
+import org.yakindu.sct.model.sexec.transformation.IModelSequencer;
+import org.yakindu.sct.model.sexec.transformation.ModelSequencer;
 import org.yakindu.sct.model.sgraph.naming.SGraphNameProvider;
 import org.yakindu.sct.model.stext.inferrer.STextTypeInferrer;
 
@@ -21,7 +32,7 @@ import com.google.inject.name.Names;
  *         AbstractGenericModule to allow subclasses to overwrite bindings
  * @author Markus Mühlbrandt - Added binding to DefaultNamingService
  */
-public class SequencerModule extends AbstractGenericModule {
+public class DefaultSequencerModule extends AbstractGenericModule {
 
 	public static final String ADD_TRACES = "ADD_TRACES";
 
@@ -38,7 +49,7 @@ public class SequencerModule extends AbstractGenericModule {
 		return SGraphNameProvider.class;
 	}
 
-	public Class<? extends ITypeSystemInferrer> bindISTextTypeInferrer() {
+	public Class<? extends ITypeSystemInferrer> bindITypeSystemInferrer() {
 		return STextTypeInferrer.class;
 	}
 

+ 1 - 2
plugins/org.yakindu.sct.domain.default_/src/org/yakindu/sct/domain/default_/modules/DefaultSimulationModule.java

@@ -17,7 +17,6 @@ import org.eclipse.xtext.service.AbstractGenericModule;
 import org.yakindu.base.types.inferrer.ITypeSystemInferrer;
 import org.yakindu.sct.model.sexec.transformation.IModelSequencer;
 import org.yakindu.sct.model.sexec.transformation.ModelSequencer;
-import org.yakindu.sct.model.sexec.transformation.SequencerModule;
 import org.yakindu.sct.model.stext.inferrer.STextTypeInferrer;
 import org.yakindu.sct.model.stext.naming.StextNameProvider;
 import org.yakindu.sct.simulation.core.engine.ISimulationEngine;
@@ -52,7 +51,7 @@ public class DefaultSimulationModule extends AbstractGenericModule {
 
 	public void configure(Binder binder) {
 		super.configure(binder);
-		binder.bind(Boolean.class).annotatedWith(Names.named(SequencerModule.ADD_TRACES)).toInstance(Boolean.TRUE);
+		binder.bind(Boolean.class).annotatedWith(Names.named(DefaultSequencerModule.ADD_TRACES)).toInstance(Boolean.TRUE);
 	}
 
 	public Class<? extends IExecutionContextInitializer> bindIExecutionContextInitializer() {

+ 10 - 4
plugins/org.yakindu.sct.domain/src/org/yakindu/sct/domain/extension/IDomainModuleProvider.java

@@ -25,6 +25,16 @@ public interface IDomainModuleProvider {
 	 */
 	public Module getResourceModule();
 
+	/**
+	 * Returns the module used during simulation
+	 */
+	public Module getSimulationModule();
+
+	/**
+	 * Returns the module used for model sequencing
+	 */
+	public Module getSequencerModule();
+
 	/**
 	 * Module used to create the embedded in-diagram Xtext Editor
 	 * 
@@ -34,8 +44,4 @@ public interface IDomainModuleProvider {
 	 */
 	public Module getEmbeddedEditorModule(String elementKey);
 
-	/**
-	 * Returns the module used during simulation
-	 */
-	public Module getSimulationModule();
 }

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

@@ -21,7 +21,8 @@ Require-Bundle: org.eclipse.ui,
  org.eclipse.core.expressions,
  org.yakindu.base.types;bundle-version="1.0.0",
  org.eclipse.xtext.builder;bundle-version="2.3.0",
- org.yakindu.sct.commons;bundle-version="1.0.0"
+ org.yakindu.sct.commons;bundle-version="1.0.0",
+ org.yakindu.sct.domain;bundle-version="2.4.1"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
 Export-Package: org.yakindu.sct.builder.nature,

+ 9 - 15
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/impl/AbstractSGraphModelGenerator.java

@@ -21,11 +21,11 @@ import org.eclipse.ui.console.IConsole;
 import org.eclipse.ui.console.IConsoleManager;
 import org.eclipse.ui.console.MessageConsole;
 import org.eclipse.ui.console.MessageConsoleStream;
+import org.yakindu.sct.domain.extension.DomainRegistry;
 import org.yakindu.sct.generator.core.IGeneratorBridge;
 import org.yakindu.sct.generator.core.ISCTGenerator;
 import org.yakindu.sct.generator.core.util.GeneratorUtils;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
-import org.yakindu.sct.model.sexec.transformation.SequencerModule;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
 import org.yakindu.sct.model.sgen.GeneratorEntry;
 import org.yakindu.sct.model.sgraph.Statechart;
@@ -59,10 +59,8 @@ public abstract class AbstractSGraphModelGenerator implements ISCTGenerator {
 			AbstractSGraphModelGenerator.this.writeToConsole(s);
 		}
 
-		public FeatureParameterValue getFeatureParameter(GeneratorEntry entry,
-				String featureName, String paramName) {
-			return GeneratorUtils.getFeatureParameter(entry, featureName,
-					paramName);
+		public FeatureParameterValue getFeatureParameter(GeneratorEntry entry, String featureName, String paramName) {
+			return GeneratorUtils.getFeatureParameter(entry, featureName, paramName);
 		}
 
 		public void refreshTargetProject(GeneratorEntry entry) {
@@ -70,8 +68,7 @@ public abstract class AbstractSGraphModelGenerator implements ISCTGenerator {
 		}
 
 		public File getTargetProject(GeneratorEntry entry) {
-			IProject targetProject = AbstractSGraphModelGenerator.this
-					.getTargetProject(entry);
+			IProject targetProject = AbstractSGraphModelGenerator.this.getTargetProject(entry);
 			return targetProject.getLocation().toFile();
 		}
 
@@ -103,15 +100,13 @@ public abstract class AbstractSGraphModelGenerator implements ISCTGenerator {
 
 	public final void generate(GeneratorEntry entry) {
 		EObject element = entry.getElementRef();
-		if (element == null || !element.eIsProxy()
-				&& !(element instanceof Statechart)) {
+		if (element == null || !element.eIsProxy() && !(element instanceof Statechart)) {
 			writeToConsole("No Statechart selected in genmodel (" + entry + ")");
 			return;
 		}
 		Statechart statechart = (Statechart) element;
 		try {
-			writeToConsole(String.format("Generating Statechart %s ...",
-					statechart.getName()));
+			writeToConsole(String.format("Generating Statechart %s ...", statechart.getName()));
 			prepareGenerator(entry);
 			runGenerator(statechart, entry);
 			writeToConsole("Done.");
@@ -144,8 +139,8 @@ public abstract class AbstractSGraphModelGenerator implements ISCTGenerator {
 	}
 
 	protected Module createModule(GeneratorEntry entry) {
-		Module defaultModule = new SequencerModule();
-
+		Module defaultModule = DomainRegistry.getDomainDescriptor(entry.getElementRef()).getModuleProvider()
+				.getSequencerModule();
 		Module bridgeModule = new Module() {
 			public void configure(Binder binder) {
 				binder.bind(IGeneratorBridge.class).toInstance(bridge);
@@ -184,8 +179,7 @@ public abstract class AbstractSGraphModelGenerator implements ISCTGenerator {
 				return (MessageConsole) existing[i];
 			}
 		}
-		MessageConsole myConsole = new MessageConsole(SCT_GENERATOR_CONSOLE,
-				null);
+		MessageConsole myConsole = new MessageConsole(SCT_GENERATOR_CONSOLE, null);
 		conMan.addConsoles(new IConsole[] { myConsole });
 		return myConsole;
 	}

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

@@ -19,5 +19,6 @@ Require-Bundle: org.eclipse.core.runtime,
  org.yakindu.base.types;bundle-version="1.0.0",
  org.yakindu.sct.model.stext.test;bundle-version="1.0.0",
  org.yakindu.sct.model.sgraph.test;bundle-version="1.0.0",
- org.yakindu.sct.test.models;bundle-version="2.3.0"
+ org.yakindu.sct.test.models;bundle-version="2.3.0",
+ org.yakindu.sct.domain.default_;bundle-version="1.0.0"
 Export-Package: org.yakindu.sct.model.sexec.transformation.test

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

@@ -1,9 +1,9 @@
 package org.yakindu.sct.model.sexec.transformation.test;
 
 import org.junit.Before;
+import org.yakindu.sct.domain.default_.modules.DefaultSequencerModule;
 import org.yakindu.sct.model.sexec.transformation.BehaviorMapping;
 import org.yakindu.sct.model.sexec.transformation.IModelSequencer;
-import org.yakindu.sct.model.sexec.transformation.SequencerModule;
 import org.yakindu.sct.model.sexec.transformation.StructureMapping;
 
 import com.google.inject.Guice;
@@ -28,7 +28,7 @@ public class ModelSequencerTest extends Assert {
 
 	@Before
 	public void setup() {
-		Injector injector = Guice.createInjector(new SequencerModule());
+		Injector injector = Guice.createInjector(new DefaultSequencerModule());
 		injector.injectMembers(this);
 	}
 

+ 2 - 2
test-plugins/org.yakindu.sct.simulation.core.sexec.test/src/org/yakindu/sct/model/sexec/interpreter/test/util/SExecInjectionProvider.java

@@ -12,7 +12,7 @@ package org.yakindu.sct.model.sexec.interpreter.test.util;
 
 import org.eclipse.xtext.junit4.IInjectorProvider;
 import org.yakindu.sct.domain.default_.modules.DefaultSimulationModule;
-import org.yakindu.sct.model.sexec.transformation.SequencerModule;
+import org.yakindu.sct.domain.default_.modules.DefaultSequencerModule;
 
 import com.google.inject.Guice;
 import com.google.inject.Injector;
@@ -26,7 +26,7 @@ import com.google.inject.util.Modules;
 public class SExecInjectionProvider implements IInjectorProvider {
 
 	public Injector getInjector() {
-		return Guice.createInjector(Modules.override(new SequencerModule()).with(new DefaultSimulationModule()));
+		return Guice.createInjector(Modules.override(new DefaultSequencerModule()).with(new DefaultSimulationModule()));
 	}
 
 }

+ 1 - 0
test-plugins/org.yakindu.sct.test.models/.settings/org.eclipse.core.resources.prefs

@@ -35,3 +35,4 @@ encoding//testmodels/validation/ValidEmptyTransitionFromSync.sct=UTF-8
 encoding//testmodels/validation/ValidTransitionToInnerChoice.sct=UTF-8
 encoding//tests/EntryExitSelfTransition.sctunit=UTF-8
 encoding/<project>=UTF-8
+encoding/DefaultDomainTest.sct=UTF-8

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

@@ -11,5 +11,6 @@ Require-Bundle: org.yakindu.sct.model.sexec;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;bundle-version="2.3.0"
+ org.eclipse.xtext;bundle-version="2.3.0",
+ org.yakindu.sct.domain.default_;bundle-version="1.0.0"
 Export-Package: org.yakindu.sct.test.models

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

@@ -11,7 +11,7 @@
 package org.yakindu.sct.test.models;
 
 import org.eclipse.xtext.junit4.IInjectorProvider;
-import org.yakindu.sct.model.sexec.transformation.SequencerModule;
+import org.yakindu.sct.domain.default_.modules.DefaultSequencerModule;
 
 import com.google.inject.Guice;
 import com.google.inject.Injector;
@@ -24,7 +24,7 @@ import com.google.inject.Injector;
 public class TestModelInjectorProvider implements IInjectorProvider {
 
 	public Injector getInjector() {
-		return Guice.createInjector(new SequencerModule());
+		return Guice.createInjector(new DefaultSequencerModule());
 	}
 
 }