You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ba...@apache.org on 2007/09/05 15:38:49 UTC

svn commit: r572952 - in /commons/proper/collections/trunk/src: java/org/apache/commons/collections/ java/org/apache/commons/collections/bag/ java/org/apache/commons/collections/buffer/ java/org/apache/commons/collections/collection/ java/org/apache/co...

Author: bayard
Date: Wed Sep  5 06:38:47 2007
New Revision: 572952

URL: http://svn.apache.org/viewvc?rev=572952&view=rev
Log:
Applying my patch for COLLECTIONS-256 - adding a decorateTransform method as used with Maps to all of the collection classes

Modified:
    commons/proper/collections/trunk/src/java/org/apache/commons/collections/BagUtils.java
    commons/proper/collections/trunk/src/java/org/apache/commons/collections/BufferUtils.java
    commons/proper/collections/trunk/src/java/org/apache/commons/collections/CollectionUtils.java
    commons/proper/collections/trunk/src/java/org/apache/commons/collections/ListUtils.java
    commons/proper/collections/trunk/src/java/org/apache/commons/collections/SetUtils.java
    commons/proper/collections/trunk/src/java/org/apache/commons/collections/bag/TransformedBag.java
    commons/proper/collections/trunk/src/java/org/apache/commons/collections/bag/TransformedSortedBag.java
    commons/proper/collections/trunk/src/java/org/apache/commons/collections/buffer/TransformedBuffer.java
    commons/proper/collections/trunk/src/java/org/apache/commons/collections/collection/TransformedCollection.java
    commons/proper/collections/trunk/src/java/org/apache/commons/collections/list/TransformedList.java
    commons/proper/collections/trunk/src/java/org/apache/commons/collections/set/TransformedSet.java
    commons/proper/collections/trunk/src/java/org/apache/commons/collections/set/TransformedSortedSet.java
    commons/proper/collections/trunk/src/test/org/apache/commons/collections/bag/TestTransformedBag.java
    commons/proper/collections/trunk/src/test/org/apache/commons/collections/bag/TestTransformedSortedBag.java
    commons/proper/collections/trunk/src/test/org/apache/commons/collections/buffer/TestTransformedBuffer.java
    commons/proper/collections/trunk/src/test/org/apache/commons/collections/collection/TestTransformedCollection.java
    commons/proper/collections/trunk/src/test/org/apache/commons/collections/list/TestTransformedList.java
    commons/proper/collections/trunk/src/test/org/apache/commons/collections/set/TestTransformedSet.java
    commons/proper/collections/trunk/src/test/org/apache/commons/collections/set/TestTransformedSortedSet.java

Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/BagUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/BagUtils.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/java/org/apache/commons/collections/BagUtils.java (original)
+++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/BagUtils.java Wed Sep  5 06:38:47 2007
@@ -140,6 +140,9 @@
      * Each object is passed through the transformer as it is added to the
      * Bag. It is important not to use the original bag after invoking this 
      * method, as it is a backdoor for adding untransformed objects.
+     * <p>
+     * Existing entries in the specified bag will not be transformed.
+     * If you want that behaviour, see {@link TransformedBag#decorateTransform}.
      *
      * @param bag  the bag to predicate, must not be null
      * @param transformer  the transformer for the bag, must not be null
@@ -231,6 +234,9 @@
      * Each object is passed through the transformer as it is added to the
      * Bag. It is important not to use the original bag after invoking this 
      * method, as it is a backdoor for adding untransformed objects.
+     * <p>
+     * Existing entries in the specified bag will not be transformed.
+     * If you want that behaviour, see {@link TransformedSortedBag#decorateTransform}.
      *
      * @param bag  the bag to predicate, must not be null
      * @param transformer  the transformer for the bag, must not be null

Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/BufferUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/BufferUtils.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/java/org/apache/commons/collections/BufferUtils.java (original)
+++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/BufferUtils.java Wed Sep  5 06:38:47 2007
@@ -188,6 +188,9 @@
      * Each object is passed through the transformer as it is added to the
      * Buffer. It is important not to use the original buffer after invoking this 
      * method, as it is a backdoor for adding untransformed objects.
+     * <p>
+     * Existing entries in the specified buffer will not be transformed.
+     * If you want that behaviour, see {@link TransformedBuffer#decorateTransform}.
      *
      * @param buffer  the buffer to predicate, must not be null
      * @param transformer  the transformer for the buffer, must not be null

Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/CollectionUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/CollectionUtils.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/java/org/apache/commons/collections/CollectionUtils.java (original)
+++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/CollectionUtils.java Wed Sep  5 06:38:47 2007
@@ -1201,6 +1201,9 @@
      * Each object is passed through the transformer as it is added to the
      * Collection. It is important not to use the original collection after invoking this 
      * method, as it is a backdoor for adding untransformed objects.
+     * <p>
+     * Existing entries in the specified collection will not be transformed.
+     * If you want that behaviour, see {@link TransformedCollection#decorateTransform}.
      *
      * @param collection  the collection to predicate, must not be null
      * @param transformer  the transformer for the collection, must not be null

Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/ListUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/ListUtils.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/java/org/apache/commons/collections/ListUtils.java (original)
+++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/ListUtils.java Wed Sep  5 06:38:47 2007
@@ -350,6 +350,9 @@
      * Each object is passed through the transformer as it is added to the
      * List. It is important not to use the original list after invoking this 
      * method, as it is a backdoor for adding untransformed objects.
+     * <p>
+     * Existing entries in the specified list will not be transformed.
+     * If you want that behaviour, see {@link TransformedList#decorateTransform}.
      *
      * @param list  the list to predicate, must not be null
      * @param transformer  the transformer for the list, must not be null

Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/SetUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/SetUtils.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/java/org/apache/commons/collections/SetUtils.java (original)
+++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/SetUtils.java Wed Sep  5 06:38:47 2007
@@ -212,6 +212,9 @@
      * Each object is passed through the transformer as it is added to the
      * Set. It is important not to use the original set after invoking this 
      * method, as it is a backdoor for adding untransformed objects.
+     * <p>
+     * Existing entries in the specified set will not be transformed.
+     * If you want that behaviour, see {@link TransformedSet#decorateTransform}.
      *
      * @param set  the set to transform, must not be null
      * @param transformer  the transformer for the set, must not be null
@@ -313,6 +316,9 @@
      * Each object is passed through the transformer as it is added to the
      * Set. It is important not to use the original set after invoking this 
      * method, as it is a backdoor for adding untransformed objects.
+     * <p>
+     * Existing entries in the specified set will not be transformed.
+     * If you want that behaviour, see {@link TransformedSortedSet#decorateTransform}.
      *
      * @param set  the set to transform, must not be null
      * @param transformer  the transformer for the set, must not be null

Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/bag/TransformedBag.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/bag/TransformedBag.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/java/org/apache/commons/collections/bag/TransformedBag.java (original)
+++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/bag/TransformedBag.java Wed Sep  5 06:38:47 2007
@@ -17,6 +17,7 @@
 package org.apache.commons.collections.bag;
 
 import java.util.Set;
+import java.util.Collection;
 
 import org.apache.commons.collections.Bag;
 import org.apache.commons.collections.Transformer;
@@ -49,6 +50,7 @@
      * <p>
      * If there are any elements already in the bag being decorated, they
      * are NOT transformed.
+     * Constrast this with {@link #decorateTransform}.
      * 
      * @param bag  the bag to decorate, must not be null
      * @param transformer  the transformer to use for conversion, must not be null
@@ -59,6 +61,32 @@
         return new TransformedBag(bag, transformer);
     }
     
+    /**
+     * Factory method to create a transforming bag that will transform
+     * existing contents of the specified bag.
+     * <p>
+     * If there are any elements already in the bag being decorated, they
+     * will be transformed by this method.
+     * Constrast this with {@link #decorate}.
+     * 
+     * @param bag  the bag to decorate, must not be null
+     * @param transformer  the transformer to use for conversion, must not be null
+     * @return a new transformed Bag
+     * @throws IllegalArgumentException if bag or transformer is null
+     * @since Commons Collections 3.3
+     */
+    public static Bag decorateTransform(Bag bag, Transformer transformer) {
+        TransformedBag decorated = new TransformedBag(bag, transformer);
+        if (transformer != null && bag != null && bag.size() > 0) {
+            Object[] values = bag.toArray();
+            bag.clear();
+            for(int i=0; i<values.length; i++) {
+                decorated.getCollection().add(transformer.transform(values[i]));
+            }
+        }
+        return decorated;
+    }
+
     //-----------------------------------------------------------------------
     /**
      * Constructor that wraps (not copies).

Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/bag/TransformedSortedBag.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/bag/TransformedSortedBag.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/java/org/apache/commons/collections/bag/TransformedSortedBag.java (original)
+++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/bag/TransformedSortedBag.java Wed Sep  5 06:38:47 2007
@@ -47,6 +47,7 @@
      * <p>
      * If there are any elements already in the bag being decorated, they
      * are NOT transformed.
+     * Constrast this with {@link #decorateTransform}.
      * 
      * @param bag  the bag to decorate, must not be null
      * @param transformer  the transformer to use for conversion, must not be null
@@ -57,6 +58,32 @@
         return new TransformedSortedBag(bag, transformer);
     }
     
+    /**
+     * Factory method to create a transforming sorted bag that will transform
+     * existing contents of the specified sorted bag.
+     * <p>
+     * If there are any elements already in the bag being decorated, they
+     * will be transformed by this method.
+     * Constrast this with {@link #decorate}.
+     * 
+     * @param bag  the bag to decorate, must not be null
+     * @param transformer  the transformer to use for conversion, must not be null
+     * @return a new transformed SortedBag
+     * @throws IllegalArgumentException if bag or transformer is null
+     * @since Commons Collections 3.3
+     */
+    public static SortedBag decorateTransform(SortedBag bag, Transformer transformer) {
+        TransformedSortedBag decorated = new TransformedSortedBag(bag, transformer);
+        if (transformer != null && bag != null && bag.size() > 0) {
+            Object[] values = bag.toArray();
+            bag.clear();
+            for(int i=0; i<values.length; i++) {
+                decorated.getCollection().add(transformer.transform(values[i]));
+            }
+        }
+        return decorated;
+    }
+
     //-----------------------------------------------------------------------
     /**
      * Constructor that wraps (not copies).

Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/buffer/TransformedBuffer.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/buffer/TransformedBuffer.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/java/org/apache/commons/collections/buffer/TransformedBuffer.java (original)
+++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/buffer/TransformedBuffer.java Wed Sep  5 06:38:47 2007
@@ -45,6 +45,7 @@
      * <p>
      * If there are any elements already in the buffer being decorated, they
      * are NOT transformed.
+     * Constrast this with {@link #decorateTransform}.
      * 
      * @param buffer  the buffer to decorate, must not be null
      * @param transformer  the transformer to use for conversion, must not be null
@@ -55,6 +56,32 @@
         return new TransformedBuffer(buffer, transformer);
     }
     
+    /**
+     * Factory method to create a transforming buffer that will transform
+     * existing contents of the specified buffer.
+     * <p>
+     * If there are any elements already in the buffer being decorated, they
+     * will be transformed by this method.
+     * Constrast this with {@link #decorate}.
+     * 
+     * @param buffer  the buffer to decorate, must not be null
+     * @param transformer  the transformer to use for conversion, must not be null
+     * @return a new transformed Buffer
+     * @throws IllegalArgumentException if buffer or transformer is null
+     * @since Commons Collections 3.3
+     */
+    public static Buffer decorateTransform(Buffer buffer, Transformer transformer) {
+        TransformedBuffer decorated = new TransformedBuffer(buffer, transformer);
+        if (transformer != null && buffer != null && buffer.size() > 0) {
+            Object[] values = buffer.toArray();
+            buffer.clear();
+            for(int i=0; i<values.length; i++) {
+                decorated.getCollection().add(transformer.transform(values[i]));
+            }
+        }
+        return decorated;
+    }
+
     //-----------------------------------------------------------------------
     /**
      * Constructor that wraps (not copies).

Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/collection/TransformedCollection.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/collection/TransformedCollection.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/java/org/apache/commons/collections/collection/TransformedCollection.java (original)
+++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/collection/TransformedCollection.java Wed Sep  5 06:38:47 2007
@@ -51,6 +51,7 @@
      * <p>
      * If there are any elements already in the collection being decorated, they
      * are NOT transformed.
+     * Constrast this with {@link #decorateTransform}.
      * 
      * @param coll  the collection to decorate, must not be null
      * @param transformer  the transformer to use for conversion, must not be null
@@ -61,6 +62,32 @@
         return new TransformedCollection(coll, transformer);
     }
     
+    /**
+     * Factory method to create a transforming collection that will transform
+     * existing contents of the specified collection.
+     * <p>
+     * If there are any elements already in the collection being decorated, they
+     * will be transformed by this method.
+     * Constrast this with {@link #decorate}.
+     * 
+     * @param collection  the collection to decorate, must not be null
+     * @param transformer  the transformer to use for conversion, must not be null
+     * @return a new transformed Collection
+     * @throws IllegalArgumentException if collection or transformer is null
+     * @since Commons Collections 3.3
+     */
+    public static Collection decorateTransform(Collection collection, Transformer transformer) {
+        TransformedCollection decorated = new TransformedCollection(collection, transformer);
+        if (transformer != null && collection != null && collection.size() > 0) {
+            Object[] values = collection.toArray();
+            collection.clear();
+            for(int i=0; i<values.length; i++) {
+                decorated.getCollection().add(transformer.transform(values[i]));
+            }
+        }
+        return decorated;
+    }
+
     //-----------------------------------------------------------------------
     /**
      * Constructor that wraps (not copies).

Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/list/TransformedList.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/list/TransformedList.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/java/org/apache/commons/collections/list/TransformedList.java (original)
+++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/list/TransformedList.java Wed Sep  5 06:38:47 2007
@@ -49,6 +49,7 @@
      * <p>
      * If there are any elements already in the list being decorated, they
      * are NOT transformed.
+     * Constrast this with {@link #decorateTransform}.
      * 
      * @param list  the list to decorate, must not be null
      * @param transformer  the transformer to use for conversion, must not be null
@@ -58,6 +59,32 @@
         return new TransformedList(list, transformer);
     }
     
+    /**
+     * Factory method to create a transforming list that will transform
+     * existing contents of the specified list.
+     * <p>
+     * If there are any elements already in the list being decorated, they
+     * will be transformed by this method.
+     * Constrast this with {@link #decorate}.
+     * 
+     * @param list  the list to decorate, must not be null
+     * @param transformer  the transformer to use for conversion, must not be null
+     * @return a new transformed List
+     * @throws IllegalArgumentException if list or transformer is null
+     * @since Commons Collections 3.3
+     */
+    public static List decorateTransform(List list, Transformer transformer) {
+        TransformedList decorated = new TransformedList(list, transformer);
+        if (transformer != null && list != null && list.size() > 0) {
+            Object[] values = list.toArray();
+            list.clear();
+            for(int i=0; i<values.length; i++) {
+                decorated.getCollection().add(transformer.transform(values[i]));
+            }
+        }
+        return decorated;
+    }
+
     //-----------------------------------------------------------------------
     /**
      * Constructor that wraps (not copies).

Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/set/TransformedSet.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/set/TransformedSet.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/java/org/apache/commons/collections/set/TransformedSet.java (original)
+++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/set/TransformedSet.java Wed Sep  5 06:38:47 2007
@@ -46,6 +46,7 @@
      * <p>
      * If there are any elements already in the set being decorated, they
      * are NOT transformed.
+     * Constrast this with {@link #decorateTransform}.
      * 
      * @param set  the set to decorate, must not be null
      * @param transformer  the transformer to use for conversion, must not be null
@@ -55,6 +56,32 @@
         return new TransformedSet(set, transformer);
     }
     
+    /**
+     * Factory method to create a transforming set that will transform
+     * existing contents of the specified set.
+     * <p>
+     * If there are any elements already in the set being decorated, they
+     * will be transformed by this method.
+     * Constrast this with {@link #decorate}.
+     * 
+     * @param set  the set to decorate, must not be null
+     * @param transformer  the transformer to use for conversion, must not be null
+     * @return a new transformed Set
+     * @throws IllegalArgumentException if set or transformer is null
+     * @since Commons Collections 3.3
+     */
+    public static Set decorateTransform(Set set, Transformer transformer) {
+        TransformedSet decorated = new TransformedSet(set, transformer);
+        if (transformer != null && set != null && set.size() > 0) {
+            Object[] values = set.toArray();
+            set.clear();
+            for(int i=0; i<values.length; i++) {
+                decorated.getCollection().add(transformer.transform(values[i]));
+            }
+        }
+        return decorated;
+    }
+
     //-----------------------------------------------------------------------
     /**
      * Constructor that wraps (not copies).

Modified: commons/proper/collections/trunk/src/java/org/apache/commons/collections/set/TransformedSortedSet.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/java/org/apache/commons/collections/set/TransformedSortedSet.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/java/org/apache/commons/collections/set/TransformedSortedSet.java (original)
+++ commons/proper/collections/trunk/src/java/org/apache/commons/collections/set/TransformedSortedSet.java Wed Sep  5 06:38:47 2007
@@ -46,6 +46,7 @@
      * <p>
      * If there are any elements already in the set being decorated, they
      * are NOT transformed.
+     * Constrast this with {@link #decorateTransform}.
      * 
      * @param set  the set to decorate, must not be null
      * @param transformer  the transformer to use for conversion, must not be null
@@ -55,6 +56,32 @@
         return new TransformedSortedSet(set, transformer);
     }
     
+    /**
+     * Factory method to create a transforming sorted set that will transform
+     * existing contents of the specified sorted set.
+     * <p>
+     * If there are any elements already in the set being decorated, they
+     * will be transformed by this method.
+     * Constrast this with {@link #decorate}.
+     * 
+     * @param set  the set to decorate, must not be null
+     * @param transformer  the transformer to use for conversion, must not be null
+     * @return a new transformed SortedSet
+     * @throws IllegalArgumentException if set or transformer is null
+     * @since Commons Collections 3.3
+     */
+    public static SortedSet decorateTransform(SortedSet set, Transformer transformer) {
+        TransformedSortedSet decorated = new TransformedSortedSet(set, transformer);
+        if (transformer != null && set != null && set.size() > 0) {
+            Object[] values = set.toArray();
+            set.clear();
+            for(int i=0; i<values.length; i++) {
+                decorated.getCollection().add(transformer.transform(values[i]));
+            }
+        }
+        return decorated;
+    }
+
     //-----------------------------------------------------------------------
     /**
      * Constructor that wraps (not copies).

Modified: commons/proper/collections/trunk/src/test/org/apache/commons/collections/bag/TestTransformedBag.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/test/org/apache/commons/collections/bag/TestTransformedBag.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/test/org/apache/commons/collections/bag/TestTransformedBag.java (original)
+++ commons/proper/collections/trunk/src/test/org/apache/commons/collections/bag/TestTransformedBag.java Wed Sep  5 06:38:47 2007
@@ -63,7 +63,23 @@
         
         assertEquals(false, bag.remove(els[0]));
         assertEquals(true, bag.remove(new Integer((String) els[0])));
+    }
+
+    public void testTransformedBag_decorateTransform() {
+        Bag originalBag = new HashBag();
+        Object[] els = new Object[] {"1", "3", "5", "7", "2", "4", "6"};
+        for (int i = 0; i < els.length; i++) {
+            originalBag.add(els[i]);
+        }
+        Bag bag = TransformedBag.decorateTransform(originalBag, TestTransformedCollection.STRING_TO_INTEGER_TRANSFORMER);
+        assertEquals(els.length, bag.size());
+        for (int i = 0; i < els.length; i++) {
+            assertEquals(true, bag.contains(new Integer((String) els[i])));
+            assertEquals(false, bag.contains(els[i]));
+        }
         
+        assertEquals(false, bag.remove(els[0]));
+        assertEquals(true, bag.remove(new Integer((String) els[0])));
     }
 
     public String getCompatibilityVersion() {

Modified: commons/proper/collections/trunk/src/test/org/apache/commons/collections/bag/TestTransformedSortedBag.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/test/org/apache/commons/collections/bag/TestTransformedSortedBag.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/test/org/apache/commons/collections/bag/TestTransformedSortedBag.java (original)
+++ commons/proper/collections/trunk/src/test/org/apache/commons/collections/bag/TestTransformedSortedBag.java Wed Sep  5 06:38:47 2007
@@ -64,6 +64,21 @@
         
     }
 
+    public void testTransformedBag_decorateTransform() {
+        Bag originalBag = new TreeBag();
+        Object[] els = new Object[] {"1", "3", "5", "7", "2", "4", "6"};
+        for (int i = 0; i < els.length; i++) {
+            originalBag.add(els[i]);
+        }
+        Bag bag = TransformedBag.decorateTransform(originalBag, TestTransformedCollection.STRING_TO_INTEGER_TRANSFORMER);
+        assertEquals(els.length, bag.size());
+        for (int i = 0; i < els.length; i++) {
+            assertEquals(true, bag.contains(new Integer((String) els[i])));
+        }
+        
+        assertEquals(true, bag.remove(new Integer((String) els[0])));
+    }
+
     public String getCompatibilityVersion() {
         return "3.1";
     }

Modified: commons/proper/collections/trunk/src/test/org/apache/commons/collections/buffer/TestTransformedBuffer.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/test/org/apache/commons/collections/buffer/TestTransformedBuffer.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/test/org/apache/commons/collections/buffer/TestTransformedBuffer.java (original)
+++ commons/proper/collections/trunk/src/test/org/apache/commons/collections/buffer/TestTransformedBuffer.java Wed Sep  5 06:38:47 2007
@@ -63,4 +63,25 @@
         assertEquals(true, buffer.remove(new Integer((String) els[0])));
         
     }
+
+    public void testTransformedBuffer_decorateTransform() {
+        Buffer originalBuffer = new ArrayStack();
+        Object[] els = new Object[] {"1", "3", "5", "7", "2", "4", "6"};
+        for (int i = 0; i < els.length; i++) {
+            originalBuffer.add(els[i]);
+        }
+        Buffer buffer = TransformedBuffer.decorateTransform(originalBuffer, TestTransformedCollection.STRING_TO_INTEGER_TRANSFORMER);
+        assertEquals(els.length, buffer.size());
+        for (int i = 0; i < els.length; i++) {
+            assertEquals(true, buffer.contains(new Integer((String) els[i])));
+            assertEquals(false, buffer.contains(els[i]));
+        }
+        
+        assertEquals(false, buffer.remove(els[0]));
+        assertEquals(true, buffer.remove(new Integer((String) els[0])));
+    }
+
+    public String getCompatibilityVersion() {
+        return "3.1";
+    }
 }

Modified: commons/proper/collections/trunk/src/test/org/apache/commons/collections/collection/TestTransformedCollection.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/test/org/apache/commons/collections/collection/TestTransformedCollection.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/test/org/apache/commons/collections/collection/TestTransformedCollection.java (original)
+++ commons/proper/collections/trunk/src/test/org/apache/commons/collections/collection/TestTransformedCollection.java Wed Sep  5 06:38:47 2007
@@ -105,6 +105,23 @@
         assertEquals(true, coll.remove(new Integer((String) els[0])));
     }
 
+    public void testTransformedCollection_decorateTransform() {
+        Collection originalCollection = new ArrayList();
+        Object[] els = getFullElements();
+        for (int i = 0; i < els.length; i++) {
+            originalCollection.add(els[i]);
+        }
+        Collection collection = TransformedCollection.decorateTransform(originalCollection, TestTransformedCollection.STRING_TO_INTEGER_TRANSFORMER);
+        assertEquals(els.length, collection.size());
+        for (int i = 0; i < els.length; i++) {
+            assertEquals(true, collection.contains(new Integer((String) els[i])));
+            assertEquals(false, collection.contains(els[i]));
+        }
+        
+        assertEquals(false, collection.remove(els[0]));
+        assertEquals(true, collection.remove(new Integer((String) els[0])));
+    }
+
     public String getCompatibilityVersion() {
         return "3.1";
     }

Modified: commons/proper/collections/trunk/src/test/org/apache/commons/collections/list/TestTransformedList.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/test/org/apache/commons/collections/list/TestTransformedList.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/test/org/apache/commons/collections/list/TestTransformedList.java (original)
+++ commons/proper/collections/trunk/src/test/org/apache/commons/collections/list/TestTransformedList.java Wed Sep  5 06:38:47 2007
@@ -118,6 +118,23 @@
         assertEquals(new Integer(2), list.get(2));
     }
 
+    public void testTransformedList_decorateTransform() {
+        List originalList = new ArrayList();
+        Object[] els = new Object[] {"1", "3", "5", "7", "2", "4", "6"};
+        for (int i = 0; i < els.length; i++) {
+            originalList.add(els[i]);
+        }
+        List list = TransformedList.decorateTransform(originalList, TestTransformedCollection.STRING_TO_INTEGER_TRANSFORMER);
+        assertEquals(els.length, list.size());
+        for (int i = 0; i < els.length; i++) {
+            assertEquals(true, list.contains(new Integer((String) els[i])));
+            assertEquals(false, list.contains(els[i]));
+        }
+        
+        assertEquals(false, list.remove(els[0]));
+        assertEquals(true, list.remove(new Integer((String) els[0])));
+    }
+
     public String getCompatibilityVersion() {
         return "3.1";
     }

Modified: commons/proper/collections/trunk/src/test/org/apache/commons/collections/set/TestTransformedSet.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/test/org/apache/commons/collections/set/TestTransformedSet.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/test/org/apache/commons/collections/set/TestTransformedSet.java (original)
+++ commons/proper/collections/trunk/src/test/org/apache/commons/collections/set/TestTransformedSet.java Wed Sep  5 06:38:47 2007
@@ -86,6 +86,23 @@
         
     }
 
+    public void testTransformedSet_decorateTransform() {
+        Set originalSet = new HashSet();
+        Object[] els = new Object[] {"1", "3", "5", "7", "2", "4", "6"};
+        for (int i = 0; i < els.length; i++) {
+            originalSet.add(els[i]);
+        }
+        Set set = TransformedSet.decorateTransform(originalSet, TestTransformedCollection.STRING_TO_INTEGER_TRANSFORMER);
+        assertEquals(els.length, set.size());
+        for (int i = 0; i < els.length; i++) {
+            assertEquals(true, set.contains(new Integer((String) els[i])));
+            assertEquals(false, set.contains(els[i]));
+        }
+        
+        assertEquals(false, set.remove(els[0]));
+        assertEquals(true, set.remove(new Integer((String) els[0])));
+    }
+
     public String getCompatibilityVersion() {
         return "3.1";
     }

Modified: commons/proper/collections/trunk/src/test/org/apache/commons/collections/set/TestTransformedSortedSet.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/test/org/apache/commons/collections/set/TestTransformedSortedSet.java?rev=572952&r1=572951&r2=572952&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/test/org/apache/commons/collections/set/TestTransformedSortedSet.java (original)
+++ commons/proper/collections/trunk/src/test/org/apache/commons/collections/set/TestTransformedSortedSet.java Wed Sep  5 06:38:47 2007
@@ -17,10 +17,9 @@
 package org.apache.commons.collections.set;
 
 import java.util.Arrays;
-import java.util.HashSet;
+import java.util.TreeSet;
 import java.util.Set;
 import java.util.SortedSet;
-import java.util.TreeSet;
 
 import junit.framework.Test;
 
@@ -64,20 +63,33 @@
     
     //-----------------------------------------------------------------------   
     public void testTransformedSet() {
-        Set set = TransformedSortedSet.decorate(new HashSet(), TestTransformedCollection.STRING_TO_INTEGER_TRANSFORMER);
+        Set set = TransformedSortedSet.decorate(new TreeSet(), TestTransformedCollection.STRING_TO_INTEGER_TRANSFORMER);
         assertEquals(0, set.size());
         Object[] els = new Object[] {"1", "3", "5", "7", "2", "4", "6"};
         for (int i = 0; i < els.length; i++) {
             set.add(els[i]);
             assertEquals(i + 1, set.size());
             assertEquals(true, set.contains(new Integer((String) els[i])));
-            assertEquals(false, set.contains(els[i]));
         }
         
-        assertEquals(false, set.remove(els[0]));
         assertEquals(true, set.remove(new Integer((String) els[0])));
         
     } 
+
+    public void testTransformedSet_decorateTransform() {
+        Set originalSet = new TreeSet();
+        Object[] els = new Object[] {"1", "3", "5", "7", "2", "4", "6"};
+        for (int i = 0; i < els.length; i++) {
+            originalSet.add(els[i]);
+        }
+        Set set = TransformedSortedSet.decorateTransform(originalSet, TestTransformedCollection.STRING_TO_INTEGER_TRANSFORMER);
+        assertEquals(els.length, set.size());
+        for (int i = 0; i < els.length; i++) {
+            assertEquals(true, set.contains(new Integer((String) els[i])));
+        }
+        
+        assertEquals(true, set.remove(new Integer((String) els[0])));
+    }
 
     public String getCompatibilityVersion() {
         return "3.1";