Author: andrey
Date: Wed Apr 15 15:24:15 2009
New Revision: 765237

URL: http://svn.apache.org/viewvc?rev=765237&view=rev
Log:
futher ToManyList & PersistentObjectList refactring

Modified:
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ToManyList.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/PersistentObjectList.java

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ToManyList.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ToManyList.java?rev=765237&r1=765236&r2=765237&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ToManyList.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ToManyList.java
 Wed Apr 15 15:24:15 2009
@@ -73,34 +73,18 @@
     // Tracking list modifications, and resolving it
     // on demand
     // ====================================================
-
+    
     @Override
-    protected boolean removeLocal(Object object) {
-        if (addedToUnresolved != null) {
-            addedToUnresolved.remove(object);
-        }
-
-        if (removedFromUnresolved == null) {
-            removedFromUnresolved = new LinkedList<Object>();
-        }
-
+    protected boolean shouldAddToRemovedFromUnresolvedList(Object object) {
         // No point in adding a new or transient object -- these will never be 
fetched
         // from the database.
-        boolean shouldAddToRemovedFromUnresolvedList = true;
         if (object instanceof Persistent) {
             Persistent dataObject = (Persistent) object;
             if ((dataObject.getPersistenceState() == 
PersistenceState.TRANSIENT)
                     || (dataObject.getPersistenceState() == 
PersistenceState.NEW)) {
-                shouldAddToRemovedFromUnresolvedList = false;
+                return false;
             }
         }
-
-        if (shouldAddToRemovedFromUnresolvedList) {
-            removedFromUnresolved.addLast(object);
-        }
-
-        // this is really meaningless, since we don't know
-        // if an object was present in the list
         return true;
     }
 

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/PersistentObjectList.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/PersistentObjectList.java?rev=765237&r1=765236&r2=765237&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/PersistentObjectList.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/PersistentObjectList.java
 Wed Apr 15 15:24:15 2009
@@ -375,12 +375,21 @@
             removedFromUnresolved = new LinkedList<Object>();
         }
 
-        removedFromUnresolved.addLast(object);
+        if (shouldAddToRemovedFromUnresolvedList(object)) {
+            removedFromUnresolved.addLast(object);
+        }
 
         // this is really meaningless, since we don't know
         // if an object was present in the list
         return true;
     }
+    
+    /**
+     * @return whether object should be added to {...@link 
#removedFromUnresolved} during removal
+     */
+    protected boolean shouldAddToRemovedFromUnresolvedList(Object object) {
+        return true;
+    }
 
     protected void postprocessAdd(Collection collection) {
         Iterator it = collection.iterator();


Reply via email to