Package org.glassfish.pfl.basic.fsm
Class Runner
java.lang.Object
org.glassfish.pfl.basic.fsm.Runner
This is the main class that represents an instance of a state machine
using a state engine. It may be used as a base class, in which case
the guards and actions have access to the derived class.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
-
Field Details
-
debug
private boolean debug -
current
-
-
Constructor Details
-
Runner
Create a new Runner with fsm on top of the stack. -
Runner
-
-
Method Details
-
peek
Return the top fsm on the stack. -
push
Push a new fsm onto the stack. -
pop
-
done
public boolean done()Return true if the stack is empty, which means that the runner is finished. -
doIt
Perform the transition for the given input in the current state. This proceeds as follows:Let S be the current state of the FSM. If there are guarded actions for S with input in, evaluate their guards successively until all have been evaluted, or one returns a non-DISABLED Result.
- If a DEFERED result is returned, retry the input
- If a ENABLED result is returned, the action for the guarded action is the current action
- Otherwise there is no enabled action. If S has a default action and next state, use them; otherwise use the state engine default action (the next state is always the current state).
- If the next state is not the current state, execute the current state postAction method.
- Execute the action.
- If the next state is not the current state, execute the next state preAction method.
- Set the current state to the next state.
-