org.apache.commons.beanutils.converters
Class NumberConverter
- Converter
public class NumberConverter
Converter
implementaion that handles conversion
to and from
java.lang.Number objects.
This implementation handles conversion for the following
java.lang.Number
types.
java.lang.Byte
java.lang.Short
java.lang.Integer
java.lang.Long
java.lang.Float
java.lang.Double
java.math.BigDecimal
java.math.BigInteger
String Conversions (to and from)
This class provides a number of ways in which number
conversions to/from Strings can be achieved:
- Using the default format for the default Locale, configure using:
Using the default format for a specified Locale, configure using:
Using a specified pattern for the default Locale, configure using:
Using a specified pattern for a specified Locale, configure using:
setPattern(String)
setLocale(Locale)
If none of the above are configured the
toNumber(String)
method is used to convert
from String to Number and the Number's
toString()
method used to convert from
Number to String.
N.B.Patterns can only be specified used the
standard
pattern characters and NOT in
localized form (see
java.text.SimpleDateFormat
).
For example to cater for number styles used in Germany such as
0.000,00
the pattern
is specified in the normal form
0,000.00
and the locale set to
Locale.GERMANY
.
$Revision: 555845 $ $Date: 2007-07-13 03:52:05 +0100 (Fri, 13 Jul 2007) $
NumberConverter(Class defaultType, boolean allowDecimals) - Construct a java.lang.Number Converter
that throws a
ConversionException if a error occurs.
|
NumberConverter(Class defaultType, boolean allowDecimals, Object defaultValue) - Construct a
java.lang.Number Converter that returns
a default value if an error occurs.
|
protected String | convertToString(Object value) - Convert an input Number object into a String.
|
protected Object | convertToType(Class targetType, Object value) - Convert the input object into a Number object of the
specified type.
|
private NumberFormat | getFormat() - Return a NumberFormat to use for Conversion.
|
Locale | getLocale() - Return the Locale for the Converter
(or
null if none specified).
|
String | getPattern() - Return the number format pattern used to convert
Numbers to/from a
java.lang.String
(or null if none specified).
|
boolean | isAllowDecimals() - Return whether decimals are allowed in the number.
|
private Number | parse(Class sourceType, Class targetType, String value, NumberFormat format) - Convert a String into a
Number object.
|
void | setLocale(Locale locale) - Set the Locale for the Converter.
|
void | setPattern(String pattern) - Set a number format pattern to use to convert
Numbers to/from a
java.lang.String .
|
void | setUseLocaleFormat(boolean useLocaleFormat) - Set whether a format should be used to convert
the Number.
|
private Number | toNumber(Class sourceType, Class targetType, Number value) - Convert any Number object to the specified type for this
Converter.
|
private Number | toNumber(Class sourceType, Class targetType, String value) - Default String to Number conversion.
|
String | toString() - Provide a String representation of this number converter.
|
convert , convertArray , convertToString , convertToType , getDefault , getDefaultType , handleError , handleMissing , isUseDefault , log , primitive , setDefaultValue , toString , toString |
ONE
private static final Integer ONE
ZERO
private static final Integer ZERO
allowDecimals
private boolean allowDecimals
locale
private Locale locale
pattern
private String pattern
useLocaleFormat
private boolean useLocaleFormat
NumberConverter
public NumberConverter(Class defaultType,
boolean allowDecimals)
Construct a java.lang.Number Converter
that throws a ConversionException
if a error occurs.
defaultType
- The default type this Converter
handlesallowDecimals
- Indicates whether decimals are allowed
NumberConverter
public NumberConverter(Class defaultType,
boolean allowDecimals,
Object defaultValue)
Construct a java.lang.Number
Converter that returns
a default value if an error occurs.
defaultType
- The default type this Converter
handlesallowDecimals
- Indicates whether decimals are alloweddefaultValue
- The default value to be returned
convertToString
protected String convertToString(Object value)
throws Throwable
Convert an input Number object into a String.
- convertToString in interface AbstractConverter
value
- The input value to be converted
- the converted String value.
convertToType
protected Object convertToType(Class targetType,
Object value)
throws Throwable
Convert the input object into a Number object of the
specified type.
- convertToType in interface AbstractConverter
targetType
- Data type to which this value should be converted.value
- The input value to be converted.
getFormat
private NumberFormat getFormat()
Return a NumberFormat to use for Conversion.
getLocale
public Locale getLocale()
Return the Locale for the Converter
(or null
if none specified).
- The locale to use for conversion
getPattern
public String getPattern()
Return the number format pattern used to convert
Numbers to/from a
java.lang.String
(or
null
if none specified).
See
java.text.SimpleDateFormat
for details
of how to specify the pattern.
isAllowDecimals
public boolean isAllowDecimals()
Return whether decimals are allowed in the number.
- Whether decimals are allowed in the number
parse
private Number parse(Class sourceType,
Class targetType,
String value,
NumberFormat format)
Convert a String into a Number
object.
sourceType
- TODOtargetType
- The type to convert the value tovalue
- The String date value.format
- The NumberFormat to parse the String value.
- The converted Number object.
setLocale
public void setLocale(Locale locale)
Set the Locale for the Converter.
locale
- The locale to use for conversion
setPattern
public void setPattern(String pattern)
Set a number format pattern to use to convert
Numbers to/from a
java.lang.String
.
See
java.text.SimpleDateFormat
for details
of how to specify the pattern.
pattern
- The format pattern.
setUseLocaleFormat
public void setUseLocaleFormat(boolean useLocaleFormat)
Set whether a format should be used to convert
the Number.
useLocaleFormat
- true
if a number format
should be used.
toNumber
private Number toNumber(Class sourceType,
Class targetType,
Number value)
Convert any Number object to the specified type for this
Converter.
This method handles conversion to the following types:
java.lang.Byte
java.lang.Short
java.lang.Integer
java.lang.Long
java.lang.Float
java.lang.Double
java.math.BigDecimal
java.math.BigInteger
sourceType
- The type being converted fromtargetType
- The Number type to convert tovalue
- The Number to convert.
toNumber
private Number toNumber(Class sourceType,
Class targetType,
String value)
Default String to Number conversion.
This method handles conversion from a String to the following types:
java.lang.Byte
java.lang.Short
java.lang.Integer
java.lang.Long
java.lang.Float
java.lang.Double
java.math.BigDecimal
java.math.BigInteger
sourceType
- The type being converted fromtargetType
- The Number type to convert tovalue
- The String value to convert.
- The converted Number value.
toString
public String toString()
Provide a String representation of this number converter.
- toString in interface AbstractConverter
- A String representation of this number converter
Copyright (c) 2001-2007 - Apache Software Foundation