org.squirrelframework.foundation.fsm
Interface StateMachine<T extends StateMachine<T,S,E,C>,S,E,C>

Type Parameters:
T - type of State Machine
S - type of State
E - type of Event
C - 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
 

Method Detail

fire

void fire(E event,
          C context)
Fires the specified event

Parameters:
event - the event
context - 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 event
context - external context

test

S test(E event,
       C context)
Test transition result under circumstance

Parameters:
event - test event
context - 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.