From 0dff24ddf27b5a5ac98bafbfc0b8e05307a905ba Mon Sep 17 00:00:00 2001 From: Artem Konovalov Date: Thu, 28 Jul 2016 13:28:52 -0400 Subject: [PATCH 1/3] small improvements for collectionUtils --- .../commons/collections4/CollectionUtils.java | 43 +++++-------------- 1 file changed, 11 insertions(+), 32 deletions(-) diff --git a/src/main/java/org/apache/commons/collections4/CollectionUtils.java b/src/main/java/org/apache/commons/collections4/CollectionUtils.java index 334f20d6ef..826686ca21 100644 --- a/src/main/java/org/apache/commons/collections4/CollectionUtils.java +++ b/src/main/java/org/apache/commons/collections4/CollectionUtils.java @@ -16,30 +16,15 @@ */ package org.apache.commons.collections4; -import java.lang.reflect.Array; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Comparator; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.ListIterator; -import java.util.Map; -import java.util.Set; - import org.apache.commons.collections4.bag.HashBag; -import org.apache.commons.collections4.collection.PredicatedCollection; -import org.apache.commons.collections4.collection.SynchronizedCollection; -import org.apache.commons.collections4.collection.TransformedCollection; -import org.apache.commons.collections4.collection.UnmodifiableBoundedCollection; -import org.apache.commons.collections4.collection.UnmodifiableCollection; +import org.apache.commons.collections4.collection.*; import org.apache.commons.collections4.functors.TruePredicate; import org.apache.commons.collections4.iterators.CollatingIterator; import org.apache.commons.collections4.iterators.PermutationIterator; +import java.lang.reflect.Array; +import java.util.*; + /** * Provides utility methods and decorators for {@link Collection} instances. *

@@ -180,8 +165,7 @@ public Collection list() { * undesirable. This implementation only implements Collection. */ @SuppressWarnings("rawtypes") // we deliberately use the raw type here - public static final Collection EMPTY_COLLECTION = - UnmodifiableCollection.unmodifiableCollection(new ArrayList()); + public static final Collection EMPTY_COLLECTION = Collections.emptyList(); /** * CollectionUtils should not normally be instantiated. @@ -209,9 +193,8 @@ public static Collection emptyCollection() { * @param collection the collection, possibly null * @return an empty collection if the argument is null */ - @SuppressWarnings("unchecked") // OK, empty collection is compatible with any type public static Collection emptyIfNull(final Collection collection) { - return collection == null ? EMPTY_COLLECTION : collection; + return collection == null ? CollectionUtils.emptyCollection() : collection; } /** @@ -389,9 +372,7 @@ public static boolean containsAll(final Collection coll1, final Collection } } - if (foundCurrentElement) { - continue; - } else { + if (!foundCurrentElement) { return false; } } @@ -830,7 +811,7 @@ public static int countMatches(final Iterable input, final Predicate boolean exists(final Iterable input, final Predicate predicate) { - return predicate == null ? false : IterableUtils.matchesAny(input, predicate); + return predicate != null && IterableUtils.matchesAny(input, predicate); } /** @@ -850,7 +831,7 @@ public static boolean exists(final Iterable input, final Predicate boolean matchesAll(final Iterable input, final Predicate predicate) { - return predicate == null ? false : IterableUtils.matchesAll(input, predicate); + return predicate != null && IterableUtils.matchesAll(input, predicate); } /** @@ -1112,6 +1093,7 @@ public static boolean addIgnoreNull(final Collection collection, final T * @return a boolean indicating whether the collection has changed or not. * @throws NullPointerException if the collection or iterator is null */ + @SuppressWarnings("unchecked") public static boolean addAll(final Collection collection, final Iterable iterable) { if (iterable instanceof Collection) { return collection.addAll((Collection) iterable); @@ -1266,9 +1248,6 @@ public static Object get(final Object object, final int index) { } else if (object instanceof Iterable) { final Iterable iterable = (Iterable) object; return IterableUtils.get(iterable, i); - } else if (object instanceof Collection) { - final Iterator iterator = ((Collection) object).iterator(); - return IteratorUtils.get(iterator, i); } else if (object instanceof Enumeration) { final Enumeration it = (Enumeration) object; return EnumerationUtils.get(it, i); @@ -1631,7 +1610,7 @@ public static List collate(final Iterable a, final Iterable< */ public static Collection> permutations(final Collection collection) { final PermutationIterator it = new PermutationIterator(collection); - final Collection> result = new LinkedList>(); + final Collection> result = new ArrayList>(); while (it.hasNext()) { result.add(it.next()); } From aa6b4cc5a8ea3ab6b093d8dd0ef2b6499d1cf130 Mon Sep 17 00:00:00 2001 From: Artem Konovalov Date: Mon, 22 May 2017 16:40:33 +0300 Subject: [PATCH 2/3] applied changes after code review --- .../commons/collections4/CollectionUtils.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/apache/commons/collections4/CollectionUtils.java b/src/main/java/org/apache/commons/collections4/CollectionUtils.java index 826686ca21..e77ac11c3f 100644 --- a/src/main/java/org/apache/commons/collections4/CollectionUtils.java +++ b/src/main/java/org/apache/commons/collections4/CollectionUtils.java @@ -16,15 +16,30 @@ */ package org.apache.commons.collections4; +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; +import java.util.Map; +import java.util.Set; + import org.apache.commons.collections4.bag.HashBag; -import org.apache.commons.collections4.collection.*; +import org.apache.commons.collections4.collection.PredicatedCollection; +import org.apache.commons.collections4.collection.SynchronizedCollection; +import org.apache.commons.collections4.collection.TransformedCollection; +import org.apache.commons.collections4.collection.UnmodifiableBoundedCollection; +import org.apache.commons.collections4.collection.UnmodifiableCollection; import org.apache.commons.collections4.functors.TruePredicate; import org.apache.commons.collections4.iterators.CollatingIterator; import org.apache.commons.collections4.iterators.PermutationIterator; -import java.lang.reflect.Array; -import java.util.*; - /** * Provides utility methods and decorators for {@link Collection} instances. *

From 9b4e2efcd8766f6797463d4b476c420300a3e10f Mon Sep 17 00:00:00 2001 From: Artem Konovalov Date: Wed, 24 May 2017 00:41:02 +0300 Subject: [PATCH 3/3] removed not necessary suppressWarning annotation --- .../java/org/apache/commons/collections4/CollectionUtils.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/apache/commons/collections4/CollectionUtils.java b/src/main/java/org/apache/commons/collections4/CollectionUtils.java index e77ac11c3f..5bab383dfa 100644 --- a/src/main/java/org/apache/commons/collections4/CollectionUtils.java +++ b/src/main/java/org/apache/commons/collections4/CollectionUtils.java @@ -1108,7 +1108,6 @@ public static boolean addIgnoreNull(final Collection collection, final T * @return a boolean indicating whether the collection has changed or not. * @throws NullPointerException if the collection or iterator is null */ - @SuppressWarnings("unchecked") public static boolean addAll(final Collection collection, final Iterable iterable) { if (iterable instanceof Collection) { return collection.addAll((Collection) iterable);