You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by sk...@apache.org on 2008/04/15 06:32:40 UTC
svn commit: r648113 - in
/commons/proper/collections/branches/collections_jdk5_branch/src:
java/org/apache/commons/collections/CollectionUtils.java
test/org/apache/commons/collections/TestCollectionUtils.java
Author: skestle
Date: Mon Apr 14 21:32:39 2008
New Revision: 648113
URL: http://svn.apache.org/viewvc?rev=648113&view=rev
Log:
Updated CollectionUtils to return the same type of Collection that is passed into select(), reject() and collect()
Modified:
commons/proper/collections/branches/collections_jdk5_branch/src/java/org/apache/commons/collections/CollectionUtils.java
commons/proper/collections/branches/collections_jdk5_branch/src/test/org/apache/commons/collections/TestCollectionUtils.java
Modified: commons/proper/collections/branches/collections_jdk5_branch/src/java/org/apache/commons/collections/CollectionUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/branches/collections_jdk5_branch/src/java/org/apache/commons/collections/CollectionUtils.java?rev=648113&r1=648112&r2=648113&view=diff
==============================================================================
--- commons/proper/collections/branches/collections_jdk5_branch/src/java/org/apache/commons/collections/CollectionUtils.java (original)
+++ commons/proper/collections/branches/collections_jdk5_branch/src/java/org/apache/commons/collections/CollectionUtils.java Mon Apr 14 21:32:39 2008
@@ -586,7 +586,7 @@
* the collection to output into, may not be null
* @return outputCollection
*/
- public static <O, I extends O> Collection<O> select(Collection<I> inputCollection, Predicate<? super I> predicate, Collection<O> outputCollection) {
+ public static <O, I extends O, R extends Collection<O>> R select(Collection<I> inputCollection, Predicate<? super I> predicate, R outputCollection) {
if (inputCollection != null && predicate != null) {
for (I item : inputCollection) {
if (predicate.evaluate(item)) {
@@ -631,7 +631,7 @@
* the collection to output into, may not be null
* @return outputCollection
*/
- public static <O, I extends O> Collection<O> selectRejected(Collection<I> inputCollection, Predicate<? super I> predicate, Collection<O> outputCollection) {
+ public static <O, I extends O, R extends Collection<O>> R selectRejected(Collection<I> inputCollection, Predicate<? super I> predicate, R outputCollection) {
if (inputCollection != null && predicate != null) {
for (I item : inputCollection) {
if (!predicate.evaluate(item)) {
@@ -701,7 +701,7 @@
* @return the outputCollection with the transformed input added
* @throws NullPointerException if the output collection is null
*/
- public static <I,O,T extends O> Collection<O> collect(Iterable<I> inputCollection, final Transformer<? super I,T> transformer, final Collection<O> outputCollection) {
+ public static <I,O,T extends O, R extends Collection<O>> R collect(Iterable<I> inputCollection, final Transformer<? super I,T> transformer, final R outputCollection) {
if (inputCollection != null) {
return collect(inputCollection.iterator(), transformer, outputCollection);
}
@@ -725,7 +725,7 @@
* @throws NullPointerException if the output collection is null
*/
//TODO - deprecate and replace with IteratorIterable
- public static <I,O,T extends O> Collection<O> collect(Iterator<I> inputIterator, final Transformer<? super I,T> transformer, final Collection<O> outputCollection) {
+ public static <I,O,T extends O, R extends Collection<O>> R collect(Iterator<I> inputIterator, final Transformer<? super I,T> transformer, final R outputCollection) {
if (inputIterator != null && transformer != null) {
while (inputIterator.hasNext()) {
I item = inputIterator.next();
Modified: commons/proper/collections/branches/collections_jdk5_branch/src/test/org/apache/commons/collections/TestCollectionUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/branches/collections_jdk5_branch/src/test/org/apache/commons/collections/TestCollectionUtils.java?rev=648113&r1=648112&r2=648113&view=diff
==============================================================================
--- commons/proper/collections/branches/collections_jdk5_branch/src/test/org/apache/commons/collections/TestCollectionUtils.java (original)
+++ commons/proper/collections/branches/collections_jdk5_branch/src/test/org/apache/commons/collections/TestCollectionUtils.java Mon Apr 14 21:32:39 2008
@@ -931,7 +931,7 @@
// Ensure that the collection is the input type or a super type
Collection<Integer> output1 = CollectionUtils.select(list, EQUALS_TWO);
Collection<Number> output2 = CollectionUtils.<Number, Integer>select(list, EQUALS_TWO);
- Collection<Number> output3 = CollectionUtils.select(list, EQUALS_TWO, new HashSet<Number>());
+ HashSet<Number> output3 = CollectionUtils.select(list, EQUALS_TWO, new HashSet<Number>());
assertTrue(CollectionUtils.isEqualCollection(output1, output3));
assertEquals(4, list.size());
assertEquals(1, output1.size());
@@ -947,7 +947,7 @@
list.add(4L);
Collection<Long> output1 = CollectionUtils.selectRejected(list, EQUALS_TWO);
Collection<Number> output2 = CollectionUtils.<Number, Long>selectRejected(list, EQUALS_TWO);
- Collection<Number> output3 = CollectionUtils.selectRejected(list, EQUALS_TWO, new HashSet<Number>());
+ HashSet<Number> output3 = CollectionUtils.selectRejected(list, EQUALS_TWO, new HashSet<Number>());
assertTrue(CollectionUtils.isEqualCollection(output1, output2));
assertTrue(CollectionUtils.isEqualCollection(output1, output3));
assertEquals(4, list.size());
@@ -964,17 +964,16 @@
assertTrue(collection.size() == collectionA.size());
assertCollectResult(collection);
- collection = new ArrayList<Number>();
- CollectionUtils.collect(collectionA, transformer, collection);
- assertTrue(collection.size() == collectionA.size());
- assertCollectResult(collection);
+ ArrayList<Number> list;
+ list = CollectionUtils.collect(collectionA, transformer, new ArrayList<Number>());
+ assertTrue(list.size() == collectionA.size());
+ assertCollectResult(list);
Iterator<Integer> iterator = null;
- collection = new ArrayList<Number>();
- CollectionUtils.collect(iterator, transformer, collection);
+ list = CollectionUtils.collect(iterator, transformer, new ArrayList<Number>());
iterator = iterableA.iterator();
- CollectionUtils.collect(iterator, transformer, collection);
+ list = CollectionUtils.collect(iterator, transformer, list);
assertTrue(collection.size() == collectionA.size());
assertCollectResult(collection);
@@ -986,7 +985,7 @@
assertTrue(collection.size() == 0);
int size = collectionA.size();
- CollectionUtils.collect((Collection<Integer>) null, transformer, collectionB);
+ collectionB = CollectionUtils.collect((Collection<Integer>) null, transformer, collectionB);
assertTrue(collectionA.size() == size && collectionA.contains(1));
CollectionUtils.collect(collectionB, null, collectionA);
assertTrue(collectionA.size() == size && collectionA.contains(1));