public abstract class AbstractConverter extends Object implements Converter
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:
convertToString(value) - convert to a String
(default implementation uses the objects toString()
method).convertToType(Class, value) - convert
to the specified type
The default value has to be compliant to the default type of this
converter - which is enforced by the generic type parameter. If a
conversion is not possible and a default value is set, the converter
tries to transform the default value to the requested target type.
If this fails, a ConversionException if thrown.
| Constructor and Description |
|---|
AbstractConverter()
Construct a Converter that throws a
ConversionException if an error occurs. |
AbstractConverter(Object defaultValue)
Construct a Converter that returns a default
value if an error occurs.
|
| Modifier and Type | Method and Description |
|---|---|
protected ConversionException |
conversionException(Class<?> type,
Object value)
Generates a standard conversion exception with a message indicating that
the passed in value cannot be converted to the desired target type.
|
<T> T |
convert(Class<T> 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 <T> T |
convertToType(Class<T> 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 abstract Class<?> |
getDefaultType()
Return the default type this
Converter handles. |
protected <T> T |
handleError(Class<T> type,
Object value,
Throwable cause)
Handle Conversion Errors.
|
protected <T> T |
handleMissing(Class<T> type)
Handle missing values.
|
boolean |
isUseDefault()
Indicates whether a default value will be returned or exception
thrown in the event of a conversion error.
|
protected void |
setDefaultValue(Object defaultValue)
Set the default value, converting as required.
|
String |
toString()
Provide a String representation of this converter.
|
public AbstractConverter()
ConversionException if an error occurs.public AbstractConverter(Object defaultValue)
defaultValue - The default value to be returned
if the value to be converted is missing or an error
occurs converting the value.protected ConversionException conversionException(Class<?> type, Object value)
type - the target typevalue - the value to be convertedConversionException with a standard messagepublic <T> T convert(Class<T> type, Object value)
convert in interface ConverterT - the target type of the conversiontype - Data type to which this value should be convertedvalue - The input value to be convertedConversionException - if conversion cannot be performed
successfully and no default is specified.protected Object convertArray(Object value)
value - The value to convertprotected String convertToString(Object value) throws Throwable
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.
value - The input value to be converted.Throwable - if an error occurs converting to a Stringprotected abstract <T> T convertToType(Class<T> type, Object value) throws Throwable
Typical implementations will provide a minimum of
String to type conversion.
T - Target type of the conversion.type - Data type to which this value should be converted.value - The input value to be converted.Throwable - if an error occurs converting to the specified typeprotected Object getDefault(Class<?> type)
type - Data type to which this value should be converted.protected abstract Class<?> getDefaultType()
Converter handles.Converter handles.protected <T> T handleError(Class<T> type, Object value, Throwable cause)
If a default value has been specified then it is returned otherwise a ConversionException is thrown.
T - Target type of the conversion.type - Data type to which this value should be converted.value - The input value to be convertedcause - The exception thrown by the convert methodConversionException - if no default value has been
specified for this Converter.protected <T> T handleMissing(Class<T> type)
If a default value has been specified, then it is returned (after a cast to the desired target class); otherwise a ConversionException is thrown.
T - the desired target typetype - Data type to which this value should be converted.ConversionException - if no default value has been
specified for this Converter.public boolean isUseDefault()
true if a default value will be returned for
conversion errors or false if a ConversionException
will be thrown.protected void setDefaultValue(Object defaultValue)
If the default value is different from the type the
Converter handles, it will be converted
to the handled type.
defaultValue - The default value to be returned
if the value to be converted is missing or an error
occurs converting the value.ConversionException - if an error occurs converting
the default valueCopyright © 2000–2025 The Apache Software Foundation. All rights reserved.