Class AbstractConverter
- All Implemented Interfaces:
Converter
- Direct Known Subclasses:
ArrayConverter,BooleanConverter,CharacterConverter,ClassConverter,DateTimeConverter,FileConverter,NumberConverter,StringConverter,URLConverter
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 objectstoString()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.
- Since:
- 1.8.0
-
Constructor Summary
ConstructorsConstructorDescriptionConstruct a Converter that throws aConversionExceptionif an error occurs.AbstractConverter(Object defaultValue) Construct a Converter that returns a default value if an error occurs. -
Method Summary
Modifier and TypeMethodDescriptionprotected ConversionExceptionconversionException(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> TConvert the input object into an output object of the specified type.protected ObjectconvertArray(Object value) Return the first element from an Array (or Collection) or the value unchanged if not an Array (or Collection).protected StringconvertToString(Object value) Convert the input object into a String.protected abstract <T> TconvertToType(Class<T> type, Object value) Convert the input object into an output object of the specified type.protected ObjectgetDefault(Class<?> type) Return the default value for conversions to the specified type.protected abstract Class<?> Return the default type thisConverterhandles.protected <T> ThandleError(Class<T> type, Object value, Throwable cause) Handle Conversion Errors.protected <T> ThandleMissing(Class<T> type) Handle missing values.booleanIndicates whether a default value will be returned or exception thrown in the event of a conversion error.protected voidsetDefaultValue(Object defaultValue) Set the default value, converting as required.toString()Provide a String representation of this converter.
-
Constructor Details
-
AbstractConverter
public AbstractConverter()Construct a Converter that throws aConversionExceptionif an error occurs. -
AbstractConverter
Construct a Converter that returns a default value if an error occurs.- Parameters:
defaultValue- The default value to be returned if the value to be converted is missing or an error occurs converting the value.
-
-
Method Details
-
conversionException
Generates a standard conversion exception with a message indicating that the passed in value cannot be converted to the desired target type.- Parameters:
type- the target typevalue- the value to be converted- Returns:
- a
ConversionExceptionwith a standard message - Since:
- 1.9
-
convert
Convert the input object into an output object of the specified type.- Specified by:
convertin interfaceConverter- Type Parameters:
T- the target type of the conversion- Parameters:
type- Data type to which this value should be convertedvalue- The input value to be converted- Returns:
- The converted value.
- Throws:
ConversionException- if conversion cannot be performed successfully and no default is specified.
-
convertArray
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
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.
- Throws:
Throwable- if an error occurs converting to a String
-
convertToType
Convert the input object into an output object of the specified type.Typical implementations will provide a minimum of
String to typeconversion.- Type Parameters:
T- Target type of the conversion.- Parameters:
type- Data type to which this value should be converted.value- The input value to be converted.- Returns:
- The converted value.
- Throws:
Throwable- if an error occurs converting to the specified type
-
getDefault
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
Return the default type thisConverterhandles.- Returns:
- The default type this
Converterhandles.
-
handleError
Handle Conversion Errors.If a default value has been specified then it is returned otherwise a ConversionException is thrown.
- Type Parameters:
T- Target type of the conversion.- Parameters:
type- Data type to which this value should be converted.value- The input value to be convertedcause- The exception thrown by theconvertmethod- Returns:
- The default value.
- Throws:
ConversionException- if no default value has been specified for thisConverter.
-
handleMissing
Handle missing values.If a default value has been specified, then it is returned (after a cast to the desired target class); otherwise a ConversionException is thrown.
- Type Parameters:
T- the desired target type- Parameters:
type- Data type to which this value should be converted.- Returns:
- The default value.
- Throws:
ConversionException- if no default value has been specified for thisConverter.
-
isUseDefault
Indicates whether a default value will be returned or exception thrown in the event of a conversion error.- Returns:
trueif a default value will be returned for conversion errors orfalseif aConversionExceptionwill be thrown.
-
setDefaultValue
Set the default value, converting as required.If the default value is different from the type the
Converterhandles, 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.- Throws:
ConversionException- if an error occurs converting the default value
-
toString
Provide a String representation of this converter.
-