public static boolean toBoolean ( Object obj , boolean defaultValue ) { if ( obj == null ) { return defaultValue ; } if ( obj instanceof Boolean ) { return ( ( Boolean ) obj ) . booleanValue ( ) ; } else if ( obj instanceof Number || obj . getClass ( ) . isPrimitive ( ) ) { int value = toInt ( obj ) ; return value != 0 ? true : false ; } else if ( obj instanceof Value ) { return ( ( Value ) obj ) . booleanValue ( ) ; } else if ( obj instanceof String || obj instanceof CharSequence ) { String str = Conversions . toString ( obj ) ; if ( str . length ( ) == 0 ) { return false ; } if ( str . equals ( "false" ) ) { return false ; } else { return true ; } } else if ( isArray ( obj ) ) { return len ( obj ) > 0 ; } else if ( obj instanceof Collection ) { if ( len ( obj ) > 0 ) { List list = Lists . list ( ( Collection ) obj ) ; while ( list . remove ( null ) ) { } return Lists . len ( list ) > 0 ; } else { return false ; } } else { return toBoolean ( Conversions . toString ( obj ) ) ; } }
Converts the value to boolean and if it is null it uses the default value passed .