Repository: commons-lang
Updated Branches:
  refs/heads/master 2433cd393 -> 5d2728f65


LANG-781: Added methods to ObjectUtils class to check for null elements in the 
array (closes #108)


Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/d190655a
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/d190655a
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/d190655a

Branch: refs/heads/master
Commit: d190655a97c33c886997b9570697f432e7d3a21a
Parents: 2433cd3
Author: Krzysztof Wolny <k.wo...@samrtrecruiters.com>
Authored: Tue Jul 28 14:54:19 2015 +0200
Committer: pascalschumacher <pascalschumac...@gmx.net>
Committed: Thu May 26 19:35:58 2016 +0200

----------------------------------------------------------------------
 .../org/apache/commons/lang3/ObjectUtils.java   | 39 ++++++++++++++++++++
 .../apache/commons/lang3/ObjectUtilsTest.java   | 32 ++++++++++++++++
 2 files changed, 71 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-lang/blob/d190655a/src/main/java/org/apache/commons/lang3/ObjectUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/ObjectUtils.java 
b/src/main/java/org/apache/commons/lang3/ObjectUtils.java
index 5c5fc04..e840031 100644
--- a/src/main/java/org/apache/commons/lang3/ObjectUtils.java
+++ b/src/main/java/org/apache/commons/lang3/ObjectUtils.java
@@ -128,6 +128,45 @@ public class ObjectUtils {
         return null;
     }
 
+    /**
+     * <p></p>Checks if any value in the array is not {@code null}.
+     * If all the values are {@code null} or the array is {@code null}
+     * or empty then {@code false} is returned. Otherwise {@code true} is 
returned.</p>
+     *
+     * @param values  the values to test, may be {@code null} or empty
+     * @return {@code true} if there is at least one non-null value in the 
array,
+     * {@code false} if all values in the array are {@code null}s.
+     * If the array is {@code null} or empty {@code false} is also returned.
+     */
+    public static boolean anyNotNull(final Object... values) {
+        return firstNonNull(values) != null;
+    }
+
+    /**
+     * <p></p>Checks if all values in the array are not {@code null}s.
+     * If any value is {@code null} or the array is {@code null}
+     * then {@code false} is returned.
+     * If all elements in array are not {@code null} or the array is empty 
(contains no elements)
+     * {@code true} is returned.</p>
+     *
+     * @param values  the values to test, may be {@code null} or empty
+     * @return {@code false} if there is at least one {@code null} value in 
the array or the array is {@code null},
+     * {@code true} if all values in the array are not {@code null}s or array 
contains no elements.
+     */
+    public static boolean allNotNull(final Object... values) {
+        if (values == null) {
+            return false;
+        }
+
+        for (final Object val : values) {
+            if (val == null) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
     // Null-safe equals/hashCode
     //-----------------------------------------------------------------------
     /**

http://git-wip-us.apache.org/repos/asf/commons-lang/blob/d190655a/src/test/java/org/apache/commons/lang3/ObjectUtilsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/lang3/ObjectUtilsTest.java 
b/src/test/java/org/apache/commons/lang3/ObjectUtilsTest.java
index acf30e7..0832647 100644
--- a/src/test/java/org/apache/commons/lang3/ObjectUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/ObjectUtilsTest.java
@@ -89,6 +89,38 @@ public class ObjectUtilsTest {
         assertNull(ObjectUtils.firstNonNull((Object[]) null));
     }
 
+    /**
+     * Tests {@link ObjectUtils#anyNotNull(Object...)}.
+     */
+    @Test
+    public void testAnyNotNull() {
+        assertFalse(ObjectUtils.anyNotNull());
+        assertFalse(ObjectUtils.anyNotNull((Object) null));
+        assertFalse(ObjectUtils.anyNotNull((Object[]) null));
+        assertFalse(ObjectUtils.anyNotNull(null, null, null));
+
+        assertTrue(ObjectUtils.anyNotNull(FOO));
+        assertTrue(ObjectUtils.anyNotNull(null, FOO, null));
+        assertTrue(ObjectUtils.anyNotNull(null, null, null, null, FOO, BAR));
+    }
+
+    /**
+     * Tests {@link ObjectUtils#allNotNull(Object...)}.
+     */
+    @Test
+    public void testAllNotNull() {
+        assertFalse(ObjectUtils.allNotNull((Object) null));
+        assertFalse(ObjectUtils.allNotNull((Object[]) null));
+        assertFalse(ObjectUtils.allNotNull(null, null, null));
+        assertFalse(ObjectUtils.allNotNull(null, FOO, BAR));
+        assertFalse(ObjectUtils.allNotNull(FOO, BAR, null));
+        assertFalse(ObjectUtils.allNotNull(FOO, BAR, null, FOO, BAR));
+
+        assertTrue(ObjectUtils.allNotNull());
+        assertTrue(ObjectUtils.allNotNull(FOO));
+        assertTrue(ObjectUtils.allNotNull(FOO, BAR, 1, Boolean.TRUE, new 
Object(), new Object[]{}));
+    }
+
     //-----------------------------------------------------------------------
     @Test
     public void testEquals() {

Reply via email to