org.apache.commons.beanutils.converters
Class NumberConverter

java.lang.Object
  extended by org.apache.commons.beanutils.converters.AbstractConverter
      extended by org.apache.commons.beanutils.converters.NumberConverter
All Implemented Interfaces:
Converter
Direct Known Subclasses:
BigDecimalConverter, BigIntegerConverter, ByteConverter, DoubleConverter, FloatConverter, IntegerConverter, LongConverter, ShortConverter

public abstract class NumberConverter
extends AbstractConverter

Converter implementaion that handles conversion to and from java.lang.Number objects.

This implementation handles conversion for the following java.lang.Number types.

String Conversions (to and from)

This class provides a number of ways in which number conversions to/from Strings can be achieved:

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.

Since:
1.8.0
Version:
$Revision: 745081 $ $Date: 2009-02-17 14:05:20 +0000 (Tue, 17 Feb 2009) $

Field Summary
private  boolean allowDecimals
           
private  java.util.Locale locale
           
private static java.lang.Integer ONE
           
private  java.lang.String pattern
           
private  boolean useLocaleFormat
           
private static java.lang.Integer ZERO
           
 
Constructor Summary
NumberConverter(boolean allowDecimals)
          Construct a java.lang.Number Converter that throws a ConversionException if a error occurs.
NumberConverter(boolean allowDecimals, java.lang.Object defaultValue)
          Construct a java.lang.Number Converter that returns a default value if an error occurs.
 
Method Summary
protected  java.lang.String convertToString(java.lang.Object value)
          Convert an input Number object into a String.
protected  java.lang.Object convertToType(java.lang.Class targetType, java.lang.Object value)
          Convert the input object into a Number object of the specified type.
private  java.text.NumberFormat getFormat()
          Return a NumberFormat to use for Conversion.
 java.util.Locale getLocale()
          Return the Locale for the Converter (or null if none specified).
 java.lang.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  java.lang.Number parse(java.lang.Class sourceType, java.lang.Class targetType, java.lang.String value, java.text.NumberFormat format)
          Convert a String into a Number object.
 void setLocale(java.util.Locale locale)
          Set the Locale for the Converter.
 void setPattern(java.lang.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  java.lang.Number toNumber(java.lang.Class sourceType, java.lang.Class targetType, java.lang.Number value)
          Convert any Number object to the specified type for this Converter.
private  java.lang.Number toNumber(java.lang.Class sourceType, java.lang.Class targetType, java.lang.String value)
          Default String to Number conversion.
 java.lang.String toString()
          Provide a String representation of this number converter.
 
Methods inherited from class org.apache.commons.beanutils.converters.AbstractConverter
convert, convertArray, getDefault, getDefaultType, handleError, handleMissing, isUseDefault, log, primitive, setDefaultValue, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ZERO

private static final java.lang.Integer ZERO

ONE

private static final java.lang.Integer ONE

pattern

private java.lang.String pattern

allowDecimals

private boolean allowDecimals

useLocaleFormat

private boolean useLocaleFormat

locale

private java.util.Locale locale
Constructor Detail

NumberConverter

public NumberConverter(boolean allowDecimals)
Construct a java.lang.Number Converter that throws a ConversionException if a error occurs.

Parameters:
allowDecimals - Indicates whether decimals are allowed

NumberConverter

public NumberConverter(boolean allowDecimals,
                       java.lang.Object defaultValue)
Construct a java.lang.Number Converter that returns a default value if an error occurs.

Parameters:
allowDecimals - Indicates whether decimals are allowed
defaultValue - The default value to be returned
Method Detail

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

public java.lang.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.

Returns:
The format pattern.

setPattern

public void setPattern(java.lang.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.

Parameters:
pattern - The format pattern.

getLocale

public java.util.Locale getLocale()
Return the Locale for the Converter (or null if none specified).

Returns:
The locale to use for conversion

setLocale

public void setLocale(java.util.Locale locale)
Set the Locale for the Converter.

Parameters:
locale - The locale to use for conversion

convertToString

protected java.lang.String convertToString(java.lang.Object value)
                                    throws java.lang.Throwable
Convert an input Number object into a String.

Overrides:
convertToString in class AbstractConverter
Parameters:
value - The input value to be converted
Returns:
the converted String value.
Throws:
java.lang.Throwable - if an error occurs converting to a String

convertToType

protected java.lang.Object convertToType(java.lang.Class targetType,
                                         java.lang.Object value)
                                  throws java.lang.Throwable
Convert the input object into a Number object of the specified type.

Specified by:
convertToType in class AbstractConverter
Parameters:
targetType - Data type to which this value should be converted.
value - The input value to be converted.
Returns:
The converted value.
Throws:
java.lang.Throwable - if an error occurs converting to the specified type

toNumber

private java.lang.Number toNumber(java.lang.Class sourceType,
                                  java.lang.Class targetType,
                                  java.lang.Number value)
Convert any Number object to the specified type for this Converter.

This method handles conversion to the following types:

Parameters:
sourceType - The type being converted from
targetType - The Number type to convert to
value - The Number to convert.
Returns:
The converted value.

toNumber

private java.lang.Number toNumber(java.lang.Class sourceType,
                                  java.lang.Class targetType,
                                  java.lang.String value)
Default String to Number conversion.

This method handles conversion from a String to the following types:

Parameters:
sourceType - The type being converted from
targetType - The Number type to convert to
value - The String value to convert.
Returns:
The converted Number value.

toString

public java.lang.String toString()
Provide a String representation of this number converter.

Overrides:
toString in class AbstractConverter
Returns:
A String representation of this number converter

getFormat

private java.text.NumberFormat getFormat()
Return a NumberFormat to use for Conversion.

Returns:
The NumberFormat.

parse

private java.lang.Number parse(java.lang.Class sourceType,
                               java.lang.Class targetType,
                               java.lang.String value,
                               java.text.NumberFormat format)
Convert a String into a Number object.

Parameters:
sourceType - TODO
targetType - The type to convert the value to
value - 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.


Copyright (c) 2000-2008 - Apache Software Foundation