فهرست منبع

Use base.Operation instead of xtext.OperationDefinition in Interpreter

Andreas Mülder 12 سال پیش
والد
کامیت
86d067fed5

+ 2 - 3
plugins/org.yakindu.sct.simulation.core.sexec/src/org/yakindu/sct/simulation/core/sexec/interpreter/IOperationMockup.java

@@ -11,7 +11,6 @@
 package org.yakindu.sct.simulation.core.sexec.interpreter;
 
 import org.yakindu.base.types.Operation;
-import org.yakindu.sct.model.stext.stext.OperationDefinition;
 
 /**
  * Called during simulation when an {@link Operation} is executed. Allows to
@@ -27,13 +26,13 @@ public interface IOperationMockup {
 	 * @return true if the implementation provides a mockup for the given
 	 *         definition, false otherwise
 	 */
-	public boolean canExecute(OperationDefinition definition, Object... parameter);
+	public boolean canExecute(Operation definition, Object... parameter);
 
 	/**
 	 * Called when the operation is executed
 	 * 
 	 * @return the operations return value, maybe null
 	 */
-	public Object execute(OperationDefinition definition, Object... parameter);
+	public Object execute(Operation definition, Object... parameter);
 
 }

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

@@ -19,8 +19,8 @@ import org.eclipse.emf.common.util.WrappedException;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
 import org.eclipse.xtext.util.PolymorphicDispatcher;
+import org.yakindu.base.types.Operation;
 import org.yakindu.sct.commons.WorkspaceClassLoaderFactory;
-import org.yakindu.sct.model.stext.stext.OperationDefinition;
 import org.yakindu.sct.simulation.core.sexec.launch.ISCTLaunchParameters;
 
 import com.google.common.collect.Lists;
@@ -66,7 +66,7 @@ public class JavaOperationMockup implements IOperationMockup {
 	}
 
 	@Override
-	public boolean canExecute(OperationDefinition definition, Object... parameter) {
+	public boolean canExecute(Operation definition, Object... parameter) {
 		if (callbacks == null)
 			initOperationCallbacks();
 		// TODO: Check if there is a operation in the callbacks for the given
@@ -74,7 +74,7 @@ public class JavaOperationMockup implements IOperationMockup {
 		return callbacks.size() > 0;
 	}
 
-	public Object execute(OperationDefinition definition, Object... parameter) {
+	public Object execute(Operation definition, Object... parameter) {
 		PolymorphicDispatcher<Object> dispatcher = new PolymorphicDispatcher<Object>(definition.getName(), definition
 				.getParameters().size(), definition.getParameters().size(), callbacks);
 		try {

+ 4 - 4
plugins/org.yakindu.sct.simulation.core.sexec/src/org/yakindu/sct/simulation/core/sexec/interpreter/StextStatementInterpreter.xtend

@@ -15,6 +15,7 @@ import org.eclipse.emf.ecore.EObject
 import org.eclipse.xtext.naming.IQualifiedNameProvider
 import org.eclipse.xtext.util.SimpleAttributeResolver
 import org.yakindu.base.types.Enumerator
+import org.yakindu.base.types.Operation
 import org.yakindu.sct.model.sgraph.Statement
 import org.yakindu.sct.model.stext.stext.ActiveStateReferenceExpression
 import org.yakindu.sct.model.stext.stext.AssignmentExpression
@@ -38,7 +39,6 @@ import org.yakindu.sct.model.stext.stext.LogicalRelationExpression
 import org.yakindu.sct.model.stext.stext.NumericalAddSubtractExpression
 import org.yakindu.sct.model.stext.stext.NumericalMultiplyDivideExpression
 import org.yakindu.sct.model.stext.stext.NumericalUnaryExpression
-import org.yakindu.sct.model.stext.stext.OperationDefinition
 import org.yakindu.sct.model.stext.stext.ParenthesizedExpression
 import org.yakindu.sct.model.stext.stext.PrimitiveValueExpression
 import org.yakindu.sct.model.stext.stext.RealLiteral
@@ -123,8 +123,8 @@ class StextStatementInterpreter extends AbstractStatementInterpreter {
 	def dispatch Object execute(ElementReferenceExpression expression) {
 		var parameter = expression.args.map(it|execute)
 		if (expression.operationCall) {
-			if (operationDelegate.canExecute(expression.reference as OperationDefinition, parameter.toArray)) {
-				return operationDelegate.execute((expression.reference as OperationDefinition),
+			if (operationDelegate.canExecute(expression.reference as Operation, parameter.toArray)) {
+				return operationDelegate.execute((expression.reference as Operation),
 					parameter.toArray)
 			}
 		}
@@ -228,7 +228,7 @@ class StextStatementInterpreter extends AbstractStatementInterpreter {
 	def dispatch Object execute(FeatureCall call) {
 		if (call.operationCall) {
 			var parameter = call.args.map(it|execute)
-			var operation = call.feature as OperationDefinition
+			var operation = call.feature as Operation
 			if (operationDelegate.canExecute(operation, parameter)) {
 				return operationDelegate.execute(operation, parameter)
 			}