de.intarsys.tools.event
Class LifecycleWatchdog

java.lang.Object
  extended by 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
protected  INotificationListener listenFactoryLifecycle
          A listener for factory lifecycle events
protected  INotificationListener listenObjectLifecycle
          A listener for object lifecycle events
 
Constructor Summary
LifecycleWatchdog(INotificationSupport factory)
           
 
Method Summary
protected  void arm(INotificationSupport object)
           
protected  void disarm(INotificationSupport object)
           
 java.lang.String getLabel()
           
 INotificationSupport getObject()
           
 boolean isStarted()
          Answer true if this object is started
protected  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)
          Answer true if we are interested in the object instance.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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
Answer true if this object is started

Specified by:
isStarted in interface IStartStop
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 interface IStartStop
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 interface IStartStop
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 interface IStartStop
Parameters:
visited - The optional set of already visited objects in the stop request cycle.

supports

protected boolean supports(java.lang.Object object)
Answer true if we are interested in the object 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 the object instance.

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object