Author: tn
Date: Mon Sep  9 20:10:39 2013
New Revision: 1521272

URL: http://svn.apache.org/r1521272
Log:
[COLLECTIONS-480] Narrow return type of BidiMap.values to Set. Thanks to Hollis 
Waite.

Modified:
    commons/proper/collections/trunk/RELEASE-NOTES.txt
    commons/proper/collections/trunk/src/changes/changes.xml
    
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/BidiMap.java
    
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/AbstractBidiMapDecorator.java
    
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/AbstractDualBidiMap.java
    
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/TreeBidiMap.java
    
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/UnmodifiableBidiMap.java
    
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/UnmodifiableOrderedBidiMap.java
    
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/UnmodifiableSortedBidiMap.java
    commons/proper/collections/trunk/src/site/xdoc/release_4_0.xml

Modified: commons/proper/collections/trunk/RELEASE-NOTES.txt
URL: 
http://svn.apache.org/viewvc/commons/proper/collections/trunk/RELEASE-NOTES.txt?rev=1521272&r1=1521271&r2=1521272&view=diff
==============================================================================
--- commons/proper/collections/trunk/RELEASE-NOTES.txt (original)
+++ commons/proper/collections/trunk/RELEASE-NOTES.txt Mon Sep  9 20:10:39 2013
@@ -49,6 +49,7 @@ Changes since 4.0-alpha1
  - [COLLECTIONS-481] No collision detection/resolution was performed when 
calling "CompositeSet#addComposited(...)"
                      with more than one Set as argument. Also changed the the 
method with an array argument to use
                      a varargs parameter. Thanks to Hollis Waite.
+ - [COLLECTIONS-480] Narrow return type of "BidiMap#values()" to Set as the 
values are required to be unique. Thanks to Hollis Waite.
  - [COLLECTIONS-468] Renamed CompliantBag to CollectionBag.
  - [COLLECTIONS-475] Fixed conversion of timeout parameters in 
"PassiveExpiringMap".
 
@@ -150,6 +151,7 @@ New features
 Changed classes / methods
 -------------------------
 
+ o [COLLECTIONS-480] Narrow return type of "BidiMap#values()" to Set as the 
values are required to be unique. Thanks to Hollis Waite.
  o [COLLECTIONS-473] Made field "collection" in class 
"AbstractCollectionDecorator" private and added
                      setter "setCollection(Collection)" with scope protected 
to set the decorated collection
                      during de-serialization.

Modified: commons/proper/collections/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/changes/changes.xml?rev=1521272&r1=1521271&r2=1521272&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/changes/changes.xml (original)
+++ commons/proper/collections/trunk/src/changes/changes.xml Mon Sep  9 
20:10:39 2013
@@ -27,6 +27,9 @@
      with more than one Set as argument. Also changed the the method with an 
array argument to use a
      varargs parameter.
     </action>
+    <action issue="COLLECTIONS-480" dev="tn" type="update" due-to="Hollis 
Waite">
+     Narrow return type of "BidiMap#values()" to Set as the values are 
required to be unique.
+    </action>
     <action issue="COLLECTIONS-475" dev="tn" type="fix">
      Fixed conversion of timeout parameters in "PassiveExpiringMap".
     </action>

Modified: 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/BidiMap.java
URL: 
http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/BidiMap.java?rev=1521272&r1=1521271&r2=1521272&view=diff
==============================================================================
--- 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/BidiMap.java
 (original)
+++ 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/BidiMap.java
 Mon Sep  9 20:10:39 2013
@@ -16,6 +16,8 @@
  */
 package org.apache.commons.collections4;
 
+import java.util.Set;
+
 /**
  * Defines a map that allows bidirectional lookup between key and values.
  * <p>
@@ -124,4 +126,19 @@ public interface BidiMap<K, V> extends I
      */
     BidiMap<V, K> inverseBidiMap();
 
+    /**
+     * Returns a {@link Set} view of the values contained in this map.
+     * The set is backed by the map, so changes to the map are reflected
+     * in the set, and vice-versa.  If the map is modified while an iteration
+     * over the set is in progress (except through the iterator's own
+     * <tt>remove</tt> operation), the results of the iteration are undefined.
+     * The set supports element removal, which removes the corresponding
+     * mapping from the map, via the <tt>Iterator.remove</tt>,
+     * <tt>Collection.remove</tt>, <tt>removeAll</tt>,
+     * <tt>retainAll</tt> and <tt>clear</tt> operations.  It does not
+     * support the <tt>add</tt> or <tt>addAll</tt> operations.
+     *
+     * @return a set view of the values contained in this map
+     */
+    Set<V> values();
 }

Modified: 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/AbstractBidiMapDecorator.java
URL: 
http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/AbstractBidiMapDecorator.java?rev=1521272&r1=1521271&r2=1521272&view=diff
==============================================================================
--- 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/AbstractBidiMapDecorator.java
 (original)
+++ 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/AbstractBidiMapDecorator.java
 Mon Sep  9 20:10:39 2013
@@ -16,6 +16,8 @@
  */
 package org.apache.commons.collections4.bidimap;
 
+import java.util.Set;
+
 import org.apache.commons.collections4.BidiMap;
 import org.apache.commons.collections4.MapIterator;
 import org.apache.commons.collections4.map.AbstractMapDecorator;
@@ -76,4 +78,8 @@ public abstract class AbstractBidiMapDec
         return decorated().inverseBidiMap();
     }
 
+    public Set<V> values() {
+        return decorated().values();
+    }
+
 }

Modified: 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/AbstractDualBidiMap.java
URL: 
http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/AbstractDualBidiMap.java?rev=1521272&r1=1521271&r2=1521272&view=diff
==============================================================================
--- 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/AbstractDualBidiMap.java
 (original)
+++ 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/AbstractDualBidiMap.java
 Mon Sep  9 20:10:39 2013
@@ -64,7 +64,7 @@ public abstract class AbstractDualBidiMa
     /**
      * View of the values.
      */
-    transient Collection<V> values = null;
+    transient Set<V> values = null;
 
     /**
      * View of the entries.
@@ -272,7 +272,7 @@ public abstract class AbstractDualBidiMa
      *
      * @return the values view
      */
-    public Collection<V> values() {
+    public Set<V> values() {
         if (values == null) {
             values = new Values<V>(this);
         }

Modified: 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/TreeBidiMap.java
URL: 
http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/TreeBidiMap.java?rev=1521272&r1=1521271&r2=1521272&view=diff
==============================================================================
--- 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/TreeBidiMap.java
 (original)
+++ 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/TreeBidiMap.java
 Mon Sep  9 20:10:39 2013
@@ -21,7 +21,6 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.io.Serializable;
 import java.util.AbstractSet;
-import java.util.Collection;
 import java.util.ConcurrentModificationException;
 import java.util.Iterator;
 import java.util.Map;
@@ -391,7 +390,7 @@ public class TreeBidiMap<K extends Compa
      *
      * @return a set view of the values contained in this map.
      */
-    public Collection<V> values() {
+    public Set<V> values() {
         if (valuesSet == null) {
             valuesSet = new ValueView(KEY);
         }
@@ -2128,7 +2127,7 @@ public class TreeBidiMap<K extends Compa
             return inverseKeySet;
         }
 
-        public Collection<K> values() {
+        public Set<K> values() {
             if (inverseValuesSet == null) {
                 inverseValuesSet = new KeyView(VALUE);
             }

Modified: 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/UnmodifiableBidiMap.java
URL: 
http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/UnmodifiableBidiMap.java?rev=1521272&r1=1521271&r2=1521272&view=diff
==============================================================================
--- 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/UnmodifiableBidiMap.java
 (original)
+++ 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/UnmodifiableBidiMap.java
 Mon Sep  9 20:10:39 2013
@@ -16,7 +16,6 @@
  */
 package org.apache.commons.collections4.bidimap;
 
-import java.util.Collection;
 import java.util.Map;
 import java.util.Set;
 
@@ -24,7 +23,6 @@ import org.apache.commons.collections4.s
 import org.apache.commons.collections4.BidiMap;
 import org.apache.commons.collections4.MapIterator;
 import org.apache.commons.collections4.Unmodifiable;
-import org.apache.commons.collections4.collection.UnmodifiableCollection;
 import org.apache.commons.collections4.iterators.UnmodifiableMapIterator;
 import org.apache.commons.collections4.map.UnmodifiableEntrySet;
 
@@ -106,9 +104,9 @@ public final class UnmodifiableBidiMap<K
     }
 
     @Override
-    public Collection<V> values() {
-        final Collection<V> coll = super.values();
-        return UnmodifiableCollection.unmodifiableCollection(coll);
+    public Set<V> values() {
+        final Set<V> set = super.values();
+        return UnmodifiableSet.unmodifiableSet(set);
     }
 
     //-----------------------------------------------------------------------

Modified: 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/UnmodifiableOrderedBidiMap.java
URL: 
http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/UnmodifiableOrderedBidiMap.java?rev=1521272&r1=1521271&r2=1521272&view=diff
==============================================================================
--- 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/UnmodifiableOrderedBidiMap.java
 (original)
+++ 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/UnmodifiableOrderedBidiMap.java
 Mon Sep  9 20:10:39 2013
@@ -16,7 +16,6 @@
  */
 package org.apache.commons.collections4.bidimap;
 
-import java.util.Collection;
 import java.util.Map;
 import java.util.Set;
 
@@ -24,7 +23,6 @@ import org.apache.commons.collections4.s
 import org.apache.commons.collections4.OrderedBidiMap;
 import org.apache.commons.collections4.OrderedMapIterator;
 import org.apache.commons.collections4.Unmodifiable;
-import org.apache.commons.collections4.collection.UnmodifiableCollection;
 import 
org.apache.commons.collections4.iterators.UnmodifiableOrderedMapIterator;
 import org.apache.commons.collections4.map.UnmodifiableEntrySet;
 
@@ -106,9 +104,9 @@ public final class UnmodifiableOrderedBi
     }
 
     @Override
-    public Collection<V> values() {
-        final Collection<V> coll = super.values();
-        return UnmodifiableCollection.unmodifiableCollection(coll);
+    public Set<V> values() {
+        final Set<V> set = super.values();
+        return UnmodifiableSet.unmodifiableSet(set);
     }
 
     //-----------------------------------------------------------------------

Modified: 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/UnmodifiableSortedBidiMap.java
URL: 
http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/UnmodifiableSortedBidiMap.java?rev=1521272&r1=1521271&r2=1521272&view=diff
==============================================================================
--- 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/UnmodifiableSortedBidiMap.java
 (original)
+++ 
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/bidimap/UnmodifiableSortedBidiMap.java
 Mon Sep  9 20:10:39 2013
@@ -16,7 +16,6 @@
  */
 package org.apache.commons.collections4.bidimap;
 
-import java.util.Collection;
 import java.util.Map;
 import java.util.Set;
 import java.util.SortedMap;
@@ -25,7 +24,6 @@ import org.apache.commons.collections4.s
 import org.apache.commons.collections4.OrderedMapIterator;
 import org.apache.commons.collections4.SortedBidiMap;
 import org.apache.commons.collections4.Unmodifiable;
-import org.apache.commons.collections4.collection.UnmodifiableCollection;
 import 
org.apache.commons.collections4.iterators.UnmodifiableOrderedMapIterator;
 import org.apache.commons.collections4.map.UnmodifiableEntrySet;
 import org.apache.commons.collections4.map.UnmodifiableSortedMap;
@@ -108,9 +106,9 @@ public final class UnmodifiableSortedBid
     }
 
     @Override
-    public Collection<V> values() {
-        final Collection<V> coll = super.values();
-        return UnmodifiableCollection.unmodifiableCollection(coll);
+    public Set<V> values() {
+        final Set<V> set = super.values();
+        return UnmodifiableSet.unmodifiableSet(set);
     }
 
     //-----------------------------------------------------------------------

Modified: commons/proper/collections/trunk/src/site/xdoc/release_4_0.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/site/xdoc/release_4_0.xml?rev=1521272&r1=1521271&r2=1521272&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/site/xdoc/release_4_0.xml (original)
+++ commons/proper/collections/trunk/src/site/xdoc/release_4_0.xml Mon Sep  9 
20:10:39 2013
@@ -151,6 +151,7 @@ This release is <b>not</b> source or bin
 
 <center><h3>Changed classes / methods</h3></center>
 <ul>
+<li>Narrow return type of "BidiMap#values()" to Set as the values are required 
to be unique.</li>
 <li>Made field "collection" in class "AbstractCollectionDecorator" private and 
added setter "setCollection(Collection)" with scope protected to set the 
decorated collection during de-serialization.</li>
 <li>Replaced "Collection" with "Iterable" for method arguments where 
applicable.</li>
 <li>Changed "IteratorChain" to use internally a "Queue" instead of a "List". 
Iterators are removed from the queue once used and can be garbage collected 
after being exhausted. Additionally removed the methods "setIterator(Iterator)" 
and "getIterators()".</li>


Reply via email to