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();
+    }
 }