Class 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()
      BooleanUtils instances should NOT be constructed in standard programming.
    • Constructor Detail

      • 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 Detail

      • 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