Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjeremie.tatibouet2016-01-20 19:28:31 +0000
committerjeremie.tatibouet2016-01-20 19:28:31 +0000
commit88ee35904495afb3d879503dbf61a682b0a7507c (patch)
tree48c6c02531dcecab4fd0d45f25b6577b3da7e69e
parentdef0f33e95f8ac9f12df655d5cad3d39de481da8 (diff)
downloadorg.eclipse.papyrus-88ee35904495afb3d879503dbf61a682b0a7507c.tar.gz
org.eclipse.papyrus-88ee35904495afb3d879503dbf61a682b0a7507c.tar.xz
org.eclipse.papyrus-88ee35904495afb3d879503dbf61a682b0a7507c.zip
Fix the guard evaluation operation of a transition. It was anticipating
the type of the guard specification. This is the role of the factory to test which kind of evaluation should actually be generated. Change-Id: I8fd920737eb22efd91af6e5ce9dcee24949d28c4 Signed-off-by: jeremie.tatibouet <jeremie.tatibouet@cea.fr>
-rw-r--r--extraplugins/moka/org.eclipse.papyrus.moka.fuml.statemachines/src/org/eclipse/papyrus/moka/fuml/statemachines/Semantics/StateMachines/BehaviorStateMachines/TransitionActivation.java9
1 files changed, 3 insertions, 6 deletions
diff --git a/extraplugins/moka/org.eclipse.papyrus.moka.fuml.statemachines/src/org/eclipse/papyrus/moka/fuml/statemachines/Semantics/StateMachines/BehaviorStateMachines/TransitionActivation.java b/extraplugins/moka/org.eclipse.papyrus.moka.fuml.statemachines/src/org/eclipse/papyrus/moka/fuml/statemachines/Semantics/StateMachines/BehaviorStateMachines/TransitionActivation.java
index 3ebcca41d8b..191b0a45ccf 100644
--- a/extraplugins/moka/org.eclipse.papyrus.moka.fuml.statemachines/src/org/eclipse/papyrus/moka/fuml/statemachines/Semantics/StateMachines/BehaviorStateMachines/TransitionActivation.java
+++ b/extraplugins/moka/org.eclipse.papyrus.moka.fuml.statemachines/src/org/eclipse/papyrus/moka/fuml/statemachines/Semantics/StateMachines/BehaviorStateMachines/TransitionActivation.java
@@ -27,7 +27,6 @@ import org.eclipse.papyrus.moka.fuml.Semantics.CommonBehaviors.Communications.Si
import org.eclipse.papyrus.moka.fuml.statemachines.Semantics.Classes.Kernel.StateMachineOpaqueExpressionEvaluation;
import org.eclipse.papyrus.moka.fuml.statemachines.Semantics.Loci.LociL3.StateMachineSemanticVisitor;
import org.eclipse.papyrus.moka.fuml.statemachines.debug.SM_ControlDelegate;
-import org.eclipse.uml2.uml.LiteralBoolean;
import org.eclipse.uml2.uml.OpaqueExpression;
import org.eclipse.uml2.uml.Port;
import org.eclipse.uml2.uml.SignalEvent;
@@ -82,18 +81,16 @@ public abstract class TransitionActivation extends StateMachineSemanticVisitor {
}
public boolean evaluateGuard(){
- // TODO
+ // Evaluate the guard specification thanks to an evaluation.
+ // The evaluation does not presume of the type of the guard specification.
boolean result = true;
Transition transition = (Transition) this.node;
if (transition.getGuard() != null) {
ValueSpecification specification = transition.getGuard().getSpecification() ;
if(specification!=null){
- Evaluation evaluation = null;
+ Evaluation evaluation = this.getExecutionLocus().factory.createEvaluation(specification);
if (specification instanceof OpaqueExpression) {
- evaluation = this.getExecutionLocus().factory.createEvaluation(specification);
((StateMachineOpaqueExpressionEvaluation)evaluation).context = this.getExecutionContext() ;
- }else if(specification instanceof LiteralBoolean){
- evaluation = this.getExecutionLocus().factory.createEvaluation(specification);
}
if(evaluation!=null){
BooleanValue evaluationResult = (BooleanValue)evaluation.evaluate() ;

Back to the top