fsm2 library

Classes

CoRegionBuilder<S extends State>
Event
Base class for all Events that you pass to the FSM.
SMCatFile
SMCatFolder
Used to manage/monitor a folder containing smcat files.
State
Base class for all States that you pass to the FSM.
StateBuilder<S extends State>
State builder.
StateDefinition<S extends State>
A StateDefinition represents a state defined in the statemachine builder.
StateMachine
Finite State Machine implementation.
StateOfMind
SvgFile
TransitionDefinition<E extends Event>
Defines FSM transition: the change from one state to another.
WatchFolder
Used to manage/monitor a folder containing files with the given extension.

Functions

addNestedState<C extends State>(StateDefinition<State> sd, BuildState<C> buildState) → void

Typedefs

OnEnter = Future<void>? Function(Type fromState, Event? event)
The method signature for a States onEnter method
OnExit = Future<void>? Function(Type toState, Event? event)
The method signature for a States onExit method
OnFolderChanged = void Function(String pathTo, FolderChangeAction changeType)

Exceptions / Errors

DuplicateStateException
YOu have tried to define the same state twice.
InvalidInitialStateException
You have passed an State as an initialState that isn't either a top level state or a leaf state.
InvalidStateMachine
The statemachine has been defined in an invalid fashion.
InvalidTransitionException
You called stateMachine.applyEvent with an event that is not defined in a transition for the current state.
JoinWithNoCoregionException
An onJoin statement was used incorrectly.
NoParentException
You tried to get the parent of a StatePath that is just a VirtualRoot.
NullConditionMustBeLastException
When creating the statemachine a state has defined an Event without a condition and it is not the last event defined for the state.
SMCatException
UnknownStateException
You defined a transition 'on', 'fork', 'join' with a target state which is not know to the state engine.