Package org.eclipse.net4j.util.fsm
Class FiniteStateMachine<STATE extends java.lang.Enum<?>,EVENT extends java.lang.Enum<?>,SUBJECT>
- java.lang.Object
- 
- org.eclipse.net4j.util.event.Notifier
- 
- org.eclipse.net4j.util.lifecycle.Lifecycle
- 
- org.eclipse.net4j.util.fsm.FiniteStateMachine<STATE,EVENT,SUBJECT>
 
 
 
- 
- All Implemented Interfaces:
- INotifier,- INotifier.INotifier2,- IDeactivateable,- ILifecycle,- ILifecycle.DeferrableActivation
 - Direct Known Subclasses:
- Negotiator
 
 public abstract class FiniteStateMachine<STATE extends java.lang.Enum<?>,EVENT extends java.lang.Enum<?>,SUBJECT> extends Lifecycle A finite state machine that is based on a matrix oftransitions.A finite state machine can fire the following events: -  FiniteStateMachine.StateChangedEventafter state changes of a subject.
 - Author:
- Eike Stepper
 
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description classFiniteStateMachine.ChangeStateTransitionAtransitionthat changes thestateof a subject.static classFiniteStateMachine.FailTransitionDeprecated.UseFAILstatic classFiniteStateMachine.IgnoreTransitionDeprecated.UseIGNOREclassFiniteStateMachine.StateChangedEvent- 
Nested classes/interfaces inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycleILifecycle.DeferrableActivation
 - 
Nested classes/interfaces inherited from interface org.eclipse.net4j.util.event.INotifierINotifier.INotifier2
 
- 
 - 
Field SummaryFields Modifier and Type Field Description static ITransitionFAILstatic ITransitionIGNORE
 - 
Constructor SummaryConstructors Constructor Description FiniteStateMachine(java.lang.Class<STATE> stateEnum, java.lang.Class<EVENT> eventEnum)FiniteStateMachine(java.lang.Class<STATE> stateEnum, java.lang.Class<EVENT> eventEnum, ITransition<STATE,EVENT,SUBJECT,?> defaultTransition)
 - 
Method SummaryAll Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected STATEchangeState(SUBJECT subject, STATE state)protected ITransition<STATE,EVENT,SUBJECT,?>createFailTransition(STATE state, EVENT event)protected ITransition<STATE,EVENT,SUBJECT,?>createIgnoreTransition(STATE state, EVENT event)protected java.lang.StringformatFailMessage(SUBJECT subject, STATE state, EVENT event, java.lang.Object data)protected java.lang.StringformatIgnoreMessage(SUBJECT subject, STATE state, EVENT event, java.lang.Object data)protected java.lang.StringformatProcessMessage(SUBJECT subject, STATE state, EVENT event, java.lang.Object data)EVENT[]getEvents()protected abstract STATEgetState(SUBJECT subject)STATE[]getStates()ITransition<STATE,EVENT,SUBJECT,?>getTransition(STATE state, EVENT event)voidinit(STATE state, EVENT event, ITransition<STATE,EVENT,SUBJECT,?> transition)voidinit(STATE state, EVENT event, STATE targetState)voidinitAll(ITransition<STATE,EVENT,SUBJECT,?> transition)voidinitAll(STATE targetState)voidinitEvents(STATE state, ITransition<STATE,EVENT,SUBJECT,?> transition)voidinitEvents(STATE state, STATE targetState)voidinitStates(EVENT event, ITransition<STATE,EVENT,SUBJECT,?> transition)voidinitStates(EVENT event, STATE targetState)<DATA> voidprocess(SUBJECT subject, EVENT event, DATA data)protected abstract voidsetState(SUBJECT subject, STATE state)- 
Methods inherited from class org.eclipse.net4j.util.lifecycle.Lifecycleactivate, checkActive, checkArg, checkArg, checkInactive, checkNull, checkState, checkState, deactivate, deferredActivate, doActivate, doAfterActivate, doBeforeActivate, doBeforeDeactivate, doDeactivate, dump, getLifecycleState, isActive, isDeferredActivation, toString
 - 
Methods inherited from class org.eclipse.net4j.util.event.NotifieraddListener, addUniqueListener, fireEvent, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListener, hasListeners, lastListenerRemoved, listenerAdded, listenerRemoved, removeListener
 - 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 - 
Methods inherited from interface org.eclipse.net4j.util.event.INotifieraddListener, getListeners, hasListeners, removeListener
 
- 
 
- 
- 
- 
Field Detail- 
IGNOREpublic static final ITransition IGNORE 
 - 
FAILpublic static final ITransition FAIL 
 
- 
 - 
Method Detail- 
getStatespublic final STATE[] getStates() 
 - 
getEventspublic final EVENT[] getEvents() 
 - 
getTransitionpublic final ITransition<STATE,EVENT,SUBJECT,?> getTransition(STATE state, EVENT event) 
 - 
initpublic final void init(STATE state, EVENT event, ITransition<STATE,EVENT,SUBJECT,?> transition) 
 - 
initEventspublic final void initEvents(STATE state, ITransition<STATE,EVENT,SUBJECT,?> transition) 
 - 
initStatespublic final void initStates(EVENT event, ITransition<STATE,EVENT,SUBJECT,?> transition) 
 - 
initAllpublic final void initAll(STATE targetState) 
 - 
initAllpublic final void initAll(ITransition<STATE,EVENT,SUBJECT,?> transition) 
 - 
createIgnoreTransitionprotected ITransition<STATE,EVENT,SUBJECT,?> createIgnoreTransition(STATE state, EVENT event) 
 - 
createFailTransitionprotected ITransition<STATE,EVENT,SUBJECT,?> createFailTransition(STATE state, EVENT event) 
 - 
formatProcessMessageprotected java.lang.String formatProcessMessage(SUBJECT subject, STATE state, EVENT event, java.lang.Object data) 
 - 
formatIgnoreMessageprotected java.lang.String formatIgnoreMessage(SUBJECT subject, STATE state, EVENT event, java.lang.Object data) 
 - 
formatFailMessageprotected java.lang.String formatFailMessage(SUBJECT subject, STATE state, EVENT event, java.lang.Object data) 
 
- 
 
-