Browse Source

Changed BehaviorMapping to include GuardExpression

Andreas Mülder 12 years ago
parent
commit
552385a201

+ 13 - 3
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/transformation/BehaviorMapping.xtend

@@ -414,6 +414,10 @@ class BehaviorMapping {
 
 		// define exit behavior of transition
 		
+		if (trace.addTraceSteps) {
+			sequence.steps.add(t.create.newTraceReactionWillFire)	
+		}
+		
 		// first process the exit behavior of orthogonal states that has to be performed before source exit
 		val topExitState = t.exitStates.last
 		if (topExitState != null) {
@@ -426,7 +430,6 @@ class BehaviorMapping {
 		// map transition actions
 		if (t.effect != null) sequence.steps.add(t.effect.mapEffect)	
 		if (trace.addTraceSteps) { 
-			sequence.steps.add(0, t.create.newTraceReactionWillFire)
 			sequence.steps += r.newTraceReactionFired
 		}
 		
@@ -453,6 +456,12 @@ class BehaviorMapping {
 			exitStates.retainAll(t.exitStates.toList)
 		}
 		val topExitState = exitStates.last
+		
+		if (trace.addTraceSteps) {
+			for (t : transitions) {
+				sequence.steps.add(t.create.newTraceReactionWillFire)	
+			}
+		}
 		
 		if (topExitState != null) {
 			val exitSequence = topExitState.create.exitSequence
@@ -465,7 +474,7 @@ class BehaviorMapping {
 		for ( t : transitions ) {
 			if (t.effect != null) sequence.steps.add(t.effect.mapEffect)	
 			if (trace.addTraceSteps) { 
-				sequence.steps.add(0, t.create.newTraceReactionWillFire)
+//				sequence.steps.add(0, t.create.newTraceReactionWillFire)
 				sequence.steps += t.create.newTraceReactionFired
 			}
 		}
@@ -473,6 +482,7 @@ class BehaviorMapping {
 	
 		// define entry behavior of the transition	
 		sequence.steps.addAll( mapToStateConfigurationEnterSequence( transitions ).steps )
+
 		
 		return sequence
 	}
@@ -691,7 +701,7 @@ class BehaviorMapping {
 	def dispatch Expression buildGuard( Trigger t) {null}
 	
 	def dispatch Expression buildGuard( ReactionTrigger t) {
-		if ( t.guardExpression != null ) EcoreUtil::copy(t.guardExpression) else null
+		if ( t.guard != null ) EcoreUtil::copy(t.guard.expression) else null
 	}
 	
 //	def Statement buildValueExpression(TimeEventSpec tes) {