public abstract class LifecycleBase extends Object implements Lifecycle
Lifecycle interface that implements the
state transition rules for Lifecycle.start() and
Lifecycle.stop()AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT| Constructor and Description |
|---|
LifecycleBase() |
| Modifier and Type | Method and Description |
|---|---|
void |
addLifecycleListener(LifecycleListener listener)
Add a LifecycleEvent listener to this component.
|
void |
destroy()
Prepare to discard the object.
|
protected abstract void |
destroyInternal() |
LifecycleListener[] |
findLifecycleListeners()
Get the life cycle listeners associated with this life cycle.
|
protected void |
fireLifecycleEvent(String type,
Object data)
Allow sub classes to fire
Lifecycle events. |
LifecycleState |
getState()
Obtain the current state of the source component.
|
String |
getStateName()
Obtain a textual representation of the current component state.
|
void |
init()
Prepare the component for starting.
|
protected abstract void |
initInternal() |
void |
removeLifecycleListener(LifecycleListener listener)
Remove a LifecycleEvent listener from this component.
|
protected void |
setState(LifecycleState state)
Provides a mechanism for sub-classes to update the component state.
|
protected void |
setState(LifecycleState state,
Object data)
Provides a mechanism for sub-classes to update the component state.
|
void |
start()
Prepare for the beginning of active use of the public methods other than
property getters/setters and life cycle methods of this component.
|
protected abstract void |
startInternal()
Sub-classes must ensure that the state is changed to
LifecycleState.STARTING during the execution of this method. |
void |
stop()
Gracefully terminate the active use of the public methods other than
property getters/setters and life cycle methods of this component.
|
protected abstract void |
stopInternal()
Sub-classes must ensure that the state is changed to
LifecycleState.STOPPING during the execution of this method. |
public void addLifecycleListener(LifecycleListener listener)
addLifecycleListener in interface Lifecyclelistener - The listener to addpublic LifecycleListener[] findLifecycleListeners()
findLifecycleListeners in interface Lifecyclepublic void removeLifecycleListener(LifecycleListener listener)
removeLifecycleListener in interface Lifecyclelistener - The listener to removeprotected void fireLifecycleEvent(String type, Object data)
Lifecycle events.type - Event typedata - Data associated with event.public final void init()
throws LifecycleException
LifecycleLifecycleEvents will be fired in the following order:
init in interface LifecycleLifecycleException - if this component detects a fatal error
that prevents this component from being usedprotected abstract void initInternal()
throws LifecycleException
LifecycleExceptionpublic final void start()
throws LifecycleException
LifecycleEvents will be fired in the
following order:
LifecycleState.STARTING_PREP.LifecycleState.STARTING
and that the public methods other than property
getters/setters and life cycle methods may be
used.LifecycleState.STARTED.
start in interface LifecycleLifecycleException - if this component detects a fatal error
that prevents this component from being usedprotected abstract void startInternal()
throws LifecycleException
LifecycleState.STARTING during the execution of this method.
Changing state will trigger the Lifecycle.START_EVENT event.
If a component fails to start it may either throw a
LifecycleException which will cause it's parent to fail to start
or it can place itself in the error state in which case stop()
will be called on the failed component but the parent component will
continue to start normally.LifecycleExceptionpublic final void stop()
throws LifecycleException
LifecycleEvents will be fired in the following order:
LifecycleState.STOPPING_PREP.LifecycleState.STOPPING
and that the public methods other than property
getters/setters and life cycle methods may no longer be
used.LifecycleState.STOPPED.
LifecycleState.FAILED then the
three events above will be fired but the component will transition
directly from LifecycleState.FAILED to
LifecycleState.STOPPING, bypassing
LifecycleState.STOPPING_PREPstop in interface LifecycleLifecycleException - if this component detects a fatal error
that needs to be reportedprotected abstract void stopInternal()
throws LifecycleException
LifecycleState.STOPPING during the execution of this method.
Changing state will trigger the Lifecycle.STOP_EVENT event.LifecycleExceptionpublic final void destroy()
throws LifecycleException
LifecycleLifecycleEvents will
be fired in the following order:
destroy in interface LifecycleLifecycleException - if this component detects a fatal error
that prevents this component from being usedprotected abstract void destroyInternal()
throws LifecycleException
LifecycleExceptionpublic LifecycleState getState()
public String getStateName()
Lifecycle.getState().getStateName in interface Lifecycleprotected void setState(LifecycleState state) throws LifecycleException
Lifecycle event. It will also check that any attempted state
transition is valid for a sub-class.state - The new state for this componentLifecycleExceptionprotected void setState(LifecycleState state, Object data) throws LifecycleException
Lifecycle event. It will also check that any attempted state
transition is valid for a sub-class.state - The new state for this componentdata - The data to pass to the associated Lifecycle eventLifecycleExceptionCopyright © 2000-2015 Apache Software Foundation. All Rights Reserved.