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,