Package de.intarsys.tools.event
Class LifecycleWatchdog
- java.lang.Object
-
- de.intarsys.tools.event.LifecycleWatchdog
-
- All Implemented Interfaces:
IInstantiable
,IStartStop
public abstract class LifecycleWatchdog extends java.lang.Object implements IStartStop
A tool for intercepting and handling lifecycle related events.
-
-
Field Summary
Fields Modifier and Type Field Description protected INotificationListener
listenFactoryLifecycle
A listener for factory lifecycle eventsprotected INotificationListener
listenObjectLifecycle
A listener for object lifecycle events
-
Constructor Summary
Constructors Constructor Description LifecycleWatchdog(INotificationSupport factory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
arm(INotificationSupport object)
protected void
disarm(INotificationSupport object)
java.lang.String
getLabel()
INotificationSupport
getObject()
boolean
isStarted()
Answertrue
if this object is startedprotected void
myFactoryStarted(Event event)
protected void
myFactoryStopped(Event event)
protected void
myObjectActivated(java.lang.Object object)
A previously armed IObject is activated.protected void
myObjectCreated(java.lang.Object object)
A new IObject is created and armed for further notification.protected void
myObjectDeactivated(java.lang.Object object)
A previously armed IObject is deactivated.protected void
myObjectDestroyed(java.lang.Object object)
A previously armed IObject is destroyed.protected void
myObjectStarted(java.lang.Object object)
A previously armed IObject is started.protected void
myObjectStopped(java.lang.Object object)
A previously armed IObject is stopped.protected boolean
myObjectStopRequested(java.lang.Object object)
A previously armed IObject is requested to stop.protected void
objectActivated(java.lang.Object object)
Redefine to get informed when an IObject is activated.protected void
objectCreated(java.lang.Object object)
Redefine to get informed when an IObject is created.protected void
objectDeactivated(java.lang.Object object)
Redefine to get informed when an IObject is deactivated.protected void
objectDestroyed(java.lang.Object object)
Redefine to get informed when an IObject is destroyed.protected void
objectStarted(java.lang.Object object)
Redefine to get informed when an IObject is started.protected void
objectStopped(java.lang.Object object)
Redefine to get informed when an IObject is requested to stop.protected boolean
objectStopRequested(java.lang.Object object)
Redefine to get informed when an IObject is stopped.protected void
onFactoryLifecycleEvent(Event event)
A previously armed object is activated.protected void
onObjectLifecycleEvent(Event event)
A previously armed object is activated.void
setLabel(java.lang.String label)
void
start()
Arm the watchdog itself.void
startAuto()
Arm the watchdog itself.void
stop()
Disarm the watchdog itself.boolean
stopRequested(java.util.Set visited)
Ask the component if it agrees to end its lifecycle at the very moment.protected boolean
supports(java.lang.Object object)
Answertrue
if we are interested in theobject
instance.java.lang.String
toString()
-
-
-
Field Detail
-
listenObjectLifecycle
protected final INotificationListener listenObjectLifecycle
A listener for object lifecycle events
-
listenFactoryLifecycle
protected final INotificationListener listenFactoryLifecycle
A listener for factory lifecycle events
-
-
Constructor Detail
-
LifecycleWatchdog
public LifecycleWatchdog(INotificationSupport factory)
-
-
Method Detail
-
arm
protected void arm(INotificationSupport object)
-
disarm
protected void disarm(INotificationSupport object)
-
getLabel
public java.lang.String getLabel()
-
getObject
public INotificationSupport getObject()
-
isStarted
public boolean isStarted()
Description copied from interface:IStartStop
Answertrue
if this object is started- Specified by:
isStarted
in interfaceIStartStop
- Returns:
- Answer
true
if this object is started.
-
myFactoryStarted
protected final void myFactoryStarted(Event event)
-
myFactoryStopped
protected final void myFactoryStopped(Event event)
-
myObjectActivated
protected final void myObjectActivated(java.lang.Object object)
A previously armed IObject is activated.- Parameters:
event
- The activation event instance
-
myObjectCreated
protected final void myObjectCreated(java.lang.Object object)
A new IObject is created and armed for further notification.- Parameters:
event
- The activation event instance
-
myObjectDeactivated
protected final void myObjectDeactivated(java.lang.Object object)
A previously armed IObject is deactivated.- Parameters:
event
- The activation event instance
-
myObjectDestroyed
protected final void myObjectDestroyed(java.lang.Object object)
A previously armed IObject is destroyed.- Parameters:
event
- The activation event instance
-
myObjectStarted
protected final void myObjectStarted(java.lang.Object object)
A previously armed IObject is started.- Parameters:
event
- The activation event instance
-
myObjectStopped
protected final void myObjectStopped(java.lang.Object object)
A previously armed IObject is stopped. All notification listeners are removed.- Parameters:
event
- The activation event instance
-
myObjectStopRequested
protected final boolean myObjectStopRequested(java.lang.Object object)
A previously armed IObject is requested to stop.- Parameters:
event
- The event instance
-
objectActivated
protected void objectActivated(java.lang.Object object)
Redefine to get informed when an IObject is activated.- Parameters:
object
- The object that was activated.
-
objectCreated
protected void objectCreated(java.lang.Object object)
Redefine to get informed when an IObject is created.- Parameters:
object
- The object that was created,
-
objectDeactivated
protected void objectDeactivated(java.lang.Object object)
Redefine to get informed when an IObject is deactivated.- Parameters:
object
- the object that was deactivated.
-
objectDestroyed
protected void objectDestroyed(java.lang.Object object)
Redefine to get informed when an IObject is destroyed.- Parameters:
object
- The object that was destroyed.
-
objectStarted
protected void objectStarted(java.lang.Object object)
Redefine to get informed when an IObject is started.- Parameters:
object
- The object that was started.
-
objectStopped
protected void objectStopped(java.lang.Object object)
Redefine to get informed when an IObject is requested to stop.- Parameters:
object
- The object that was stopped.
-
objectStopRequested
protected boolean objectStopRequested(java.lang.Object object)
Redefine to get informed when an IObject is stopped.- Parameters:
object
- The object that should be stopped.
-
onFactoryLifecycleEvent
protected void onFactoryLifecycleEvent(Event event)
A previously armed object is activated.- Parameters:
event
- The activation event instance
-
onObjectLifecycleEvent
protected void onObjectLifecycleEvent(Event event)
A previously armed object is activated.- Parameters:
event
- The activation event instance
-
setLabel
public void setLabel(java.lang.String label)
-
start
public void start()
Arm the watchdog itself. From now it will listen to the creation of new instances.- Specified by:
start
in interfaceIStartStop
- See Also:
IStartStop.start()
-
startAuto
public void startAuto()
Arm the watchdog itself. From now it will listen to the creation of new instances.- See Also:
IStartStop.start()
-
stop
public void stop()
Disarm the watchdog itself. From now it will not longer listen to the creation of new instances.- Specified by:
stop
in interfaceIStartStop
- See Also:
IStartStop.stop()
-
stopRequested
public boolean stopRequested(java.util.Set visited)
Description copied from interface:IStartStop
Ask the component if it agrees to end its lifecycle at the very moment. The component may deny this request, but it must be prepared anyway to be stopped.- Specified by:
stopRequested
in interfaceIStartStop
- Parameters:
visited
- The optional set of already visited objects in the stop request cycle.
-
supports
protected boolean supports(java.lang.Object object)
Answertrue
if we are interested in theobject
instance. If we are interested the watchdog will register itself for the lifecycle events.- Parameters:
object
- The newly created object.- Returns:
- Answer
true
if we are interested in theobject
instance.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-