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 {