Repository navigation
5.4.2.3. Pseudostates
Mikołaj Milewski edited this page Nov 12, 2026
·
1 revision
Pseudostate, unlike State, does not represent stable configuration of State Machine. Pseudostates are used to control the flow of Transitions connecting States.
In general, Pseudostate consist of:
- Name, uniquely identifying Pseudostate within State Machine,
- Parent State, if Pseudostate is a child element of Composite State or Orthogonal State,
- Set of outgoing Transitions.
Stateflows supports five types of Pseudostates:
- Choice that allows to build dynamic Transitions chains, where Transitions are traversed sequentialy and their Guards are evaluated after previous Transition Effect is invoked,
-
Junction that allows to build static Transitions chains, where all Transition Guards are evaluated (and must return
true) before any Transition Effect is invoked, - Fork that allows to enter multiple States (located in different Regions of Orthogonal State) at once,
- Join that allows to leave multiple States (located in different Regions of Orthogonal State) at once,
- History that restores the most recently active state configuration of its containing region when a transition targets it.
History is declared inside a composite state or an orthogonal state's region with AddHistory(). It is an entry point rather than a stable State. See History Pseudostate for restoration behavior and default entry paths. Event deferral is a separate State feature, declared with AddDeferredEvent<TEvent>(); it is covered in In-State Event Deferrals.
Home page Support Code licensed under an MIT-style License. Documentation licensed under CC BY 4.0. © by Mikołaj Milewski, 2026