Transition search

Transitions are searched recursively starting from the root state into its active child states and so on. A transition emanating from a child state has a higher precedence than a transition emanating from the parent. Also checks are carried out if the event should be deferred. If no transitions are found and no event deferral is defined, then the event is discarded.

Example

images/download/attachments/2785545/transition_search_1.png

We consider:

  • 'Transition 1' the transition fired by event 'E1' emanating from 'Simple state 1' and targeting 'Simple state 2'

  • 'Transition 2' the transition fired by event 'E2' emanating from 'Composite state 2' to 'Simple state 6'

  • 'Transition 3' the transition fired by event 'E3' emanating from 'Simple state 3' to 'Simple state 4'

  • 'Transition 4' the transition fired by event 'E4' emanating from 'Composite state 3' to 'Simple state 5'

  • 'Transition 5' the transition fired by event 'E5' emanating from 'Composite state 1' to 'Simple state 7'

An event 'E1' is fired. Thus an enabled transition is searched for this event. 'Composite State 1' is active and has two active regions with two active composite states: 'Composite state 2' and 'Composite state 3' respectively. The search of the enabled transition(s) starts in the simple states 'Simple state 1' and 'Simple state 3'. These have no regions, so the transitions 'Transition 1' and 'Transition 3' are chosen because they are enabled and have the same nesting level.