You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2008/01/03 10:47:39 UTC

svn commit: r608394 - in /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map: EntityListenerFactory.java EntityResolver.java

Author: aadamchik
Date: Thu Jan  3 01:47:38 2008
New Revision: 608394

URL: http://svn.apache.org/viewvc?rev=608394&view=rev
Log:
CAY-949 Factory for lifecycle listeners
(support for nulls returned from the factory indicating listener suppression)

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/EntityListenerFactory.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/EntityResolver.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/EntityListenerFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/EntityListenerFactory.java?rev=608394&r1=608393&r2=608394&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/EntityListenerFactory.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/EntityListenerFactory.java Thu Jan  3 01:47:38 2008
@@ -34,6 +34,9 @@
      * Creates an instance of entity listener of a given class. "entity" parameter denotes
      * ObjEntity for which the listener is installed. It is null if this is a default
      * listener.
+     * 
+     * @return a listener of the given class. May return null to indicate that a
+     *         configured listener should be suppressed.
      */
     <T> T createListener(Class<T> listenerClass, ObjEntity entity);
 }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/EntityResolver.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/EntityResolver.java?rev=608394&r1=608393&r2=608394&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/EntityResolver.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/EntityResolver.java Thu Jan  3 01:47:38 2008
@@ -205,6 +205,9 @@
 
                 for (EntityListener listener : map.getDefaultEntityListeners()) {
                     Object listenerInstance = createListener(listener, null);
+                    if(listenerInstance == null) {
+                        continue;
+                    }
 
                     CallbackDescriptor[] callbacks = listener
                             .getCallbackMap()
@@ -228,6 +231,9 @@
                 // external listeners go first, entity's own callbacks go next
                 for (EntityListener listener : entity.getEntityListeners()) {
                     Object listenerInstance = createListener(listener, entity);
+                    if(listenerInstance == null) {
+                        continue;
+                    }
 
                     CallbackDescriptor[] callbacks = listener
                             .getCallbackMap()