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 2007/12/23 17:16:13 UTC
svn commit: r606571 - in
/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src:
main/java/org/apache/cayenne/access/ test/java/org/apache/cayenne/access/
Author: aadamchik
Date: Sun Dec 23 08:16:10 2007
New Revision: 606571
URL: http://svn.apache.org/viewvc?rev=606571&view=rev
Log:
generics
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/DataDomainDeleteBucket.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainFlushAction.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainUpdateBucket.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesTest.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=606571&r1=606570&r2=606571&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 Sun Dec 23 08:16:10 2007
@@ -47,8 +47,8 @@
private DbEntity dbEntity;
// diff snapshot expressed in terms of object properties.
- private Map currentPropertyDiff;
- private Map currentArcDiff;
+ private Map<Object, Object> currentPropertyDiff;
+ private Map<Object, Object> currentArcDiff;
private Object currentId;
/**
@@ -72,7 +72,7 @@
/**
* Processes GraphDiffs of a single object, converting them to DB diff.
*/
- Map buildDBDiff(GraphDiff singleObjectDiff) {
+ Map<Object, Object> buildDBDiff(GraphDiff singleObjectDiff) {
reset();
singleObjectDiff.apply(this);
@@ -81,7 +81,7 @@
return null;
}
- Map dbDiff = new HashMap();
+ Map<Object, Object> dbDiff = new HashMap<Object, Object>();
appendSimpleProperties(dbDiff);
appendForeignKeys(dbDiff);
@@ -90,12 +90,12 @@
return dbDiff.isEmpty() ? null : dbDiff;
}
- private void appendSimpleProperties(Map dbDiff) {
+ private void appendSimpleProperties(Map<Object, Object> dbDiff) {
// populate changed columns
if (currentPropertyDiff != null) {
- Iterator it = currentPropertyDiff.entrySet().iterator();
+ Iterator<?> it = currentPropertyDiff.entrySet().iterator();
while (it.hasNext()) {
- Map.Entry entry = (Map.Entry) it.next();
+ Map.Entry<Object, Object> entry = (Map.Entry<Object, Object>) it.next();
ObjAttribute attribute = (ObjAttribute) objEntity.getAttribute(entry
.getKey()
.toString());
@@ -109,23 +109,19 @@
}
}
- private void appendForeignKeys(Map dbDiff) {
+ private void appendForeignKeys(Map<Object, Object> dbDiff) {
// populate changed FKs
if (currentArcDiff != null) {
- Iterator it = currentArcDiff.entrySet().iterator();
+ Iterator<?> it = currentArcDiff.entrySet().iterator();
while (it.hasNext()) {
- Map.Entry entry = (Map.Entry) it.next();
+ Map.Entry<Object, Object> entry = (Map.Entry<Object, Object>) it.next();
ObjRelationship relation = (ObjRelationship) objEntity
.getRelationship(entry.getKey().toString());
- DbRelationship dbRelation = relation
- .getDbRelationships()
- .get(0);
+ DbRelationship dbRelation = relation.getDbRelationships().get(0);
ObjectId targetId = (ObjectId) entry.getValue();
- Iterator joins = dbRelation.getJoins().iterator();
- while (joins.hasNext()) {
- DbJoin join = (DbJoin) joins.next();
+ for (DbJoin join : dbRelation.getJoins()) {
Object value = (targetId != null) ? new PropagatedValueFactory(
targetId,
join.getTargetName()) : null;
@@ -136,7 +132,7 @@
}
}
- private void appendPrimaryKeys(Map dbDiff) {
+ private void appendPrimaryKeys(Map<Object, Object> dbDiff) {
// populate changed PKs; note that we might end up overriding some values taken
// from the object (e.g. zero PK's).
@@ -157,7 +153,7 @@
// note - no checking for phantom mod... assuming there is no phantom diffs
if (currentPropertyDiff == null) {
- currentPropertyDiff = new HashMap();
+ currentPropertyDiff = new HashMap<Object, Object>();
}
currentPropertyDiff.put(property, newValue);
@@ -169,7 +165,7 @@
.toString());
if (!relationship.isSourceIndependentFromTargetChange()) {
if (currentArcDiff == null) {
- currentArcDiff = new HashMap();
+ currentArcDiff = new HashMap<Object, Object>();
}
currentArcDiff.put(arcId, targetNodeId);
}
@@ -182,7 +178,7 @@
if (!relationship.isSourceIndependentFromTargetChange()) {
if (currentArcDiff == null) {
- currentArcDiff = new HashMap();
+ currentArcDiff = new HashMap<Object, Object>();
currentArcDiff.put(arcId, null);
}
else {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainDeleteBucket.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainDeleteBucket.java?rev=606571&r1=606570&r2=606571&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainDeleteBucket.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainDeleteBucket.java Sun Dec 23 08:16:10 2007
@@ -28,6 +28,7 @@
import java.util.Map;
import java.util.Set;
+import org.apache.cayenne.ObjectId;
import org.apache.cayenne.Persistent;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.EntitySorter;
@@ -48,7 +49,7 @@
if (!objectsByDescriptor.isEmpty()) {
- Collection deletedIds = parent.getResultDeletedIds();
+ Collection<ObjectId> deletedIds = parent.getResultDeletedIds();
Iterator it = objectsByDescriptor.values().iterator();
while (it.hasNext()) {
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainFlushAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainFlushAction.java?rev=606571&r1=606570&r2=606571&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainFlushAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainFlushAction.java Sun Dec 23 08:16:10 2007
@@ -37,6 +37,7 @@
import org.apache.cayenne.graph.GraphDiff;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.query.BatchQuery;
+import org.apache.cayenne.query.Query;
import org.apache.cayenne.reflect.ClassDescriptor;
/**
@@ -55,16 +56,16 @@
private Map changesByObjectId;
private CompoundDiff resultDiff;
- private Collection resultDeletedIds;
+ private Collection<ObjectId> resultDeletedIds;
private Map resultModifiedSnapshots;
- private Collection resultIndirectlyModifiedIds;
+ private Collection<ObjectId> resultIndirectlyModifiedIds;
private DataDomainInsertBucket insertBucket;
private DataDomainUpdateBucket updateBucket;
private DataDomainDeleteBucket deleteBucket;
private DataDomainFlattenedBucket flattenedBucket;
- private List queries;
+ private List<Query> queries;
DataDomainFlushAction(DataDomain domain) {
this.domain = domain;
@@ -78,7 +79,7 @@
return context;
}
- Collection getResultDeletedIds() {
+ Collection<ObjectId> getResultDeletedIds() {
return resultDeletedIds;
}
@@ -86,7 +87,7 @@
return resultDiff;
}
- Collection getResultIndirectlyModifiedIds() {
+ Collection<ObjectId> getResultIndirectlyModifiedIds() {
return resultIndirectlyModifiedIds;
}
@@ -127,8 +128,8 @@
this.updateBucket = new DataDomainUpdateBucket(this);
this.flattenedBucket = new DataDomainFlattenedBucket(this);
- this.queries = new ArrayList();
- this.resultIndirectlyModifiedIds = new HashSet();
+ this.queries = new ArrayList<Query>();
+ this.resultIndirectlyModifiedIds = new HashSet<ObjectId>();
preprocess(context, changes);
@@ -137,7 +138,7 @@
}
this.resultDiff = new CompoundDiff();
- this.resultDeletedIds = new ArrayList();
+ this.resultDeletedIds = new ArrayList<ObjectId>();
this.resultModifiedSnapshots = new HashMap();
runQueries();
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java?rev=606571&r1=606570&r2=606571&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java Sun Dec 23 08:16:10 2007
@@ -37,6 +37,7 @@
import org.apache.cayenne.map.EmbeddedAttribute;
import org.apache.cayenne.map.ObjAttribute;
import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.query.Query;
import org.apache.cayenne.reflect.ArcProperty;
import org.apache.cayenne.reflect.AttributeProperty;
import org.apache.cayenne.reflect.ClassDescriptor;
@@ -52,14 +53,14 @@
*/
abstract class DataDomainSyncBucket {
- final Map objectsByDescriptor;
+ final Map<ClassDescriptor, Collection<Object>> objectsByDescriptor;
final DataDomainFlushAction parent;
- List dbEntities;
- Map descriptorsByDbEntity;
+ List<DbEntity> dbEntities;
+ Map<DbEntity, Collection<ClassDescriptor>> descriptorsByDbEntity;
DataDomainSyncBucket(DataDomainFlushAction parent) {
- this.objectsByDescriptor = new HashMap();
+ this.objectsByDescriptor = new HashMap<ClassDescriptor, Collection<Object>>();
this.parent = parent;
}
@@ -67,12 +68,12 @@
return objectsByDescriptor.isEmpty();
}
- abstract void appendQueriesInternal(Collection queries);
+ abstract void appendQueriesInternal(Collection<Query> queries);
/**
* Appends all queries originated in the bucket to provided collection.
*/
- void appendQueries(Collection queries) {
+ void appendQueries(Collection<Query> queries) {
if (!objectsByDescriptor.isEmpty()) {
groupObjEntitiesBySpannedDbEntities();
@@ -102,17 +103,17 @@
private void groupObjEntitiesBySpannedDbEntities() {
- dbEntities = new ArrayList(objectsByDescriptor.size());
- descriptorsByDbEntity = new HashMap(objectsByDescriptor.size() * 2);
+ dbEntities = new ArrayList<DbEntity>(objectsByDescriptor.size());
+ descriptorsByDbEntity = new HashMap<DbEntity, Collection<ClassDescriptor>>(
+ objectsByDescriptor.size() * 2);
- Iterator i = objectsByDescriptor.keySet().iterator();
- while (i.hasNext()) {
- ClassDescriptor descriptor = (ClassDescriptor) i.next();
+ for (ClassDescriptor descriptor : objectsByDescriptor.keySet()) {
DbEntity dbEntity = descriptor.getEntity().getDbEntity();
- List objEntitiesForDbEntity = (List) descriptorsByDbEntity.get(dbEntity);
+ Collection<ClassDescriptor> objEntitiesForDbEntity = descriptorsByDbEntity
+ .get(dbEntity);
if (objEntitiesForDbEntity == null) {
- objEntitiesForDbEntity = new ArrayList(1);
+ objEntitiesForDbEntity = new ArrayList<ClassDescriptor>(1);
dbEntities.add(dbEntity);
descriptorsByDbEntity.put(dbEntity, objEntitiesForDbEntity);
}
@@ -123,7 +124,10 @@
// Note that this logic won't allow flattened attributes to span multiple
// databases...
- for (ObjAttribute objAttribute : descriptor.getEntity().getAttributeMap().values()) {
+ for (ObjAttribute objAttribute : descriptor
+ .getEntity()
+ .getAttributeMap()
+ .values()) {
// TODO: andrus, 2/10/2007 - handle embedded
if (objAttribute instanceof EmbeddedAttribute) {
continue;
@@ -133,10 +137,10 @@
}
dbEntity = (DbEntity) objAttribute.getDbAttribute().getEntity();
- objEntitiesForDbEntity = (List) descriptorsByDbEntity.get(dbEntity);
+ objEntitiesForDbEntity = descriptorsByDbEntity.get(dbEntity);
if (objEntitiesForDbEntity == null) {
- objEntitiesForDbEntity = new ArrayList(1);
+ objEntitiesForDbEntity = new ArrayList<ClassDescriptor>(1);
dbEntities.add(dbEntity);
descriptorsByDbEntity.put(dbEntity, objEntitiesForDbEntity);
}
@@ -150,10 +154,10 @@
void addDirtyObject(Object object, ClassDescriptor descriptor) {
- Collection objects = (Collection) objectsByDescriptor.get(descriptor);
+ Collection<Object> objects = objectsByDescriptor.get(descriptor);
if (objects == null) {
- objects = new ArrayList();
+ objects = new ArrayList<Object>();
objectsByDescriptor.put(descriptor, objects);
}
@@ -240,7 +244,8 @@
ToManyMapProperty reverseArc = (ToManyMapProperty) arc
.getComplimentaryReverseArc();
- // must resolve faults... hopefully for to-one this will not cause extra fetches...
+ // must resolve faults... hopefully for to-one this will not cause
+ // extra fetches...
Object source = arc.readProperty(object);
if (source != null && !reverseArc.isFault(source)) {
remapTarget(reverseArc, source, object);
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=606571&r1=606570&r2=606571&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 Sun Dec 23 08:16:10 2007
@@ -34,6 +34,7 @@
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.query.Query;
import org.apache.cayenne.query.UpdateBatchQuery;
import org.apache.cayenne.reflect.ClassDescriptor;
@@ -47,13 +48,13 @@
super(parent);
}
- void appendQueriesInternal(Collection queries) {
+ @Override
+ void appendQueriesInternal(Collection<Query> queries) {
DataDomainDBDiffBuilder diffBuilder = new DataDomainDBDiffBuilder();
DataNodeSyncQualifierDescriptor qualifierBuilder = new DataNodeSyncQualifierDescriptor();
- for (Iterator i = dbEntities.iterator(); i.hasNext();) {
- DbEntity dbEntity = (DbEntity) i.next();
+ for (DbEntity dbEntity : dbEntities) {
List objEntitiesForDbEntity = (List) descriptorsByDbEntity.get(dbEntity);
Map batches = new LinkedHashMap();
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesTest.java?rev=606571&r1=606570&r2=606571&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextFlattenedAttributesTest.java Sun Dec 23 08:16:10 2007
@@ -176,4 +176,15 @@
painting.getGalleryName());
}
}
+
+ public void testInsert() {
+ CompoundPainting o1 = context.newObject(CompoundPainting.class);
+ o1.setArtistName("A1");
+ o1.setEstimatedPrice(new BigDecimal(1.0d));
+ o1.setGalleryName("G1");
+ o1.setPaintingTitle("P1");
+ o1.setTextReview("T1");
+
+ context.commitChanges();
+ }
}