-
Notifications
You must be signed in to change notification settings - Fork 1
The Automata4j framework parts
pavl_g edited this page Aug 27, 2023
·
4 revisions
The Automata4j framework is an advanced finite-state-automaton API for JVM and Android applications featuring both the Deterministic and the Non-deterministic finite-state-automata patterns.
This page describes the different parts of the API, although you could instantiate them easily from the class paradigm on the Home page or the README.
| Class | Definition | Inheritance hierarchy | Design Implications |
|---|---|---|---|
| TransitionalManager | Instantiates a non-deterministic finite-state-automaton pattern by creating Transitions from AutoStates | - | Assigning next states and transiting into them |
| DeterministicManager | Instantiates a deterministic finite-state-automaton pattern by creating unique TransitionPaths from AutoStates | TransitionalManager | Assertion of TransitionPaths uniqueness |
| TransitionalListener | Listens for the transition from a present state to the next state providing user command-state capabilities | - | Provides a Command-State pattern for the transition interface |
| Transition | Encapsulates a next state to transit to upon the transit command | - | Describing the non-deterministic FSA transitions |
| TransitionPath | Encapsulates an [a]-successor path between a present state and a next state that is significant for the DeterministicManager; where [a] is the input value | Transition | Describing the deterministic FSA transitions and helps in asserting their uniqueness |
| CascadedTransition | Adapts the TransitionPath to accommodate more than 2 states in a Queue ADT to be utilized in a FIFO order by the TransitionalManager |
Transition -> TransitionPath | Useful to pre-allocate a cascade of state transitions for the TransitionalManager |
| ConcurrentCascadedTransition | A thread-safe implementation of the CascadedTransition to internally handle the non-concurrent queue implementation |
Transition -> TransitionPath -> CascadedTransition | Recommended for non-concurrent Queue implementations. |
| AutoState | The Actual finite-state interface that can be assigned via TransitionalManager and dispatched upon transitions | - | Represents the Stack that determines the behavior of the application upon transition |
| TransitionPathNotUniqueException | A runtime exception that is thrown to assert the uniqueness of a transition path within a DeterministicManager | RuntimeException | Helps in asserting the uniqueness of an [a]-successor path between 2 states in a DFSA |