Author: tomdz
Date: Mon Jan 23 01:54:37 2006
New Revision: 371508

URL: http://svn.apache.org/viewcvs?rev=371508&view=rev
Log:
Fix for OJB-90

Modified:
    
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/proxy/CollectionProxyDefaultImpl.java
    
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/proxy/SetProxyDefaultImpl.java

Modified: 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/proxy/CollectionProxyDefaultImpl.java
URL: 
http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/proxy/CollectionProxyDefaultImpl.java?rev=371508&r1=371507&r2=371508&view=diff
==============================================================================
--- 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/proxy/CollectionProxyDefaultImpl.java
 (original)
+++ 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/proxy/CollectionProxyDefaultImpl.java
 Mon Jan 23 01:54:37 2006
@@ -18,6 +18,7 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.Set;
 
 import org.apache.ojb.broker.ManageableCollection;
 import org.apache.ojb.broker.OJBRuntimeException;
@@ -654,6 +655,46 @@
         {
             _listeners.remove(listener);
         }
+    }
+
+    /**
+     * [EMAIL PROTECTED]
+     */
+    public boolean equals(Object obj)
+    {
+        if (obj instanceof Collection)
+        {
+            Collection ownRealData = getData();
+
+            if (ownRealData == null)
+            {
+                return false;
+            }
+            else if (obj instanceof CollectionProxyDefaultImpl)
+            {
+                Collection otherRealData = 
((CollectionProxyDefaultImpl)obj).getData();
+    
+                return ownRealData.equals(otherRealData);
+            }
+            else
+            {
+                return ownRealData.equals(obj);
+            }
+        }
+        else
+        {
+            return false;
+        }
+    }
+
+    /**
+     * [EMAIL PROTECTED]
+     */
+    public int hashCode()
+    {
+        Collection ownRealData = getData();
+
+        return (ownRealData == null ? super.hashCode() : 
ownRealData.hashCode());
     }
 
 }

Modified: 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/proxy/SetProxyDefaultImpl.java
URL: 
http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/proxy/SetProxyDefaultImpl.java?rev=371508&r1=371507&r2=371508&view=diff
==============================================================================
--- 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/proxy/SetProxyDefaultImpl.java
 (original)
+++ 
db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/proxy/SetProxyDefaultImpl.java
 Mon Jan 23 01:54:37 2006
@@ -1,6 +1,6 @@
 package org.apache.ojb.broker.core.proxy;
 
-/* Copyright 2003-2005 The Apache Software Foundation
+/* Copyright 2003-2006 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,43 +24,51 @@
 import org.apache.ojb.broker.util.collections.ManageableHashSet;
 
 /**
- * A placeHolder for a whole set to support deferred loading of
- * relationships. The complete relationship is loaded on request.
+ * A proxy for a set that supports deferred loading of the elements upon 
request.
+ * Note that calls to [EMAIL PROTECTED] #equals(Object)} and [EMAIL PROTECTED] 
#hashCode()} will
+ * materialize all elements.
  * 
  * @author <a href="mailto:[EMAIL PROTECTED]">Jakob Braeuchi</a>
  * @version $Id$
  */
 public class SetProxyDefaultImpl extends CollectionProxyDefaultImpl implements 
Set
 {
-
        /**
-        * Constructor for SetProxy.
-        * @param aKey
-        * @param aQuery
+        * Creates a new proxy instance.
+     * 
+        * @param pbKey The key for the broker that this proxy is associated to
+        * @param query The backing query for the set data
         */
-       public SetProxyDefaultImpl(PBKey aKey, Query aQuery)
+       public SetProxyDefaultImpl(PBKey pbKey, Query query)
        {
-               this(aKey, ManageableHashSet.class, aQuery);
+               this(pbKey, ManageableHashSet.class, query);
        }
 
        /**
-        * Constructor for SetProxy.
-        * @param aKey
-        * @param aCollClass
-        * @param aQuery
+     * Creates a new proxy instance.
+     * 
+     * @param pbKey           The key for the broker that this proxy is 
associated to
+     * @param collectionClass The type of the real set
+     * @param query           The backing query for the set data
         */
-       public SetProxyDefaultImpl(PBKey aKey, Class aCollClass, Query aQuery)
+       public SetProxyDefaultImpl(PBKey pbKey, Class collectionClass, Query 
query)
        {
-               super(aKey, aCollClass, aQuery);
+               super(pbKey, collectionClass, query);
        }
 
+    /**
+     * Returns the real set data. If the data is not yet loaded, it will be 
fetched
+     * from the database.
+     * 
+     * @return The real set data
+     */
     protected Set getSetData()
     {
         return (Set)super.getData();    
     }
     
        /**
-        * @see 
org.apache.ojb.broker.core.proxy.CollectionProxyDefaultImpl#loadData()
+        * [EMAIL PROTECTED]
         */
        protected Collection loadData() throws PersistenceBrokerException
        {
@@ -74,7 +82,5 @@
         {
             throw new PersistenceBrokerException("loaded data does not 
implement java.util.Set");
         }
-               
        }
-
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to