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 ConfigurableLifecycleComponent
s 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
Modifier and TypeInterfaceDescriptionstatic interface
A system implementing theConfigurableLifecycleComponent.ConfigurableLifecycleAutomaton
interface supports managingConfigurableLifecycleComponent
instances 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.DestroyAutomaton
Nested classes/interfaces inherited from interface org.refcodes.component.Pausable
Pausable.PauseAutomaton, Pausable.PauseBuilder<B extends Pausable.PauseBuilder<B>>, Pausable.UncheckedPausable
Nested classes/interfaces inherited from interface org.refcodes.component.Resumable
Resumable.ResumeAutomaton, Resumable.ResumeBuilder<B extends Resumable.ResumeBuilder<B>>, Resumable.UncheckedResumable
Nested classes/interfaces inherited from interface org.refcodes.component.Startable
Startable.StartAutomaton, Startable.StartBuilder<B extends Startable.StartBuilder<B>>, Startable.UncheckedStartable
Nested 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, initializeUnchecked
Methods inherited from interface org.refcodes.component.Destroyable
destroy
Methods inherited from interface org.refcodes.component.Pausable
pause, pauseUnchecked
Methods inherited from interface org.refcodes.component.Resumable
resume, resumeUnchecked
Methods inherited from interface org.refcodes.component.Startable
start, startUnchecked
Methods inherited from interface org.refcodes.component.Stoppable
stop, stopUnchecked