org.apache.openjpa.event
Class LifecycleEventManager

java.lang.Object
  extended by org.apache.openjpa.event.LifecycleEventManager
All Implemented Interfaces:
CallbackModes

public class LifecycleEventManager
extends Object
implements CallbackModes

Manager that can be used to track and notify listeners on lifecycle events. This class is optimized for event firing rather than for adding and removing listeners, which are O(n) operations. This class also does not maintain perfect set semantics for listeners; it is possible to wind up having the same listener invoked multiple times for a single event if it is added to this manager multiple times with different classes, or with a base class and its subclass.

Since:
0.3.3
Author:
Steve Kim, Abe White

Nested Class Summary
static interface LifecycleEventManager.ListenerAdapter
          Interface that facades to other lifecycle listener interfaces can implement to choose which events to respond to based on their delegate.
static class LifecycleEventManager.ListenerList
          Extended list that tracks what event types its elements care about.
 
Field Summary
 
Fields inherited from interface org.apache.openjpa.event.CallbackModes
CALLBACK_FAIL_FAST, CALLBACK_IGNORE, CALLBACK_LOG, CALLBACK_RETHROW, CALLBACK_ROLLBACK
 
Constructor Summary
LifecycleEventManager(Log log)
           
 
Method Summary
 void addListener(Object listener, Class[] classes)
          Register a lifecycle listener for the given classes.
 Exception[] fireEvent(Object source, ClassMetaData meta, int type)
          Fire lifecycle event to all registered listeners without an argument.
 Exception[] fireEvent(Object source, Object related, ClassMetaData meta, int type)
          Fire lifecycle event to all registered listeners.
 boolean hasAttachListeners(Object source, ClassMetaData meta)
          Return whether there are listeners or callbacks for the given source.
 boolean hasClearListeners(Object source, ClassMetaData meta)
          Return whether there are listeners or callbacks for the given source.
 boolean hasDeleteListeners(Object source, ClassMetaData meta)
          Return whether there are listeners or callbacks for the given source.
 boolean hasDetachListeners(Object source, ClassMetaData meta)
          Return whether there are listeners or callbacks for the given source.
 boolean hasDirtyListeners(Object source, ClassMetaData meta)
          Return whether there are listeners or callbacks for the given source.
 boolean hasLoadListeners(Object source, ClassMetaData meta)
          Return whether there are listeners or callbacks for the given source.
 boolean hasPersistListeners(Object source, ClassMetaData meta)
          Return whether there are listeners or callbacks for the given source.
 boolean hasStoreListeners(Object source, ClassMetaData meta)
          Return whether there are listeners or callbacks for the given source.
 boolean hasUpdateListeners(Object source, ClassMetaData meta)
          Return whether there are listeners or callbacks for the given source.
 boolean isFailFast()
          Whether to fail after first exception when firing events to listeners.
 void removeListener(Object listener)
          Remove the given listener.
 void setFailFast(boolean failFast)
          Whether to fail after first exception when firing events to listeners.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LifecycleEventManager

public LifecycleEventManager(Log log)
Method Detail

isFailFast

public boolean isFailFast()
Whether to fail after first exception when firing events to listeners.


setFailFast

public void setFailFast(boolean failFast)
Whether to fail after first exception when firing events to listeners.


addListener

public void addListener(Object listener,
                        Class[] classes)
Register a lifecycle listener for the given classes. If the classes array is null, register for all classes.


removeListener

public void removeListener(Object listener)
Remove the given listener.


hasPersistListeners

public boolean hasPersistListeners(Object source,
                                   ClassMetaData meta)
Return whether there are listeners or callbacks for the given source.


hasDeleteListeners

public boolean hasDeleteListeners(Object source,
                                  ClassMetaData meta)
Return whether there are listeners or callbacks for the given source.


hasClearListeners

public boolean hasClearListeners(Object source,
                                 ClassMetaData meta)
Return whether there are listeners or callbacks for the given source.


hasLoadListeners

public boolean hasLoadListeners(Object source,
                                ClassMetaData meta)
Return whether there are listeners or callbacks for the given source.


hasStoreListeners

public boolean hasStoreListeners(Object source,
                                 ClassMetaData meta)
Return whether there are listeners or callbacks for the given source.


hasUpdateListeners

public boolean hasUpdateListeners(Object source,
                                  ClassMetaData meta)
Return whether there are listeners or callbacks for the given source.


hasDirtyListeners

public boolean hasDirtyListeners(Object source,
                                 ClassMetaData meta)
Return whether there are listeners or callbacks for the given source.


hasDetachListeners

public boolean hasDetachListeners(Object source,
                                  ClassMetaData meta)
Return whether there are listeners or callbacks for the given source.


hasAttachListeners

public boolean hasAttachListeners(Object source,
                                  ClassMetaData meta)
Return whether there are listeners or callbacks for the given source.


fireEvent

public Exception[] fireEvent(Object source,
                             ClassMetaData meta,
                             int type)
Fire lifecycle event to all registered listeners without an argument.


fireEvent

public Exception[] fireEvent(Object source,
                             Object related,
                             ClassMetaData meta,
                             int type)
Fire lifecycle event to all registered listeners.



Copyright © 2006-2010 Apache Software Foundation. All Rights Reserved.