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 2010/11/10 21:43:29 UTC

svn commit: r1033701 - in /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src: main/java/org/apache/cayenne/reflect/LifecycleCallbackEventHandler.java test/java/org/apache/cayenne/access/DataDomainCallbacksTest.java

Author: aadamchik
Date: Wed Nov 10 20:43:28 2010
New Revision: 1033701

URL: http://svn.apache.org/viewvc?rev=1033701&view=rev
Log:
removing dead code based on the wrong assumptions, generics cleanup

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackEventHandler.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataDomainCallbacksTest.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackEventHandler.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackEventHandler.java?rev=1033701&r1=1033700&r2=1033701&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackEventHandler.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackEventHandler.java Wed Nov 10 20:43:28 2010
@@ -21,7 +21,6 @@ package org.apache.cayenne.reflect;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 
 import org.apache.cayenne.Persistent;
@@ -87,7 +86,7 @@ class LifecycleCallbackEventHandler {
      * Registers a callback method to be invoked on an entity class instances when a
      * lifecycle event occurs.
      */
-    void addListener(Class entityClass, String methodName) {
+    void addListener(Class<?> entityClass, String methodName) {
         addCallback(entityClass, new CallbackOnEntity(entityClass, methodName));
     }
 
@@ -95,7 +94,7 @@ class LifecycleCallbackEventHandler {
      * Registers callback method to be invoked on a provided non-entity object when a
      * lifecycle event occurs.
      */
-    void addListener(Class entityClass, Object listener, String methodName) {
+    void addListener(Class<?> entityClass, Object listener, String methodName) {
         CallbackOnListener callback = new CallbackOnListener(
                 listener,
                 methodName,
@@ -106,7 +105,7 @@ class LifecycleCallbackEventHandler {
     /**
      * Registers a callback object to be invoked when a lifecycle event occurs.
      */
-    private void addCallback(Class entityClass, AbstractCallback callback) {
+    private void addCallback(Class<?> entityClass, AbstractCallback callback) {
         Collection<AbstractCallback> entityListeners = listeners.get(entityClass.getName());
 
         if (entityListeners == null) {
@@ -137,22 +136,9 @@ class LifecycleCallbackEventHandler {
     /**
      * Invokes callbacks for a collection of entity objects.
      */
-    void performCallbacks(Collection objects) {
-        Iterator it = objects.iterator();
-
-        while (it.hasNext()) {
-            
-            // TODO: andrus, 10/23/2007 - aggregate queries can return Object[] results
-            // that are mixed Persistent and scalars... need to unwrap those... for now
-            // simply check for non-persistent first result and bail out...
-
-            Object object = it.next();
-            if (object instanceof Persistent) {
-                performCallbacks((Persistent) object);
-            }
-            else {
-                break;
-            }
+    void performCallbacks(Collection<?> objects) {
+        for (Object object : objects) {
+            performCallbacks((Persistent) object);
         }
     }
 
@@ -160,7 +146,7 @@ class LifecycleCallbackEventHandler {
      * Invokes callbacks for the class hierarchy, starting from the most generic
      * superclass.
      */
-    private void performCallbacks(Persistent object, Class callbackEntityClass) {
+    private void performCallbacks(Persistent object, Class<?> callbackEntityClass) {
 
         if (callbackEntityClass == null || Object.class.equals(callbackEntityClass)) {
             return;

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataDomainCallbacksTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataDomainCallbacksTest.java?rev=1033701&r1=1033700&r2=1033701&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataDomainCallbacksTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataDomainCallbacksTest.java Wed Nov 10 20:43:28 2010
@@ -22,6 +22,7 @@ import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.Persistent;
 import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.map.LifecycleEvent;
+import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.query.RefreshQuery;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.reflect.LifecycleCallbackRegistry;
@@ -108,6 +109,33 @@ public class DataDomainCallbacksTest ext
         assertSame(a1, listener.getPublicCalledbackEntity());
     }
 
+    public void testPostLoad_MixedResult() throws Exception {
+        LifecycleCallbackRegistry registry = getDomain()
+                .getEntityResolver()
+                .getCallbackRegistry();
+
+        ObjectContext context = createDataContext();
+
+        registry.addListener(LifecycleEvent.POST_LOAD, Artist.class, "postLoadCallback");
+        MockCallingBackListener listener = new MockCallingBackListener();
+        registry.addListener(
+                LifecycleEvent.POST_LOAD,
+                Artist.class,
+                listener,
+                "publicCallback");
+
+        Artist a1 = context.newObject(Artist.class);
+        a1.setArtistName("XX");
+        context.commitChanges();
+        assertEquals(0, a1.getPostLoaded());
+        assertNull(listener.getPublicCalledbackEntity());
+
+        EJBQLQuery q = new EJBQLQuery("select a, a.artistName from Artist a");
+        context.performQuery(q);
+        assertEquals(1, a1.getPostLoaded());
+        assertSame(a1, listener.getPublicCalledbackEntity());
+    }
+
     public void testPreUpdate() {
 
         LifecycleCallbackRegistry registry = getDomain()
@@ -219,7 +247,7 @@ public class DataDomainCallbacksTest ext
         assertTrue(a1.isPostRemoved());
         assertSame(a1, listener2.getPublicCalledbackEntity());
     }
-    
+
     public void testPostRemove_UpdatedDeleted() {
 
         LifecycleCallbackRegistry registry = getDomain()
@@ -246,7 +274,6 @@ public class DataDomainCallbacksTest ext
                 listener2,
                 "publicCallback");
 
-
         // change before removing
         a1.setArtistName("YY");
         context.deleteObject(a1);
@@ -255,7 +282,7 @@ public class DataDomainCallbacksTest ext
         assertNull(listener2.getPublicCalledbackEntity());
         assertSame(a1, listener1.getPublicCalledbackEntity());
     }
-    
+
     public void testPostRemove_InsertedUpdatedDeleted() {
 
         LifecycleCallbackRegistry registry = getDomain()
@@ -270,7 +297,7 @@ public class DataDomainCallbacksTest ext
                 Artist.class,
                 listener0,
                 "publicCallback");
-        
+
         MockCallingBackListener listener1 = new MockCallingBackListener();
         registry.addListener(
                 LifecycleEvent.POST_REMOVE,