Package org.apache.commons.beanutils.converters

## 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`

    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.

- `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's `toString()` 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$

### Constructor Summary

Constructors
`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

All Methods Instance Methods Concrete Methods
`protected java.lang.String` `convertToString​(java.lang.Object value)` Convert an input Number object into a String.
`protected <T> T` `convertToType​(java.lang.Class<T> targetType, java.lang.Object value)` Convert the input object into a Number object of the specified type.
`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.
`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.
`java.lang.String` `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, setDefaultValue`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### 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.DecimalFormat` 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.DecimalFormat` 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 <T> T convertToType​(java.lang.Class<T> 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`
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:
  `java.lang.Throwable` - if an error occurs converting to the specified type

#### 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