Class BooleanUtils

java.lang.Object
org.apache.commons.lang.BooleanUtils

public class BooleanUtils extends Object

Operations on boolean primitives and Boolean objects.

This class tries to handle null input gracefully. An exception will not be thrown for a null input. Each method documents its behaviour in more detail.

#ThreadSafe#

Since:
2.0
Version:
$Id: BooleanUtils.java 1057037 2011-01-09 21:35:32Z niallp $
  • Constructor Summary

    Constructors
    Constructor
    Description
    BooleanUtils instances should NOT be constructed in standard programming.
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    Checks if a Boolean value is false, handling null by returning false.
    static boolean
    Checks if a Boolean value is not false, handling null by returning true.
    static boolean
    Checks if a Boolean value is not true, handling null by returning true.
    static boolean
    Checks if a Boolean value is true, handling null by returning false.
    static Boolean
    Negates the specified boolean.
    static boolean
    toBoolean(int value)
    Converts an int to a boolean using the convention that zero is false.
    static boolean
    toBoolean(int value, int trueValue, int falseValue)
    Converts an int to a boolean specifying the conversion values.
    static boolean
    Converts a Boolean to a boolean handling null by returning false.
    static boolean
    toBoolean(Integer value, Integer trueValue, Integer falseValue)
    Converts an Integer to a boolean specifying the conversion values.
    static boolean
    Converts a String to a boolean (optimised for performance).
    static boolean
    toBoolean(String str, String trueString, String falseString)
    Converts a String to a Boolean throwing an exception if no match found.
    static boolean
    toBooleanDefaultIfNull(Boolean bool, boolean valueIfNull)
    Converts a Boolean to a boolean handling null.
    static Boolean
    toBooleanObject(boolean bool)
    Boolean factory that avoids creating new Boolean objecs all the time.
    static Boolean
    toBooleanObject(int value)
    Converts an int to a Boolean using the convention that zero is false.
    static Boolean
    toBooleanObject(int value, int trueValue, int falseValue, int nullValue)
    Converts an int to a Boolean specifying the conversion values.
    static Boolean
    Converts an Integer to a Boolean using the convention that zero is false.
    static Boolean
    toBooleanObject(Integer value, Integer trueValue, Integer falseValue, Integer nullValue)
    Converts an Integer to a Boolean specifying the conversion values.
    static Boolean
    Converts a String to a Boolean.
    static Boolean
    toBooleanObject(String str, String trueString, String falseString, String nullString)
    Converts a String to a Boolean throwing an exception if no match.
    static int
    toInteger(boolean bool)
    Converts a boolean to an int using the convention that zero is false.
    static int
    toInteger(boolean bool, int trueValue, int falseValue)
    Converts a boolean to an int specifying the conversion values.
    static int
    toInteger(Boolean bool, int trueValue, int falseValue, int nullValue)
    Converts a Boolean to an int specifying the conversion values.
    static Integer
    toIntegerObject(boolean bool)
    Converts a boolean to an Integer using the convention that zero is false.
    static Integer
    toIntegerObject(boolean bool, Integer trueValue, Integer falseValue)
    Converts a boolean to an Integer specifying the conversion values.
    static Integer
    Converts a Boolean to a Integer using the convention that zero is false.
    static Integer
    toIntegerObject(Boolean bool, Integer trueValue, Integer falseValue, Integer nullValue)
    Converts a Boolean to an Integer specifying the conversion values.
    static String
    toString(boolean bool, String trueString, String falseString)
    Converts a boolean to a String returning one of the input Strings.
    static String
    toString(Boolean bool, String trueString, String falseString, String nullString)
    Converts a Boolean to a String returning one of the input Strings.
    static String
    toStringOnOff(boolean bool)
    Converts a boolean to a String returning 'on' or 'off'.
    static String
    Converts a Boolean to a String returning 'on', 'off', or null.
    static String
    toStringTrueFalse(boolean bool)
    Converts a boolean to a String returning 'true' or 'false'.
    static String
    Converts a Boolean to a String returning 'true', 'false', or null.
    static String
    toStringYesNo(boolean bool)
    Converts a boolean to a String returning 'yes' or 'no'.
    static String
    Converts a Boolean to a String returning 'yes', 'no', or null.
    static boolean
    xor(boolean[] array)
    Performs an xor on a set of booleans.
    static Boolean
    xor(Boolean[] array)
    Performs an xor on an array of Booleans.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • BooleanUtils

      public BooleanUtils()

      BooleanUtils instances should NOT be constructed in standard programming. Instead, the class should be used as BooleanUtils.toBooleanObject(true);.

      This constructor is public to permit tools that require a JavaBean instance to operate.

  • Method Details

    • negate

      public static Boolean negate(Boolean bool)

      Negates the specified boolean.

      If null is passed in, null will be returned.

         BooleanUtils.negate(Boolean.TRUE)  = Boolean.FALSE;
         BooleanUtils.negate(Boolean.FALSE) = Boolean.TRUE;
         BooleanUtils.negate(null)          = null;
       
      Parameters:
      bool - the Boolean to negate, may be null
      Returns:
      the negated Boolean, or null if null input
    • isTrue

      public static boolean isTrue(Boolean bool)

      Checks if a Boolean value is true, handling null by returning false.

         BooleanUtils.isTrue(Boolean.TRUE)  = true
         BooleanUtils.isTrue(Boolean.FALSE) = false
         BooleanUtils.isTrue(null)          = false
       
      Parameters:
      bool - the boolean to check, null returns false
      Returns:
      true only if the input is non-null and true
      Since:
      2.1
    • isNotTrue

      public static boolean isNotTrue(Boolean bool)

      Checks if a Boolean value is not true, handling null by returning true.

         BooleanUtils.isNotTrue(Boolean.TRUE)  = false
         BooleanUtils.isNotTrue(Boolean.FALSE) = true
         BooleanUtils.isNotTrue(null)          = true
       
      Parameters:
      bool - the boolean to check, null returns true
      Returns:
      true if the input is null or false
      Since:
      2.3
    • isFalse

      public static boolean isFalse(Boolean bool)

      Checks if a Boolean value is false, handling null by returning false.

         BooleanUtils.isFalse(Boolean.TRUE)  = false
         BooleanUtils.isFalse(Boolean.FALSE) = true
         BooleanUtils.isFalse(null)          = false
       
      Parameters:
      bool - the boolean to check, null returns false
      Returns:
      true only if the input is non-null and false
      Since:
      2.1
    • isNotFalse

      public static boolean isNotFalse(Boolean bool)

      Checks if a Boolean value is not false, handling null by returning true.

         BooleanUtils.isNotFalse(Boolean.TRUE)  = true
         BooleanUtils.isNotFalse(Boolean.FALSE) = false
         BooleanUtils.isNotFalse(null)          = true
       
      Parameters:
      bool - the boolean to check, null returns true
      Returns:
      true if the input is null or true
      Since:
      2.3
    • toBooleanObject

      public static Boolean toBooleanObject(boolean bool)

      Boolean factory that avoids creating new Boolean objecs all the time.

      This method was added to JDK1.4 but is available here for earlier JDKs.

         BooleanUtils.toBooleanObject(false) = Boolean.FALSE
         BooleanUtils.toBooleanObject(true)  = Boolean.TRUE
       
      Parameters:
      bool - the boolean to convert
      Returns:
      Boolean.TRUE or Boolean.FALSE as appropriate
    • toBoolean

      public static boolean toBoolean(Boolean bool)

      Converts a Boolean to a boolean handling null by returning false.

         BooleanUtils.toBoolean(Boolean.TRUE)  = true
         BooleanUtils.toBoolean(Boolean.FALSE) = false
         BooleanUtils.toBoolean(null)          = false
       
      Parameters:
      bool - the boolean to convert
      Returns:
      true or false, null returns false
    • toBooleanDefaultIfNull

      public static boolean toBooleanDefaultIfNull(Boolean bool, boolean valueIfNull)

      Converts a Boolean to a boolean handling null.

         BooleanUtils.toBooleanDefaultIfNull(Boolean.TRUE, false) = true
         BooleanUtils.toBooleanDefaultIfNull(Boolean.FALSE, true) = false
         BooleanUtils.toBooleanDefaultIfNull(null, true)          = true
       
      Parameters:
      bool - the boolean to convert
      valueIfNull - the boolean value to return if null
      Returns:
      true or false
    • toBoolean

      public static boolean toBoolean(int value)

      Converts an int to a boolean using the convention that zero is false.

         BooleanUtils.toBoolean(0) = false
         BooleanUtils.toBoolean(1) = true
         BooleanUtils.toBoolean(2) = true
       
      Parameters:
      value - the int to convert
      Returns:
      true if non-zero, false if zero
    • toBooleanObject

      public static Boolean toBooleanObject(int value)

      Converts an int to a Boolean using the convention that zero is false.

         BooleanUtils.toBoolean(0) = Boolean.FALSE
         BooleanUtils.toBoolean(1) = Boolean.TRUE
         BooleanUtils.toBoolean(2) = Boolean.TRUE
       
      Parameters:
      value - the int to convert
      Returns:
      Boolean.TRUE if non-zero, Boolean.FALSE if zero, null if null
    • toBooleanObject

      public static Boolean toBooleanObject(Integer value)

      Converts an Integer to a Boolean using the convention that zero is false.

      null will be converted to null.

         BooleanUtils.toBoolean(new Integer(0))    = Boolean.FALSE
         BooleanUtils.toBoolean(new Integer(1))    = Boolean.TRUE
         BooleanUtils.toBoolean(new Integer(null)) = null
       
      Parameters:
      value - the Integer to convert
      Returns:
      Boolean.TRUE if non-zero, Boolean.FALSE if zero, null if null input
    • toBoolean

      public static boolean toBoolean(int value, int trueValue, int falseValue)

      Converts an int to a boolean specifying the conversion values.

         BooleanUtils.toBoolean(0, 1, 0) = false
         BooleanUtils.toBoolean(1, 1, 0) = true
         BooleanUtils.toBoolean(2, 1, 2) = false
         BooleanUtils.toBoolean(2, 2, 0) = true
       
      Parameters:
      value - the Integer to convert
      trueValue - the value to match for true
      falseValue - the value to match for false
      Returns:
      true or false
      Throws:
      IllegalArgumentException - if no match
    • toBoolean

      public static boolean toBoolean(Integer value, Integer trueValue, Integer falseValue)

      Converts an Integer to a boolean specifying the conversion values.

         BooleanUtils.toBoolean(new Integer(0), new Integer(1), new Integer(0)) = false
         BooleanUtils.toBoolean(new Integer(1), new Integer(1), new Integer(0)) = true
         BooleanUtils.toBoolean(new Integer(2), new Integer(1), new Integer(2)) = false
         BooleanUtils.toBoolean(new Integer(2), new Integer(2), new Integer(0)) = true
         BooleanUtils.toBoolean(null, null, new Integer(0))                     = true
       
      Parameters:
      value - the Integer to convert
      trueValue - the value to match for true, may be null
      falseValue - the value to match for false, may be null
      Returns:
      true or false
      Throws:
      IllegalArgumentException - if no match
    • toBooleanObject

      public static Boolean toBooleanObject(int value, int trueValue, int falseValue, int nullValue)

      Converts an int to a Boolean specifying the conversion values.

         BooleanUtils.toBooleanObject(0, 0, 2, 3) = Boolean.TRUE
         BooleanUtils.toBooleanObject(2, 1, 2, 3) = Boolean.FALSE
         BooleanUtils.toBooleanObject(3, 1, 2, 3) = null
       
      Parameters:
      value - the Integer to convert
      trueValue - the value to match for true
      falseValue - the value to match for false
      nullValue - the value to to match for null
      Returns:
      Boolean.TRUE, Boolean.FALSE, or null
      Throws:
      IllegalArgumentException - if no match
    • toBooleanObject

      public static Boolean toBooleanObject(Integer value, Integer trueValue, Integer falseValue, Integer nullValue)

      Converts an Integer to a Boolean specifying the conversion values.

         BooleanUtils.toBooleanObject(new Integer(0), new Integer(0), new Integer(2), new Integer(3)) = Boolean.TRUE
         BooleanUtils.toBooleanObject(new Integer(2), new Integer(1), new Integer(2), new Integer(3)) = Boolean.FALSE
         BooleanUtils.toBooleanObject(new Integer(3), new Integer(1), new Integer(2), new Integer(3)) = null
       
      Parameters:
      value - the Integer to convert
      trueValue - the value to match for true, may be null
      falseValue - the value to match for false, may be null
      nullValue - the value to to match for null, may be null
      Returns:
      Boolean.TRUE, Boolean.FALSE, or null
      Throws:
      IllegalArgumentException - if no match
    • toInteger

      public static int toInteger(boolean bool)

      Converts a boolean to an int using the convention that zero is false.

         BooleanUtils.toInteger(true)  = 1
         BooleanUtils.toInteger(false) = 0
       
      Parameters:
      bool - the boolean to convert
      Returns:
      one if true, zero if false
    • toIntegerObject

      public static Integer toIntegerObject(boolean bool)

      Converts a boolean to an Integer using the convention that zero is false.

         BooleanUtils.toIntegerObject(true)  = new Integer(1)
         BooleanUtils.toIntegerObject(false) = new Integer(0)
       
      Parameters:
      bool - the boolean to convert
      Returns:
      one if true, zero if false
    • toIntegerObject

      public static Integer toIntegerObject(Boolean bool)

      Converts a Boolean to a Integer using the convention that zero is false.

      null will be converted to null.

         BooleanUtils.toIntegerObject(Boolean.TRUE)  = new Integer(1)
         BooleanUtils.toIntegerObject(Boolean.FALSE) = new Integer(0)
       
      Parameters:
      bool - the Boolean to convert
      Returns:
      one if Boolean.TRUE, zero if Boolean.FALSE, null if null
    • toInteger

      public static int toInteger(boolean bool, int trueValue, int falseValue)

      Converts a boolean to an int specifying the conversion values.

         BooleanUtils.toInteger(true, 1, 0)  = 1
         BooleanUtils.toInteger(false, 1, 0) = 0
       
      Parameters:
      bool - the to convert
      trueValue - the value to return if true
      falseValue - the value to return if false
      Returns:
      the appropriate value
    • toInteger

      public static int toInteger(Boolean bool, int trueValue, int falseValue, int nullValue)

      Converts a Boolean to an int specifying the conversion values.

         BooleanUtils.toInteger(Boolean.TRUE, 1, 0, 2)  = 1
         BooleanUtils.toInteger(Boolean.FALSE, 1, 0, 2) = 0
         BooleanUtils.toInteger(null, 1, 0, 2)          = 2
       
      Parameters:
      bool - the Boolean to convert
      trueValue - the value to return if true
      falseValue - the value to return if false
      nullValue - the value to return if null
      Returns:
      the appropriate value
    • toIntegerObject

      public static Integer toIntegerObject(boolean bool, Integer trueValue, Integer falseValue)

      Converts a boolean to an Integer specifying the conversion values.

         BooleanUtils.toIntegerObject(true, new Integer(1), new Integer(0))  = new Integer(1)
         BooleanUtils.toIntegerObject(false, new Integer(1), new Integer(0)) = new Integer(0)
       
      Parameters:
      bool - the to convert
      trueValue - the value to return if true, may be null
      falseValue - the value to return if false, may be null
      Returns:
      the appropriate value
    • toIntegerObject

      public static Integer toIntegerObject(Boolean bool, Integer trueValue, Integer falseValue, Integer nullValue)

      Converts a Boolean to an Integer specifying the conversion values.

         BooleanUtils.toIntegerObject(Boolean.TRUE, new Integer(1), new Integer(0), new Integer(2))  = new Integer(1)
         BooleanUtils.toIntegerObject(Boolean.FALSE, new Integer(1), new Integer(0), new Integer(2)) = new Integer(0)
         BooleanUtils.toIntegerObject(null, new Integer(1), new Integer(0), new Integer(2))          = new Integer(2)
       
      Parameters:
      bool - the Boolean to convert
      trueValue - the value to return if true, may be null
      falseValue - the value to return if false, may be null
      nullValue - the value to return if null, may be null
      Returns:
      the appropriate value
    • toBooleanObject

      public static Boolean toBooleanObject(String str)

      Converts a String to a Boolean.

      'true', 'on' or 'yes' (case insensitive) will return true. 'false', 'off' or 'no' (case insensitive) will return false. Otherwise, null is returned.

         BooleanUtils.toBooleanObject(null)    = null
         BooleanUtils.toBooleanObject("true")  = Boolean.TRUE
         BooleanUtils.toBooleanObject("false") = Boolean.FALSE
         BooleanUtils.toBooleanObject("on")    = Boolean.TRUE
         BooleanUtils.toBooleanObject("ON")    = Boolean.TRUE
         BooleanUtils.toBooleanObject("off")   = Boolean.FALSE
         BooleanUtils.toBooleanObject("oFf")   = Boolean.FALSE
         BooleanUtils.toBooleanObject("blue")  = null
       
      Parameters:
      str - the String to check
      Returns:
      the Boolean value of the string, null if no match or null input
    • toBooleanObject

      public static Boolean toBooleanObject(String str, String trueString, String falseString, String nullString)

      Converts a String to a Boolean throwing an exception if no match.

         BooleanUtils.toBooleanObject("true", "true", "false", "null")  = Boolean.TRUE
         BooleanUtils.toBooleanObject("false", "true", "false", "null") = Boolean.FALSE
         BooleanUtils.toBooleanObject("null", "true", "false", "null")  = null
       
      Parameters:
      str - the String to check
      trueString - the String to match for true (case sensitive), may be null
      falseString - the String to match for false (case sensitive), may be null
      nullString - the String to match for null (case sensitive), may be null
      Returns:
      the Boolean value of the string, null if either the String matches nullString or if null input and nullString is null
      Throws:
      IllegalArgumentException - if the String doesn't match
    • toBoolean

      public static boolean toBoolean(String str)

      Converts a String to a boolean (optimised for performance).

      'true', 'on' or 'yes' (case insensitive) will return true. Otherwise, false is returned.

      This method performs 4 times faster (JDK1.4) than Boolean.valueOf(String). However, this method accepts 'on' and 'yes' as true values.

         BooleanUtils.toBoolean(null)    = false
         BooleanUtils.toBoolean("true")  = true
         BooleanUtils.toBoolean("TRUE")  = true
         BooleanUtils.toBoolean("tRUe")  = true
         BooleanUtils.toBoolean("on")    = true
         BooleanUtils.toBoolean("yes")   = true
         BooleanUtils.toBoolean("false") = false
         BooleanUtils.toBoolean("x gti") = false
       
      Parameters:
      str - the String to check
      Returns:
      the boolean value of the string, false if no match or the String is null
    • toBoolean

      public static boolean toBoolean(String str, String trueString, String falseString)

      Converts a String to a Boolean throwing an exception if no match found.

      null is returned if there is no match.

         BooleanUtils.toBoolean("true", "true", "false")  = true
         BooleanUtils.toBoolean("false", "true", "false") = false
       
      Parameters:
      str - the String to check
      trueString - the String to match for true (case sensitive), may be null
      falseString - the String to match for false (case sensitive), may be null
      Returns:
      the boolean value of the string
      Throws:
      IllegalArgumentException - if the String doesn't match
    • toStringTrueFalse

      public static String toStringTrueFalse(Boolean bool)

      Converts a Boolean to a String returning 'true', 'false', or null.

         BooleanUtils.toStringTrueFalse(Boolean.TRUE)  = "true"
         BooleanUtils.toStringTrueFalse(Boolean.FALSE) = "false"
         BooleanUtils.toStringTrueFalse(null)          = null;
       
      Parameters:
      bool - the Boolean to check
      Returns:
      'true', 'false', or null
    • toStringOnOff

      public static String toStringOnOff(Boolean bool)

      Converts a Boolean to a String returning 'on', 'off', or null.

         BooleanUtils.toStringOnOff(Boolean.TRUE)  = "on"
         BooleanUtils.toStringOnOff(Boolean.FALSE) = "off"
         BooleanUtils.toStringOnOff(null)          = null;
       
      Parameters:
      bool - the Boolean to check
      Returns:
      'on', 'off', or null
    • toStringYesNo

      public static String toStringYesNo(Boolean bool)

      Converts a Boolean to a String returning 'yes', 'no', or null.

         BooleanUtils.toStringYesNo(Boolean.TRUE)  = "yes"
         BooleanUtils.toStringYesNo(Boolean.FALSE) = "no"
         BooleanUtils.toStringYesNo(null)          = null;
       
      Parameters:
      bool - the Boolean to check
      Returns:
      'yes', 'no', or null
    • toString

      public static String toString(Boolean bool, String trueString, String falseString, String nullString)

      Converts a Boolean to a String returning one of the input Strings.

         BooleanUtils.toString(Boolean.TRUE, "true", "false", null)   = "true"
         BooleanUtils.toString(Boolean.FALSE, "true", "false", null)  = "false"
         BooleanUtils.toString(null, "true", "false", null)           = null;
       
      Parameters:
      bool - the Boolean to check
      trueString - the String to return if true, may be null
      falseString - the String to return if false, may be null
      nullString - the String to return if null, may be null
      Returns:
      one of the three input Strings
    • toStringTrueFalse

      public static String toStringTrueFalse(boolean bool)

      Converts a boolean to a String returning 'true' or 'false'.

         BooleanUtils.toStringTrueFalse(true)   = "true"
         BooleanUtils.toStringTrueFalse(false)  = "false"
       
      Parameters:
      bool - the Boolean to check
      Returns:
      'true', 'false', or null
    • toStringOnOff

      public static String toStringOnOff(boolean bool)

      Converts a boolean to a String returning 'on' or 'off'.

         BooleanUtils.toStringOnOff(true)   = "on"
         BooleanUtils.toStringOnOff(false)  = "off"
       
      Parameters:
      bool - the Boolean to check
      Returns:
      'on', 'off', or null
    • toStringYesNo

      public static String toStringYesNo(boolean bool)

      Converts a boolean to a String returning 'yes' or 'no'.

         BooleanUtils.toStringYesNo(true)   = "yes"
         BooleanUtils.toStringYesNo(false)  = "no"
       
      Parameters:
      bool - the Boolean to check
      Returns:
      'yes', 'no', or null
    • toString

      public static String toString(boolean bool, String trueString, String falseString)

      Converts a boolean to a String returning one of the input Strings.

         BooleanUtils.toString(true, "true", "false")   = "true"
         BooleanUtils.toString(false, "true", "false")  = "false"
       
      Parameters:
      bool - the Boolean to check
      trueString - the String to return if true, may be null
      falseString - the String to return if false, may be null
      Returns:
      one of the two input Strings
    • xor

      public static boolean xor(boolean[] array)

      Performs an xor on a set of booleans.

         BooleanUtils.xor(new boolean[] { true, true })   = false
         BooleanUtils.xor(new boolean[] { false, false }) = false
         BooleanUtils.xor(new boolean[] { true, false })  = true
       
      Parameters:
      array - an array of booleans
      Returns:
      true if the xor is successful.
      Throws:
      IllegalArgumentException - if array is null
      IllegalArgumentException - if array is empty.
    • xor

      public static Boolean xor(Boolean[] array)

      Performs an xor on an array of Booleans.

         BooleanUtils.xor(new Boolean[] { Boolean.TRUE, Boolean.TRUE })   = Boolean.FALSE
         BooleanUtils.xor(new Boolean[] { Boolean.FALSE, Boolean.FALSE }) = Boolean.FALSE
         BooleanUtils.xor(new Boolean[] { Boolean.TRUE, Boolean.FALSE })  = Boolean.TRUE
       
      Parameters:
      array - an array of Booleans
      Returns:
      true if the xor is successful.
      Throws:
      IllegalArgumentException - if array is null
      IllegalArgumentException - if array is empty.
      IllegalArgumentException - if array contains a null