This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git


The following commit(s) were added to refs/heads/master by this push:
     new 180d948  [LANG-1568] Predicate add.
180d948 is described below

commit 180d948d7f0cf73fd9a657ecbcb382b2e9b22cb7
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Thu Jun 25 10:42:13 2020 -0400

    [LANG-1568] Predicate add.
---
 .../lang3/function/FailableBiPredicate.java        |  4 +-
 .../lang3/function/FailableDoublePredicate.java    | 25 +++++----
 .../lang3/function/FailableIntPredicate.java       | 13 +++++
 .../lang3/function/FailableLongPredicate.java      | 13 +++++
 .../commons/lang3/function/FailablePredicate.java  | 13 +++++
 .../lang3/function/FailableFunctionsTest.java      | 60 ++++++++++++++++++++++
 6 files changed, 113 insertions(+), 15 deletions(-)

diff --git 
a/src/main/java/org/apache/commons/lang3/function/FailableBiPredicate.java 
b/src/main/java/org/apache/commons/lang3/function/FailableBiPredicate.java
index 56c5028..f5894b3 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableBiPredicate.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableBiPredicate.java
@@ -70,9 +70,9 @@ public interface FailableBiPredicate<T, U, E extends 
Throwable> {
      * @return a composed {@code FailableBiPredicate} like {@link 
BiPredicate#and(BiPredicate)}.
      * @throws NullPointerException if other is null
      */
-    default FailableBiPredicate<T, U, E> and(FailableBiPredicate<? super T, ? 
super U, E> other) {
+    default FailableBiPredicate<T, U, E> and(final FailableBiPredicate<? super 
T, ? super U, E> other) {
         Objects.requireNonNull(other);
-        return (T t, U u) -> test(t, u) && other.test(t, u);
+        return (final T t, final U u) -> test(t, u) && other.test(t, u);
     }
 
     /**
diff --git 
a/src/main/java/org/apache/commons/lang3/function/FailableDoublePredicate.java 
b/src/main/java/org/apache/commons/lang3/function/FailableDoublePredicate.java
index 0c7def5..badc2a5 100644
--- 
a/src/main/java/org/apache/commons/lang3/function/FailableDoublePredicate.java
+++ 
b/src/main/java/org/apache/commons/lang3/function/FailableDoublePredicate.java
@@ -18,7 +18,6 @@
 package org.apache.commons.lang3.function;
 
 import java.util.Objects;
-import java.util.function.BiPredicate;
 import java.util.function.DoublePredicate;
 
 /**
@@ -30,18 +29,6 @@ import java.util.function.DoublePredicate;
 @FunctionalInterface
 public interface FailableDoublePredicate<E extends Throwable> {
 
-    /**
-     * Returns a composed {@code FailableBiPredicate} like {@link 
BiPredicate#and(BiPredicate)}.
-     *
-     * @param other a predicate that will be logically-ANDed with this 
predicate.
-     * @return a composed {@code FailableBiPredicate} like {@link 
BiPredicate#and(BiPredicate)}.
-     * @throws NullPointerException if other is null
-     */
-    default FailableDoublePredicate<E> and(FailableDoublePredicate<E> other) {
-        Objects.requireNonNull(other);
-        return t -> test(t) && other.test(t);
-    }
-
     /** FALSE singleton */
     @SuppressWarnings("rawtypes")
     FailableDoublePredicate FALSE = t -> false;
@@ -71,6 +58,18 @@ public interface FailableDoublePredicate<E extends 
Throwable> {
     }
 
     /**
+     * Returns a composed {@code FailableDoublePredicate} like {@link 
DoublePredicate#and(DoublePredicate)}.
+     *
+     * @param other a predicate that will be logically-ANDed with this 
predicate.
+     * @return a composed {@code FailableDoublePredicate} like {@link 
DoublePredicate#and(DoublePredicate)}.
+     * @throws NullPointerException if other is null
+     */
+    default FailableDoublePredicate<E> and(final FailableDoublePredicate<E> 
other) {
+        Objects.requireNonNull(other);
+        return t -> test(t) && other.test(t);
+    }
+
+    /**
      * Returns a predicate that negates this predicate.
      *
      * @return a predicate that negates this predicate.
diff --git 
a/src/main/java/org/apache/commons/lang3/function/FailableIntPredicate.java 
b/src/main/java/org/apache/commons/lang3/function/FailableIntPredicate.java
index babfceb..57e0cb1 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableIntPredicate.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableIntPredicate.java
@@ -17,6 +17,7 @@
 
 package org.apache.commons.lang3.function;
 
+import java.util.Objects;
 import java.util.function.IntPredicate;
 
 /**
@@ -57,6 +58,18 @@ public interface FailableIntPredicate<E extends Throwable> {
     }
 
     /**
+     * Returns a composed {@code FailableIntPredicate} like {@link 
IntPredicate#and(IntPredicate)}.
+     *
+     * @param other a predicate that will be logically-ANDed with this 
predicate.
+     * @return a composed {@code FailableIntPredicate} like {@link 
IntPredicate#and(IntPredicate)}.
+     * @throws NullPointerException if other is null
+     */
+    default FailableIntPredicate<E> and(final FailableIntPredicate<E> other) {
+        Objects.requireNonNull(other);
+        return t -> test(t) && other.test(t);
+    }
+
+    /**
      * Returns a predicate that negates this predicate.
      *
      * @return a predicate that negates this predicate.
diff --git 
a/src/main/java/org/apache/commons/lang3/function/FailableLongPredicate.java 
b/src/main/java/org/apache/commons/lang3/function/FailableLongPredicate.java
index 33714aa..154b1df 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailableLongPredicate.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailableLongPredicate.java
@@ -17,6 +17,7 @@
 
 package org.apache.commons.lang3.function;
 
+import java.util.Objects;
 import java.util.function.LongPredicate;
 
 /**
@@ -57,6 +58,18 @@ public interface FailableLongPredicate<E extends Throwable> {
     }
 
     /**
+     * Returns a composed {@code FailableLongPredicate} like {@link 
LongPredicate#and(LongPredicate)}.
+     *
+     * @param other a predicate that will be logically-ANDed with this 
predicate.
+     * @return a composed {@code FailableLongPredicate} like {@link 
LongPredicate#and(LongPredicate)}.
+     * @throws NullPointerException if other is null
+     */
+    default FailableLongPredicate<E> and(final FailableLongPredicate<E> other) 
{
+        Objects.requireNonNull(other);
+        return t -> test(t) && other.test(t);
+    }
+
+    /**
      * Returns a predicate that negates this predicate.
      *
      * @return a predicate that negates this predicate.
diff --git 
a/src/main/java/org/apache/commons/lang3/function/FailablePredicate.java 
b/src/main/java/org/apache/commons/lang3/function/FailablePredicate.java
index 160f2f5..081464a 100644
--- a/src/main/java/org/apache/commons/lang3/function/FailablePredicate.java
+++ b/src/main/java/org/apache/commons/lang3/function/FailablePredicate.java
@@ -17,6 +17,7 @@
 
 package org.apache.commons.lang3.function;
 
+import java.util.Objects;
 import java.util.function.Predicate;
 
 /**
@@ -60,6 +61,18 @@ public interface FailablePredicate<T, E extends Throwable> {
     }
 
     /**
+     * Returns a composed {@code FailablePredicate} like {@link 
Predicate#and(Predicate)}.
+     *
+     * @param other a predicate that will be logically-ANDed with this 
predicate.
+     * @return a composed {@code FailablePredicate} like {@link 
Predicate#and(Predicate)}.
+     * @throws NullPointerException if other is null
+     */
+    default FailablePredicate<T, E> and(final FailablePredicate<? super T, E> 
other) {
+        Objects.requireNonNull(other);
+        return t -> test(t) && other.test(t);
+    }
+
+    /**
      * Returns a predicate that negates this predicate.
      *
      * @return a predicate that negates this predicate.
diff --git 
a/src/test/java/org/apache/commons/lang3/function/FailableFunctionsTest.java 
b/src/test/java/org/apache/commons/lang3/function/FailableFunctionsTest.java
index 957225f..085d839 100644
--- a/src/test/java/org/apache/commons/lang3/function/FailableFunctionsTest.java
+++ b/src/test/java/org/apache/commons/lang3/function/FailableFunctionsTest.java
@@ -712,6 +712,18 @@ public class FailableFunctionsTest {
         assertTrue(predicate.test(null, null));
     }
 
+    @Test
+    public void testBiPredicateAnd() throws Throwable {
+        
assertTrue(FailableBiPredicate.TRUE.and(FailableBiPredicate.TRUE).test(null, 
null));
+        
assertFalse(FailableBiPredicate.TRUE.and(FailableBiPredicate.FALSE).test(null, 
null));
+        
assertFalse(FailableBiPredicate.FALSE.and(FailableBiPredicate.TRUE).test(null, 
null));
+        
assertFalse(FailableBiPredicate.FALSE.and(FailableBiPredicate.FALSE).test(null, 
null));
+        // null tests
+        assertThrows(NullPointerException.class, () -> 
assertFalse(FailableBiPredicate.FALSE.and(null).test(null, null)));
+        assertThrows(NullPointerException.class, () -> 
assertTrue(FailableBiPredicate.TRUE.and(null).test(null, null)));
+    }
+
+    @Test
     public void testBiPredicateNegate() throws Throwable {
         assertFalse(FailableBiPredicate.TRUE.negate().test(null, null));
         assertFalse(FailableBiPredicate.truePredicate().negate().test(null, 
null));
@@ -774,6 +786,18 @@ public class FailableFunctionsTest {
         failablePredicate.test(1d);
     }
 
+    @Test
+    public void testDoublePredicateAnd() throws Throwable {
+        
assertTrue(FailableDoublePredicate.TRUE.and(FailableDoublePredicate.TRUE).test(0));
+        
assertFalse(FailableDoublePredicate.TRUE.and(FailableDoublePredicate.FALSE).test(0));
+        
assertFalse(FailableDoublePredicate.FALSE.and(FailableDoublePredicate.TRUE).test(0));
+        
assertFalse(FailableDoublePredicate.FALSE.and(FailableDoublePredicate.FALSE).test(0));
+        // null tests
+        assertThrows(NullPointerException.class, () -> 
assertFalse(FailableDoublePredicate.FALSE.and(null).test(0)));
+        assertThrows(NullPointerException.class, () -> 
assertTrue(FailableDoublePredicate.TRUE.and(null).test(0)));
+    }
+
+    @Test
     public void testDoublePredicateNegate() throws Throwable {
         assertFalse(FailableDoublePredicate.TRUE.negate().test(0d));
         assertFalse(FailableDoublePredicate.truePredicate().negate().test(0d));
@@ -1052,6 +1076,18 @@ public class FailableFunctionsTest {
         failablePredicate.test(1);
     }
 
+    @Test
+    public void testIntPredicateAnd() throws Throwable {
+        
assertTrue(FailableIntPredicate.TRUE.and(FailableIntPredicate.TRUE).test(0));
+        
assertFalse(FailableIntPredicate.TRUE.and(FailableIntPredicate.FALSE).test(0));
+        
assertFalse(FailableIntPredicate.FALSE.and(FailableIntPredicate.TRUE).test(0));
+        
assertFalse(FailableIntPredicate.FALSE.and(FailableIntPredicate.FALSE).test(0));
+        // null tests
+        assertThrows(NullPointerException.class, () -> 
assertFalse(FailableIntPredicate.FALSE.and(null).test(0)));
+        assertThrows(NullPointerException.class, () -> 
assertTrue(FailableIntPredicate.TRUE.and(null).test(0)));
+    }
+
+    @Test
     public void testIntPredicateNegate() throws Throwable {
         assertFalse(FailableIntPredicate.TRUE.negate().test(0));
         assertFalse(FailableIntPredicate.truePredicate().negate().test(0));
@@ -1132,6 +1168,18 @@ public class FailableFunctionsTest {
         failablePredicate.test(1L);
     }
 
+    @Test
+    public void testLongPredicateAnd() throws Throwable {
+        
assertTrue(FailableLongPredicate.TRUE.and(FailableLongPredicate.TRUE).test(0));
+        
assertFalse(FailableLongPredicate.TRUE.and(FailableLongPredicate.FALSE).test(0));
+        
assertFalse(FailableLongPredicate.FALSE.and(FailableLongPredicate.TRUE).test(0));
+        
assertFalse(FailableLongPredicate.FALSE.and(FailableLongPredicate.FALSE).test(0));
+        // null tests
+        assertThrows(NullPointerException.class, () -> 
assertFalse(FailableLongPredicate.FALSE.and(null).test(0)));
+        assertThrows(NullPointerException.class, () -> 
assertTrue(FailableLongPredicate.TRUE.and(null).test(0)));
+    }
+
+    @Test
     public void testLongPredicateNegate() throws Throwable {
         assertFalse(FailableLongPredicate.TRUE.negate().test(0L));
         assertFalse(FailableLongPredicate.truePredicate().negate().test(0L));
@@ -1202,6 +1250,18 @@ public class FailableFunctionsTest {
         assertNotNull(instance);
     }
 
+    @Test
+    public void testPredicateAnd() throws Throwable {
+        
assertTrue(FailablePredicate.TRUE.and(FailablePredicate.TRUE).test(null));
+        
assertFalse(FailablePredicate.TRUE.and(FailablePredicate.FALSE).test(null));
+        
assertFalse(FailablePredicate.FALSE.and(FailablePredicate.TRUE).test(null));
+        
assertFalse(FailablePredicate.FALSE.and(FailablePredicate.FALSE).test(null));
+        // null tests
+        assertThrows(NullPointerException.class, () -> 
assertFalse(FailablePredicate.FALSE.and(null).test(null)));
+        assertThrows(NullPointerException.class, () -> 
assertTrue(FailablePredicate.TRUE.and(null).test(null)));
+    }
+
+    @Test
     public void testPredicateNegate() throws Throwable {
         assertFalse(FailablePredicate.TRUE.negate().test(null));
         assertFalse(FailablePredicate.truePredicate().negate().test(null));

Reply via email to