You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by an...@apache.org on 2009/04/15 17:24:15 UTC

svn commit: r765237 - in /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne: access/ToManyList.java util/PersistentObjectList.java

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();