org.squirrelframework.foundation.fsm
Interface StateMachine<T extends StateMachine<T,S,E,C>,S,E,C>
- Type Parameters:
T - type of State MachineS - type of StateE - type of EventC - type of Context
- All Superinterfaces:
- Observable, Visitable
- All Known Subinterfaces:
- UntypedStateMachine
- All Known Implementing Classes:
- AbstractStateMachine, AbstractUntypedStateMachine
public interface StateMachine<T extends StateMachine<T,S,E,C>,S,E,C>
- extends Visitable, Observable
Interface for finite state machine.
- Author:
- Henry.He
|
Nested Class Summary |
static interface |
StateMachine.StartEvent<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.StartListener<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.StateMachineEvent<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.StateMachineExceptionEvent<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.StateMachineExceptionListener<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.StateMachineListener<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.TerminateEvent<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.TerminateListener<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.TransitionBeginEvent<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.TransitionBeginListener<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.TransitionCompleteEvent<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.TransitionCompleteListener<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.TransitionDeclinedEvent<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.TransitionDeclinedListener<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.TransitionEndEvent<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.TransitionEndListener<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.TransitionEvent<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.TransitionExceptionEvent<T extends StateMachine<T,S,E,C>,S,E,C>
|
static interface |
StateMachine.TransitionExceptionListener<T extends StateMachine<T,S,E,C>,S,E,C>
|
|
Method Summary |
void |
addDeclarativeListener(Object listener)
|
void |
addExecActionListener(ActionExecutionService.BeforeExecActionListener<T,S,E,C> listener)
|
void |
addStartListener(StateMachine.StartListener<T,S,E,C> listener)
|
void |
addStateMachineExceptionListener(StateMachine.StateMachineExceptionListener<T,S,E,C> listener)
|
void |
addStateMachineListener(StateMachine.StateMachineListener<T,S,E,C> listener)
|
void |
addTerminateListener(StateMachine.TerminateListener<T,S,E,C> listener)
|
void |
addTransitionBeginListener(StateMachine.TransitionBeginListener<T,S,E,C> listener)
|
void |
addTransitionCompleteListener(StateMachine.TransitionCompleteListener<T,S,E,C> listener)
|
void |
addTransitionDeclinedListener(StateMachine.TransitionDeclinedListener<T,S,E,C> listener)
|
void |
addTransitionEndListener(StateMachine.TransitionEndListener<T,S,E,C> listener)
|
void |
addTransitionExceptionListener(StateMachine.TransitionExceptionListener<T,S,E,C> listener)
|
boolean |
canAccept(E event)
|
StateMachineData.Reader<T,S,E,C> |
dumpSavedData()
Dump current state machine data. |
String |
exportXMLDefinition(boolean beautifyXml)
|
void |
fire(E event)
Fire event |
void |
fire(E event,
C context)
Fires the specified event |
void |
fireImmediate(E event)
Fire event immediately |
void |
fireImmediate(E event,
C context)
Fires event with context immediately, if current state machine is busy, the next processing event
is this event. |
Collection<ImmutableState<T,S,E,C>> |
getAllRawStates()
|
Collection<S> |
getAllStates()
|
ImmutableState<T,S,E,C> |
getCurrentRawState()
|
S |
getCurrentState()
|
String |
getDescription()
|
String |
getIdentifier()
|
ImmutableState<T,S,E,C> |
getInitialRawState()
|
S |
getInitialState()
|
S |
getLastActiveChildStateOf(S parentStateId)
|
TransitionException |
getLastException()
|
ImmutableState<T,S,E,C> |
getLastRawState()
|
S |
getLastState()
|
ImmutableState<T,S,E,C> |
getRawStateFrom(S stateId)
|
StateMachineStatus |
getStatus()
|
List<S> |
getSubStatesOn(S parentStateId)
|
T |
getThis()
|
boolean |
isContextSensitive()
Deprecated. |
boolean |
loadSavedData(StateMachineData.Reader<T,S,E,C> savedData)
Load saved data for current state machine. |
void |
removeDeclarativeListener(Object listener)
|
void |
removeExecActionListener(ActionExecutionService.BeforeExecActionListener<T,S,E,C> listener)
|
void |
removeStartListener(StateMachine.StartListener<T,S,E,C> listener)
|
void |
removeStateMachineExceptionListener(StateMachine.StateMachineExceptionListener<T,S,E,C> listener)
|
void |
removeStateMachineListener(StateMachine.StateMachineListener<T,S,E,C> listener)
|
void |
removeTerminateListener(StateMachine.TerminateListener<T,S,E,C> listener)
|
void |
removeTransitionBeginListener(StateMachine.TransitionBeginListener<T,S,E,C> listener)
|
void |
removeTransitionCompleteListener(StateMachine.TransitionCompleteListener<T,S,E,C> listener)
|
void |
removeTransitionDecleindListener(StateMachine.TransitionDeclinedListener<T,S,E,C> listener)
|
void |
removeTransitionEndListener(StateMachine.TransitionEndListener<T,S,E,C> listener)
|
void |
removeTransitionExceptionListener(StateMachine.TransitionExceptionListener<T,S,E,C> listener)
|
void |
start()
Start state machine without context |
void |
start(C context)
Start state machine under external context |
void |
terminate()
Terminate state machine without context |
void |
terminate(C context)
Terminate state machine under external context |
S |
test(E event)
Test event |
S |
test(E event,
C context)
Test transition result under circumstance |
Class<C> |
typeOfContext()
|
Class<E> |
typeOfEvent()
|
Class<S> |
typeOfState()
|
| Methods inherited from interface org.squirrelframework.foundation.fsm.Visitable |
accept |
| Methods inherited from interface org.squirrelframework.foundation.component.Observable |
addListener, addListener, fireEvent, getListenerSize, isNotifiable, removeAllListeners, removeListener, removeListener, removeListener, removeListener, setNotifiable |
fire
void fire(E event,
C context)
- Fires the specified event
- Parameters:
event - the eventcontext - external context
fireImmediate
void fireImmediate(E event,
C context)
- Fires event with context immediately, if current state machine is busy, the next processing event
is this event.
- Parameters:
event - the eventcontext - external context
test
S test(E event,
C context)
- Test transition result under circumstance
- Parameters:
event - test eventcontext - text context
- Returns:
- test transition result
fire
void fire(E event)
- Fire event
- Parameters:
event -
fireImmediate
void fireImmediate(E event)
- Fire event immediately
- Parameters:
event -
test
S test(E event)
- Test event
- Parameters:
event -
canAccept
boolean canAccept(E event)
- Parameters:
event - test event
- Returns:
- true is passed in event is acceptable otherwise return false
start
void start(C context)
- Start state machine under external context
- Parameters:
context - external context
start
void start()
- Start state machine without context
terminate
void terminate(C context)
- Terminate state machine under external context
- Parameters:
context - external context
terminate
void terminate()
- Terminate state machine without context
getStatus
StateMachineStatus getStatus()
- Returns:
- current status of state machine
getThis
T getThis()
- Returns:
- type-safe state machine instance
getCurrentState
S getCurrentState()
- Returns:
- current state id of state machine
getLastState
S getLastState()
- Returns:
- last active state id of state machine
getInitialState
S getInitialState()
- Returns:
- id of state machine initial state
getLastActiveChildStateOf
S getLastActiveChildStateOf(S parentStateId)
- Parameters:
parentStateId - id of parent state
- Returns:
- last active child state of the parent state
getSubStatesOn
List<S> getSubStatesOn(S parentStateId)
- Parameters:
parentStateId -
- Returns:
- sub state of parallel state
getCurrentRawState
ImmutableState<T,S,E,C> getCurrentRawState()
- Returns:
- current raw state of state machine
getLastRawState
ImmutableState<T,S,E,C> getLastRawState()
- Returns:
- last active raw state of state machine
getInitialRawState
ImmutableState<T,S,E,C> getInitialRawState()
- Returns:
- initial raw state of state machine
getRawStateFrom
ImmutableState<T,S,E,C> getRawStateFrom(S stateId)
getAllStates
Collection<S> getAllStates()
getAllRawStates
Collection<ImmutableState<T,S,E,C>> getAllRawStates()
dumpSavedData
StateMachineData.Reader<T,S,E,C> dumpSavedData()
- Dump current state machine data. This operation can only be done when state machine status is
StateMachineStatus.IDLE, otherwise null will be returned.
- Returns:
- dumped state machine data reader
loadSavedData
boolean loadSavedData(StateMachineData.Reader<T,S,E,C> savedData)
- Load saved data for current state machine. The operation can only be done when state machine
status is
StateMachineStatus.INITIALIZED or StateMachineStatus.TERMINATED.
- Parameters:
savedData - provided saved data
- Returns:
- true if load saved data success otherwise false
isContextSensitive
@Deprecated
boolean isContextSensitive()
- Deprecated.
- Returns:
- whether state machine is context sensitive
typeOfContext
Class<C> typeOfContext()
typeOfEvent
Class<E> typeOfEvent()
typeOfState
Class<S> typeOfState()
getLastException
TransitionException getLastException()
getIdentifier
String getIdentifier()
getDescription
String getDescription()
exportXMLDefinition
String exportXMLDefinition(boolean beautifyXml)
addDeclarativeListener
void addDeclarativeListener(Object listener)
removeDeclarativeListener
void removeDeclarativeListener(Object listener)
addStateMachineListener
void addStateMachineListener(StateMachine.StateMachineListener<T,S,E,C> listener)
removeStateMachineListener
void removeStateMachineListener(StateMachine.StateMachineListener<T,S,E,C> listener)
addStartListener
void addStartListener(StateMachine.StartListener<T,S,E,C> listener)
removeStartListener
void removeStartListener(StateMachine.StartListener<T,S,E,C> listener)
addTerminateListener
void addTerminateListener(StateMachine.TerminateListener<T,S,E,C> listener)
removeTerminateListener
void removeTerminateListener(StateMachine.TerminateListener<T,S,E,C> listener)
addStateMachineExceptionListener
void addStateMachineExceptionListener(StateMachine.StateMachineExceptionListener<T,S,E,C> listener)
removeStateMachineExceptionListener
void removeStateMachineExceptionListener(StateMachine.StateMachineExceptionListener<T,S,E,C> listener)
addTransitionBeginListener
void addTransitionBeginListener(StateMachine.TransitionBeginListener<T,S,E,C> listener)
removeTransitionBeginListener
void removeTransitionBeginListener(StateMachine.TransitionBeginListener<T,S,E,C> listener)
addTransitionCompleteListener
void addTransitionCompleteListener(StateMachine.TransitionCompleteListener<T,S,E,C> listener)
removeTransitionCompleteListener
void removeTransitionCompleteListener(StateMachine.TransitionCompleteListener<T,S,E,C> listener)
addTransitionExceptionListener
void addTransitionExceptionListener(StateMachine.TransitionExceptionListener<T,S,E,C> listener)
removeTransitionExceptionListener
void removeTransitionExceptionListener(StateMachine.TransitionExceptionListener<T,S,E,C> listener)
addTransitionDeclinedListener
void addTransitionDeclinedListener(StateMachine.TransitionDeclinedListener<T,S,E,C> listener)
removeTransitionDecleindListener
void removeTransitionDecleindListener(StateMachine.TransitionDeclinedListener<T,S,E,C> listener)
addTransitionEndListener
void addTransitionEndListener(StateMachine.TransitionEndListener<T,S,E,C> listener)
removeTransitionEndListener
void removeTransitionEndListener(StateMachine.TransitionEndListener<T,S,E,C> listener)
addExecActionListener
void addExecActionListener(ActionExecutionService.BeforeExecActionListener<T,S,E,C> listener)
removeExecActionListener
void removeExecActionListener(ActionExecutionService.BeforeExecActionListener<T,S,E,C> listener)
Copyright © 2013-2014. All Rights Reserved.