Class ObservableLifecycleStatusMachine<SRC>
java.lang.Object
org.refcodes.component.LifecycleMachine
org.refcodes.component.ext.observer.ObservableLifecycleStatusMachine<SRC>
- Type Parameters:
SRC- The source of the events consumed by theLifecycleStatusObserver.
- All Implemented Interfaces:
Destroyable, Destroyable.DestroyAutomaton, Initializable, Initializable.InitializeAutomaton, InitializedAccessor, LifecycleComponent, LifecycleComponent.LifecycleAutomaton, LifecycleStatusAccessor, Pausable, Pausable.PauseAutomaton, Resumable, Resumable.ResumeAutomaton, RunningAccessor, Startable, Startable.StartAutomaton, Stoppable, Stoppable.StopAutomaton, Observable<LifecycleStatusObserver<InitializeAccomplishedEvent<SRC>, StartAccomplishedEvent<SRC>, ResumeAccomplishedEvent<SRC>, PauseAccomplishedEvent<SRC>, StopAccomplishedEvent<SRC>, DestroyAccomplishedEvent<SRC>, EventMetaData, SRC>>
public class ObservableLifecycleStatusMachine<SRC>
extends LifecycleMachine
implements Observable<LifecycleStatusObserver<InitializeAccomplishedEvent<SRC>, StartAccomplishedEvent<SRC>, ResumeAccomplishedEvent<SRC>, PauseAccomplishedEvent<SRC>, StopAccomplishedEvent<SRC>, DestroyAccomplishedEvent<SRC>, EventMetaData, SRC>>
The ObservableLifecycleStatusMachine extends the
LifecycleMachine with life-cycle ActionEvent functionality
which can be vetoed, such running through several stages from getting started
till being destroyed. The valid state changes are mainly as follows:
"start" - "pause" - "resume" - "stop" - "destroy"
For example:
"start" - "pause" - "resume" - "pause" - "resume" - "stop" - "start" - "pause" - "resume" - "stop" - "destroy"
The implementation is suffixed with "Machine" instead of "Automaton" for differentiation with any interface of similar (same) name.
-
Nested Class Summary
Nested classes/interfaces inherited from class LifecycleMachine
LifecycleMachine.ManualLifecycleMachineNested classes/interfaces inherited from interface Destroyable
Destroyable.DestroyAutomatonNested classes/interfaces inherited from interface Initializable
Initializable.InitializeAutomaton, Initializable.InitializeBuilder<B>, Initializable.UncheckedInitializableNested classes/interfaces inherited from interface InitializedAccessor
InitializedAccessor.InitializedMutator, InitializedAccessor.InitializedPropertyNested classes/interfaces inherited from interface LifecycleComponent
LifecycleComponent.LifecycleAutomaton, LifecycleComponent.UncheckedLifecycleComponentNested classes/interfaces inherited from interface LifecycleStatusAccessor
LifecycleStatusAccessor.LifecycleStatusBuilder<B>, LifecycleStatusAccessor.LifecycleStatusMutator, LifecycleStatusAccessor.LifecycleStatusPropertyNested classes/interfaces inherited from interface Pausable
Pausable.PauseAutomaton, Pausable.PauseBuilder<B>, Pausable.UncheckedPausableNested classes/interfaces inherited from interface Resumable
Resumable.ResumeAutomaton, Resumable.ResumeBuilder<B>, Resumable.UncheckedResumableNested classes/interfaces inherited from interface RunningAccessor
RunningAccessor.RunningMutator, RunningAccessor.RunningPropertyNested classes/interfaces inherited from interface Startable
Startable.StartAutomaton, Startable.StartBuilder<B>, Startable.UncheckedStartableNested classes/interfaces inherited from interface Stoppable
Stoppable.StopAutomaton, Stoppable.StopBuilder<B>, Stoppable.UncheckedStoppable -
Constructor Summary
ConstructorsConstructorDescriptionInstantiates a newObservableLifecycleStatusMachine.ObservableLifecycleStatusMachine(ExecutorService aExecutorService, ExecutionStrategy aExecutionStrategy) Instantiates a newObservableLifecycleStatusMachine.ObservableLifecycleStatusMachine(LifecycleComponent aLifecycleComponent) Instantiates the classObservableLifecycleStatusMachine.ObservableLifecycleStatusMachine(LifecycleComponent aLifecycleComponent, ExecutorService aExecutorService, ExecutionStrategy aExecutionStrategy) Instantiates the classObservableLifecycleStatusMachine.ObservableLifecycleStatusMachine(LifecycleComponent aLifecycleComponent, EventMetaData aEventMetaData) Instantiates the classObservableLifecycleStatusMachine.ObservableLifecycleStatusMachine(LifecycleComponent aLifecycleComponent, EventMetaData aEventMetaData, ExecutorService aExecutorService, ExecutionStrategy aExecutionStrategy) Instantiates the classObservableLifecycleStatusMachine.ObservableLifecycleStatusMachine(LifecycleComponent aLifecycleComponent, EventMetaData aEventMetaData, SRC aSource) Instantiates the classObservableLifecycleStatusMachine.ObservableLifecycleStatusMachine(LifecycleComponent aLifecycleComponent, EventMetaData aEventMetaData, SRC aSource, ExecutorService aExecutorService, ExecutionStrategy aExecutionStrategy) Instantiates the classObservableLifecycleStatusMachine.ObservableLifecycleStatusMachine(LifecycleComponent aLifecycleComponent, SRC aSource) Instantiates the classObservableLifecycleStatusMachine.ObservableLifecycleStatusMachine(LifecycleComponent aLifecycleComponent, SRC aSource, ExecutorService aExecutorService, ExecutionStrategy aExecutionStrategy) Instantiates the classObservableLifecycleStatusMachine.ObservableLifecycleStatusMachine(EventMetaData aEventMetaData) Instantiates a newObservableLifecycleStatusMachine.ObservableLifecycleStatusMachine(EventMetaData aEventMetaData, ExecutorService aExecutorService, ExecutionStrategy aExecutionStrategy) Instantiates a newObservableLifecycleStatusMachine.ObservableLifecycleStatusMachine(EventMetaData aEventMetaData, SRC aSource) Instantiates a newObservableLifecycleStatusMachine.ObservableLifecycleStatusMachine(EventMetaData aEventMetaData, SRC aSource, ExecutorService aExecutorService, ExecutionStrategy aExecutionStrategy) Instantiates a newObservableLifecycleStatusMachine.ObservableLifecycleStatusMachine(SRC aSource) Instantiates a newObservableLifecycleStatusMachine.ObservableLifecycleStatusMachine(SRC aSource, ExecutorService aExecutorService, ExecutionStrategy aExecutionStrategy) Instantiates a newObservableLifecycleStatusMachine. -
Method Summary
Modifier and TypeMethodDescriptionvoiddestroy()booleanhasObserver(LifecycleStatusObserver<InitializeAccomplishedEvent<SRC>, StartAccomplishedEvent<SRC>, ResumeAccomplishedEvent<SRC>, PauseAccomplishedEvent<SRC>, StopAccomplishedEvent<SRC>, DestroyAccomplishedEvent<SRC>, EventMetaData, SRC> aObserver) voidvoidpause()voidresume()voidstart()voidstop()booleansubscribeObserver(LifecycleStatusObserver<InitializeAccomplishedEvent<SRC>, StartAccomplishedEvent<SRC>, ResumeAccomplishedEvent<SRC>, PauseAccomplishedEvent<SRC>, StopAccomplishedEvent<SRC>, DestroyAccomplishedEvent<SRC>, EventMetaData, SRC> aObserver) booleanMethods inherited from class LifecycleMachine
getLifecycleComponent, getLifecycleStatus, isDestroyable, isDestroyed, isInitalizable, isInitialized, isPausable, isPaused, isResumable, isRunning, isStartable, isStoppable, isStopped, setLifecycleStatus
-
Constructor Details
-
ObservableLifecycleStatusMachine
public ObservableLifecycleStatusMachine()Instantiates a newObservableLifecycleStatusMachine. -
ObservableLifecycleStatusMachine
Instantiates a newObservableLifecycleStatusMachine.- Parameters:
aSource- The source instance to be used when firing events in case the source is to be different from this class' instance.
-
ObservableLifecycleStatusMachine
Instantiates a newObservableLifecycleStatusMachine.- Parameters:
aEventMetaData- TheEventMetaDatato be used when firing events in case theEventMetaDatais to be different from the auto-generatedEventMetaData.
-
ObservableLifecycleStatusMachine
Instantiates a newObservableLifecycleStatusMachine.- Parameters:
aEventMetaData- TheEventMetaDatato be used when firing events in case theEventMetaDatais to be different from the auto-generatedEventMetaData.aSource- The source instance to be used when firing events in case the source is to be different from this class' instance.
-
ObservableLifecycleStatusMachine
Instantiates the classObservableLifecycleStatusMachine.- See Also:
-
ObservableLifecycleStatusMachine
Instantiates the classObservableLifecycleStatusMachine.- Parameters:
aSource- The source instance to be used when firing events in case the source is to be different from this class' instance.- See Also:
-
ObservableLifecycleStatusMachine
public ObservableLifecycleStatusMachine(LifecycleComponent aLifecycleComponent, EventMetaData aEventMetaData) Instantiates the classObservableLifecycleStatusMachine.- Parameters:
aEventMetaData- TheEventMetaDatato be used when firing events in case theEventMetaDatais to be different from the auto-generatedEventMetaData.- See Also:
-
ObservableLifecycleStatusMachine
public ObservableLifecycleStatusMachine(LifecycleComponent aLifecycleComponent, EventMetaData aEventMetaData, SRC aSource) Instantiates the classObservableLifecycleStatusMachine.- Parameters:
aEventMetaData- TheEventMetaDatato be used when firing events in case theEventMetaDatais to be different from the auto-generatedEventMetaData. *aSource- The source instance to be used when firing events in case the source is to be different from this class' instance.- See Also:
-
ObservableLifecycleStatusMachine
public ObservableLifecycleStatusMachine(ExecutorService aExecutorService, ExecutionStrategy aExecutionStrategy) Instantiates a newObservableLifecycleStatusMachine.- Parameters:
aExecutorService- The executor service to be used when firingActionEventinstances in multiple threads (if null then a default one is used).aExecutionStrategy- TheExecutionStrategyto be used when firingActionEventinstance (if null then the defaultExecutionStrategy.SEQUENTIALis used).
-
ObservableLifecycleStatusMachine
public ObservableLifecycleStatusMachine(SRC aSource, ExecutorService aExecutorService, ExecutionStrategy aExecutionStrategy) Instantiates a newObservableLifecycleStatusMachine.- Parameters:
aSource- The source instance to be used when firing events in case the source is to be different from this class' instance.aExecutorService- The executor service to be used when firingActionEventinstances in multiple threads (if null then a default one is used).aExecutionStrategy- TheExecutionStrategyto be used when firingActionEventinstance (if null then the defaultExecutionStrategy.SEQUENTIALis used).
-
ObservableLifecycleStatusMachine
public ObservableLifecycleStatusMachine(EventMetaData aEventMetaData, ExecutorService aExecutorService, ExecutionStrategy aExecutionStrategy) Instantiates a newObservableLifecycleStatusMachine.- Parameters:
aEventMetaData- TheEventMetaDatato be used when firing events in case theEventMetaDatais to be different from the auto-generatedEventMetaData.aExecutorService- The executor service to be used when firingActionEventinstances in multiple threads (if null then a default one is used).aExecutionStrategy- TheExecutionStrategyto be used when firingActionEventinstance (if null then the defaultExecutionStrategy.SEQUENTIALis used).
-
ObservableLifecycleStatusMachine
public ObservableLifecycleStatusMachine(EventMetaData aEventMetaData, SRC aSource, ExecutorService aExecutorService, ExecutionStrategy aExecutionStrategy) Instantiates a newObservableLifecycleStatusMachine.- Parameters:
aEventMetaData- TheEventMetaDatato be used when firing events in case theEventMetaDatais to be different from the auto-generatedEventMetaData.aSource- The source instance to be used when firing events in case the source is to be different from this class' instance.aExecutorService- The executor service to be used when firingActionEventinstances in multiple threads (if null then a default one is used).aExecutionStrategy- TheExecutionStrategyto be used when firingActionEventinstance (if null then the defaultExecutionStrategy.SEQUENTIALis used).
-
ObservableLifecycleStatusMachine
public ObservableLifecycleStatusMachine(LifecycleComponent aLifecycleComponent, ExecutorService aExecutorService, ExecutionStrategy aExecutionStrategy) Instantiates the classObservableLifecycleStatusMachine.- Parameters:
aExecutorService- The executor service to be used when firingActionEventinstances in multiple threads (if null then a default one is used). *aExecutionStrategy- TheExecutionStrategyto be used when firingActionEventinstance (if null then the defaultExecutionStrategy.SEQUENTIALis used).- See Also:
-
ObservableLifecycleStatusMachine
public ObservableLifecycleStatusMachine(LifecycleComponent aLifecycleComponent, SRC aSource, ExecutorService aExecutorService, ExecutionStrategy aExecutionStrategy) Instantiates the classObservableLifecycleStatusMachine.- Parameters:
aSource- The source instance to be used when firing events in case the source is to be different from this class' instance. *aExecutorService- The executor service to be used when firingActionEventinstances in multiple threads (if null then a default one is used). *aExecutionStrategy- TheExecutionStrategyto be used when firingActionEventinstance (if null then the defaultExecutionStrategy.SEQUENTIALis used).- See Also:
-
ObservableLifecycleStatusMachine
public ObservableLifecycleStatusMachine(LifecycleComponent aLifecycleComponent, EventMetaData aEventMetaData, ExecutorService aExecutorService, ExecutionStrategy aExecutionStrategy) Instantiates the classObservableLifecycleStatusMachine.- Parameters:
aEventMetaData- TheEventMetaDatato be used when firing events in case theEventMetaDatais to be different from the auto-generatedEventMetaData. *aExecutorService- The executor service to be used when firingActionEventinstances in multiple threads (if null then a default one is used). *aExecutionStrategy- TheExecutionStrategyto be used when firingActionEventinstance (if null then the defaultExecutionStrategy.SEQUENTIALis used).- See Also:
-
ObservableLifecycleStatusMachine
public ObservableLifecycleStatusMachine(LifecycleComponent aLifecycleComponent, EventMetaData aEventMetaData, SRC aSource, ExecutorService aExecutorService, ExecutionStrategy aExecutionStrategy) Instantiates the classObservableLifecycleStatusMachine.- Parameters:
aEventMetaData- TheEventMetaDatato be used when firing events in case theEventMetaDatais to be different from the auto-generatedEventMetaData. *aSource- The source instance to be used when firing events in case the source is to be different from this class' instance. *aExecutorService- The executor service to be used when firingActionEventinstances in multiple threads (if null then a default one is used). *aExecutionStrategy- TheExecutionStrategyto be used when firingActionEventinstance (if null then the defaultExecutionStrategy.SEQUENTIALis used).- See Also:
-
-
Method Details
-
hasObserver
public boolean hasObserver(LifecycleStatusObserver<InitializeAccomplishedEvent<SRC>, StartAccomplishedEvent<SRC>, ResumeAccomplishedEvent<SRC>, PauseAccomplishedEvent<SRC>, StopAccomplishedEvent<SRC>, DestroyAccomplishedEvent<SRC>, EventMetaData, SRC> aObserver) - Specified by:
hasObserverin interfaceObservable<SRC>
-
subscribeObserver
public boolean subscribeObserver(LifecycleStatusObserver<InitializeAccomplishedEvent<SRC>, StartAccomplishedEvent<SRC>, ResumeAccomplishedEvent<SRC>, PauseAccomplishedEvent<SRC>, StopAccomplishedEvent<SRC>, DestroyAccomplishedEvent<SRC>, EventMetaData, SRC> aObserver) - Specified by:
subscribeObserverin interfaceObservable<SRC>
-
unsubscribeObserver
public boolean unsubscribeObserver(LifecycleStatusObserver<InitializeAccomplishedEvent<SRC>, StartAccomplishedEvent<SRC>, ResumeAccomplishedEvent<SRC>, PauseAccomplishedEvent<SRC>, StopAccomplishedEvent<SRC>, DestroyAccomplishedEvent<SRC>, EventMetaData, SRC> aObserver) - Specified by:
unsubscribeObserverin interfaceObservable<SRC>
-
initialize
- Specified by:
initializein interfaceInitializable- Overrides:
initializein classLifecycleMachine- Throws:
InitializeException
-
start
- Specified by:
startin interfaceStartable- Overrides:
startin classLifecycleMachine- Throws:
StartException
-
pause
- Specified by:
pausein interfacePausable- Overrides:
pausein classLifecycleMachine- Throws:
PauseException
-
resume
- Specified by:
resumein interfaceResumable- Overrides:
resumein classLifecycleMachine- Throws:
ResumeException
-
stop
- Specified by:
stopin interfaceStoppable- Overrides:
stopin classLifecycleMachine- Throws:
StopException
-
destroy
public void destroy()- Specified by:
destroyin interfaceDestroyable- Overrides:
destroyin classLifecycleMachine
-