diff options
author | jeremie.tatibouet | 2016-01-20 19:28:31 +0000 |
---|---|---|
committer | jeremie.tatibouet | 2016-01-20 19:28:31 +0000 |
commit | 88ee35904495afb3d879503dbf61a682b0a7507c (patch) | |
tree | 48c6c02531dcecab4fd0d45f25b6577b3da7e69e | |
parent | def0f33e95f8ac9f12df655d5cad3d39de481da8 (diff) | |
download | org.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.java | 9 |
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() ;
|