Browse Source

Fixed execution slot resolver for events. Changed event resolution to use resolver.

tomqc86@googlemail.com 11 years ago
parent
commit
a14b944e89

+ 13 - 2
plugins/org.yakindu.sct.simulation.core.sexec/src/org/yakindu/sct/simulation/core/sexec/interpreter/DefaultExecutionSlotResolver.xtend

@@ -101,10 +101,21 @@ class DefaultExecutionSlotResolver implements IExecutionSlotResolver {
 			}
 		}
 		context.getEvent(fqn)
+	}
+	
+	def dispatch resolveEvent(ExecutionContext context, ElementReferenceExpression expression) {
+		return context.getEvent(expression.reference.fullyQualifiedName.toString)
 	}
 
-	def dispatch resolveEvent(ExecutionContext context, Expression expression) {}
-	def dispatch resolveVariable(ExecutionContext context, EObject expression) {}
+	def dispatch resolveEvent(ExecutionContext context, Expression expression) {
+		println("Unhandled expression on event slot resolution: "+expression)
+		null
+	}
+	
+	def dispatch resolveVariable(ExecutionContext context, EObject expression) {
+		println("Unhandled expression on variable slot resolution: "+expression)
+		null
+	}
 
 	def getFqn(VariableDefinition varDef) {
 		varDef.getFullyQualifiedName

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

@@ -97,8 +97,7 @@ class StextStatementInterpreter extends AbstractStatementInterpreter {
 	}
 
 	def dispatch Object execute(EventRaisingExpression eventRaising) {
-		var fqnName = eventRaising.event.event.getFullyQualifiedName.toString
-		var event = context.getEvent(fqnName)
+		var event = context.resolveEvent(eventRaising.event)
 		if (eventRaising.value != null) {
 			event.value = eventRaising.value.execute
 		}