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:55:37 UTC

svn commit: r608409 - 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:55:36 2008
New Revision: 608409

URL: http://svn.apache.org/viewvc?rev=608409&view=rev
Log:
CAY-949 Factory for lifecycle listeners
(changing factory method signature to allow it to intercept cases when no listener class is available and return null or an arbitrary substitute)

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=608409&r1=608408&r2=608409&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:55:36 2008
@@ -38,5 +38,5 @@
      * @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);
+    Object createListener(EntityListener listenerMapping, 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=608409&r1=608408&r2=608409&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:55:36 2008
@@ -205,7 +205,7 @@
 
                 for (EntityListener listener : map.getDefaultEntityListeners()) {
                     Object listenerInstance = createListener(listener, null);
-                    if(listenerInstance == null) {
+                    if (listenerInstance == null) {
                         continue;
                     }
 
@@ -231,7 +231,7 @@
                 // external listeners go first, entity's own callbacks go next
                 for (EntityListener listener : entity.getEntityListeners()) {
                     Object listenerInstance = createListener(listener, entity);
-                    if(listenerInstance == null) {
+                    if (listenerInstance == null) {
                         continue;
                     }
 
@@ -269,6 +269,11 @@
      * Creates a listener instance.
      */
     private Object createListener(EntityListener listener, ObjEntity entity) {
+
+        if (entityListenerFactory != null) {
+            return entityListenerFactory.createListener(listener, entity);
+        }
+
         Class<?> listenerClass;
 
         try {
@@ -277,10 +282,6 @@
         catch (ClassNotFoundException e) {
             throw new CayenneRuntimeException("Invalid listener class: "
                     + listener.getClassName(), e);
-        }
-
-        if (entityListenerFactory != null) {
-            return entityListenerFactory.createListener(listenerClass, entity);
         }
 
         try {