Module org.refcodes.component
Package org.refcodes.component
Interface ConfigurableLifecycleComponent<CTX>
- Type Parameters:
CTX- the context used to initialize the implementing instance.
- All Superinterfaces:
Configurable<CTX>,Destroyable,Pausable,Resumable,Startable,Stoppable
- All Known Subinterfaces:
ComponentComposite.ExtendedComponentComposite<CTX,,CON> ConfigurableLifecycleComponent.ConfigurableLifecycleAutomaton<CTX>
- All Known Implementing Classes:
AbstractComponentComposite.ExtendedCompositeComponentImpl,ConfigurableLifecycleAutomatonImpl
public interface ConfigurableLifecycleComponent<CTX>
extends Configurable<CTX>, Startable, Pausable, Resumable, Stoppable, Destroyable
A component implementing the
ConfigurableLifecycleComponent interface
supports a life-cycle. I.e. such a component may be instructed from the
outside to run through several stages from getting started till being
destroyed. The valid state changes are mainly as follows: "initialize" -
"start" - "pause" - "resume" - "stop" - "destroy" For example: "initialize" -
"start" - "pause" - "resume" - "pause" - "resume" - "stop" - "start" -
"pause" - "resume" - "stop" - "destroy" The LifecycleComponentHandle.LifecycleAutomatonHandle
is a component managing various ConfigurableLifecycleComponents each
identified by a dedicated handle. Operations on the
ConfigurableLifecycleComponent are invoked by this
LifecycleComponentHandle.LifecycleAutomatonHandle with a handle identifying the according
ConfigurableLifecycleComponent. The
ConfigurableLifecycleComponent contains the business-logic where as
the LifecycleComponentHandle.LifecycleAutomatonHandle provides the frame for managing this
business-logic. The LifecycleComponent.LifecycleAutomaton takes care of the correct
life-cycle applied on a ConfigurableLifecycleComponent.-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceA system implementing theConfigurableLifecycleComponent.ConfigurableLifecycleAutomatoninterface supports managingConfigurableLifecycleComponentinstances and takes care that the open/close statuses are invoked in the correct order by throwing according exceptions in case the open/close-cycle is invoked in the wrong order.Nested classes/interfaces inherited from interface org.refcodes.component.Configurable
Configurable.ConfigureAutomaton<CTX>, Configurable.ConfigureBuilder<CTX,B extends Configurable.ConfigureBuilder<CTX, B>> Nested classes/interfaces inherited from interface org.refcodes.component.Destroyable
Destroyable.DestroyAutomatonNested classes/interfaces inherited from interface org.refcodes.component.Pausable
Pausable.PauseAutomaton, Pausable.PauseBuilder<B extends Pausable.PauseBuilder<B>>, Pausable.UncheckedPausableNested classes/interfaces inherited from interface org.refcodes.component.Resumable
Resumable.ResumeAutomaton, Resumable.ResumeBuilder<B extends Resumable.ResumeBuilder<B>>, Resumable.UncheckedResumableNested classes/interfaces inherited from interface org.refcodes.component.Startable
Startable.StartAutomaton, Startable.StartBuilder<B extends Startable.StartBuilder<B>>, Startable.UncheckedStartableNested classes/interfaces inherited from interface org.refcodes.component.Stoppable
Stoppable.StopAutomaton, Stoppable.StopBuilder<B extends Stoppable.StopBuilder<B>>, Stoppable.UncheckedStoppable -
Method Summary
Methods inherited from interface org.refcodes.component.Configurable
initialize, initializeUncheckedMethods inherited from interface org.refcodes.component.Destroyable
destroyMethods inherited from interface org.refcodes.component.Pausable
pause, pauseUncheckedMethods inherited from interface org.refcodes.component.Resumable
resume, resumeUncheckedMethods inherited from interface org.refcodes.component.Startable
start, startUncheckedMethods inherited from interface org.refcodes.component.Stoppable
stop, stopUnchecked