public abstract class LifecycleBase extends java.lang.Object implements Lifecycle
Lifecycle
interface that implements the
state transition rules for Lifecycle.start()
and
Lifecycle.stop()
Lifecycle.SingleUse
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(java.lang.String type,
java.lang.Object data)
Allow sub classes to fire
Lifecycle events. |
LifecycleState |
getState()
Obtain the current state of the source component.
|
java.lang.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,
java.lang.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 Lifecycle
listener
- The listener to addpublic LifecycleListener[] findLifecycleListeners()
findLifecycleListeners
in interface Lifecycle
public void removeLifecycleListener(LifecycleListener listener)
removeLifecycleListener
in interface Lifecycle
listener
- The listener to removeprotected void fireLifecycleEvent(java.lang.String type, java.lang.Object data)
Lifecycle
events.type
- Event typedata
- Data associated with event.public final void init() throws LifecycleException
Lifecycle
LifecycleEvent
s will be fired in the following order:
init
in interface Lifecycle
LifecycleException
- if this component detects a fatal error
that prevents this component from being usedprotected abstract void initInternal() throws LifecycleException
LifecycleException
public final void start() throws LifecycleException
LifecycleEvent
s 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 Lifecycle
LifecycleException
- 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.LifecycleException
public final void stop() throws LifecycleException
LifecycleEvent
s 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_PREP
stop
in interface Lifecycle
LifecycleException
- 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.LifecycleException
public final void destroy() throws LifecycleException
Lifecycle
LifecycleEvent
s will
be fired in the following order:
destroy
in interface Lifecycle
LifecycleException
- if this component detects a fatal error
that prevents this component from being usedprotected abstract void destroyInternal() throws LifecycleException
LifecycleException
public LifecycleState getState()
public java.lang.String getStateName()
Lifecycle.getState()
.getStateName
in interface Lifecycle
protected 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 componentLifecycleException
protected void setState(LifecycleState state, java.lang.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
eventLifecycleException
Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.