Prev Class | Next Class | Frames | No Frames |
Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
java.lang.Object
org.apache.commons.beanutils.ConvertUtilsBean
public class ConvertUtilsBean
extends java.lang.Object
Converter
instance to be used can be registered for each
possible destination Class. Unless you override them, standard
Converter
instances are provided for all of the following
destination Classes:
ConversionException
thrown instead, replace the standard Converter
instances with instances created with the zero-arguments constructor. For
example, to cause the Converters for integers to throw an exception on
conversion errors, you could do this:
// No-args constructor gets the version that throws exceptions Converter myConverter = new org.apache.commons.beanutils.converter.IntegerConverter(); ConvertUtils.register(myConverter, Integer.TYPE); // Native type ConvertUtils.register(myConverter, Integer.class); // Wrapper classConverters generally treat null input as if it were invalid input, ie they return their default value if one was specified when the converter was constructed, and throw an exception otherwise. If you prefer nulls to be preserved for converters that are converting to objects (not primitives) then register a converter as above, passing a default value of null to the converter constructor (and of course registering that converter only for the .class target). When a converter is listed above as having no default value, then that converter will throw an exception when passed null or an invalid value as its input. In particular, by default the BigInteger and BigDecimal converters have no default (and are therefore somewhat inconsistent with the other numerical converters which all have zero as their default). Converters that generate arrays of each of the primitive types are also automatically configured (including String[]). When passed null or invalid input, these return an empty array (not null). See class AbstractArrayConverter for the supported input formats for these converters.
Field Summary | |
private static Character | |
private static Integer | |
private Map |
|
private Boolean |
|
private Byte |
|
private Character |
|
private Double |
|
private Float |
|
private Integer |
|
private Long |
|
private static Short |
|
private Log |
|
Constructor Summary | |
|
Method Summary | |
String |
|
Object |
|
Object |
|
Object |
|
void |
|
void |
|
boolean |
|
byte |
|
char |
|
double |
|
float |
|
int |
|
long |
|
short |
|
protected static ConvertUtilsBean |
|
Converter | |
Converter | |
private void | |
void |
|
void | |
private void |
|
private void |
|
private void |
|
private void |
|
private void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
private static final Character SPACE
private static final Integer ZERO
private Map converters
The set ofConverter
s that can be used to convert Strings into objects of a specified Class, keyed by the destination Class.
private Boolean defaultBoolean
Deprecated. Register replacement converters for Boolean.TYPE and Boolean.class instead
The default value for Boolean conversions.
private Byte defaultByte
Deprecated. Register replacement converters for Byte.TYPE and Byte.class instead
The default value for Byte conversions.
private Character defaultCharacter
Deprecated. Register replacement converters for Character.TYPE and Character.class instead
The default value for Character conversions.
private Double defaultDouble
Deprecated. Register replacement converters for Double.TYPE and Double.class instead
The default value for Double conversions.
private Float defaultFloat
Deprecated. Register replacement converters for Float.TYPE and Float.class instead
The default value for Float conversions.
private Integer defaultInteger
Deprecated. Register replacement converters for Integer.TYPE and Integer.class instead
The default value for Integer conversions.
private Long defaultLong
Deprecated. Register replacement converters for Long.TYPE and Long.class instead
The default value for Long conversions.
private static Short defaultShort
Deprecated. Register replacement converters for Short.TYPE and Short.class instead
The default value for Short conversions.
private Log log
TheLog
instance for this class.
public String convert(Object value)
Convert the specified value into a String. If the specified value is an array, the first element (converted to a String) will be returned. The registeredConverter
for thejava.lang.String
class will be used, which allows applications to customize Object->String conversions (the default implementation simply uses toString()).
- Parameters:
value
- Value to be converted (may be null)
- Returns:
- The converted String value
public Object convert(Object value, Class targetType)
Convert the value to an object of the specified class (if possible).
- Parameters:
value
- Value to be converted (may be null)targetType
- Class of the value to be converted to
- Returns:
- The converted value
public Object convert(String value, Class clazz)
Convert the specified value to an object of the specified class (if possible). Otherwise, return a String representation of the value.
- Parameters:
value
- Value to be converted (may be null)clazz
- Java class to be converted to
- Returns:
- The converted value
public Object convert(String[] values, Class clazz)
Convert an array of specified values to an array of objects of the specified class (if possible). If the specified Java class is itself an array class, this class will be the type of the returned value. Otherwise, an array will be constructed whose component type is the specified class.
- Parameters:
values
- Array of values to be convertedclazz
- Java array or element class to be converted to
- Returns:
- The converted value
public void deregister()
Remove all registeredConverter
s, and re-establish the standard Converters.
public void deregister(Class clazz)
Remove any registeredConverter
for the specified destinationClass
.
- Parameters:
clazz
- Class for which to remove a registered Converter
public boolean getDefaultBoolean()
Deprecated. Register replacement converters for Boolean.TYPE and Boolean.class instead
Gets the default value for Boolean conversions.
- Returns:
- The default Boolean value
public byte getDefaultByte()
Deprecated. Register replacement converters for Byte.TYPE and Byte.class instead
Gets the default value for Byte conversions.
- Returns:
- The default Byte value
public char getDefaultCharacter()
Deprecated. Register replacement converters for Character.TYPE and Character.class instead
Gets the default value for Character conversions.
- Returns:
- The default Character value
public double getDefaultDouble()
Deprecated. Register replacement converters for Double.TYPE and Double.class instead
Gets the default value for Double conversions.
- Returns:
- The default Double value
public float getDefaultFloat()
Deprecated. Register replacement converters for Float.TYPE and Float.class instead
Gets the default value for Float conversions.
- Returns:
- The default Float value
public int getDefaultInteger()
Deprecated. Register replacement converters for Integer.TYPE and Integer.class instead
Gets the default value for Integer conversions.
- Returns:
- The default Integer value
public long getDefaultLong()
Deprecated. Register replacement converters for Long.TYPE and Long.class instead
Gets the default value for Long conversions.
- Returns:
- The default Long value
public short getDefaultShort()
Deprecated. Register replacement converters for Short.TYPE and Short.class instead
Gets the default value for Short conversions.
- Returns:
- The default Short value
protected static ConvertUtilsBean getInstance()
Get singleton instance
- Returns:
- The singleton instance
public Converter lookup(Class clazz)
Look up and return any registeredConverter
for the specified destination class; if there is no registered Converter, returnnull
.
- Parameters:
clazz
- Class for which to return a registered Converter
- Returns:
- The registered
Converter
ornull
if not found
public Converter lookup(Class sourceType, Class targetType)
Look up and return any registeredConverter
for the specified source and destination class; if there is no registered Converter, returnnull
.
- Parameters:
sourceType
- Class of the value being convertedtargetType
- Class of the value to be converted to
- Returns:
- The registered
Converter
ornull
if not found
private void register(Class clazz, Converter converter)
strictly for convenience since it has same parameter order as Map.put
public void register(boolean throwException, boolean defaultNull, int defaultArraySize)
Register the provided converters with the specified defaults.
- Parameters:
throwException
-true
if the converters should throw an exception when a conversion error occurs, otherwise
false
if a default value should be used.defaultNull
-true
if the standard converters (seeregisterStandard(boolean,boolean)
) should use a default value ofnull
, otherwisefalse
. N.B. This values is ignored ifthrowException
istrue
defaultArraySize
- The size of the default array value for array converters (N.B. This values is ignored ifthrowException
istrue
). Specifying a value less than zero causes anull
value to be used for the default.
public void register(Converter converter, Class clazz)
Register a customConverter
for the specified destinationClass
, replacing any previously registered Converter.
- Parameters:
converter
- Converter to be registeredclazz
- Destination class for conversions performed by this Converter
private void registerArrayConverter(Class componentType, Converter componentConverter, boolean throwException, int defaultArraySize)
Register a new ArrayConverter with the specified element delegate converter that returns a default array of the specified size in the event of conversion errors.
- Parameters:
componentType
- The component type of the arraycomponentConverter
- The converter to delegate to for the array elementsthrowException
- Whether a conversion exception should be thrown or a default value used in the event of a conversion errordefaultArraySize
- The size of the default array
private void registerArrays(boolean throwException, int defaultArraySize)
Register array converters.
- Parameters:
throwException
-true
if the converters should throw an exception when a conversion error occurs, otherwise
false
if a default value should be used.defaultArraySize
- The size of the default array value for array converters (N.B. This values is ignored ifthrowException
istrue
). Specifying a value less than zero causes anull
value to be used for the default.
private void registerOther(boolean throwException)
Register the converters for other types. This method registers the following converters:
Class.class
-ClassConverter
java.util.Date.class
-DateConverter
java.util.Calendar.class
-CalendarConverter
File.class
-FileConverter
java.sql.Date.class
-SqlDateConverter
java.sql.Time.class
-SqlTimeConverter
java.sql.Timestamp.class
-SqlTimestampConverter
URL.class
-URLConverter
- Parameters:
throwException
-true
if the converters should throw an exception when a conversion error occurs, otherwise
false
if a default value should be used.
private void registerPrimitives(boolean throwException)
Register the converters for primitive types. This method registers the following converters:
Boolean.TYPE
-BooleanConverter
Byte.TYPE
-ByteConverter
Character.TYPE
-CharacterConverter
Double.TYPE
-DoubleConverter
Float.TYPE
-FloatConverter
Integer.TYPE
-IntegerConverter
Long.TYPE
-LongConverter
Short.TYPE
-ShortConverter
- Parameters:
throwException
-true
if the converters should throw an exception when a conversion error occurs, otherwise
false
if a default value should be used.
private void registerStandard(boolean throwException, boolean defaultNull)
Register the converters for standard types. This method registers the following converters:
BigDecimal.class
-BigDecimalConverter
BigInteger.class
-BigIntegerConverter
Boolean.class
-BooleanConverter
Byte.class
-ByteConverter
Character.class
-CharacterConverter
Double.class
-DoubleConverter
Float.class
-FloatConverter
Integer.class
-IntegerConverter
Long.class
-LongConverter
Short.class
-ShortConverter
String.class
-StringConverter
- Parameters:
throwException
-true
if the converters should throw an exception when a conversion error occurs, otherwise
false
if a default value should be used.defaultNull
-true
if the standard converters (seeregisterStandard(boolean,boolean)
) should use a default value ofnull
, otherwisefalse
. N.B. This values is ignored ifthrowException
istrue
public void setDefaultBoolean(boolean newDefaultBoolean)
Deprecated. Register replacement converters for Boolean.TYPE and Boolean.class instead
Sets the default value for Boolean conversions.
- Parameters:
newDefaultBoolean
- The default Boolean value
public void setDefaultByte(byte newDefaultByte)
Deprecated. Register replacement converters for Byte.TYPE and Byte.class instead
Sets the default value for Byte conversions.
- Parameters:
newDefaultByte
- The default Byte value
public void setDefaultCharacter(char newDefaultCharacter)
Deprecated. Register replacement converters for Character.TYPE and Character.class instead
Sets the default value for Character conversions.
- Parameters:
newDefaultCharacter
- The default Character value
public void setDefaultDouble(double newDefaultDouble)
Deprecated. Register replacement converters for Double.TYPE and Double.class instead
Sets the default value for Double conversions.
- Parameters:
newDefaultDouble
- The default Double value
public void setDefaultFloat(float newDefaultFloat)
Deprecated. Register replacement converters for Float.TYPE and Float.class instead
Sets the default value for Float conversions.
- Parameters:
newDefaultFloat
- The default Float value
public void setDefaultInteger(int newDefaultInteger)
Deprecated. Register replacement converters for Integer.TYPE and Integer.class instead
Sets the default value for Integer conversions.
- Parameters:
newDefaultInteger
- The default Integer value
public void setDefaultLong(long newDefaultLong)
Deprecated. Register replacement converters for Long.TYPE and Long.class instead
Sets the default value for Long conversions.
- Parameters:
newDefaultLong
- The default Long value
public void setDefaultShort(short newDefaultShort)
Deprecated. Register replacement converters for Short.TYPE and Short.class instead
Sets the default value for Short conversions.
- Parameters:
newDefaultShort
- The default Short value