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:
CompositeComponent.ExtendedCompositeComponent<CTX,​CON>, ConfigurableLifeCycleComponent.ConfigurableLifeCycleAutomaton<CTX>
All Known Implementing Classes:
CompositeComponentImpl.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.