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 2012/10/17 20:35:50 UTC
svn commit: r1399376 - in
/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access:
DataDomainDBDiffBuilder.java DataDomainInsertBucket.java
DataDomainUpdateBucket.java
Author: aadamchik
Date: Wed Oct 17 18:35:49 2012
New Revision: 1399376
URL: http://svn.apache.org/viewvc?rev=1399376&view=rev
Log:
cleanup of DataDomainDBDiffBuilder API
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainDBDiffBuilder.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainInsertBucket.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainUpdateBucket.java
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainDBDiffBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainDBDiffBuilder.java?rev=1399376&r1=1399375&r2=1399376&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainDBDiffBuilder.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainDBDiffBuilder.java Wed Oct 17 18:35:49 2012
@@ -70,7 +70,7 @@ class DataDomainDBDiffBuilder implements
/**
* Processes GraphDiffs of a single object, converting them to DB diff.
*/
- Map<Object, Object> buildDBDiff(GraphDiff singleObjectDiff) {
+ Map<String, Object> buildDBDiff(GraphDiff singleObjectDiff) {
reset();
singleObjectDiff.apply(this);
@@ -79,16 +79,16 @@ class DataDomainDBDiffBuilder implements
return null;
}
- Map<Object, Object> dbDiff = new HashMap<Object, Object>();
+ Map<String, Object> dbDiff = new HashMap<String, Object>();
appendSimpleProperties(dbDiff);
appendForeignKeys(dbDiff);
appendPrimaryKeys(dbDiff);
- return dbDiff.isEmpty() ? null : dbDiff;
+ return dbDiff;
}
- private void appendSimpleProperties(Map<Object, Object> dbDiff) {
+ private void appendSimpleProperties(Map<String, Object> dbDiff) {
// populate changed columns
if (currentPropertyDiff != null) {
for (final Map.Entry<Object, Object> entry : currentPropertyDiff.entrySet()) {
@@ -106,7 +106,7 @@ class DataDomainDBDiffBuilder implements
}
}
- private void appendForeignKeys(Map<Object, Object> dbDiff) {
+ private void appendForeignKeys(Map<String, Object> dbDiff) {
// populate changed FKs
if (currentArcDiff != null) {
for (final Map.Entry<Object, Object> entry : currentArcDiff.entrySet()) {
@@ -127,7 +127,7 @@ class DataDomainDBDiffBuilder implements
}
}
- private void appendPrimaryKeys(Map<Object, Object> dbDiff) {
+ private void appendPrimaryKeys(Map<String, Object> dbDiff) {
// populate changed PKs; note that we might end up overriding some values taken
// from the object (e.g. zero PK's).
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainInsertBucket.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainInsertBucket.java?rev=1399376&r1=1399375&r2=1399376&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainInsertBucket.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainInsertBucket.java Wed Oct 17 18:35:49 2012
@@ -74,17 +74,15 @@ class DataDomainInsertBucket extends Dat
checkReadOnly(descriptor.getEntity());
createPermIds(descriptor, objects);
- sorter.sortObjectsForEntity(descriptor.getEntity(), objects, false);
+ sorter.sortObjectsForEntity(descriptor.getEntity(), objects,
+ false);
for (Persistent o : objects) {
- Map<Object, Object> snapshot = diffBuilder.buildDBDiff(parent
- .objectDiff(o.getObjectId()));
+ Map<String, Object> snapshot = diffBuilder
+ .buildDBDiff(parent.objectDiff(o.getObjectId()));
- // we need to insert even if there is no changes to default values
- // so creating an empty changes map
- if (snapshot == null) {
- snapshot = new HashMap<Object, Object>();
- }
+ // we need to insert even if there is no changes to default
+ // values, so keep even an empty changes map
batch.add(snapshot, o.getObjectId());
}
@@ -94,7 +92,8 @@ class DataDomainInsertBucket extends Dat
}
}
- void createPermIds(DbEntityClassDescriptor descriptor, Collection<Persistent> objects) {
+ void createPermIds(DbEntityClassDescriptor descriptor,
+ Collection<Persistent> objects) {
if (objects.isEmpty()) {
return;
@@ -104,7 +103,8 @@ class DataDomainInsertBucket extends Dat
DbEntity entity = descriptor.getDbEntity();
DataNode node = parent.getDomain().lookupDataNode(entity.getDataMap());
- boolean supportsGeneratedKeys = node.getAdapter().supportsGeneratedKeys();
+ boolean supportsGeneratedKeys = node.getAdapter()
+ .supportsGeneratedKeys();
PkGenerator pkGenerator = node.getAdapter().getPkGenerator();
@@ -127,21 +127,22 @@ class DataDomainInsertBucket extends Dat
}
// handle meaningful PK
- ObjAttribute objAttr = objEntity.getAttributeForDbAttribute(dbAttr);
+ ObjAttribute objAttr = objEntity
+ .getAttributeForDbAttribute(dbAttr);
if (objAttr != null) {
- Object value = descriptor.getClassDescriptor().getProperty(
- objAttr.getName()).readPropertyDirectly(object);
+ Object value = descriptor.getClassDescriptor()
+ .getProperty(objAttr.getName())
+ .readPropertyDirectly(object);
if (value != null) {
Class<?> javaClass = objAttr.getJavaClass();
- if (javaClass.isPrimitive()
- && value instanceof Number
+ if (javaClass.isPrimitive() && value instanceof Number
&& ((Number) value).intValue() == 0) {
- // primitive 0 has to be treated as NULL, or otherwise we
+ // primitive 0 has to be treated as NULL, or
+ // otherwise we
// can't generate PK for POJO's
- }
- else {
+ } else {
idMap.put(dbAttrName, value);
continue;
@@ -159,7 +160,8 @@ class DataDomainInsertBucket extends Dat
continue;
}
- // only a single key can be generated from DB... if this is done already
+ // only a single key can be generated from DB... if this is done
+ // already
// in this loop, we must bail out.
if (autoPkDone) {
throw new CayenneRuntimeException(
@@ -171,8 +173,7 @@ class DataDomainInsertBucket extends Dat
Object pkValue = pkGenerator.generatePk(node, dbAttr);
idMap.put(dbAttrName, pkValue);
autoPkDone = true;
- }
- catch (Exception ex) {
+ } catch (Exception ex) {
throw new CayenneRuntimeException("Error generating PK: "
+ ex.getMessage(), ex);
}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainUpdateBucket.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainUpdateBucket.java?rev=1399376&r1=1399375&r2=1399376&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainUpdateBucket.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainUpdateBucket.java Wed Oct 17 18:35:49 2012
@@ -70,10 +70,10 @@ class DataDomainUpdateBucket extends Dat
Persistent o = objects.next();
ObjectDiff diff = parent.objectDiff(o.getObjectId());
- Map<Object, Object> snapshot = diffBuilder.buildDBDiff(diff);
+ Map<String, Object> snapshot = diffBuilder.buildDBDiff(diff);
// check whether MODIFIED object has real db-level modifications
- if (snapshot == null) {
+ if (snapshot.isEmpty()) {
continue;
}