Executing a Transition

The transitions are evaluated in the order of their priority. Transitions from a hierarchy state always have a higher priority than transitions from the substates of this hierarchy state.

  1. A transition or transition segment is tested.
  2. If the transition/segment is invalid, the transition/segment with the next-lowest priority is tested.
  3. If the transition/segment is valid, the next step depends on where the transition/segment ends.

    In a state:

    1. No additional transitions or transition segments are tested. In the case of a transition segment from a junction, the segment is pulled in to the junction in question to obtain a complete transition.
    2. The substates of the start state are left (see Leaving a State).
    3. The start state is left.
    4. The transition action is executed.
    5. The system enters the destination state (see Entering a State)

    In a junction:

    The transition segments leading away from the junction are evaluated as described in steps A – C.

  4. If all the transition segments leading away from a junction are invalid, the system returns to the start state from which the junction was reached. As the segment in the junctions does not belong to any valid transition, steps A – D are executed for the transition/segment with the next-lowest priority.
  5. If all of the transitions/segments leading away from a state are valid, then no transition occurs and the system remains in the state.

See also

Leaving a State

Entering a State