Diagram Statemachine
Statemachine
A Statemachine defines the behaviour of a Controller as a finite state machine: its states, the transitions between them, and the initial entry point. A Controller has at most one statemachine.
class Statemachine extends AStatemachine, AStatemachineStart, RootVariableName, ASmDecorator, AJunctionProperty
StateOverride
A StateOverride re-declares a state group inherited from a base statemachine so a controller can extend it - adding sub-states, transitions or replacement lifecycle code - without redefining the whole machine.
class StateOverride extends AStateExtension, Statemachine
StatemachineExtension
A StatemachineExtension defines a controller's statemachine by building on an inherited base statemachine instead of from scratch. It reuses the base lifecycle and adds or overrides only the parts specific to this controller.
class StatemachineExtension extends AStatemachine, AJunctionProperty
AStatemachine
abstract class AStatemachine extends Decorator, AnnotableComment
StateBase
abstract class StateBase extends TargetState, AState
DomainDiagram
class DomainDiagram extends NamedResource
State
A State is a leaf state in a statemachine - a state with no internal sub-states. It carries the code that runs on entry, every cycle while it is active, and on exit, together with the transitions leaving it.
SuperState
A SuperState is a state that contains its own sub-states - the hierarchical grouping mechanism of a statemachine. It nests a complete inner sub-machine (an initial pseudostate and its sub-states) and can itself carry entry, cyclic and exit code.
class SuperState extends StateBase, AStatemachineStart, AJunctionProperty
SuperState_WithBusyFinal
A SuperState_WithBusyFinal is a SuperState for the common "commanded action runs, then settles" pattern. It provides an initial working sub-state where the action executes and a final sub-state reached when it is complete, so a parent can detect completion.
class SuperState_WithBusyFinal extends SuperState
TargetState
abstract class TargetState extends Resource
History
class History extends TargetState
TransitionOverwrite
A TransitionOverwrite adds or replaces a transition on a state group inherited from a base statemachine. It is used to inject the uniform safe-state escape edges (such as stop, off or error) consistently across controllers.
class TransitionOverwrite extends Decorator
Transition
A Transition is an edge leaving a State or SuperState. It defines the target state that control moves to when its guard condition becomes true.
class Transition extends Resource, AnnotableComment
Junction
A Junction is a choice pseudostate: a branch node with several guarded outgoing transitions and no behaviour of its own. Its typical use is dispatching control to different sub-groups based on the active command.
class Junction extends NamedResource, AnnotableComment, TargetState
AStateExtension
abstract class AStateExtension extends TargetState
StateExtension
The state that is extended basically remains as it is. It can simply be extended by function or transitions. It is also possible to overwrite single functions or transitions. Further additional states and junctions can be created.
class StateExtension extends AStateExtension, AJunctionProperty
TransitionExtend
class TransitionExtend extends Resource
AJunctionExtension
abstract class AJunctionExtension extends TargetState
JunctionExtension
The junction that is extended basically remains as it is. It can simply be extended by transitions. It is also possible to overwrite single transitions.
class JunctionExtension extends AJunctionExtension