Author: aadamchik
Date: Wed Oct 11 20:10:30 2006
New Revision: 463120
URL: http://svn.apache.org/viewvc?view=rev&rev=463120
Log:
CAY-688: Change signatures of
ObjectContext.deleteObject/registerNewObject/localObject to take Object instead
of Persistent as an argument
Modified:
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/BaseContext.java
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/CayenneContext.java
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/ObjectContext.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/intercept/ObjectContextDecorator.java
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/test/java/org/apache/cayenne/MockObjectContext.java
Modified:
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/BaseContext.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/BaseContext.java?view=diff&rev=463120&r1=463119&r2=463120
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/BaseContext.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/BaseContext.java
Wed Oct 11 20:10:30 2006
@@ -41,7 +41,7 @@
public abstract void commitChangesToParent();
- public abstract void deleteObject(Persistent object) throws
DeleteDenyException;
+ public abstract void deleteObject(Object object) throws
DeleteDenyException;
public abstract Collection deletedObjects();
@@ -53,13 +53,13 @@
public abstract GraphManager getGraphManager();
- public abstract Persistent localObject(ObjectId id, Persistent prototype);
+ public abstract Persistent localObject(ObjectId id, Object prototype);
public abstract Collection modifiedObjects();
public abstract Persistent newObject(Class persistentClass);
- public abstract void registerNewObject(Persistent object);
+ public abstract void registerNewObject(Object object);
public abstract Collection newObjects();
Modified:
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/CayenneContext.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/CayenneContext.java?view=diff&rev=463120&r1=463119&r2=463120
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/CayenneContext.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/CayenneContext.java
Wed Oct 11 20:10:30 2006
@@ -291,8 +291,8 @@
* Deletes an object locally, scheduling it for future deletion from the
external data
* store.
*/
- public void deleteObject(Persistent object) {
- new ObjectContextDeleteAction(this).performDelete(object);
+ public void deleteObject(Object object) {
+ new ObjectContextDeleteAction(this).performDelete((Persistent) object);
}
/**
@@ -319,7 +319,7 @@
/**
* @since 3.0
*/
- public void registerNewObject(Persistent object) {
+ public void registerNewObject(Object object) {
if (object == null) {
throw new NullPointerException("An attempt to register null
object.");
}
@@ -327,7 +327,7 @@
ObjEntity entity =
getEntityResolver().lookupObjEntity(object.getClass());
ClassDescriptor descriptor = getEntityResolver().getClassDescriptor(
entity.getName());
- registerNewObject(object, entity.getName(), descriptor);
+ registerNewObject((Persistent) object, entity.getName(), descriptor);
}
/**
@@ -356,7 +356,7 @@
* or in HOLLOW state.</i>
* </p>
*/
- public Persistent localObject(ObjectId id, Persistent prototype) {
+ public Persistent localObject(ObjectId id, Object prototype) {
// TODO: Andrus, 1/26/2006 - this implementation is copied verbatim
from
// DataContext. Somehow need to pull out the common code or implement
inheritance
@@ -382,7 +382,7 @@
descriptor.injectValueHolders(cachedObject);
if (prototype != null
- && prototype.getPersistenceState() !=
PersistenceState.HOLLOW) {
+ && ((Persistent) prototype).getPersistenceState() !=
PersistenceState.HOLLOW) {
descriptor.shallowMerge(prototype, cachedObject);
Modified:
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/ObjectContext.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/ObjectContext.java?view=diff&rev=463120&r1=463119&r2=463120
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/ObjectContext.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/ObjectContext.java
Wed Oct 11 20:10:30 2006
@@ -75,7 +75,7 @@
* the state of the prototype object).
* </p>
*/
- Persistent localObject(ObjectId id, Persistent prototype);
+ Persistent localObject(ObjectId id, Object prototype);
/**
* Creates a new persistent object scheduled to be inserted to the
database on next
@@ -91,7 +91,7 @@
* @param object new object that needs to be made persistent.
* @since 3.0
*/
- void registerNewObject(final Persistent object);
+ void registerNewObject(Object object);
/**
* Schedules a persistent object for deletion on next commit.
@@ -99,7 +99,7 @@
* @throws DeleteDenyException if a [EMAIL PROTECTED]
org.apache.cayenne.map.DeleteRule#DENY}
* delete rule is applicable for object deletion.
*/
- void deleteObject(Persistent object) throws DeleteDenyException;
+ void deleteObject(Object object) throws DeleteDenyException;
/**
* A callback method that child Persistent objects are expected to call
from inside
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=463120&r1=463119&r2=463120
==============================================================================
---
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
Wed Oct 11 20:10:30 2006
@@ -798,13 +798,13 @@
/**
* Registers a transient object with the context, recursively registering
all
- * transient DataObjects attached to this object via relationships.
<p/><i>Note that
- * since 3.0 this method takes [EMAIL PROTECTED] Persistent} as an
argument instead of a
+ * transient persistent objects attached to this object via relationships.
<p/><i>Note
+ * that since 3.0 this method takes [EMAIL PROTECTED] Persistent} as an
argument instead of a
* [EMAIL PROTECTED] DataObject}.</i>
*
* @param object new object that needs to be made persistent.
*/
- public void registerNewObject(final Persistent object) {
+ public void registerNewObject(Object object) {
if (object == null) {
throw new NullPointerException("Can't register null object.");
}
@@ -817,27 +817,29 @@
+ ", class is likely not mapped.");
}
+ final Persistent persistent = (Persistent) object;
+
// sanity check - maybe already registered
- if (object.getObjectId() != null) {
- if (object.getObjectContext() == this) {
+ if (persistent.getObjectId() != null) {
+ if (persistent.getObjectContext() == this) {
// already registered, just ignore
return;
}
- else if (object.getObjectContext() != null) {
+ else if (persistent.getObjectContext() != null) {
throw new IllegalStateException(
"DataObject is already registered with another
DataContext. "
+ "Try using 'localObjects()' instead.");
}
}
else {
- object.setObjectId(new ObjectId(entity.getName()));
+ persistent.setObjectId(new ObjectId(entity.getName()));
}
- object.setObjectContext(this);
- object.setPersistenceState(PersistenceState.NEW);
+ persistent.setObjectContext(this);
+ persistent.setPersistenceState(PersistenceState.NEW);
- getObjectStore().registerNode(object.getObjectId(), object);
- getObjectStore().nodeCreated(object.getObjectId());
+ getObjectStore().registerNode(persistent.getObjectId(), object);
+ getObjectStore().nodeCreated(persistent.getObjectId());
// now we need to find all arc changes, inject missing value holders
and pull in
// all transient connected objects
@@ -851,10 +853,10 @@
descriptor.visitProperties(new PropertyVisitor() {
public boolean visitCollectionArc(CollectionProperty property) {
- property.injectValueHolder(object);
+ property.injectValueHolder(persistent);
- if (!property.isFault(object)) {
- Iterator it = ((Collection)
property.readProperty(object)).iterator();
+ if (!property.isFault(persistent)) {
+ Iterator it = ((Collection)
property.readProperty(persistent)).iterator();
while (it.hasNext()) {
Object target = it.next();
@@ -864,7 +866,7 @@
// make sure it is registered
registerNewObject(targetDO);
getObjectStore().arcCreated(
- object.getObjectId(),
+ persistent.getObjectId(),
targetDO.getObjectId(),
property.getName());
}
@@ -874,7 +876,7 @@
}
public boolean visitSingleObjectArc(SingleObjectArcProperty
property) {
- Object target = property.readPropertyDirectly(object);
+ Object target = property.readPropertyDirectly(persistent);
if (target instanceof DataObject) {
@@ -883,7 +885,7 @@
// make sure it is registered
registerNewObject(targetDO);
getObjectStore().arcCreated(
- object.getObjectId(),
+ persistent.getObjectId(),
targetDO.getObjectId(),
property.getName());
}
@@ -958,8 +960,8 @@
* deletion.
* @throws NullPointerException if object is null.
*/
- public void deleteObject(Persistent object) throws DeleteDenyException {
- new DataContextDeleteAction(this).performDelete(object);
+ public void deleteObject(Object object) throws DeleteDenyException {
+ new DataContextDeleteAction(this).performDelete((Persistent) object);
}
/**
@@ -1651,7 +1653,7 @@
*
* @since 1.2
*/
- public Persistent localObject(ObjectId id, Persistent prototype) {
+ public Persistent localObject(ObjectId id, Object prototype) {
// ****** Warning: when changing the code below, don't forget to change
// CayenneContext's implementation which right now relies on
copy/paste "reuse"
@@ -1681,7 +1683,7 @@
descriptor.injectValueHolders(cachedObject);
if (prototype != null
- && prototype.getPersistenceState() !=
PersistenceState.HOLLOW) {
+ && ((Persistent) prototype).getPersistenceState() !=
PersistenceState.HOLLOW) {
descriptor.shallowMerge(prototype, cachedObject);
@@ -1704,7 +1706,7 @@
getGraphManager().registerNode(id, localObject);
if (prototype != null
- && prototype.getPersistenceState() !=
PersistenceState.HOLLOW) {
+ && ((Persistent) prototype).getPersistenceState() !=
PersistenceState.HOLLOW) {
localObject.setPersistenceState(PersistenceState.COMMITTED);
descriptor.injectValueHolders(localObject);
descriptor.shallowMerge(prototype, localObject);
Modified:
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/intercept/ObjectContextDecorator.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/intercept/ObjectContextDecorator.java?view=diff&rev=463120&r1=463119&r2=463120
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/intercept/ObjectContextDecorator.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/intercept/ObjectContextDecorator.java
Wed Oct 11 20:10:30 2006
@@ -54,7 +54,7 @@
return context.deletedObjects();
}
- public void deleteObject(Persistent object) throws DeleteDenyException {
+ public void deleteObject(Object object) throws DeleteDenyException {
context.deleteObject(object);
}
@@ -70,7 +70,7 @@
return context.getGraphManager();
}
- public Persistent localObject(ObjectId id, Persistent prototype) {
+ public Persistent localObject(ObjectId id, Object prototype) {
return context.localObject(id, prototype);
}
@@ -82,7 +82,7 @@
return context.newObject(persistentClass);
}
- public void registerNewObject(Persistent object) {
+ public void registerNewObject(Object object) {
context.registerNewObject(object);
}
Modified:
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/test/java/org/apache/cayenne/MockObjectContext.java
URL:
http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/test/java/org/apache/cayenne/MockObjectContext.java?view=diff&rev=463120&r1=463119&r2=463120
==============================================================================
---
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/test/java/org/apache/cayenne/MockObjectContext.java
(original)
+++
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/test/java/org/apache/cayenne/MockObjectContext.java
Wed Oct 11 20:10:30 2006
@@ -55,7 +55,7 @@
return graphManager;
}
- public Persistent localObject(ObjectId id, Persistent prototype) {
+ public Persistent localObject(ObjectId id, Object prototype) {
return null;
}
@@ -92,14 +92,14 @@
}
- public void deleteObject(Persistent object) {
+ public void deleteObject(Object object) {
}
public Persistent newObject(Class persistentClass) {
return null;
}
- public void registerNewObject(Persistent object) {
+ public void registerNewObject(Object object) {
}
public void prepareForAccess(Persistent persistent, String property) {