The StateMachinesshown so far only had Transitionsbetween Stateson the same level, that is, on the same StateMachine. Of cause, it is possible and often required to have Transitionsbetween Statesof the StateMachineand Statesof its SubStateMachine.
Because a SubStateMachinecan be defined by another StateMachineTypeand this type can be used in several places, it is not possible to add a bi-directional Referencefrom one of the shared Statesof the SubStateMachineto another StateMachine. In this case it is suitable to expose the FromStateor ToState Referencesuni-directional, that is, only pointing from the Transitionto the Stateand not being able to browse to the other direction. If a Transitionpoints from a Stateof a SubStateMachineto a Stateof another sub-machine, both, the FromStateand the ToState Reference, are handled uni-directional.
Figure B.10gives an example of a state machine having a transition from a sub-state to a state.
In Figure B.11, the representation of this example as StateMachineTypein the AddressSpaceis given. The “Transition1”, part of the definition of “MyStateMachineType”, points to the “StateX” of the StateMachineType“AnotherStateMachineType”. The Referenceis only exposed as forward Referenceand the inverse Referenceis omitted. Thus, there is no Referencefrom the “StateX” of “AnotherStateMachineType” to any part of “MyStateMachineType” and “AnotherStateMachineType” can be used in other places as well.