| public void doIt(Input in) 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).
After the action is available, the transition proceeds as follows:
- 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.
|