瀏覽代碼

Refactored Simulation core

Andreas Mülder 12 年之前
父節點
當前提交
1503d47af8

+ 48 - 0
plugins/org.yakindu.sct.ui.integration.stext/src/org/yakindu/sct/ui/integration/stext/AbstractExpressionsProvider.java

@@ -0,0 +1,48 @@
+/**
+ * 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
+ * 
+ */
+package org.yakindu.sct.ui.integration.stext;
+
+import org.eclipse.xtext.ui.shared.SharedStateModule;
+import org.yakindu.sct.ui.editor.extensions.IExpressionLanguageProvider;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+import com.google.inject.util.Modules;
+
+/**
+ * Base class for all {@link IExpressionLanguageProvider}s, provides caching of
+ * the Injector.
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+public abstract class AbstractExpressionsProvider implements
+		IExpressionLanguageProvider {
+
+	private Injector injector = null;
+
+	protected abstract Module getRuntimeModule();
+
+	protected abstract Module getUIModule();
+
+	protected Injector createInjector() {
+		return Guice.createInjector(Modules.override(
+				Modules.override(getRuntimeModule()).with(getUIModule())).with(
+				new SharedStateModule()));
+	}
+
+	public Injector getInjector() {
+		if (injector == null)
+			injector = createInjector();
+		return injector;
+	}
+}

+ 0 - 1
plugins/org.yakindu.sct.ui.integration.stext/src/org/yakindu/sct/ui/integration/stext/AbstractSTextExpressionProvider.java

@@ -3,7 +3,6 @@ package org.yakindu.sct.ui.integration.stext;
 import org.eclipse.emf.ecore.EObject;
 import org.yakindu.sct.model.stext.STextRuntimeModule;
 import org.yakindu.sct.model.stext.ui.STextUiModule;
-import org.yakindu.sct.ui.editor.extensions.AbstractExpressionsProvider;
 import org.yakindu.sct.ui.editor.extensions.IExpressionLanguageProvider;
 import org.yakindu.sct.ui.integration.stext.modules.EntryRuleRuntimeModule;
 import org.yakindu.sct.ui.integration.stext.modules.EntryRuleUIModule;

+ 3 - 2
plugins/org.yakindu.sct.ui.integration.stext/src/org/yakindu/sct/ui/integration/stext/ExpressionExpressionProvider.java

@@ -1,7 +1,7 @@
 package org.yakindu.sct.ui.integration.stext;
 
 import org.eclipse.emf.ecore.EObject;
-import org.yakindu.sct.model.stext.stext.Expression;
+import org.yakindu.sct.model.stext.stext.Guard;
 
 /**
  * 
@@ -12,6 +12,7 @@ public class ExpressionExpressionProvider extends AbstractSTextExpressionProvide
 
 	@Override
 	protected Class<? extends EObject> getRule() {
-		return Expression.class;
+		return Guard.class;
 	}
+
 }