How koushikr/easy-fsm works
easy-fsm is a small Java finite-state-machine library. A client defines a start state, event-driven transitions, and end states through MachineBuilder, then fires events with a Context; StateMachine looks up the matching transition and dispatches configured callbacks. It also validates state/transition completeness and routes runtime callback failures to an error handler. The graph focuses on this documented/runtime flow; the sampled source does not show callback implementations supplied by library consumers.
Main entry points: MachineBuilder.java MachineBuilder · StateMachine.java StateMachine · TransitionServiceImpl.java Transition service · StateManagementServiceImpl.java State management
Components 8
Machine configuration
- MachineBuilder
src/main/java/io/github/fsm/MachineBuilder.java
Event runtime
- StateMachine
src/main/java/io/github/fsm/StateMachine.java - Transition service
src/main/java/io/github/fsm/services/impl/TransitionServiceImpl.java - State management
src/main/java/io/github/fsm/services/impl/StateManagementServiceImpl.java - Action service
src/main/java/io/github/fsm/services/impl/ActionServiceImpl.java
FSM model
- FSM entities
src/main/java/io/github/fsm/models/entities - Callback interfaces
src/main/java/io/github/fsm/models/executors
Other components
- Library client
Connections 16
- Library client → MachineBuilder: configures
- MachineBuilder → Transition service: creates
- MachineBuilder → State management: creates
- MachineBuilder → Action service: creates
- MachineBuilder → StateMachine: builds
- MachineBuilder → Transition service: adds transitions
- MachineBuilder → State management: sets end states
- Library client → StateMachine: fires event
- StateMachine → Transition service: looks up transition
- StateMachine → Action service: dispatches callbacks
- StateMachine → State management: validates states
- Action service → Callback interfaces: calls handlers
- Library client → Callback interfaces: supplies handlers
- StateMachine → FSM entities: uses event and context
- Transition service → FSM entities: stores transitions
- State management → FSM entities: tracks states