org.apache.commons.beanutils.converters
public class ArrayConverter extends AbstractConverter
Can be configured to either return a default value or throw a
ConversionException
if a conversion error occurs.
The main features of this implementation are:
String
in one of two ways: as a delimited list
or by converting the first element in the array to a String - this
is controlled by the ArrayConverter
parameter.String
to a multi-dimensional arrays, by embedding ArrayConverter
within each other - see example below.null
defaultSize
(N.B. elements
in the array will be null
)String
format
into an array of the appropriate type. By default, it uses a comma as the delimiter
but the following methods can be used to configure parsing:
setDelimiter(char)
- allows the character used as
the delimiter to be configured [default is a comma].setAllowedChars(char[])
- adds additional characters
(to the default alphabetic/numeric) to those considered to be
valid token characters.
String
to mulit-dimensional arrays by using
ArrayConverter as the element Converter
within another ArrayConverter.
For example, the following code demonstrates how to construct a Converter
to convert a delimited String
into a two dimensional integer array:
// Construct an Integer Converter IntegerConverter integerConverter = new IntegerConverter(); // Construct an array Converter for an integer array (i.e. int[]) using // an IntegerConverter as the element converter. // N.B. Uses the default comma (i.e. ",") as the delimiter between individual numbers ArrayConverter arrayConverter = new ArrayConverter(int[].class, integerConverter); // Construct a "Matrix" Converter which converts arrays of integer arrays using // the pre-ceeding ArrayConverter as the element Converter. // N.B. Uses a semi-colon (i.e. ";") as the delimiter to separate the different sets of numbers. // Also the delimiter used by the first ArrayConverter needs to be added to the // "allowed characters" for this one. ArrayConverter matrixConverter = new ArrayConverter(int[][].class, arrayConverter); matrixConverter.setDelimiter(';'); matrixConverter.setAllowedChars(new char[] {','}); // Do the Conversion String matrixString = "11,12,13 ; 21,22,23 ; 31,32,33 ; 41,42,43"; int[][] result = (int[][])matrixConverter.convert(int[][].class, matrixString);
Since: 1.8.0
Version: $Revision: 640131 $ $Date: 2008-03-23 02:10:31 +0000 (Sun, 23 Mar 2008) $
Constructor Summary | |
---|---|
ArrayConverter(Class defaultType, Converter elementConverter)
Construct an array Converter with the specified
component Converter that throws a
ConversionException if an error occurs.
| |
ArrayConverter(Class defaultType, Converter elementConverter, int defaultSize)
Construct an array Converter with the specified
component Converter that returns a default
array of the specified size (or null ) if an error occurs.
|
Method Summary | |
---|---|
protected Object | convertArray(Object value)
Returns the value unchanged.
|
protected Collection | convertToCollection(Class type, Object value)
Converts non-array values to a Collection prior
to being converted either to an array or a String.
|
protected String | convertToString(Object value)
Handles conversion to a String.
|
protected Object | convertToType(Class type, Object value)
Handles conversion to an array 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.
|
void | setAllowedChars(char[] allowedChars)
Set the allowed characters to be used for parsing a delimited String.
|
void | setDelimiter(char delimiter)
Set the delimiter to be used for parsing a delimited String.
|
void | setOnlyFirstToString(boolean onlyFirstToString)
Indicates whether converting to a String should create
a delimited list or just convert the first value.
|
String | toString()
Provide a String representation of this array converter.
|
Converter
with the specified
component Converter
that throws a
ConversionException
if an error occurs.
Parameters: defaultType The default array type this
Converter
handles elementConverter Converter used to convert
individual array elements.
Converter
with the specified
component Converter
that returns a default
array of the specified size (or null
) if an error occurs.
Parameters: defaultType The default array type this
Converter
handles elementConverter Converter used to convert
individual array elements. defaultSize Specifies the size of the default array value or if less
than zero indicates that a null
default value should be used.
Parameters: value The value to convert
Returns: The value unchanged
Parameters: type The type to convert the value to value value to be converted
Returns: Collection elements.
Parameters: value The value to be converted.
Returns: the converted String value.
Throws: Throwable if an error occurs converting to a String
Parameters: type The 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
Parameters: type Data type to which this value should be converted.
Returns: The default value for the specified type.
Converter
handles.
Returns: The default type this Converter
handles.
Parameters: allowedChars Characters which are to be considered as part of the tokens when parsing a delimited String [default is '.' and '-']
Parameters: delimiter The delimiter [default ',']
Parameters: onlyFirstToString true
converts only
the first value in the array to a String, false
converts all values in the array into a delimited list (default
is true
Returns: A String representation of this array converter