aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGary Gregory <garydgregory@gmail.com>2022-09-16 10:22:39 -0400
committerGary Gregory <garydgregory@gmail.com>2022-09-16 10:22:39 -0400
commite81855a208c909f46e1bf346d7982bd77be13476 (patch)
treee5c1bc0bcfe32f428f9b1a566c4b159c096c48ce /src
parent19612d4134c6000644fda0539a47211d577d116f (diff)
downloadapache-commons-lang-e81855a208c909f46e1bf346d7982bd77be13476.tar.gz
Add BooleanUtils.values() and forEach().
Diffstat (limited to 'src')
-rw-r--r--src/changes/changes.xml1
-rw-r--r--src/main/java/org/apache/commons/lang3/BooleanUtils.java30
-rw-r--r--src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java22
3 files changed, 50 insertions, 3 deletions
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index c0147bdb6..cb2c934f2 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -177,6 +177,7 @@ The <action> type attribute can be add,update,fix,remove.
<action type="add" dev="ggregory" due-to="Gary Gregory">Add Processor.Type.getLabel().</action>
<action type="add" dev="ggregory" due-to="Gary Gregory">Add Processor.toString().</action>
<action type="add" dev="ggregory" due-to="Gary Gregory">Add HashCodeBuilder.equals(Object).</action>
+ <action type="add" dev="ggregory" due-to="Gary Gregory">Add BooleanUtils.values() and forEach().</action>
<!-- UPDATE -->
<action type="update" dev="ggregory" due-to="Dependabot, XenoAmess, Gary Gregory">Bump actions/cache from 2.1.4 to 3.0.8 #742, #752, #764, #833, #867.</action>
<action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump actions/checkout from 2 to 3.0.2 #819, #825, #859.</action>
diff --git a/src/main/java/org/apache/commons/lang3/BooleanUtils.java b/src/main/java/org/apache/commons/lang3/BooleanUtils.java
index e4479246c..ab73a42ec 100644
--- a/src/main/java/org/apache/commons/lang3/BooleanUtils.java
+++ b/src/main/java/org/apache/commons/lang3/BooleanUtils.java
@@ -16,6 +16,11 @@
*/
package org.apache.commons.lang3;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.function.Consumer;
+
import org.apache.commons.lang3.math.NumberUtils;
/**
@@ -29,6 +34,9 @@ import org.apache.commons.lang3.math.NumberUtils;
* @since 2.0
*/
public class BooleanUtils {
+
+ private static final List<Boolean> BOOLEAN_LIST = Collections.unmodifiableList(Arrays.asList(Boolean.FALSE, Boolean.TRUE));
+
/**
* The false String {@code "false"}.
*
@@ -153,6 +161,16 @@ public class BooleanUtils {
}
/**
+ * Performs the given action for each Boolean {@link BooleanUtils#values()}.
+ *
+ * @param action The action to be performed for each element
+ * @since 3.13.0
+ */
+ public static void forEach(final Consumer<Boolean> action) {
+ values().forEach(action);
+ }
+
+ /**
* Checks if a {@link Boolean} value is {@code false},
* handling {@code null} by returning {@code false}.
*
@@ -223,7 +241,6 @@ public class BooleanUtils {
public static boolean isTrue(final Boolean bool) {
return Boolean.TRUE.equals(bool);
}
-
/**
* Negates the specified boolean.
*
@@ -247,6 +264,7 @@ public class BooleanUtils {
}
return bool.booleanValue() ? Boolean.FALSE : Boolean.TRUE;
}
+
/**
* Performs a one-hot on an array of booleans.
* <p>
@@ -1122,6 +1140,16 @@ public class BooleanUtils {
}
/**
+ * Returns an unmodifiable list of Booleans {@code [false, true]}.
+ *
+ * @return an unmodifiable list of Booleans {@code [false, true]}.
+ * @since 3.13.0
+ */
+ public static List<Boolean> values() {
+ return BOOLEAN_LIST;
+ }
+
+ /**
* Performs an xor on a set of booleans.
* <p>
* This behaves like an XOR gate;
diff --git a/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java b/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java
index d01579bd5..5b6197e1c 100644
--- a/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java
@@ -28,21 +28,39 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import java.lang.reflect.Constructor;
import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
import org.junit.jupiter.api.Test;
/**
- * Unit tests {@link org.apache.commons.lang3.BooleanUtils}.
+ * Unit tests {@link BooleanUtils}.
*/
public class BooleanUtilsTest extends AbstractLangTest {
@Test
public void test_booleanValues() {
- final Boolean[] expected = {false, true};
+ final Boolean[] expected = {Boolean.FALSE, Boolean.TRUE};
assertArrayEquals(sort(expected), BooleanUtils.booleanValues());
}
@Test
+ public void test_values() {
+ final List<Boolean> expected = Arrays.asList(Boolean.FALSE, Boolean.TRUE);
+ Collections.sort(expected);
+ assertEquals(expected, BooleanUtils.values());
+ }
+
+ @Test
+ public void test_forEach() {
+ final List<Boolean> list = new ArrayList<>();
+ BooleanUtils.forEach(list::add);
+ assertEquals(Arrays.asList(Boolean.FALSE, Boolean.TRUE), list);
+ }
+
+ @Test
public void test_isFalse_Boolean() {
assertFalse(BooleanUtils.isFalse(Boolean.TRUE));
assertTrue(BooleanUtils.isFalse(Boolean.FALSE));