Skip to content

Diagram Statemachine

Design_Userdoc_Statemachine Statemachine Statemachine StateOverride StateOverride Statemachine->StateOverride StateBase StateBase Statemachine->StateBase state 0..N DomainDiagram DomainDiagram Statemachine->DomainDiagram stateDiagram 0..N StateOverride->StateBase stateToOverwrite > stateToExtend 1..1 TransitionOverwrite TransitionOverwrite StateOverride->TransitionOverwrite transitionOverwrite[] 0..1 Transition Transition StateOverride->Transition transitionTo 0..N StatemachineExtension StatemachineExtension StatemachineExtension->StateBase state 0..N StatemachineExtension->DomainDiagram stateDiagram 0..N AStateExtension AStateExtension StatemachineExtension->AStateExtension stateExtension 1..N AJunctionExtension AJunctionExtension StatemachineExtension->AJunctionExtension junctionExtension 0..N AStatemachine AStatemachine AStatemachine->Statemachine AStatemachine->StatemachineExtension State State StateBase->State SuperState SuperState StateBase->SuperState StateBase->Transition transitionTo 0..N SuperState->StateBase subState 0..N SuperState->DomainDiagram stateDiagram 0..N SuperState_WithBusyFinal SuperState_WithBusyFinal SuperState->SuperState_WithBusyFinal History History SuperState->History history 0..1 TargetState TargetState TargetState->StateBase TargetState->History Junction Junction TargetState->Junction TargetState->AStateExtension TargetState->AJunctionExtension TransitionOverwrite->Transition transitionTo 0..1 Transition->TargetState state 1..1 Junction->Transition transitionTo 1..N AStateExtension->StateOverride AStateExtension->StateBase stateToExtend 1..1 StateExtension StateExtension AStateExtension->StateExtension StateExtension->StateBase stateToExtend > stateToExtend 1..1 StateExtension->StateBase state 0..N TransitionExtend TransitionExtend StateExtension->TransitionExtend transitionTo 0..N TransitionExtend->Transition transtionTo 1..1 AJunctionExtension->Junction junctionToExtend 1..1 JunctionExtension JunctionExtension AJunctionExtension->JunctionExtension JunctionExtension->Junction junctionToExtend > junctionToExtend 1..1 JunctionExtension->TransitionExtend transitionTo 0..N

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.

class State extends StateBase

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