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 2006/11/26 06:14:54 UTC

svn commit: r479278 - in /incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access: ChildDiffLoader.java DataContext.java DataContextQueryAction.java ObjectStore.java ToManyList.java

Author: aadamchik
Date: Sat Nov 25 21:14:53 2006
New Revision: 479278

URL: http://svn.apache.org/viewvc?view=rev&rev=479278
Log:
CAY-686: Weed out DataObject references from the access stack classes, replacing them with Persistent and ClassDescriptor

Modified:
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ChildDiffLoader.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/DataContext.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/DataContextQueryAction.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ObjectStore.java
    incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ToManyList.java

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ChildDiffLoader.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ChildDiffLoader.java?view=diff&rev=479278&r1=479277&r2=479278
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ChildDiffLoader.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ChildDiffLoader.java Sat Nov 25 21:14:53 2006
@@ -22,7 +22,6 @@
 import java.util.List;
 
 import org.apache.cayenne.CayenneRuntimeException;
-import org.apache.cayenne.DataObject;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.ObjectId;
 import org.apache.cayenne.Persistent;
@@ -70,9 +69,9 @@
             throw new IllegalArgumentException("Entity not mapped with Cayenne: " + id);
         }
 
-        DataObject dataObject = null;
+        Persistent dataObject = null;
         try {
-            dataObject = (DataObject) entity.getJavaClass().newInstance();
+            dataObject = (Persistent) entity.getJavaClass().newInstance();
         }
         catch (Exception ex) {
             throw new CayenneRuntimeException("Error instantiating object.", ex);

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/DataContext.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/DataContext.java?view=diff&rev=479278&r1=479277&r2=479278
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/DataContext.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/DataContext.java Sat Nov 25 21:14:53 2006
@@ -676,7 +676,6 @@
      * 
      * @since 1.1
      * @see DataRow
-     * @see DataObject
      */
     public List objectsFromDataRows(
             Class objectClass,
@@ -697,7 +696,6 @@
      * {@link #objectsFromDataRows(Class,java.util.List,boolean,boolean)}.
      * 
      * @see DataRow
-     * @see DataObject
      */
     public DataObject objectFromDataRow(
             Class objectClass,
@@ -972,6 +970,7 @@
      * 
      * @throws CayenneRuntimeException if object id doesn't match any records, or if there
      *             is more than one object is fetched.
+     * @deprecated since 3.0 use {@link ObjectIdQuery} with appropraite refresh settings.
      */
     public DataObject refetchObject(ObjectId oid) {
 
@@ -1567,7 +1566,7 @@
         synchronized (getObjectStore()) {
             Iterator it = objectStore.getObjectIterator();
             while (it.hasNext()) {
-                DataObject object = (DataObject) it.next();
+                Persistent object = (Persistent) it.next();
                 object.setObjectContext(this);
             }
         }

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/DataContextQueryAction.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/DataContextQueryAction.java?view=diff&rev=479278&r1=479277&r2=479278
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/DataContextQueryAction.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/DataContextQueryAction.java Sat Nov 25 21:14:53 2006
@@ -23,7 +23,6 @@
 import java.util.Iterator;
 import java.util.Map;
 
-import org.apache.cayenne.DataObject;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.PersistenceState;
 import org.apache.cayenne.Persistent;
@@ -87,7 +86,7 @@
                     // require this hack.
                     if (oidQuery.isFetchingDataRows()) {
                         object = ((DataContext) actingContext)
-                                .currentSnapshot((DataObject) object);
+                                .currentSnapshot((Persistent) object);
                     }
                     // do not return hollow objects
                     else if (((Persistent) object).getPersistenceState() == PersistenceState.HOLLOW) {

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ObjectStore.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ObjectStore.java?view=diff&rev=479278&r1=479277&r2=479278
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ObjectStore.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ObjectStore.java Sat Nov 25 21:14:53 2006
@@ -606,9 +606,10 @@
 
         Iterator it = objectMap.values().iterator();
         while (it.hasNext()) {
-            DataObject nextObj = (DataObject) it.next();
-            if (nextObj.getPersistenceState() == state)
+            Persistent nextObj = (Persistent) it.next();
+            if (nextObj.getPersistenceState() == state) {
                 filteredObjects.add(nextObj);
+            }
         }
 
         return filteredObjects;
@@ -704,10 +705,14 @@
 
         // access object map directly - the method should be called in a synchronized
         // context...
-        DataObject object = (DataObject) objectMap.get(nodeId);
+        Persistent object = (Persistent) objectMap.get(nodeId);
 
         if (object != null) {
 
+            DataObject dataObject = (object instanceof DataObject)
+                    ? (DataObject) object
+                    : null;
+
             DataContextDelegate delegate;
 
             switch (object.getPersistenceState()) {
@@ -718,14 +723,17 @@
                     // consult delegate
                     delegate = context.nonNullDelegate();
 
-                    if (delegate.shouldProcessDelete(object)) {
+                    if (dataObject == null || delegate.shouldProcessDelete(dataObject)) {
                         objectMap.remove(nodeId);
                         changes.remove(nodeId);
 
                         // setting DataContext to null will also set
                         // state to transient
                         object.setObjectContext(null);
-                        delegate.finishedProcessDelete(object);
+
+                        if (dataObject != null) {
+                            delegate.finishedProcessDelete(dataObject);
+                        }
                     }
 
                     break;
@@ -734,12 +742,14 @@
 
                     // consult delegate
                     delegate = context.nonNullDelegate();
-                    if (delegate.shouldProcessDelete(object)) {
+                    if (dataObject != null && delegate.shouldProcessDelete(dataObject)) {
                         object.setPersistenceState(PersistenceState.NEW);
                         changes.remove(nodeId);
                         registerNode(nodeId, object);
                         nodeCreated(nodeId);
-                        delegate.finishedProcessDelete(object);
+                        if(dataObject != null) {
+                            delegate.finishedProcessDelete(dataObject);
+                        }
                     }
 
                     break;

Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ToManyList.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ToManyList.java?view=diff&rev=479278&r1=479277&r2=479278
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ToManyList.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ToManyList.java Sat Nov 25 21:14:53 2006
@@ -27,7 +27,6 @@
 import java.util.ListIterator;
 
 import org.apache.cayenne.CayenneRuntimeException;
-import org.apache.cayenne.DataObject;
 import org.apache.cayenne.PersistenceState;
 import org.apache.cayenne.Persistent;
 import org.apache.cayenne.ValueHolder;
@@ -310,8 +309,8 @@
                 while (it.hasNext()) {
                     Object next = it.next();
 
-                    if (next instanceof DataObject) {
-                        DataObject dataObject = (DataObject) next;
+                    if (next instanceof Persistent) {
+                        Persistent dataObject = (Persistent) next;
                         if (dataObject.getPersistenceState() == PersistenceState.TRANSIENT) {
                             continue;
                         }
@@ -357,8 +356,8 @@
         // No point in adding a new or transient object -- these will never be fetched
         // from the database.
         boolean shouldAddToRemovedFromUnresolvedList = true;
-        if (object instanceof DataObject) {
-            DataObject dataObject = (DataObject) object;
+        if (object instanceof Persistent) {
+            Persistent dataObject = (Persistent) object;
             if ((dataObject.getPersistenceState() == PersistenceState.TRANSIENT)
                     || (dataObject.getPersistenceState() == PersistenceState.NEW)) {
                 shouldAddToRemovedFromUnresolvedList = false;