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 @@ * [EMAIL PROTECTED] #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 [EMAIL PROTECTED] 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;