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/11/20 18:58:59 UTC

svn commit: r596758 - in /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src: main/java/org/apache/cayenne/ main/java/org/apache/cayenne/access/ main/java/org/apache/cayenne/access/jdbc/ main/java/org/apache/cayenne/access/trans/ main/java/org...

Author: aadamchik
Date: Tue Nov 20 09:58:57 2007
New Revision: 596758

URL: http://svn.apache.org/viewvc?rev=596758&view=rev
Log:
java5 : generics

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/DataObjectUtils.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/DataRow.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/ObjectId.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/QueryResponse.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
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataNodeSyncQualifierDescriptor.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DbGenerator.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DbLoader.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/FlattenedArcKey.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ObjectResolver.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/OptimisticLockException.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLConditionTranslator.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLIdentifierColumnsTranslator.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/JDBCResultIterator.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/DataObjectMatchTranslator.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/QueryAssemblerHelper.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/util/DistinctResultIterator.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcPkGenerator.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBasePkGenerator.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/DbEntity.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/project/validator/DbEntityValidator.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/IDUtil.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/DbAttributeTest.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/DbEntityTest.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/DataObjectUtils.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/DataObjectUtils.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/DataObjectUtils.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/DataObjectUtils.java Tue Nov 20 09:58:57 2007
@@ -19,6 +19,7 @@
 
 package org.apache.cayenne;
 
+import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -127,8 +128,13 @@
      * 
      * @see #objectForPK(ObjectContext, ObjectId)
      */
-    public static <T> T objectForPK(ObjectContext context, Class<T> dataObjectClass, int pk) {
-        return (T) objectForPK(context, buildId(context, dataObjectClass, new Integer(pk)));
+    public static <T> T objectForPK(
+            ObjectContext context,
+            Class<T> dataObjectClass,
+            int pk) {
+        return (T) objectForPK(
+                context,
+                buildId(context, dataObjectClass, new Integer(pk)));
     }
 
     /**
@@ -159,7 +165,10 @@
      * 
      * @see #objectForPK(ObjectContext, ObjectId)
      */
-    public static <T> T objectForPK(ObjectContext context, Class<T> dataObjectClass, Map<?,?> pk) {
+    public static <T> T objectForPK(
+            ObjectContext context,
+            Class<T> dataObjectClass,
+            Map<String, ?> pk) {
 
         ObjEntity entity = context.getEntityResolver().lookupObjEntity(dataObjectClass);
         if (entity == null) {
@@ -211,7 +220,10 @@
      * 
      * @see #objectForPK(ObjectContext, ObjectId)
      */
-    public static Object objectForPK(ObjectContext context, String objEntityName, Map<?,?> pk) {
+    public static Object objectForPK(
+            ObjectContext context,
+            String objEntityName,
+            Map<String, ?> pk) {
         if (objEntityName == null) {
             throw new IllegalArgumentException("Null ObjEntity name.");
         }
@@ -277,14 +289,14 @@
                     + entity.getName());
         }
 
-        List pkAttributes = dbEntity.getPrimaryKey();
+        Collection<DbAttribute> pkAttributes = dbEntity.getPrimaryKeys();
         if (pkAttributes.size() != 1) {
             throw new CayenneRuntimeException("PK contains "
                     + pkAttributes.size()
                     + " columns, expected 1.");
         }
 
-        DbAttribute attr = (DbAttribute) pkAttributes.get(0);
+        DbAttribute attr = pkAttributes.iterator().next();
         return new ObjectId(objEntityName, attr.getName(), pk);
     }
 
@@ -309,14 +321,14 @@
                     + entity.getName());
         }
 
-        List pkAttributes = dbEntity.getPrimaryKey();
+        Collection<DbAttribute> pkAttributes = dbEntity.getPrimaryKeys();
         if (pkAttributes.size() != 1) {
             throw new CayenneRuntimeException("PK contains "
                     + pkAttributes.size()
                     + " columns, expected 1.");
         }
 
-        DbAttribute attr = (DbAttribute) pkAttributes.get(0);
+        DbAttribute attr = pkAttributes.iterator().next();
         return new ObjectId(entity.getName(), attr.getName(), pk);
     }
 

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/DataRow.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/DataRow.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/DataRow.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/DataRow.java Tue Nov 20 09:58:57 2007
@@ -19,17 +19,17 @@
 
 package org.apache.cayenne;
 
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.builder.ToStringBuilder;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.DbRelationship;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.util.Util;
+import org.apache.commons.lang.builder.ToStringBuilder;
 
 /**
  * DataRow a map that holds values retrieved from the database for a given query row.
@@ -168,9 +168,9 @@
         // ... handle special case - PK.size == 1
         // use some not-so-significant optimizations...
 
-        List pk = entity.getPrimaryKey();
+        Collection<DbAttribute> pk = entity.getPrimaryKeys();
         if (pk.size() == 1) {
-            DbAttribute attribute = (DbAttribute) pk.get(0);
+            DbAttribute attribute = pk.iterator().next();
 
             String key = (prefix) ? namePrefix + attribute.getName() : attribute
                     .getName();
@@ -192,10 +192,7 @@
         // ... handle generic case - PK.size > 1
 
         Map idMap = new HashMap(pk.size() * 2);
-        Iterator it = pk.iterator();
-        while (it.hasNext()) {
-            DbAttribute attribute = (DbAttribute) it.next();
-
+        for (DbAttribute attribute : pk) {
             String key = (prefix) ? namePrefix + attribute.getName() : attribute
                     .getName();
 

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/ObjectId.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/ObjectId.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/ObjectId.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/ObjectId.java Tue Nov 20 09:58:57 2007
@@ -24,7 +24,6 @@
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -45,14 +44,14 @@
 public class ObjectId implements Serializable {
 
     protected String entityName;
-    protected Map objectIdKeys;
+    protected Map<String, Object> objectIdKeys;
 
     private String singleKey;
     private Object singleValue;
 
     protected byte[] key;
 
-    protected Map replacementIdMap;
+    protected Map<String, Object> replacementIdMap;
 
     // hash code is transient to make sure id is portable across VM
     transient int hashCode;
@@ -108,14 +107,14 @@
      * 
      * @since 1.2
      */
-    public ObjectId(String entityName, Map idMap) {
+    public ObjectId(String entityName, Map<String, ?> idMap) {
         this.entityName = entityName;
 
         if (idMap == null || idMap.size() == 0) {
 
         }
         else if (idMap.size() == 1) {
-            Map.Entry e = (Map.Entry) idMap.entrySet().iterator().next();
+            Map.Entry<String, ?> e = idMap.entrySet().iterator().next();
             this.singleKey = String.valueOf(e.getKey());
             this.singleValue = e.getValue();
         }
@@ -124,7 +123,7 @@
             // we have to create a copy of the map, otherwise we may run into
             // serialization
             // problems with hessian
-            this.objectIdKeys = new HashMap(idMap);
+            this.objectIdKeys = new HashMap<String, Object>(idMap);
         }
     }
 
@@ -144,11 +143,11 @@
     }
 
     /**
-     * Returns an unmodifiable Map of persistent id values, essentailly a primary key map.
+     * Returns an unmodifiable Map of persistent id values, essentially a primary key map.
      * For temporary id returns replacement id, if it was already created. Otherwise
      * returns an empty map.
      */
-    public Map getIdSnapshot() {
+    public Map<String, ?> getIdSnapshot() {
         if (isTemporary()) {
             return (replacementIdMap == null) ? Collections.EMPTY_MAP : Collections
                     .unmodifiableMap(replacementIdMap);
@@ -195,9 +194,7 @@
             return false;
         }
 
-        Iterator entries = objectIdKeys.entrySet().iterator();
-        while (entries.hasNext()) {
-            Map.Entry entry = (Map.Entry) entries.next();
+        for (Map.Entry<String, ?> entry : objectIdKeys.entrySet()) {
             Object entryKey = entry.getKey();
             Object entryValue = entry.getValue();
 
@@ -299,9 +296,9 @@
      * 
      * @since 1.2
      */
-    public Map getReplacementIdMap() {
+    public Map<String, Object> getReplacementIdMap() {
         if (replacementIdMap == null) {
-            replacementIdMap = new HashMap();
+            replacementIdMap = new HashMap<String, Object>();
         }
 
         return replacementIdMap;
@@ -315,7 +312,7 @@
     public ObjectId createReplacementId() {
         // merge existing and replaced ids to handle a replaced subset of
         // a compound primary key
-        Map newIdMap = new HashMap(getIdSnapshot());
+        Map<String, Object> newIdMap = new HashMap<String, Object>(getIdSnapshot());
         if (replacementIdMap != null) {
             newIdMap.putAll(replacementIdMap);
         }
@@ -337,7 +334,7 @@
      */
     public String toString() {
 
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder buffer = new StringBuilder();
 
         buffer.append("<ObjectId:").append(entityName);
 
@@ -353,15 +350,12 @@
         }
         else if (objectIdKeys != null) {
 
-            
             // ensure consistent order of the keys, so that toString could be used as a
             // unique key, just like id itself
-            
-            List keys = new ArrayList(objectIdKeys.keySet());
+
+            List<String> keys = new ArrayList<String>(objectIdKeys.keySet());
             Collections.sort(keys);
-            Iterator it = keys.iterator();
-            while (it.hasNext()) {
-                Object key = it.next();
+            for (Object key : keys) {
                 buffer.append(", ");
                 buffer.append(String.valueOf(key)).append("=").append(
                         objectIdKeys.get(key));

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/QueryResponse.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/QueryResponse.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/QueryResponse.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/QueryResponse.java Tue Nov 20 09:58:57 2007
@@ -73,7 +73,7 @@
      * Returns a List under the current iterator position. Use {@link #isList()} to check
      * the result type before calling this method.
      */
-    List currentList();
+    List<?> currentList();
 
     /**
      * Returns an update count under the current iterator position. Returned value is an
@@ -98,7 +98,7 @@
      * null if the query has no lists. Note that this method resets current iterator to an
      * undefined state.
      */
-    List firstList();
+    List<?> firstList();
 
     /**
      * A utility method for quickly retrieving the first update count from the response.

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=596758&r1=596757&r2=596758&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 Tue Nov 20 09:58:57 2007
@@ -126,7 +126,7 @@
             Map idMap = id.getReplacementIdMap();
 
             boolean autoPkDone = false;
-            Iterator it = dbEntity.getPrimaryKey().iterator();
+            Iterator it = dbEntity.getPrimaryKeys().iterator();
             while (it.hasNext()) {
                 DbAttribute dbAttr = (DbAttribute) it.next();
                 String dbAttrName = dbAttr.getName();

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=596758&r1=596757&r2=596758&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 Tue Nov 20 09:58:57 2007
@@ -126,7 +126,7 @@
                     if (isRootDbEntity) {
                         Map replacementId = o.getObjectId().getReplacementIdMap();
 
-                        Iterator pkIt = dbEntity.getPrimaryKey().iterator();
+                        Iterator pkIt = dbEntity.getPrimaryKeys().iterator();
                         while (pkIt.hasNext()) {
                             String name = ((DbAttribute) pkIt.next()).getName();
                             if (snapshot.containsKey(name)

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataNodeSyncQualifierDescriptor.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataNodeSyncQualifierDescriptor.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataNodeSyncQualifierDescriptor.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DataNodeSyncQualifierDescriptor.java Tue Nov 20 09:58:57 2007
@@ -79,7 +79,7 @@
 
         // master PK columns
         if (entity.getDbEntity() == dbEntity) {
-            Iterator pkIt = entity.getDbEntity().getPrimaryKey().iterator();
+            Iterator pkIt = entity.getDbEntity().getPrimaryKeys().iterator();
             while (pkIt.hasNext()) {
                 final DbAttribute attribute = (DbAttribute) pkIt.next();
                 attributes.add(attribute);

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DbGenerator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DbGenerator.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DbGenerator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DbGenerator.java Tue Nov 20 09:58:57 2007
@@ -566,7 +566,7 @@
 
             // create a copy of the original PK list,
             // since the list will be modified locally
-            List pkAttributes = new ArrayList(nextEntity.getPrimaryKey());
+            List pkAttributes = new ArrayList(nextEntity.getPrimaryKeys());
             while (pkAttributes.size() > 0 && relationships.hasNext()) {
                 DbRelationship nextRelationship = (DbRelationship) relationships.next();
                 if (!nextRelationship.isToMasterPK()) {

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DbLoader.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DbLoader.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DbLoader.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/DbLoader.java Tue Nov 20 09:58:57 2007
@@ -667,7 +667,7 @@
 
         if (toPK) {
             toDependentPK = true;
-            if (((DbEntity) relationship.getTargetEntity()).getPrimaryKey().size() == joins
+            if (((DbEntity) relationship.getTargetEntity()).getPrimaryKeys().size() == joins
                     .size()) {
                 toMany = false;
             }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/FlattenedArcKey.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/FlattenedArcKey.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/FlattenedArcKey.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/FlattenedArcKey.java Tue Nov 20 09:58:57 2007
@@ -21,7 +21,6 @@
 
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -108,11 +107,8 @@
 
         boolean autoPkDone = false;
         DbEntity joinEntity = getJoinEntity();
-        List pkAttributes = joinEntity.getPrimaryKey();
-        Iterator it = pkAttributes.iterator();
 
-        while (it.hasNext()) {
-            DbAttribute dbAttr = (DbAttribute) it.next();
+        for (DbAttribute dbAttr : joinEntity.getPrimaryKeys()) {
             String dbAttrName = dbAttr.getName();
             if (snapshot.containsKey(dbAttrName)) {
                 continue;
@@ -148,12 +144,9 @@
         Map snapshot = eagerJoinSnapshot();
 
         DbEntity joinEntity = getJoinEntity();
-        List pkAttributes = joinEntity.getPrimaryKey();
 
         boolean fetchKey = false;
-        Iterator it = pkAttributes.iterator();
-        while (it.hasNext()) {
-            DbAttribute dbAttr = (DbAttribute) it.next();
+        for (DbAttribute dbAttr : joinEntity.getPrimaryKeys()) {
             String dbAttrName = dbAttr.getName();
             if (!snapshot.containsKey(dbAttrName)) {
                 fetchKey = true;
@@ -174,9 +167,7 @@
                 Expression.EQUAL_TO));
         query.setFetchingDataRows(true);
 
-        it = pkAttributes.iterator();
-        while (it.hasNext()) {
-            DbAttribute dbAttr = (DbAttribute) it.next();
+        for (DbAttribute dbAttr : joinEntity.getPrimaryKeys()) {
             query.addCustomDbAttribute(dbAttr.getName());
         }
 

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java Tue Nov 20 09:58:57 2007
@@ -154,7 +154,7 @@
 
             // I guess this check is redundant, as custom attributes warrant data rows
             if (!select.isFetchingCustomAttributes()) {
-                Iterator pk = rootEntity.getDbEntity().getPrimaryKey().iterator();
+                Iterator pk = rootEntity.getDbEntity().getPrimaryKeys().iterator();
                 while (pk.hasNext()) {
                     DbAttribute attribute = (DbAttribute) pk.next();
                     clone.addCustomDbAttribute(attribute.getName());

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ObjectResolver.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ObjectResolver.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ObjectResolver.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/ObjectResolver.java Tue Nov 20 09:58:57 2007
@@ -20,6 +20,7 @@
 package org.apache.cayenne.access;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -47,7 +48,7 @@
 
     DataContext context;
     ClassDescriptor descriptor;
-    List primaryKey;
+    Collection<DbAttribute> primaryKey;
 
     EntityInheritanceTree inheritanceTree;
     boolean refreshObjects;
@@ -72,7 +73,7 @@
                     + "' has no DbEntity.");
         }
 
-        this.primaryKey = dbEntity.getPrimaryKey();
+        this.primaryKey = dbEntity.getPrimaryKeys();
         if (primaryKey.size() == 0) {
             throw new CayenneRuntimeException("Won't be able to create ObjectId for '"
                     + descriptor.getEntity().getName()
@@ -260,9 +261,9 @@
 
     ObjectId createObjectId(DataRow dataRow, ObjEntity objEntity, String namePrefix) {
 
-        List pk = objEntity == this.descriptor.getEntity() ? this.primaryKey : objEntity
-                .getDbEntity()
-                .getPrimaryKey();
+        Collection<DbAttribute> pk = objEntity == this.descriptor.getEntity()
+                ? this.primaryKey
+                : objEntity.getDbEntity().getPrimaryKeys();
 
         boolean prefix = namePrefix != null && namePrefix.length() > 0;
 
@@ -270,7 +271,7 @@
         // use some not-so-significant optimizations...
 
         if (pk.size() == 1) {
-            DbAttribute attribute = (DbAttribute) pk.get(0);
+            DbAttribute attribute = pk.iterator().next();
 
             String key = (prefix) ? namePrefix + attribute.getName() : attribute
                     .getName();

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/OptimisticLockException.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/OptimisticLockException.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/OptimisticLockException.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/OptimisticLockException.java Tue Nov 20 09:58:57 2007
@@ -73,7 +73,7 @@
         // for PK, ignoring other locking attributes...
 
         Expression qualifier = null;
-        Iterator it = rootEntity.getPrimaryKey().iterator();
+        Iterator it = rootEntity.getPrimaryKeys().iterator();
         while (it.hasNext()) {
             DbAttribute attribute = (DbAttribute) it.next();
             Expression attributeQualifier = ExpressionFactory.matchDbExp(attribute

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/PrefetchProcessorJointNode.java Tue Nov 20 09:58:57 2007
@@ -21,6 +21,7 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -225,7 +226,7 @@
         }
 
         // add unmapped PK
-        Iterator pks = getResolver().getEntity().getDbEntity().getPrimaryKey().iterator();
+        Iterator pks = getResolver().getEntity().getDbEntity().getPrimaryKeys().iterator();
         while (pks.hasNext()) {
             DbAttribute pk = (DbAttribute) pks.next();
             appendColumn(targetSource, pk.getName(), prefix + pk.getName());
@@ -255,14 +256,18 @@
      */
     private void buildPKIndex() {
         // index PK
-        List pks = getResolver().getEntity().getDbEntity().getPrimaryKey();
+        Collection<DbAttribute> pks = getResolver()
+                .getEntity()
+                .getDbEntity()
+                .getPrimaryKeys();
         this.idIndices = new int[pks.size()];
 
         // this is needed for checking that a valid index is made
         Arrays.fill(idIndices, -1);
 
+        Iterator<DbAttribute> it = pks.iterator();
         for (int i = 0; i < idIndices.length; i++) {
-            DbAttribute pk = (DbAttribute) pks.get(i);
+            DbAttribute pk = it.next();
 
             for (int j = 0; j < columns.length; j++) {
                 if (pk.getName().equals(columns[j].getName())) {

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLConditionTranslator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLConditionTranslator.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLConditionTranslator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLConditionTranslator.java Tue Nov 20 09:58:57 2007
@@ -20,6 +20,7 @@
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -477,10 +478,10 @@
         String alias = context.getTableAlias(expression.getText(), table
                 .getFullyQualifiedName());
 
-        List pks = table.getPrimaryKey();
+        Collection<DbAttribute> pks = table.getPrimaryKeys();
 
         if (pks.size() == 1) {
-            DbAttribute pk = (DbAttribute) pks.get(0);
+            DbAttribute pk = pks.iterator().next();
             context.append(' ').append(alias).append('.').append(pk.getName());
         }
         else {

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLIdentifierColumnsTranslator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLIdentifierColumnsTranslator.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLIdentifierColumnsTranslator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLIdentifierColumnsTranslator.java Tue Nov 20 09:58:57 2007
@@ -118,7 +118,7 @@
         // append id columns ... (some may have been appended already via relationships)
 
         DbEntity table = descriptor.getEntity().getDbEntity();
-        Iterator it = table.getPrimaryKey().iterator();
+        Iterator it = table.getPrimaryKeys().iterator();
         while (it.hasNext()) {
             DbAttribute pk = (DbAttribute) it.next();
             appendColumn(idVar, pk);

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/EJBQLPathTranslator.java Tue Nov 20 09:58:57 2007
@@ -18,6 +18,7 @@
  ****************************************************************/
 package org.apache.cayenne.access.jdbc;
 
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -244,10 +245,10 @@
                     idPath,
                     table.getFullyQualifiedName());
 
-            List pks = table.getPrimaryKey();
+            Collection<DbAttribute> pks = table.getPrimaryKeys();
 
             if (pks.size() == 1) {
-                DbAttribute pk = (DbAttribute) pks.get(0);
+                DbAttribute pk = pks.iterator().next();
                 context.append(' ');
                 if (isUsingAliases()) {
                     context.append(alias).append('.');

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/JDBCResultIterator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/JDBCResultIterator.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/JDBCResultIterator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/jdbc/JDBCResultIterator.java Tue Nov 20 09:58:57 2007
@@ -355,7 +355,7 @@
             throw new CayenneRuntimeException("Null root DbEntity, can't index PK");
         }
 
-        int len = rootEntity.getPrimaryKey().size();
+        int len = rootEntity.getPrimaryKeys().size();
 
         // sanity check
         if (len == 0) {

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/DataObjectMatchTranslator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/DataObjectMatchTranslator.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/DataObjectMatchTranslator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/DataObjectMatchTranslator.java Tue Nov 20 09:58:57 2007
@@ -72,7 +72,7 @@
 
             // match on target PK
             DbEntity ent = (DbEntity) rel.getTargetEntity();
-            Iterator pk = ent.getPrimaryKey().iterator();
+            Iterator pk = ent.getPrimaryKeys().iterator();
 
             // index by name
             while (pk.hasNext()) {

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java Tue Nov 20 09:58:57 2007
@@ -17,13 +17,11 @@
  *  under the License.
  ****************************************************************/
 
-
 package org.apache.cayenne.access.trans;
 
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.util.Iterator;
-import java.util.List;
 
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.map.DbAttribute;
@@ -45,14 +43,13 @@
     public String createSqlString(BatchQuery batch) {
         DeleteBatchQuery deleteBatch = (DeleteBatchQuery) batch;
         String table = batch.getDbEntity().getFullyQualifiedName();
-        List qualifierAttributes = deleteBatch.getQualifierAttributes();
 
         StringBuffer query = new StringBuffer("DELETE FROM ");
         query.append(table).append(" WHERE ");
 
-        Iterator i = qualifierAttributes.iterator();
+        Iterator<DbAttribute> i = deleteBatch.getQualifierAttributes().iterator();
         while (i.hasNext()) {
-            DbAttribute attribute = (DbAttribute) i.next();
+            DbAttribute attribute = i.next();
             appendDbAttribute(query, attribute);
             query.append(deleteBatch.isNull(attribute) ? " IS NULL" : " = ?");
 
@@ -71,13 +68,12 @@
             throws SQLException, Exception {
 
         DeleteBatchQuery deleteBatch = (DeleteBatchQuery) query;
-        List qualifierAttributes = deleteBatch.getQualifierAttributes();
 
         int parameterIndex = 1;
+        int i = 0;
 
-        for (int i = 0; i < qualifierAttributes.size(); i++) {
-            Object value = query.getValue(i);
-            DbAttribute attribute = (DbAttribute) qualifierAttributes.get(i);
+        for (DbAttribute attribute : deleteBatch.getQualifierAttributes()) {
+            Object value = query.getValue(i++);
 
             // skip null attributes... they are translated as "IS NULL"
             if (deleteBatch.isNull(attribute)) {

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/QueryAssemblerHelper.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/QueryAssemblerHelper.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/QueryAssemblerHelper.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/QueryAssemblerHelper.java Tue Nov 20 09:58:57 2007
@@ -19,6 +19,7 @@
 
 package org.apache.cayenne.access.trans;
 
+import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -413,13 +414,13 @@
 
         DbJoin join = (DbJoin) joins.get(0);
 
-        DbAttribute att = null;
+        DbAttribute attribute = null;
 
         if (rel.isToMany()) {
             DbEntity ent = (DbEntity) join.getRelationship().getTargetEntity();
-            List pk = ent.getPrimaryKey();
+            Collection<DbAttribute> pk = ent.getPrimaryKeys();
             if (pk.size() != 1) {
-                StringBuffer msg = new StringBuffer();
+                StringBuilder msg = new StringBuilder();
                 msg
                     .append("DB_NAME expressions can only support ")
                     .append("targets with a single column PK. ")
@@ -430,12 +431,12 @@
                 throw new CayenneRuntimeException(msg.toString());
             }
 
-            att = (DbAttribute) pk.get(0);
+            attribute = pk.iterator().next();
         }
         else {
-            att = join.getSource();
+            attribute = join.getSource();
         }
 
-        processColumn(buf, att);
+        processColumn(buf, attribute);
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java Tue Nov 20 09:58:57 2007
@@ -353,7 +353,7 @@
 
         // add remaining needed attrs from DbEntity
         DbEntity table = getRootDbEntity();
-        Iterator pk = table.getPrimaryKey().iterator();
+        Iterator pk = table.getPrimaryKeys().iterator();
         while (pk.hasNext()) {
             DbAttribute dba = (DbAttribute) pk.next();
             appendColumn(columns, null, dba, attributes, null);

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/util/DistinctResultIterator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/util/DistinctResultIterator.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/util/DistinctResultIterator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/util/DistinctResultIterator.java Tue Nov 20 09:58:57 2007
@@ -203,7 +203,7 @@
             // to avoid iterating over default entity attributes...
 
             Map id = new HashMap();
-            Iterator it = defaultEntity.getPrimaryKey().iterator();
+            Iterator it = defaultEntity.getPrimaryKeys().iterator();
             while (it.hasNext()) {
                 DbAttribute pk = (DbAttribute) it.next();
                 id.put(pk.getName(), next.get(pk.getName()));

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java Tue Nov 20 09:58:57 2007
@@ -270,7 +270,7 @@
      * @since 1.2
      */
     protected void createTableAppendPKClause(StringBuffer sqlBuffer, DbEntity entity) {
-        Iterator pkit = entity.getPrimaryKey().iterator();
+        Iterator pkit = entity.getPrimaryKeys().iterator();
         if (pkit.hasNext()) {
             sqlBuffer.append(", PRIMARY KEY (");
             boolean firstPk = true;

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcPkGenerator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcPkGenerator.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcPkGenerator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/JdbcPkGenerator.java Tue Nov 20 09:58:57 2007
@@ -26,6 +26,7 @@
 import java.sql.Statement;
 import java.sql.Types;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -266,9 +267,9 @@
      * @since 1.0.2
      */
     protected byte[] binaryPK(DbEntity entity) {
-        List pkColumns = entity.getPrimaryKey();
+        Collection<DbAttribute> pkColumns = entity.getPrimaryKeys();
         if (pkColumns.size() == 1) {
-            DbAttribute pk = (DbAttribute) pkColumns.get(0);
+            DbAttribute pk = pkColumns.iterator().next();
             if (pk.getMaxLength() > 0
                     && (pk.getType() == Types.BINARY || pk.getType() == Types.VARBINARY)) {
                 return IDUtil.pseudoUniqueSecureByteSequence(pk.getMaxLength());

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java Tue Nov 20 09:58:57 2007
@@ -145,7 +145,7 @@
         }
 
         // primary key clause
-        Iterator pkit = ent.getPrimaryKey().iterator();
+        Iterator pkit = ent.getPrimaryKeys().iterator();
         if (pkit.hasNext()) {
             if (first)
                 first = false;

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java Tue Nov 20 09:58:57 2007
@@ -167,7 +167,7 @@
         }
 
         // primary key clause
-        Iterator pkit = ent.getPrimaryKey().iterator();
+        Iterator pkit = ent.getPrimaryKeys().iterator();
         if (pkit.hasNext()) {
             if (first)
                 first = false;

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java Tue Nov 20 09:58:57 2007
@@ -125,7 +125,7 @@
         }
 
         // primary key clause
-        Iterator pkit = ent.getPrimaryKey().iterator();
+        Iterator pkit = ent.getPrimaryKeys().iterator();
         if (pkit.hasNext()) {
             if (first)
                 first = false;

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java Tue Nov 20 09:58:57 2007
@@ -200,7 +200,7 @@
     protected void createTableAppendPKClause(StringBuffer sqlBuffer, DbEntity entity) {
 
         // must move generated to the front...
-        List pkList = new ArrayList(entity.getPrimaryKey());
+        List pkList = new ArrayList(entity.getPrimaryKeys());
         Collections.sort(pkList, new PKComparator());
 
         Iterator pkit = pkList.iterator();

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBasePkGenerator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBasePkGenerator.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBasePkGenerator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/openbase/OpenBasePkGenerator.java Tue Nov 20 09:58:57 2007
@@ -23,6 +23,7 @@
 import java.sql.ResultSet;
 import java.sql.Statement;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
@@ -103,12 +104,12 @@
      * @since 1.2
      */
     protected String newIDString(DbEntity ent) {
-        if ((null == ent.getPrimaryKey()) || (1 != ent.getPrimaryKey().size())) {
+        if ((null == ent.getPrimaryKeys()) || (1 != ent.getPrimaryKeys().size())) {
             throw new CayenneRuntimeException("Error generating pk for DbEntity "
                     + ent.getName()
                     + ": pk must be single attribute");
         }
-        DbAttribute primaryKeyAttribute = (DbAttribute) ent.getPrimaryKey().get(0);
+        DbAttribute primaryKeyAttribute = ent.getPrimaryKeys().iterator().next();
 
         StringBuffer buf = new StringBuffer("NEWID FOR ");
         buf.append(ent.getName()).append(' ').append(primaryKeyAttribute.getName());
@@ -158,11 +159,7 @@
     }
 
     protected boolean canCreatePK(DbEntity entity) {
-        List pk = entity.getPrimaryKey();
-        if (pk == null || pk.size() == 0) {
-            return false;
-        }
-        return true;
+        return entity.getPrimaryKeys().size() > 0;
     }
 
     /**
@@ -187,7 +184,7 @@
      * Returns a String to create PK support for an entity.
      */
     protected String createPKString(DbEntity entity) {
-        List pk = entity.getPrimaryKey();
+        Collection<DbAttribute> pk = entity.getPrimaryKeys();
 
         if (pk == null || pk.size() == 0) {
             throw new CayenneRuntimeException("Entity '"
@@ -195,17 +192,17 @@
                     + "' has no PK defined.");
         }
 
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder buffer = new StringBuilder();
         buffer.append("CREATE PRIMARY KEY ").append(entity.getName()).append(" (");
 
-        Iterator it = pk.iterator();
+        Iterator<DbAttribute> it = pk.iterator();
 
         // at this point we know that there is at least on PK column
-        DbAttribute firstColumn = (DbAttribute) it.next();
+        DbAttribute firstColumn = it.next();
         buffer.append(firstColumn.getName());
 
         while (it.hasNext()) {
-            DbAttribute column = (DbAttribute) it.next();
+            DbAttribute column = it.next();
             buffer.append(", ").append(column.getName());
         }
 
@@ -218,7 +215,7 @@
      * recommendations.
      */
     protected String createUniquePKIndexString(DbEntity entity) {
-        List pk = entity.getPrimaryKey();
+        Collection<DbAttribute> pk = entity.getPrimaryKeys();
 
         if (pk == null || pk.size() == 0) {
             throw new CayenneRuntimeException("Entity '"
@@ -226,21 +223,21 @@
                     + "' has no PK defined.");
         }
 
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder buffer = new StringBuilder();
 
         // compound PK doesn't work well with UNIQUE index...
         // create a regular one in this case
         buffer.append(pk.size() == 1 ? "CREATE UNIQUE INDEX " : "CREATE INDEX ").append(
                 entity.getName()).append(" (");
 
-        Iterator it = pk.iterator();
+        Iterator<DbAttribute> it = pk.iterator();
 
         // at this point we know that there is at least on PK column
-        DbAttribute firstColumn = (DbAttribute) it.next();
+        DbAttribute firstColumn = it.next();
         buffer.append(firstColumn.getName());
 
         while (it.hasNext()) {
-            DbAttribute column = (DbAttribute) it.next();
+            DbAttribute column = it.next();
             buffer.append(", ").append(column.getName());
         }
         buffer.append(")");

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java Tue Nov 20 09:58:57 2007
@@ -188,7 +188,7 @@
         }
 
         // primary key clause
-        Iterator pkit = ent.getPrimaryKey().iterator();
+        Iterator pkit = ent.getPrimaryKeys().iterator();
         if (pkit.hasNext()) {
             if (first)
                 first = false;

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/DbEntity.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/DbEntity.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/DbEntity.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/map/DbEntity.java Tue Nov 20 09:58:57 2007
@@ -55,12 +55,12 @@
 
     protected String catalog;
     protected String schema;
-    protected List primaryKey;
+    protected Collection<DbAttribute> primaryKey;
 
     /**
      * @since 1.2
      */
-    protected Collection generatedAttributes;
+    protected Collection<DbAttribute> generatedAttributes;
     protected DbKeyGenerator primaryKeyGenerator;
 
     /**
@@ -69,8 +69,8 @@
     public DbEntity() {
         super();
 
-        this.primaryKey = new ArrayList(2);
-        this.generatedAttributes = new ArrayList(2);
+        this.primaryKey = new ArrayList<DbAttribute>(2);
+        this.generatedAttributes = new ArrayList<DbAttribute>(2);
     }
 
     /**
@@ -154,13 +154,20 @@
     }
 
     /**
-     * Returns an unmodifiable list of DbAttributes representing the primary key of the
-     * table described by this DbEntity.
+     * Returns an unmodifiable collection of DbAttributes representing the primary key of
+     * the table described by this DbEntity.
+     * 
+     * @since 3.0
+     */
+    public Collection<DbAttribute> getPrimaryKeys() {
+        return Collections.unmodifiableCollection(primaryKey);
+    }
+    
+    /**
+     * @deprecated since 3.0 use {@link #getPrimaryKeys()} that returns a collection.
      */
-    // TODO: (Andrus 09/06/2005) Change to Collection ... no reason to keep as list other
-    // than backwards compatibility
-    public List getPrimaryKey() {
-        return Collections.unmodifiableList(primaryKey);
+    public List<DbAttribute> getPrimaryKey() {
+        return new ArrayList<DbAttribute>(getPrimaryKeys());
     }
 
     /**
@@ -169,7 +176,7 @@
      * 
      * @since 1.2
      */
-    public Collection getGeneratedAttributes() {
+    public Collection<DbAttribute> getGeneratedAttributes() {
         return Collections.unmodifiableCollection(generatedAttributes);
     }
 
@@ -314,19 +321,19 @@
         }
 
         // catch clearing (event with null ('any') DbAttribute)
-        Attribute attr = e.getAttribute();
-        if ((attr == null) && (this.attributes.isEmpty())) {
+        Attribute attribute = e.getAttribute();
+        if ((attribute == null) && (this.attributes.isEmpty())) {
             this.primaryKey.clear();
             this.generatedAttributes.clear();
             return;
         }
 
         // make sure we handle a DbAttribute
-        if (!(attr instanceof DbAttribute)) {
+        if (!(attribute instanceof DbAttribute)) {
             return;
         }
 
-        DbAttribute dbAttr = (DbAttribute) attr;
+        DbAttribute dbAttribute = (DbAttribute) attribute;
 
         // handle attribute name changes
         if (e.getId() == AttributeEvent.CHANGE && e.isNameChange()) {
@@ -346,7 +353,7 @@
                         Iterator ait = oe.getAttributes().iterator();
                         while (ait.hasNext()) {
                             ObjAttribute oa = (ObjAttribute) ait.next();
-                            if (oa.getDbAttribute() == dbAttr) {
+                            if (oa.getDbAttribute() == dbAttribute) {
                                 oa.setDbAttributeName(newName);
                             }
                         }
@@ -360,10 +367,10 @@
                         Iterator joins = rel.getJoins().iterator();
                         while (joins.hasNext()) {
                             DbJoin join = (DbJoin) joins.next();
-                            if (join.getSource() == dbAttr) {
+                            if (join.getSource() == dbAttribute) {
                                 join.setSourceName(newName);
                             }
-                            if (join.getTarget() == dbAttr) {
+                            if (join.getTarget() == dbAttribute) {
                                 join.setTargetName(newName);
                             }
                         }
@@ -375,26 +382,25 @@
             attributes.remove(oldName);
 
             // add the attribute back in with the new name
-            super.addAttribute(dbAttr);
+            super.addAttribute(dbAttribute);
         }
 
         // handle PK refresh
-        if (primaryKey.contains(dbAttr) || dbAttr.isPrimaryKey()) {
+        if (primaryKey.contains(dbAttribute) || dbAttribute.isPrimaryKey()) {
             switch (e.getId()) {
                 case MapEvent.ADD:
-                    this.primaryKey.add(attr);
+                    this.primaryKey.add(dbAttribute);
                     break;
 
                 case MapEvent.REMOVE:
-                    this.primaryKey.remove(attr);
+                    this.primaryKey.remove(dbAttribute);
                     break;
 
                 default:
                     // generic update
                     this.primaryKey.clear();
-                    Iterator it = this.getAttributes().iterator();
-                    while (it.hasNext()) {
-                        DbAttribute dba = (DbAttribute) it.next();
+                    for (Object next : getAttributes()) {
+                        DbAttribute dba = (DbAttribute) next;
                         if (dba.isPrimaryKey()) {
                             this.primaryKey.add(dba);
                         }
@@ -403,22 +409,21 @@
         }
 
         // handle generated key refresh
-        if (generatedAttributes.contains(dbAttr) || dbAttr.isGenerated()) {
+        if (generatedAttributes.contains(dbAttribute) || dbAttribute.isGenerated()) {
             switch (e.getId()) {
                 case MapEvent.ADD:
-                    this.generatedAttributes.add(attr);
+                    this.generatedAttributes.add(dbAttribute);
                     break;
 
                 case MapEvent.REMOVE:
-                    this.generatedAttributes.remove(attr);
+                    this.generatedAttributes.remove(dbAttribute);
                     break;
 
                 default:
                     // generic update
                     this.generatedAttributes.clear();
-                    Iterator it = this.getAttributes().iterator();
-                    while (it.hasNext()) {
-                        DbAttribute dba = (DbAttribute) it.next();
+                    for (Object next : getAttributes()) {
+                        DbAttribute dba = (DbAttribute) next;
                         if (dba.isGenerated()) {
                             this.generatedAttributes.add(dba);
                         }
@@ -497,7 +502,7 @@
         }
 
         Map replacement = id.getReplacementIdMap();
-        Collection pk = getPrimaryKey();
+        Collection pk = getPrimaryKeys();
         if (pk.size() != replacement.size()) {
             return false;
         }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/project/validator/DbEntityValidator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/project/validator/DbEntityValidator.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/project/validator/DbEntityValidator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/project/validator/DbEntityValidator.java Tue Nov 20 09:58:57 2007
@@ -55,7 +55,7 @@
 		ProjectPath path,
 		Validator validator) {
 		if (ent.getAttributes().size() > 0
-			&& ent.getPrimaryKey().size() == 0) {
+			&& ent.getPrimaryKeys().size() == 0) {
 			DataMap map = ent.getDataMap();
 			if (map != null && map.getMappedEntities(ent).size() > 0) {
 				// there is an objentity, so complain about no pk

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java Tue Nov 20 09:58:57 2007
@@ -39,7 +39,7 @@
     protected List dbAttributes;
     protected boolean usingOptimisticLocking;
 
-    private List qualifierAttributes;
+    private Collection<DbAttribute> qualifierAttributes;
     private Collection nullQualifierNames;
 
     /**
@@ -51,7 +51,7 @@
      * @param batchCapacity Estimated size of the batch.
      */
     public DeleteBatchQuery(DbEntity dbEntity, int batchCapacity) {
-        this(dbEntity, dbEntity.getPrimaryKey(), Collections.EMPTY_SET, batchCapacity);
+        this(dbEntity, dbEntity.getPrimaryKeys(), Collections.EMPTY_SET, batchCapacity);
     }
 
     /**
@@ -63,8 +63,9 @@
      *            values.
      * @param batchCapacity Estimated size of the batch.
      */
-    public DeleteBatchQuery(DbEntity dbEntity, List qualifierAttributes,
-            Collection nullQualifierNames, int batchCapacity) {
+    public DeleteBatchQuery(DbEntity dbEntity,
+            Collection<DbAttribute> qualifierAttributes, Collection nullQualifierNames,
+            int batchCapacity) {
 
         super(dbEntity);
 
@@ -105,10 +106,10 @@
     }
 
     /**
-     * @since 1.2
+     * @since 3.0 (since 3.0 changed to return collection instead of a list).
      */
-    public List getQualifierAttributes() {
-        return Collections.unmodifiableList(qualifierAttributes);
+    public Collection<DbAttribute> getQualifierAttributes() {
+        return qualifierAttributes;
     }
 
     public Object getValue(int dbAttributeIndex) {

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/IDUtil.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/IDUtil.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/IDUtil.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/util/IDUtil.java Tue Nov 20 09:58:57 2007
@@ -19,6 +19,7 @@
 
 package org.apache.cayenne.util;
 
+import java.io.IOException;
 import java.net.UnknownHostException;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
@@ -31,7 +32,7 @@
  * @author Andrus Adamchik
  */
 public class IDUtil {
-    
+
     private static final int BITMASK_0 = 0xff;
     private static final int BITMASK_1 = 0xff << 8;
     private static final int BITMASK_2 = 0xff << 16;
@@ -70,13 +71,18 @@
     /**
      * Prints a byte value to a StringBuffer as a double digit hex value.
      * 
-     * @since 1.2
+     * @since 1.2 Since 3.0 signature has changed to take Appendable argument.
      */
-    public static void appendFormattedByte(StringBuffer buffer, byte byteValue) {
+    public static void appendFormattedByte(Appendable buffer, byte byteValue) {
         final String digits = "0123456789ABCDEF";
 
-        buffer.append(digits.charAt((byteValue >>> 4) & 0xF));
-        buffer.append(digits.charAt(byteValue & 0xF));
+        try {
+            buffer.append(digits.charAt((byteValue >>> 4) & 0xF));
+            buffer.append(digits.charAt(byteValue & 0xF));
+        }
+        catch (IOException e) {
+            throw new CayenneRuntimeException("Error appending data to buffer", e);
+        }
     }
 
     /**

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/DbAttributeTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/DbAttributeTest.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/DbAttributeTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/DbAttributeTest.java Tue Nov 20 09:58:57 2007
@@ -20,7 +20,7 @@
 package org.apache.cayenne.map;
 
 import java.sql.Types;
-import java.util.List;
+import java.util.Collection;
 
 import junit.framework.TestCase;
 
@@ -49,12 +49,12 @@
 
     public void testPrimaryKeyEmpty() {
         DbEntity dbe = new DbEntity("e");
-        assertNotNull(dbe.getPrimaryKey());
+        assertNotNull(dbe.getPrimaryKeys());
 
         DbAttribute a = new DbAttribute("abc", Types.INTEGER, dbe);
         dbe.addAttribute(a);
-        assertNotNull(dbe.getPrimaryKey());
-        assertEquals(0, dbe.getPrimaryKey().size());
+        assertNotNull(dbe.getPrimaryKeys());
+        assertEquals(0, dbe.getPrimaryKeys().size());
     }
 
     public void testPrimaryKeyAdded() {
@@ -62,26 +62,23 @@
         DbAttribute a = new DbAttribute("abc", Types.INTEGER, dbe);
         a.setPrimaryKey(true);
         dbe.addAttribute(a);
-        List pk = dbe.getPrimaryKey();
+        Collection<DbAttribute> pk = dbe.getPrimaryKeys();
         assertNotNull(pk);
         assertEquals(1, pk.size());
-        assertEquals(pk, dbe.getPrimaryKey());
     }
 
     public void testPrimaryKeyAttributeChanged() {
         DbEntity dbe = new DbEntity("e");
         DbAttribute a = new DbAttribute("abc", Types.INTEGER, dbe);
         dbe.addAttribute(a);
-        List pk = dbe.getPrimaryKey();
+        Collection<DbAttribute> pk = dbe.getPrimaryKeys();
         assertNotNull(pk);
         assertEquals(0, pk.size());
-        assertEquals(pk, dbe.getPrimaryKey());
 
         a.setPrimaryKey(true);
-        pk = dbe.getPrimaryKey();
+        pk = dbe.getPrimaryKeys();
         assertNotNull(pk);
         assertEquals(1, pk.size());
-        assertEquals(pk, dbe.getPrimaryKey());
     }
 
     public void testPrimaryKeyRemoved() {
@@ -89,33 +86,28 @@
         DbAttribute a = new DbAttribute("abc", Types.INTEGER, dbe);
         a.setPrimaryKey(true);
         dbe.addAttribute(a);
-        List pk = dbe.getPrimaryKey();
+        Collection<DbAttribute> pk = dbe.getPrimaryKeys();
         assertNotNull(pk);
         assertEquals(1, pk.size());
-        assertEquals(pk, dbe.getPrimaryKey());
 
         dbe.removeAttribute(a.getName());
-        pk = dbe.getPrimaryKey();
+        pk = dbe.getPrimaryKeys();
         assertNotNull(pk);
-        assertEquals(0, pk.size());
-        assertEquals(pk, dbe.getPrimaryKey());
-    }
+        assertEquals(0, pk.size());    }
 
     public void testAttributesCleared() {
         DbEntity dbe = new DbEntity("e");
         DbAttribute a = new DbAttribute("abc", Types.INTEGER, dbe);
         a.setPrimaryKey(true);
         dbe.addAttribute(a);
-        List pk = dbe.getPrimaryKey();
+        Collection<DbAttribute> pk = dbe.getPrimaryKeys();
         assertNotNull(pk);
         assertEquals(1, pk.size());
-        assertEquals(pk, dbe.getPrimaryKey());
 
         dbe.clearAttributes();
-        pk = dbe.getPrimaryKey();
+        pk = dbe.getPrimaryKeys();
         assertNotNull(pk);
         assertEquals(0, pk.size());
-        assertEquals(pk, dbe.getPrimaryKey());
     }
 
     public void testAutoIncrement() throws Exception {

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/DbEntityTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/DbEntityTest.java?rev=596758&r1=596757&r2=596758&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/DbEntityTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/map/DbEntityTest.java Tue Nov 20 09:58:57 2007
@@ -19,7 +19,7 @@
 
 package org.apache.cayenne.map;
 
-import java.util.List;
+import java.util.Collection;
 
 import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.remote.hessian.service.HessianUtil;
@@ -41,12 +41,12 @@
 
         DbEntity d2 = (DbEntity) Util.cloneViaSerialization(entity);
 
-        assertNotNull(d2.getPrimaryKey());
-        assertEquals(entity.getPrimaryKey().size(), d2.getPrimaryKey().size());
+        assertNotNull(d2.getPrimaryKeys());
+        assertEquals(entity.getPrimaryKeys().size(), d2.getPrimaryKeys().size());
 
         DbAttribute pk2 = (DbAttribute) d2.getAttribute(pk.getName());
         assertNotNull(pk2);
-        assertTrue(d2.getPrimaryKey().contains(pk2));
+        assertTrue(d2.getPrimaryKeys().contains(pk2));
 
         assertNotNull(d2.getGeneratedAttributes());
         assertEquals(entity.getGeneratedAttributes().size(), d2
@@ -73,12 +73,12 @@
                 entity,
                 new EntityResolver());
 
-        assertNotNull(d2.getPrimaryKey());
-        assertEquals(entity.getPrimaryKey().size(), d2.getPrimaryKey().size());
+        assertNotNull(d2.getPrimaryKeys());
+        assertEquals(entity.getPrimaryKeys().size(), d2.getPrimaryKeys().size());
 
         DbAttribute pk2 = (DbAttribute) d2.getAttribute(pk.getName());
         assertNotNull(pk2);
-        assertTrue(d2.getPrimaryKey().contains(pk2));
+        assertTrue(d2.getPrimaryKeys().contains(pk2));
 
         assertNotNull(d2.getGeneratedAttributes());
         assertEquals(entity.getGeneratedAttributes().size(), d2
@@ -143,10 +143,10 @@
         a2.setPrimaryKey(true);
         ent.addAttribute(a2);
 
-        List pk = ent.getPrimaryKey();
+        Collection<DbAttribute> pk = ent.getPrimaryKeys();
         assertNotNull(pk);
         assertEquals(1, pk.size());
-        assertSame(a2, pk.get(0));
+        assertSame(a2, pk.iterator().next());
     }
 
     public void testAddPKAttribute() {
@@ -156,9 +156,9 @@
         a1.setName("a1");
         a1.setPrimaryKey(false);
 
-        assertTrue(ent.getPrimaryKey().isEmpty());
+        assertTrue(ent.getPrimaryKeys().isEmpty());
         ent.addAttribute(a1);
-        assertTrue(ent.getPrimaryKey().isEmpty());
+        assertTrue(ent.getPrimaryKeys().isEmpty());
     }
 
     public void testChangeAttributeToPK() {
@@ -169,9 +169,9 @@
         a1.setPrimaryKey(false);
         ent.addAttribute(a1);
 
-        assertFalse(ent.getPrimaryKey().contains(a1));
+        assertFalse(ent.getPrimaryKeys().contains(a1));
         a1.setPrimaryKey(true);
-        assertTrue(ent.getPrimaryKey().contains(a1));
+        assertTrue(ent.getPrimaryKeys().contains(a1));
     }
 
     public void testChangePKAttribute() {
@@ -182,9 +182,9 @@
         a1.setPrimaryKey(true);
         ent.addAttribute(a1);
 
-        assertTrue(ent.getPrimaryKey().contains(a1));
+        assertTrue(ent.getPrimaryKeys().contains(a1));
         a1.setPrimaryKey(false);
-        assertFalse(ent.getPrimaryKey().contains(a1));
+        assertFalse(ent.getPrimaryKeys().contains(a1));
     }
 
     public void testRemoveAttribute() {