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
    Constructor and Description
    `NumberConverter(boolean allowDecimals)` Construct a java.lang.Number Converter that throws a `ConversionException` if a error occurs.
    `NumberConverter(boolean allowDecimals, 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
    Modifier and Type | Method and Description
    --- | ---
    `protected 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.
    `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.
    `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.
    `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,
                                 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 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(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 Locale getLocale()

      Return the Locale for the Converter (or `null` if none specified).
      Returns:
        The locale to use for conversion

    - #### setLocale

          public void setLocale(Locale locale)

      Set the Locale for the Converter.
      Parameters:
        `locale` - The locale to use for conversion

    - #### convertToString

          protected String convertToString(Object value)
                                    throws 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:
        `Throwable` - if an error occurs converting to a String

    - #### convertToType

          protected <T> T convertToType(Class<T> targetType,
                                        Object value)
                                 throws 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:
        `Throwable` - if an error occurs converting to the specified type

    - #### toString

          public String toString()

      Provide a String representation of this number converter.
      Overrides:
        `toString` in class `AbstractConverter`
      Returns:
        A String representation of this number converter

Copyright © 2000–2019 The Apache Software Foundation. All rights reserved.