org.apache.commons.beanutils.converters

Class AbstractConverter

Implemented Interfaces:
Converter
Known Direct Subclasses:
ArrayConverter, BooleanConverter, CharacterConverter, ClassConverter, DateTimeConverter, FileConverter, NumberConverter, StringConverter, URLConverter

public abstract class AbstractConverter
extends java.lang.Object
implements Converter

Base Converter implementation that provides the structure for handling conversion to and from a specified type.

This implementation provides the basic structure for converting to/from a specified type optionally using a default value or throwing a ConversionException if a conversion error occurs.

Implementations should provide conversion to the specified type and from the specified type to a String value by implementing the following methods:

Version:
$Revision: 555824 $ $Date: 2007-07-13 01:27:15 +0100 (Fri, 13 Jul 2007) $
Since:
1.8.0

Field Summary

private static String
DEFAULT_CONFIG_MSG
Debug logging message to indicate default value configuration
private static String
PACKAGE
Current package name
private Class
defaultType
The default type this Converter handles.
private Object
defaultValue
The default value specified to our Constructor, if any.
private Log
log
Logging for this instance.
private boolean
useDefault
Should we return the default value on conversion errors?

Constructor Summary

AbstractConverter(Class defaultType)
Construct a Converter that throws a ConversionException if an error occurs.
AbstractConverter(Class defaultType, Object defaultValue)
Construct a Converter that returns a default value if an error occurs.

Method Summary

Object
convert(Class type, Object value)
Convert the input object into an output object of the specified type.
protected Object
convertArray(Object value)
Return the first element from an Array (or Collection) or the value unchanged if not an Array (or Collection).
protected String
convertToString(Object value)
Convert the input object into a String.
protected abstract Object
convertToType(Class type, Object value)
Convert the input object into an output object of the specified type.
protected Object
getDefault(Class type)
Return the default value for conversions to the specified type.
protected Class
getDefaultType()
Return the default type this Converter handles.
protected Object
handleError(Class type, Object value, Throwable cause)
Handle Conversion Errors.
protected Object
handleMissing(Class type)
Handle missing values.
boolean
isUseDefault()
Indicates whether a default value will be returned or exception thrown in the event of a conversion error.
(package private) Log
log()
Accessor method for Log instance.
(package private) Class
primitive(Class type)
Change primitve Class types to the associated wrapper class.
protected void
setDefaultValue(Object defaultValue)
Set the default value, converting as required.
String
toString()
Provide a String representation of this converter.
(package private) String
toString(Class type)
Provide a String representation of a java.lang.Class.

Field Details

DEFAULT_CONFIG_MSG

private static final String DEFAULT_CONFIG_MSG
Debug logging message to indicate default value configuration

PACKAGE

private static final String PACKAGE
Current package name

defaultType

private Class defaultType
The default type this Converter handles.

defaultValue

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

log

private Log log
Logging for this instance.

useDefault

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

Constructor Details

AbstractConverter

public AbstractConverter(Class defaultType)
Construct a Converter that throws a ConversionException if an error occurs.
Parameters:
defaultType - The default type this Converter handles

AbstractConverter

public AbstractConverter(Class defaultType,
                         Object defaultValue)
Construct a Converter that returns a default value if an error occurs.
Parameters:
defaultType - The default type this Converter handles
defaultValue - The default value to be returned if the value to be converted is missing or an error occurs converting the value.

Method Details

convert

public Object convert(Class type,
                      Object value)
Convert the input object into an output object of the specified type.
Specified by:
convert in interface Converter
Parameters:
type - Data type to which this value should be converted
value - The input value to be converted
Returns:
The converted value.

convertArray

protected Object convertArray(Object value)
Return the first element from an Array (or Collection) or the value unchanged if not an Array (or Collection). N.B. This needs to be overriden for array/Collection converters.
Parameters:
value - The value to convert
Returns:
The first element in an Array (or Collection) or the value unchanged if not an Array (or Collection)

convertToString

protected String convertToString(Object value)
            throws Throwable
Convert the input object into a String.

N.B.This implementation simply uses the value's toString() method and should be overriden if a more sophisticated mechanism for conversion to a String is required.

Parameters:
value - The input value to be converted.
Returns:
the converted String value.

convertToType

protected abstract Object convertToType(Class type,
                                        Object value)
            throws Throwable
Convert the input object into an output object of the specified type.

Typical implementations will provide a minimum of String --> type conversion.

Parameters:
type - Data type to which this value should be converted.
value - The input value to be converted.
Returns:
The converted value.

getDefault

protected Object getDefault(Class type)
Return the default value for conversions to the specified type.
Parameters:
type - Data type to which this value should be converted.
Returns:
The default value for the specified type.

getDefaultType

protected Class getDefaultType()
Return the default type this Converter handles.
Returns:
The default type this Converter handles.

handleError

protected Object handleError(Class type,
                             Object value,
                             Throwable cause)
Handle Conversion Errors.

If a default value has been specified then it is returned otherwise a ConversionException is thrown.

Parameters:
type - Data type to which this value should be converted.
value - The input value to be converted
cause - The exception thrown by the convert method
Returns:
The default value.

handleMissing

protected Object handleMissing(Class type)
Handle missing values.

If a default value has been specified then it is returned otherwise a ConversionException is thrown.

Parameters:
type - Data type to which this value should be converted.
Returns:
The default value.

isUseDefault

public boolean isUseDefault()
Indicates whether a default value will be returned or exception thrown in the event of a conversion error.

log

(package private)  Log log()
Accessor method for Log instance.

The Log instance variable is transient and accessing it through this method ensures it is re-initialized when this instance is de-serialized.

Returns:
The Log instance.

primitive

(package private)  Class primitive(Class type)
Change primitve Class types to the associated wrapper class.
Parameters:
type - The class type to check.
Returns:
The converted type.

setDefaultValue

protected void setDefaultValue(Object defaultValue)
Set the default value, converting as required.

If the default value is different from the type the Converter handles, it will be converted to the handled type.

Parameters:
defaultValue - The default value to be returned if the value to be converted is missing or an error occurs converting the value.

toString

public String toString()
Provide a String representation of this converter.
Returns:
A String representation of this converter

toString

(package private)  String toString(Class type)
Provide a String representation of a java.lang.Class.
Parameters:
type - The java.lang.Class.
Returns:
The String representation.

Copyright (c) 2001-2007 - Apache Software Foundation