You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tn...@apache.org on 2014/12/30 19:24:14 UTC
svn commit: r1648561 - in /commons/proper/collections/trunk/src: changes/
main/java/org/apache/commons/collections4/
main/java/org/apache/commons/collections4/functors/
Author: tn
Date: Tue Dec 30 18:24:14 2014
New Revision: 1648561
URL: http://svn.apache.org/r1648561
Log:
[COLLECTIONS-537] Harmonized signature of functor-related factory methods: collection and array based methods did not have the same generic bounds. Thanks to Frank Jakop.
Modified:
commons/proper/collections/trunk/src/changes/changes.xml
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/ClosureUtils.java
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/PredicateUtils.java
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/TransformerUtils.java
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/AllPredicate.java
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/AnyPredicate.java
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/ChainedClosure.java
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/ChainedTransformer.java
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/FunctorUtils.java
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/NonePredicate.java
commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/OnePredicate.java
Modified: commons/proper/collections/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/changes/changes.xml?rev=1648561&r1=1648560&r2=1648561&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/changes/changes.xml (original)
+++ commons/proper/collections/trunk/src/changes/changes.xml Tue Dec 30 18:24:14 2014
@@ -22,6 +22,10 @@
<body>
<release version="4.1" date="TBD" description="">
+ <action issue="COLLECTIONS-537" dev="tn" type="fix" due-to="Frank Jakop">
+ Harmonized signature of factory methods for functor-related classes which take
+ a collection as input with their array counterparts.
+ </action>
<action issue="COLLECTIONS-540" dev="tn" type="fix" due-to="Daniel Stewart, Issam El Atif">
Added overloaded method "CollectionUtils#get(Enumeration, int)" and simplified
code for "CollectionUtils#get(Object, int)".
Modified: commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/ClosureUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/ClosureUtils.java?rev=1648561&r1=1648560&r2=1648561&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/ClosureUtils.java (original)
+++ commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/ClosureUtils.java Tue Dec 30 18:24:14 2014
@@ -216,7 +216,7 @@ public class ClosureUtils {
* @throws IllegalArgumentException if the closures collection is empty
* @throws IllegalArgumentException if any closure in the collection is null
*/
- public static <E> Closure<E> chainedClosure(final Collection<Closure<E>> closures) {
+ public static <E> Closure<E> chainedClosure(final Collection<? extends Closure<? super E>> closures) {
return ChainedClosure.chainedClosure(closures);
}
Modified: commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/PredicateUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/PredicateUtils.java?rev=1648561&r1=1648560&r2=1648561&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/PredicateUtils.java (original)
+++ commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/PredicateUtils.java Tue Dec 30 18:24:14 2014
@@ -286,7 +286,7 @@ public class PredicateUtils {
* @throws IllegalArgumentException if any predicate in the collection is null
* @see org.apache.commons.collections4.functors.AllPredicate
*/
- public static <T> Predicate<T> allPredicate(final Collection<? extends Predicate<T>> predicates) {
+ public static <T> Predicate<T> allPredicate(final Collection<? extends Predicate<? super T>> predicates) {
return AllPredicate.allPredicate(predicates);
}
@@ -334,7 +334,7 @@ public class PredicateUtils {
* @throws IllegalArgumentException if any predicate in the collection is null
* @see org.apache.commons.collections4.functors.AnyPredicate
*/
- public static <T> Predicate<T> anyPredicate(final Collection<? extends Predicate<T>> predicates) {
+ public static <T> Predicate<T> anyPredicate(final Collection<? extends Predicate<? super T>> predicates) {
return AnyPredicate.anyPredicate(predicates);
}
@@ -384,7 +384,7 @@ public class PredicateUtils {
* @throws IllegalArgumentException if any predicate in the collection is null
* @see org.apache.commons.collections4.functors.OnePredicate
*/
- public static <T> Predicate<T> onePredicate(final Collection<Predicate<T>> predicates) {
+ public static <T> Predicate<T> onePredicate(final Collection<? extends Predicate<? super T>> predicates) {
return OnePredicate.onePredicate(predicates);
}
@@ -434,7 +434,7 @@ public class PredicateUtils {
* @throws IllegalArgumentException if any predicate in the collection is null
* @see org.apache.commons.collections4.functors.NonePredicate
*/
- public static <T> Predicate<T> nonePredicate(final Collection<? extends Predicate<T>> predicates) {
+ public static <T> Predicate<T> nonePredicate(final Collection<? extends Predicate<? super T>> predicates) {
return NonePredicate.nonePredicate(predicates);
}
Modified: commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/TransformerUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/TransformerUtils.java?rev=1648561&r1=1648560&r2=1648561&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/TransformerUtils.java (original)
+++ commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/TransformerUtils.java Tue Dec 30 18:24:14 2014
@@ -208,7 +208,7 @@ public class TransformerUtils {
* @see org.apache.commons.collections4.functors.ChainedTransformer
*/
public static <T> Transformer<T, T> chainedTransformer(
- final Collection<? extends Transformer<T, T>> transformers) {
+ final Collection<? extends Transformer<? super T, ? extends T>> transformers) {
return ChainedTransformer.chainedTransformer(transformers);
}
Modified: commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/AllPredicate.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/AllPredicate.java?rev=1648561&r1=1648560&r2=1648561&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/AllPredicate.java (original)
+++ commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/AllPredicate.java Tue Dec 30 18:24:14 2014
@@ -76,13 +76,13 @@ public final class AllPredicate<T> exten
* @throws IllegalArgumentException if the predicates array is null
* @throws IllegalArgumentException if any predicate in the array is null
*/
- public static <T> Predicate<T> allPredicate(final Collection<? extends Predicate<T>> predicates) {
- final Predicate<T>[] preds = validate(predicates);
+ public static <T> Predicate<T> allPredicate(final Collection<? extends Predicate<? super T>> predicates) {
+ final Predicate<? super T>[] preds = validate(predicates);
if (preds.length == 0) {
return truePredicate();
}
if (preds.length == 1) {
- return preds[0];
+ return coerce(preds[0]);
}
return new AllPredicate<T>(preds);
}
Modified: commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/AnyPredicate.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/AnyPredicate.java?rev=1648561&r1=1648560&r2=1648561&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/AnyPredicate.java (original)
+++ commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/AnyPredicate.java Tue Dec 30 18:24:14 2014
@@ -73,7 +73,7 @@ public final class AnyPredicate<T> exten
* @throws IllegalArgumentException if any predicate in the array is null
*/
@SuppressWarnings("unchecked")
- public static <T> Predicate<T> anyPredicate(final Collection<? extends Predicate<T>> predicates) {
+ public static <T> Predicate<T> anyPredicate(final Collection<? extends Predicate<? super T>> predicates) {
final Predicate<? super T>[] preds = FunctorUtils.validate(predicates);
if (preds.length == 0) {
return FalsePredicate.<T>falsePredicate();
Modified: commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/ChainedClosure.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/ChainedClosure.java?rev=1648561&r1=1648560&r2=1648561&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/ChainedClosure.java (original)
+++ commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/ChainedClosure.java Tue Dec 30 18:24:14 2014
@@ -64,7 +64,7 @@ public class ChainedClosure<E> implement
* @throws IllegalArgumentException if any closure in the collection is null
*/
@SuppressWarnings("unchecked")
- public static <E> Closure<E> chainedClosure(final Collection<Closure<E>> closures) {
+ public static <E> Closure<E> chainedClosure(final Collection<? extends Closure<? super E>> closures) {
if (closures == null) {
throw new IllegalArgumentException("Closure collection must not be null");
}
Modified: commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/ChainedTransformer.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/ChainedTransformer.java?rev=1648561&r1=1648560&r2=1648561&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/ChainedTransformer.java (original)
+++ commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/ChainedTransformer.java Tue Dec 30 18:24:14 2014
@@ -67,7 +67,8 @@ public class ChainedTransformer<T> imple
* @throws IllegalArgumentException if any transformer in the collection is null
*/
@SuppressWarnings("unchecked")
- public static <T> Transformer<T, T> chainedTransformer(final Collection<? extends Transformer<T, T>> transformers) {
+ public static <T> Transformer<T, T> chainedTransformer(
+ final Collection<? extends Transformer<? super T, ? extends T>> transformers) {
if (transformers == null) {
throw new IllegalArgumentException("Transformer collection must not be null");
}
Modified: commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/FunctorUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/FunctorUtils.java?rev=1648561&r1=1648560&r2=1648561&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/FunctorUtils.java (original)
+++ commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/FunctorUtils.java Tue Dec 30 18:24:14 2014
@@ -66,7 +66,7 @@ class FunctorUtils {
* @return the coerced predicate.
*/
@SuppressWarnings("unchecked")
- static <T> Predicate<T> coerce(final Predicate<? super T> predicate){
+ static <T> Predicate<T> coerce(final Predicate<? super T> predicate) {
return (Predicate<T>) predicate;
}
@@ -93,15 +93,15 @@ class FunctorUtils {
* @param predicates the predicates to validate
* @return predicate array
*/
- static <T> Predicate<T>[] validate(final Collection<? extends Predicate<T>> predicates) {
+ static <T> Predicate<? super T>[] validate(final Collection<? extends Predicate<? super T>> predicates) {
if (predicates == null) {
throw new IllegalArgumentException("The predicate collection must not be null");
}
// convert to array like this to guarantee iterator() ordering
@SuppressWarnings("unchecked") // OK
- final Predicate<T>[] preds = new Predicate[predicates.size()];
+ final Predicate<? super T>[] preds = new Predicate[predicates.size()];
int i = 0;
- for (final Predicate<T> predicate : predicates) {
+ for (final Predicate<? super T> predicate : predicates) {
preds[i] = predicate;
if (preds[i] == null) {
throw new IllegalArgumentException(
@@ -154,7 +154,7 @@ class FunctorUtils {
* @return the coerced closure.
*/
@SuppressWarnings("unchecked")
- static <T> Closure<T> coerce(final Closure<? super T> closure){
+ static <T> Closure<T> coerce(final Closure<? super T> closure) {
return (Closure<T>) closure;
}
Modified: commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/NonePredicate.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/NonePredicate.java?rev=1648561&r1=1648560&r2=1648561&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/NonePredicate.java (original)
+++ commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/NonePredicate.java Tue Dec 30 18:24:14 2014
@@ -66,7 +66,7 @@ public final class NonePredicate<T> exte
* @throws IllegalArgumentException if the predicates array is null
* @throws IllegalArgumentException if any predicate in the array is null
*/
- public static <T> Predicate<T> nonePredicate(final Collection<? extends Predicate<T>> predicates) {
+ public static <T> Predicate<T> nonePredicate(final Collection<? extends Predicate<? super T>> predicates) {
final Predicate<? super T>[] preds = FunctorUtils.validate(predicates);
if (preds.length == 0) {
return TruePredicate.<T>truePredicate();
Modified: commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/OnePredicate.java
URL: http://svn.apache.org/viewvc/commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/OnePredicate.java?rev=1648561&r1=1648560&r2=1648561&view=diff
==============================================================================
--- commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/OnePredicate.java (original)
+++ commons/proper/collections/trunk/src/main/java/org/apache/commons/collections4/functors/OnePredicate.java Tue Dec 30 18:24:14 2014
@@ -69,7 +69,7 @@ public final class OnePredicate<T> exten
* @throws IllegalArgumentException if the predicates array is null
* @throws IllegalArgumentException if any predicate in the array is null
*/
- public static <T> Predicate<T> onePredicate(final Collection<? extends Predicate<T>> predicates) {
+ public static <T> Predicate<T> onePredicate(final Collection<? extends Predicate<? super T>> predicates) {
final Predicate<? super T>[] preds = FunctorUtils.validate(predicates);
return new OnePredicate<T>(preds);
}