S - the state type of the FiniteStateMachinepublic static class NonBlockingFiniteStateMachine.SubsequentEvent<S extends Enum<S>> extends Object implements LifecycleAwareEvent<S>
NonBlockingFiniteStateMachine.SubsequentEvent is an Event that ensures that
 another (wrapped) Event to occur if an only if the FiniteStateMachine is at a certain transition count.  Should an
 attempt to process the wrapped Event occur at another
 transition count, processing of the said event is ignored.
 
 NonBlockingFiniteStateMachine.SubsequentEvents are designed to provide the ability for
 future scheduled Events to be skipped if another Event
 has been processed between the time when the NonBlockingFiniteStateMachine.SubsequentEvent
 was requested to be processed and when it was actually processed. That
 is, the purpose of this is to allow an Event to be skipped if
 other Events interleave between the time when the said Event was actually scheduled and when it was actually meant to be
 processed.
| Constructor and Description | 
|---|
SubsequentEvent(Event<S> event)
Constructs a  
NonBlockingFiniteStateMachine.SubsequentEvent. | 
| Modifier and Type | Method and Description | 
|---|---|
S | 
getDesiredState(S currentState,
               ExecutionContext context)
Determines the desired state of the  
FiniteStateMachine for the
 Event given the current state of the FiniteStateMachine. | 
boolean | 
onAccept(ExecutionContext context)
Called by a  
FiniteStateMachine when the LifecycleAwareEvent
 is initially about to be accepted for processing. | 
void | 
onProcessed(ExecutionContext context)
Called by a  
FiniteStateMachine when the LifecycleAwareEvent
 has been processed. | 
void | 
onProcessing(ExecutionContext context)
Called by a  
FiniteStateMachine when the LifecycleAwareEvent
 is about to be processed. | 
String | 
toString() | 
public SubsequentEvent(Event<S> event)
NonBlockingFiniteStateMachine.SubsequentEvent.event - the actual event to processpublic boolean onAccept(ExecutionContext context)
FiniteStateMachine when the LifecycleAwareEvent
 is initially about to be accepted for processing.onAccept in interface LifecycleAwareEvent<S extends Enum<S>>context - the ExecutionContext for the Eventtrue if the Event should be accepted, or
         false if the FiniteStateMachine should
         ignore the LifecycleAwareEventpublic void onProcessed(ExecutionContext context)
FiniteStateMachine when the LifecycleAwareEvent
 has been processed.onProcessed in interface LifecycleAwareEvent<S extends Enum<S>>context - the ExecutionContext for the Eventpublic void onProcessing(ExecutionContext context)
FiniteStateMachine when the LifecycleAwareEvent
 is about to be processed.onProcessing in interface LifecycleAwareEvent<S extends Enum<S>>context - the ExecutionContext for the Eventpublic S getDesiredState(S currentState, ExecutionContext context)
FiniteStateMachine for the
 Event given the current state of the FiniteStateMachine.getDesiredState in interface Event<S extends Enum<S>>currentState - the current state of the FiniteStateMachinecontext - the ExecutionContext for the EventFiniteStateMachine or
          null if no transition is required