org.apache.commons.beanutils.converters
Class BooleanConverter

java.lang.Object
  extended by org.apache.commons.beanutils.converters.BooleanConverter
All Implemented Interfaces:
Converter

public final class BooleanConverter
extends java.lang.Object
implements Converter

Standard Converter implementation that converts an incoming String into a java.lang.Boolean object, optionally using a default value or throwing a ConversionException if a conversion error occurs.

By default any object whose string representation is one of the values {"yes", "y", "true", "on", "1"} is converted to Boolean.TRUE, and string representations {"no", "n", "false", "off", "0"} are converted to Boolean.FALSE. The recognised true/false strings can be changed by:

  String[] trueStrings = {"oui", "o", "1"};
  String[] falseStrings = {"non", "n", "0"};
  Converter bc = new BooleanConverter(trueStrings, falseStrings);
  ConvertUtils.register(bc, Boolean.class);
  ConvertUtils.register(bc, Boolean.TYPE);
 
In addition, it is recommended that the BooleanArrayConverter also be modified to recognise the same set of values:
   Converter bac = new BooleanArrayConverter(bc, BooleanArrayConverter.NO_DEFAULT);
   ConvertUtils.register(bac, bac.MODEL);
 

Case is ignored when converting values to true or false.

Since:
1.3
Version:
$Revision: 156409 $ $Date: 2005-03-07 11:59:28 +0300 (??????, 07 ?????? 2005) $
Author:
Craig R. McClanahan

Field Summary
private  java.lang.Object defaultValue
          The default value specified to our Constructor, if any.
private  java.lang.String[] falseStrings
          The set of strings that are known to map to Boolean.FALSE.
static java.lang.Object NO_DEFAULT
          This is a special reference that can be passed as the "default object" to the constructor to indicate that no default is desired.
private  java.lang.String[] trueStrings
          The set of strings that are known to map to Boolean.TRUE.
private  boolean useDefault
          Should we return the default value on conversion errors?
 
Constructor Summary
BooleanConverter()
          Create a Converter that will throw a ConversionException if a conversion error occurs, ie the string value being converted is not one of the known true strings, nor one of the known false strings.
BooleanConverter(java.lang.Object defaultValue)
          Create a Converter that will return the specified default value if a conversion error occurs, ie the string value being converted is not one of the known true strings, nor one of the known false strings.
BooleanConverter(java.lang.String[] trueStrings, java.lang.String[] falseStrings, java.lang.Object defaultValue)
          Create a Converter that will return the specified default value if a conversion error occurs.
 
Method Summary
 java.lang.Object convert(java.lang.Class type, java.lang.Object value)
          Convert the specified input object into an output object of the specified type.
private static java.lang.String[] copyStrings(java.lang.String[] src)
          This method creates a copy of the provided array, and ensures that all the strings in the newly created array contain only lower-case letters.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NO_DEFAULT

public static final java.lang.Object NO_DEFAULT
This is a special reference that can be passed as the "default object" to the constructor to indicate that no default is desired. Note that the value 'null' cannot be used for this purpose, as the caller may want a null to be returned as the default.


defaultValue

private java.lang.Object defaultValue
The default value specified to our Constructor, if any.


useDefault

private boolean useDefault
Should we return the default value on conversion errors?


trueStrings

private java.lang.String[] trueStrings
The set of strings that are known to map to Boolean.TRUE.


falseStrings

private java.lang.String[] falseStrings
The set of strings that are known to map to Boolean.FALSE.

Constructor Detail

BooleanConverter

public BooleanConverter()
Create a Converter that will throw a ConversionException if a conversion error occurs, ie the string value being converted is not one of the known true strings, nor one of the known false strings.


BooleanConverter

public BooleanConverter(java.lang.Object defaultValue)
Create a Converter that will return the specified default value if a conversion error occurs, ie the string value being converted is not one of the known true strings, nor one of the known false strings.

Parameters:
defaultValue - The default value to be returned if the value being converted is not recognised. This value may be null, in which case null will be returned on conversion failure. When non-null, it is expected that this value will be either Boolean.TRUE or Boolean.FALSE. The special value BooleanConverter.NO_DEFAULT can also be passed here, in which case this constructor acts like the no-argument one.

BooleanConverter

public BooleanConverter(java.lang.String[] trueStrings,
                        java.lang.String[] falseStrings,
                        java.lang.Object defaultValue)
Create a Converter that will return the specified default value if a conversion error occurs.

The provided string arrays are copied, so that changes to the elements of the array after this call is made do not affect this object.

Parameters:
trueStrings - is the set of strings which should convert to the value Boolean.TRUE. The value null must not be present. Case is ignored.
falseStrings - is the set of strings which should convert to the value Boolean.TRUE. The value null must not be present. Case is ignored.
defaultValue - The default value to be returned if the value being converted is not recognised. This value may be null, in which case null will be returned on conversion failure. When non-null, it is expected that this value will be either Boolean.TRUE or Boolean.FALSE. The special value BooleanConverter.NO_DEFAULT can also be passed here, in which case an exception will be thrown on conversion failure.
Method Detail

convert

public java.lang.Object convert(java.lang.Class type,
                                java.lang.Object value)
Convert the specified input object into an output object of the specified type.

Specified by:
convert in interface Converter
Parameters:
type - is the type to which this value should be converted. In the case of this BooleanConverter class, this value is ignored.
value - is the input value to be converted. The toString method shall be invoked on this object, and the result compared (ignoring case) against the known "true" and "false" string values.
Returns:
Boolean.TRUE if the value was a recognised "true" value, Boolean.FALSE if the value was a recognised "false" value, or the default value if the value was not recognised and the constructor was provided with a default value.
Throws:
ConversionException - if conversion cannot be performed successfully and the constructor was not provided with a default value to return on conversion failure.

copyStrings

private static java.lang.String[] copyStrings(java.lang.String[] src)
This method creates a copy of the provided array, and ensures that all the strings in the newly created array contain only lower-case letters.

Using this method to copy string arrays means that changes to the src array do not modify the dst array.



Copyright (c) 2001-2004 - Apache Software Foundation