Class NumberConverter
java.lang.Object
org.apache.commons.beanutils.converters.AbstractConverter
org.apache.commons.beanutils.converters.NumberConverter
- All Implemented Interfaces:
Converter
- Direct Known Subclasses:
BigDecimalConverter
,BigIntegerConverter
,ByteConverter
,DoubleConverter
,FloatConverter
,IntegerConverter
,LongConverter
,ShortConverter
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:
setUseLocaleFormat(true)
- Using the default format for a specified Locale, configure using:
setLocale(Locale)
- Using a specified pattern for the default Locale, configure using:
setPattern(String)
- 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'stoString()
method used to convert from Number to String.
N.B.Patterns can only be specified using the standard
pattern characters and NOT in localized form (see java.text.DecimalFormat
).
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
.
- Since:
- 1.8.0
- Version:
- $Id$
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionNumberConverter
(boolean allowDecimals) Construct a java.lang.Number Converter that throws aConversionException
if a error occurs.NumberConverter
(boolean allowDecimals, Object defaultValue) Construct ajava.lang.Number
Converter that returns a default value if an error occurs. -
Method Summary
Modifier and TypeMethodDescriptionprotected String
convertToString
(Object value) Convert an input Number object into a String.protected <T> T
convertToType
(Class<T> targetType, Object value) Convert the input object into a Number object of the specified type.private NumberFormat
Return a NumberFormat to use for Conversion.Return the Locale for the Converter (ornull
if none specified).Return the number format pattern used to convert Numbers to/from ajava.lang.String
(ornull
if none specified).boolean
Return whether decimals are allowed in the number.private Number
parse
(Class<?> sourceType, Class<?> targetType, String value, NumberFormat format) Convert a String into aNumber
object.void
Set the Locale for the Converter.void
setPattern
(String pattern) Set a number format pattern to use to convert Numbers to/from ajava.lang.String
.void
setUseLocaleFormat
(boolean useLocaleFormat) Set whether a format should be used to convert the Number.private Number
Default String to Number conversion.private <T> T
Convert any Number object to the specified type for this Converter.toString()
Provide a String representation of this number converter.Methods inherited from class org.apache.commons.beanutils.converters.AbstractConverter
conversionException, convert, convertArray, getDefault, getDefaultType, handleError, handleMissing, isUseDefault, log, setDefaultValue, toString
-
Field Details
-
ZERO
-
ONE
-
pattern
-
allowDecimals
private final boolean allowDecimals -
useLocaleFormat
private boolean useLocaleFormat -
locale
-
-
Constructor Details
-
NumberConverter
public NumberConverter(boolean allowDecimals) Construct a java.lang.Number Converter that throws aConversionException
if a error occurs.- Parameters:
allowDecimals
- Indicates whether decimals are allowed
-
NumberConverter
Construct ajava.lang.Number
Converter that returns a default value if an error occurs.- Parameters:
allowDecimals
- Indicates whether decimals are alloweddefaultValue
- The default value to be returned
-
-
Method Details
-
isAllowDecimals
public boolean isAllowDecimals()Return whether decimals are allowed in the number.- Returns:
- Whether decimals are allowed in the number
-
setUseLocaleFormat
public void setUseLocaleFormat(boolean useLocaleFormat) Set whether a format should be used to convert the Number.- Parameters:
useLocaleFormat
-true
if a number format should be used.
-
getPattern
Return the number format pattern used to convert Numbers to/from ajava.lang.String
(ornull
if none specified).See
java.text.DecimalFormat
for details of how to specify the pattern.- Returns:
- The format pattern.
-
setPattern
Set a number format pattern to use to convert Numbers to/from ajava.lang.String
.See
java.text.DecimalFormat
for details of how to specify the pattern.- Parameters:
pattern
- The format pattern.
-
getLocale
Return the Locale for the Converter (ornull
if none specified).- Returns:
- The locale to use for conversion
-
setLocale
Set the Locale for the Converter.- Parameters:
locale
- The locale to use for conversion
-
convertToString
Convert an input Number object into a String.- Overrides:
convertToString
in classAbstractConverter
- 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 a Number object of the specified type.- Specified by:
convertToType
in classAbstractConverter
- Type Parameters:
T
- Target type of the conversion.- Parameters:
targetType
- 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
-
toNumber
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
- Parameters:
sourceType
- The type being converted fromtargetType
- The Number type to convert tovalue
- The Number to convert.- Returns:
- The converted value.
-
toNumber
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
- Parameters:
sourceType
- The type being converted fromtargetType
- The Number type to convert tovalue
- The String value to convert.- Returns:
- The converted Number value.
-
toString
Provide a String representation of this number converter.- Overrides:
toString
in classAbstractConverter
- Returns:
- A String representation of this number converter
-
getFormat
Return a NumberFormat to use for Conversion.- Returns:
- The NumberFormat.
-
parse
Convert a String into aNumber
object.- Parameters:
sourceType
- the source type of the conversiontargetType
- The type to convert the value tovalue
- The String date value.format
- The NumberFormat to parse the String value.- Returns:
- The converted Number object.
- Throws:
ConversionException
- if the String cannot be converted.
-