Interface LifecycleComponent

All Superinterfaces:
Destroyable, Initializable, Pausable, Resumable, Startable, Stoppable
All Known Subinterfaces:
ComponentComposite, ComponentComposite.ExtendedComponentComposite<CTX,CON>, LifecycleComponent.LifecycleAutomaton, LifecycleComponent.UncheckedLifecycleComponent
All Known Implementing Classes:
AbstractComponentComposite, AbstractComponentComposite.ExtendedCompositeComponentImpl, LifecycleAutomatonImpl, LifecycleAutomatonImpl.ManualLifecycleAutomatonImpl

public interface LifecycleComponent extends Initializable, Startable, Pausable, Resumable, Stoppable, Destroyable
A component implementing the LifecycleComponent 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 LifecycleComponents each identified by a dedicated handle. Operations on the LifecycleComponent are invoked by this LifecycleComponentHandle.LifecycleAutomatonHandle with a handle identifying the according LifecycleComponent.

The LifecycleComponent 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 LifecycleComponent.