FSMImplpublic class FSMImpl extends Object implements com.sun.corba.se.spi.orbutil.fsm.FSMThis 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. |
Fields Summary |
---|
private boolean | debug | private State | state | private com.sun.corba.se.impl.orbutil.fsm.StateEngineImpl | stateEngine |
Methods Summary |
---|
public void | doIt(com.sun.corba.se.spi.orbutil.fsm.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.
stateEngine.doIt( this, in, debug ) ;
| public State | getState()Return the current state.
return state ;
| public void | internalSetState(State nextState)
if (debug) {
ORBUtility.dprint( this, "Calling internalSetState with nextState = " +
nextState ) ;
}
state = nextState ;
if (debug) {
ORBUtility.dprint( this, "Exiting internalSetState with state = " +
state ) ;
}
|
|