Author: britter
Date: Tue Oct 22 19:23:21 2013
New Revision: 1534738
URL: http://svn.apache.org/r1534738
Log:
Removing isExactlyOneTrue, since there is no consensus about this method. See
also LANG-922.
Modified:
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/BooleanUtils.java
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java
Modified:
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/BooleanUtils.java
URL:
http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/BooleanUtils.java?rev=1534738&r1=1534737&r2=1534738&view=diff
==============================================================================
---
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/BooleanUtils.java
(original)
+++
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/BooleanUtils.java
Tue Oct 22 19:23:21 2013
@@ -141,82 +141,6 @@ public class BooleanUtils {
return !isFalse(bool);
}
- /**
- * <p>Checks if exactly one of the given booleans is true.</p>
- *
- * <pre>
- * BooleanUtils.isExactlyOneTrue(true, true) = false
- * BooleanUtils.isExactlyOneTrue(false, false) = false
- * BooleanUtils.isExactlyOneTrue(true, false) = true
- * BooleanUtils.isExactlyOneTrue(true, true) = false
- * BooleanUtils.isExactlyOneTrue(false, false) = false
- * BooleanUtils.isExactlyOneTrue(true, false) = true
- * </pre>
- *
- * @param array an array of {@code boolean}s
- * @return {@code true} if the array contains the value true only once.
- * @throws IllegalArgumentException if {@code array} is {@code null}
- * @throws IllegalArgumentException if {@code array} is empty.
- * @since 3.2
- */
- public static boolean isExactlyOneTrue(final boolean... array) {
- // Validates input
- if (array == null) {
- throw new IllegalArgumentException("The Array must not be null");
- }
- if (array.length == 0) {
- throw new IllegalArgumentException("Array is empty");
- }
-
- // Loops through array, comparing each item
- int trueCount = 0;
- for (final boolean element : array) {
- // If item is true, and trueCount is < 1, increments count
- // Else, isExactlyOneTrue fails
- if (element) {
- if (trueCount < 1) {
- trueCount++;
- } else {
- return false;
- }
- }
- }
-
- // Returns true if there was exactly 1 true item
- return trueCount == 1;
- }
-
- /**
- * <p>Checks if exactly one of the given Booleans is true.</p>
- *
- * <pre>
- * BooleanUtils.isExactlyOneTrue(new Boolean[] { Boolean.TRUE,
Boolean.TRUE }) = Boolean.FALSE
- * BooleanUtils.isExactlyOneTrue(new Boolean[] { Boolean.FALSE,
Boolean.FALSE }) = Boolean.FALSE
- * BooleanUtils.isExactlyOneTrue(new Boolean[] { Boolean.TRUE,
Boolean.FALSE }) = Boolean.TRUE
- * </pre>
- *
- * @param array an array of {@code Boolean}s
- * @return {@code true} if the array contains a Boolean with value true
only once.
- * @throws IllegalArgumentException if {@code array} is {@code null}
- * @throws IllegalArgumentException if {@code array} is empty.
- * @throws IllegalArgumentException if {@code array} contains a {@code
null}
- * @since 3.2
- */
- public static Boolean isExactlyOneTrue(final Boolean... array) {
- if (array == null) {
- throw new IllegalArgumentException("The Array must not be null");
- }
- if (array.length == 0) {
- throw new IllegalArgumentException("Array is empty");
- }
- try {
- final boolean[] primitive = ArrayUtils.toPrimitive(array);
- return isExactlyOneTrue(primitive) ? Boolean.TRUE : Boolean.FALSE;
- } catch (final NullPointerException ex) {
- throw new IllegalArgumentException("The array must not contain any
null elements");
- }
- }
-
//-----------------------------------------------------------------------
/**
* <p>Converts a Boolean to a boolean handling {@code null}
Modified:
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java
URL:
http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java?rev=1534738&r1=1534737&r2=1534738&view=diff
==============================================================================
---
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java
(original)
+++
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/BooleanUtilsTest.java
Tue Oct 22 19:23:21 2013
@@ -53,189 +53,6 @@ public class BooleanUtilsTest {
assertSame(Boolean.FALSE, BooleanUtils.negate(Boolean.TRUE));
}
- // test isExactlyOneTrue
- // -----------------------------------------------------------------------
- @Test(expected = IllegalArgumentException.class)
- public void testIsExactlyOneTrue_primitive_nullInput() {
- BooleanUtils.isExactlyOneTrue((boolean[]) null);
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testIsExactlyOneTrue_primitive_emptyInput() {
- BooleanUtils.isExactlyOneTrue(new boolean[]{});
- }
-
- @Test
- public void testIsExactlyOneTrue_primitive_validInput_2items() {
- assertFalse(
- "true, true",
- BooleanUtils.isExactlyOneTrue(new boolean[]{true, true}));
-
- assertFalse(
- "false, false",
- BooleanUtils.isExactlyOneTrue(new boolean[]{false, false}));
-
- assertTrue(
- "true, false",
- BooleanUtils.isExactlyOneTrue(new boolean[]{true, false}));
-
- assertTrue(
- "false, true",
- BooleanUtils.isExactlyOneTrue(new boolean[]{false, true}));
- }
-
- @Test
- public void testIsExactlyOneTrue_primitive_validInput_3items() {
- assertFalse(
- "false, false, false",
- BooleanUtils.isExactlyOneTrue(new boolean[]{false, false,
false}));
-
- assertTrue(
- "false, false, true",
- BooleanUtils.isExactlyOneTrue(new boolean[]{false, false,
true}));
-
- assertTrue(
- "false, true, false",
- BooleanUtils.isExactlyOneTrue(new boolean[]{false, true,
false}));
-
- assertFalse(
- "false, true, true",
- BooleanUtils.isExactlyOneTrue(new boolean[]{false, true,
true}));
-
- assertTrue(
- "true, false, false",
- BooleanUtils.isExactlyOneTrue(new boolean[]{true, false,
false}));
-
- assertFalse(
- "true, false, true",
- BooleanUtils.isExactlyOneTrue(new boolean[]{true, false,
true}));
-
- assertFalse(
- "true, true, false",
- BooleanUtils.isExactlyOneTrue(new boolean[]{true, true,
false}));
-
- assertFalse(
- "true, true, true",
- BooleanUtils.isExactlyOneTrue(new boolean[]{true, true,
true}));
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testIsExactlyOneTrue_object_nullInput() {
- BooleanUtils.isExactlyOneTrue((Boolean[]) null);
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testIsExactlyOneTrue_object_emptyInput() {
- BooleanUtils.isExactlyOneTrue(new Boolean[]{});
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testIsExactlyOneTrue_object_nullElementInput() {
- BooleanUtils.isExactlyOneTrue(new Boolean[]{null});
- }
-
- @Test
- public void testIsExactlyOneTrue_object_validInput_2items() {
- assertFalse(
- "false, false",
- BooleanUtils
- .isExactlyOneTrue(new Boolean[]{Boolean.FALSE,
Boolean.FALSE})
- .booleanValue());
-
- assertTrue(
- "false, true",
- BooleanUtils
- .isExactlyOneTrue(new Boolean[]{Boolean.FALSE,
Boolean.TRUE})
- .booleanValue());
-
- assertTrue(
- "true, false",
- BooleanUtils
- .isExactlyOneTrue(new Boolean[]{Boolean.TRUE,
Boolean.FALSE})
- .booleanValue());
-
- assertFalse(
- "true, true",
- BooleanUtils
- .isExactlyOneTrue(new Boolean[]{Boolean.TRUE,
Boolean.TRUE})
- .booleanValue());
- }
-
- @Test
- public void testIsExactlyOneTrue_object_validInput_3items() {
- assertFalse(
- "false, false, false",
- BooleanUtils.isExactlyOneTrue(
- new Boolean[]{
- Boolean.FALSE,
- Boolean.FALSE,
- Boolean.FALSE})
- .booleanValue());
-
- assertTrue(
- "false, false, true",
- BooleanUtils
- .isExactlyOneTrue(
- new Boolean[]{
- Boolean.FALSE,
- Boolean.FALSE,
- Boolean.TRUE})
- .booleanValue());
-
- assertTrue(
- "false, true, false",
- BooleanUtils
- .isExactlyOneTrue(
- new Boolean[]{
- Boolean.FALSE,
- Boolean.TRUE,
- Boolean.FALSE})
- .booleanValue());
-
- assertTrue(
- "true, false, false",
- BooleanUtils
- .isExactlyOneTrue(
- new Boolean[]{
- Boolean.TRUE,
- Boolean.FALSE,
- Boolean.FALSE})
- .booleanValue());
-
- assertFalse(
- "true, false, true",
- BooleanUtils.isExactlyOneTrue(
- new Boolean[]{
- Boolean.TRUE,
- Boolean.FALSE,
- Boolean.TRUE})
- .booleanValue());
-
- assertFalse(
- "true, true, false",
- BooleanUtils.isExactlyOneTrue(
- new Boolean[]{
- Boolean.TRUE,
- Boolean.TRUE,
- Boolean.FALSE})
- .booleanValue());
-
- assertFalse(
- "false, true, true",
- BooleanUtils.isExactlyOneTrue(
- new Boolean[]{
- Boolean.FALSE,
- Boolean.TRUE,
- Boolean.TRUE})
- .booleanValue());
-
- assertFalse(
- "true, true, true",
- BooleanUtils
- .isExactlyOneTrue(new Boolean[]{Boolean.TRUE,
Boolean.TRUE, Boolean.TRUE})
- .booleanValue());
- }
-
//-----------------------------------------------------------------------
@Test
public void test_isTrue_Boolean() {