Просмотр исходного кода

Highlighting for transitions from entry state

benjamin.schwertfeger@gmail.com 14 лет назад
Родитель
Сommit
7af18ec9bd

+ 3 - 0
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/transformation/ReactionBuilder.xtend

@@ -136,6 +136,7 @@ class ReactionBuilder {
 		
 		
 		if (e.kind == EntryKind::INITIAL) {
 		if (e.kind == EntryKind::INITIAL) {
 			if (target != null && target.enterSequence != null) {
 			if (target != null && target.enterSequence != null) {
+				if (trace.addTraceSteps) seq.steps += e.outgoingTransitions.get(0).create.newTraceReactionFired
 				seq.steps += target.enterSequence.newCall
 				seq.steps += target.enterSequence.newCall
 			}
 			}
 		} else if (e.kind == EntryKind::SHALLOW_HISTORY) {
 		} else if (e.kind == EntryKind::SHALLOW_HISTORY) {
@@ -147,6 +148,7 @@ class ReactionBuilder {
 			
 			
 			//Initial step, if no history is known
 			//Initial step, if no history is known
 			if (target != null && target.enterSequence != null) {
 			if (target != null && target.enterSequence != null) {
+				if (trace.addTraceSteps) seq.steps += e.outgoingTransitions.get(0).create.newTraceReactionFired
 				entryStep.initialStep = target.enterSequence.newCall
 				entryStep.initialStep = target.enterSequence.newCall
 			}
 			}
 			val sSwitch = (e.eContainer as Region).defineShallowHistorySwitch()
 			val sSwitch = (e.eContainer as Region).defineShallowHistorySwitch()
@@ -162,6 +164,7 @@ class ReactionBuilder {
 			
 			
 			//Initial step, if no history is known
 			//Initial step, if no history is known
 			if (target != null && target.enterSequence != null) {
 			if (target != null && target.enterSequence != null) {
+				if (trace.addTraceSteps) seq.steps += e.outgoingTransitions.get(0).create.newTraceReactionFired
 				entryStep.initialStep = target.enterSequence.newCall
 				entryStep.initialStep = target.enterSequence.newCall
 			}
 			}
 			val sSwitch = (e.eContainer as Region).defineDeepHistorySwitch()
 			val sSwitch = (e.eContainer as Region).defineDeepHistorySwitch()

+ 62 - 25
plugins/org.yakindu.sct.model.sexec/xtend-gen/org/yakindu/sct/model/sexec/transformation/ReactionBuilder.java

@@ -27,6 +27,7 @@ import org.yakindu.sct.model.sexec.ExecutionState;
 import org.yakindu.sct.model.sexec.HistoryEntry;
 import org.yakindu.sct.model.sexec.HistoryEntry;
 import org.yakindu.sct.model.sexec.If;
 import org.yakindu.sct.model.sexec.If;
 import org.yakindu.sct.model.sexec.Reaction;
 import org.yakindu.sct.model.sexec.Reaction;
+import org.yakindu.sct.model.sexec.ReactionFired;
 import org.yakindu.sct.model.sexec.Sequence;
 import org.yakindu.sct.model.sexec.Sequence;
 import org.yakindu.sct.model.sexec.SexecFactory;
 import org.yakindu.sct.model.sexec.SexecFactory;
 import org.yakindu.sct.model.sexec.StateCase;
 import org.yakindu.sct.model.sexec.StateCase;
@@ -49,6 +50,7 @@ import org.yakindu.sct.model.sgraph.RegularState;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.model.sgraph.Statement;
 import org.yakindu.sct.model.sgraph.Statement;
+import org.yakindu.sct.model.sgraph.Transition;
 import org.yakindu.sct.model.sgraph.Vertex;
 import org.yakindu.sct.model.sgraph.Vertex;
 import org.yakindu.sct.model.stext.stext.BoolLiteral;
 import org.yakindu.sct.model.stext.stext.BoolLiteral;
 import org.yakindu.sct.model.stext.stext.Literal;
 import org.yakindu.sct.model.stext.stext.Literal;
@@ -365,11 +367,24 @@ public class ReactionBuilder {
           _operator_and = BooleanExtensions.operator_and(_operator_notEquals, _operator_notEquals_1);
           _operator_and = BooleanExtensions.operator_and(_operator_notEquals, _operator_notEquals_1);
         }
         }
         if (_operator_and) {
         if (_operator_and) {
-          EList<Step> _steps_1 = seq.getSteps();
-          Sequence _enterSequence_1 = target.getEnterSequence();
-          Call _newCall = this.mapping.newCall(_enterSequence_1);
-          boolean _operator_add = CollectionExtensions.<Step>operator_add(_steps_1, _newCall);
-          _xifexpression_1 = _operator_add;
+          boolean _xblockexpression_1 = false;
+          {
+            boolean _isAddTraceSteps_1 = this.trace.isAddTraceSteps();
+            if (_isAddTraceSteps_1) {
+              EList<Step> _steps_1 = seq.getSteps();
+              EList<Transition> _outgoingTransitions = e.getOutgoingTransitions();
+              Transition _get = _outgoingTransitions.get(0);
+              Reaction _create_2 = this.mapping.create(_get);
+              ReactionFired _newTraceReactionFired = this.trace.newTraceReactionFired(_create_2);
+              CollectionExtensions.<Step>operator_add(_steps_1, _newTraceReactionFired);
+            }
+            EList<Step> _steps_2 = seq.getSteps();
+            Sequence _enterSequence_1 = target.getEnterSequence();
+            Call _newCall = this.mapping.newCall(_enterSequence_1);
+            boolean _operator_add = CollectionExtensions.<Step>operator_add(_steps_2, _newCall);
+            _xblockexpression_1 = (_operator_add);
+          }
+          _xifexpression_1 = _xblockexpression_1;
         }
         }
         _xifexpression = _xifexpression_1;
         _xifexpression = _xifexpression_1;
       } else {
       } else {
@@ -377,7 +392,7 @@ public class ReactionBuilder {
         EntryKind _kind_1 = e.getKind();
         EntryKind _kind_1 = e.getKind();
         boolean _operator_equals_1 = ObjectExtensions.operator_equals(_kind_1, EntryKind.SHALLOW_HISTORY);
         boolean _operator_equals_1 = ObjectExtensions.operator_equals(_kind_1, EntryKind.SHALLOW_HISTORY);
         if (_operator_equals_1) {
         if (_operator_equals_1) {
-          boolean _xblockexpression_1 = false;
+          boolean _xblockexpression_2 = false;
           {
           {
             SexecFactory _factory = this.sexec.factory();
             SexecFactory _factory = this.sexec.factory();
             HistoryEntry _createHistoryEntry = _factory.createHistoryEntry();
             HistoryEntry _createHistoryEntry = _factory.createHistoryEntry();
@@ -386,8 +401,8 @@ public class ReactionBuilder {
             entryStep.setComment("Enter the region with shallow history");
             entryStep.setComment("Enter the region with shallow history");
             entryStep.setDeep(false);
             entryStep.setDeep(false);
             EObject _eContainer = e.eContainer();
             EObject _eContainer = e.eContainer();
-            ExecutionRegion _create_2 = this.mapping.create(((Region) _eContainer));
-            entryStep.setRegion(_create_2);
+            ExecutionRegion _create_3 = this.mapping.create(((Region) _eContainer));
+            entryStep.setRegion(_create_3);
             boolean _operator_and_1 = false;
             boolean _operator_and_1 = false;
             boolean _operator_notEquals_2 = ObjectExtensions.operator_notEquals(target, null);
             boolean _operator_notEquals_2 = ObjectExtensions.operator_notEquals(target, null);
             if (!_operator_notEquals_2) {
             if (!_operator_notEquals_2) {
@@ -398,25 +413,36 @@ public class ReactionBuilder {
               _operator_and_1 = BooleanExtensions.operator_and(_operator_notEquals_2, _operator_notEquals_3);
               _operator_and_1 = BooleanExtensions.operator_and(_operator_notEquals_2, _operator_notEquals_3);
             }
             }
             if (_operator_and_1) {
             if (_operator_and_1) {
-              Sequence _enterSequence_3 = target.getEnterSequence();
-              Call _newCall_1 = this.mapping.newCall(_enterSequence_3);
-              entryStep.setInitialStep(_newCall_1);
+              {
+                boolean _isAddTraceSteps_2 = this.trace.isAddTraceSteps();
+                if (_isAddTraceSteps_2) {
+                  EList<Step> _steps_3 = seq.getSteps();
+                  EList<Transition> _outgoingTransitions_1 = e.getOutgoingTransitions();
+                  Transition _get_1 = _outgoingTransitions_1.get(0);
+                  Reaction _create_4 = this.mapping.create(_get_1);
+                  ReactionFired _newTraceReactionFired_1 = this.trace.newTraceReactionFired(_create_4);
+                  CollectionExtensions.<Step>operator_add(_steps_3, _newTraceReactionFired_1);
+                }
+                Sequence _enterSequence_3 = target.getEnterSequence();
+                Call _newCall_1 = this.mapping.newCall(_enterSequence_3);
+                entryStep.setInitialStep(_newCall_1);
+              }
             }
             }
             EObject _eContainer_1 = e.eContainer();
             EObject _eContainer_1 = e.eContainer();
             StateSwitch _defineShallowHistorySwitch = this.defineShallowHistorySwitch(((Region) _eContainer_1));
             StateSwitch _defineShallowHistorySwitch = this.defineShallowHistorySwitch(((Region) _eContainer_1));
             final StateSwitch sSwitch = _defineShallowHistorySwitch;
             final StateSwitch sSwitch = _defineShallowHistorySwitch;
             entryStep.setHistoryStep(sSwitch);
             entryStep.setHistoryStep(sSwitch);
-            EList<Step> _steps_2 = seq.getSteps();
-            boolean _operator_add_1 = CollectionExtensions.<Step>operator_add(_steps_2, entryStep);
-            _xblockexpression_1 = (_operator_add_1);
+            EList<Step> _steps_4 = seq.getSteps();
+            boolean _operator_add_1 = CollectionExtensions.<Step>operator_add(_steps_4, entryStep);
+            _xblockexpression_2 = (_operator_add_1);
           }
           }
-          _xifexpression_2 = _xblockexpression_1;
+          _xifexpression_2 = _xblockexpression_2;
         } else {
         } else {
           Boolean _xifexpression_3 = null;
           Boolean _xifexpression_3 = null;
           EntryKind _kind_2 = e.getKind();
           EntryKind _kind_2 = e.getKind();
           boolean _operator_equals_2 = ObjectExtensions.operator_equals(_kind_2, EntryKind.DEEP_HISTORY);
           boolean _operator_equals_2 = ObjectExtensions.operator_equals(_kind_2, EntryKind.DEEP_HISTORY);
           if (_operator_equals_2) {
           if (_operator_equals_2) {
-            boolean _xblockexpression_2 = false;
+            boolean _xblockexpression_3 = false;
             {
             {
               SexecFactory _factory_1 = this.sexec.factory();
               SexecFactory _factory_1 = this.sexec.factory();
               HistoryEntry _createHistoryEntry_1 = _factory_1.createHistoryEntry();
               HistoryEntry _createHistoryEntry_1 = _factory_1.createHistoryEntry();
@@ -424,8 +450,8 @@ public class ReactionBuilder {
               entryStep_1.setName("HistoryEntry");
               entryStep_1.setName("HistoryEntry");
               entryStep_1.setComment("Enter the region with deep history");
               entryStep_1.setComment("Enter the region with deep history");
               EObject _eContainer_2 = e.eContainer();
               EObject _eContainer_2 = e.eContainer();
-              ExecutionRegion _create_3 = this.mapping.create(((Region) _eContainer_2));
-              entryStep_1.setRegion(_create_3);
+              ExecutionRegion _create_5 = this.mapping.create(((Region) _eContainer_2));
+              entryStep_1.setRegion(_create_5);
               entryStep_1.setDeep(true);
               entryStep_1.setDeep(true);
               boolean _operator_and_2 = false;
               boolean _operator_and_2 = false;
               boolean _operator_notEquals_4 = ObjectExtensions.operator_notEquals(target, null);
               boolean _operator_notEquals_4 = ObjectExtensions.operator_notEquals(target, null);
@@ -437,19 +463,30 @@ public class ReactionBuilder {
                 _operator_and_2 = BooleanExtensions.operator_and(_operator_notEquals_4, _operator_notEquals_5);
                 _operator_and_2 = BooleanExtensions.operator_and(_operator_notEquals_4, _operator_notEquals_5);
               }
               }
               if (_operator_and_2) {
               if (_operator_and_2) {
-                Sequence _enterSequence_5 = target.getEnterSequence();
-                Call _newCall_2 = this.mapping.newCall(_enterSequence_5);
-                entryStep_1.setInitialStep(_newCall_2);
+                {
+                  boolean _isAddTraceSteps_3 = this.trace.isAddTraceSteps();
+                  if (_isAddTraceSteps_3) {
+                    EList<Step> _steps_5 = seq.getSteps();
+                    EList<Transition> _outgoingTransitions_2 = e.getOutgoingTransitions();
+                    Transition _get_2 = _outgoingTransitions_2.get(0);
+                    Reaction _create_6 = this.mapping.create(_get_2);
+                    ReactionFired _newTraceReactionFired_2 = this.trace.newTraceReactionFired(_create_6);
+                    CollectionExtensions.<Step>operator_add(_steps_5, _newTraceReactionFired_2);
+                  }
+                  Sequence _enterSequence_5 = target.getEnterSequence();
+                  Call _newCall_2 = this.mapping.newCall(_enterSequence_5);
+                  entryStep_1.setInitialStep(_newCall_2);
+                }
               }
               }
               EObject _eContainer_3 = e.eContainer();
               EObject _eContainer_3 = e.eContainer();
               StateSwitch _defineDeepHistorySwitch = this.defineDeepHistorySwitch(((Region) _eContainer_3));
               StateSwitch _defineDeepHistorySwitch = this.defineDeepHistorySwitch(((Region) _eContainer_3));
               final StateSwitch sSwitch_1 = _defineDeepHistorySwitch;
               final StateSwitch sSwitch_1 = _defineDeepHistorySwitch;
               entryStep_1.setHistoryStep(sSwitch_1);
               entryStep_1.setHistoryStep(sSwitch_1);
-              EList<Step> _steps_3 = seq.getSteps();
-              boolean _operator_add_2 = CollectionExtensions.<Step>operator_add(_steps_3, entryStep_1);
-              _xblockexpression_2 = (_operator_add_2);
+              EList<Step> _steps_6 = seq.getSteps();
+              boolean _operator_add_2 = CollectionExtensions.<Step>operator_add(_steps_6, entryStep_1);
+              _xblockexpression_3 = (_operator_add_2);
             }
             }
-            _xifexpression_3 = _xblockexpression_2;
+            _xifexpression_3 = _xblockexpression_3;
           }
           }
           _xifexpression_2 = _xifexpression_3;
           _xifexpression_2 = _xifexpression_3;
         }
         }