Class NumberConverter<N extends Number>

java.lang.Object
org.apache.commons.beanutils2.converters.AbstractConverter<N>
org.apache.commons.beanutils2.converters.NumberConverter<N>
Type Parameters:
N - The default value type.
All Implemented Interfaces:
Converter<N>
Direct Known Subclasses:
BigDecimalConverter, BigIntegerConverter, ByteConverter, DoubleConverter, FloatConverter, IntegerConverter, LongConverter, ShortConverter

public abstract class NumberConverter<N extends Number> extends AbstractConverter<N>
Converter implementation that handles conversion to and from java.lang.Number objects.

This implementation handles conversion for the following Number types.

String Conversions (to and from) Link icon

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 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</code> and the locale set to <code>Locale.GERMANY

Since:
1.8.0
  • Constructor Details Link icon

    • NumberConverter Link icon

      public NumberConverter(boolean allowDecimals)
      Constructs a java.lang.Number Converter that throws a ConversionException if a error occurs.
      Parameters:
      allowDecimals - Indicates whether decimals are allowed
    • NumberConverter Link icon

      public NumberConverter(boolean allowDecimals, N defaultValue)
      Constructs a 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 Details Link icon

    • convertToString Link icon

      protected String convertToString(Object value)
      Convert an input Number object into a String.
      Overrides:
      convertToString in class AbstractConverter<N extends Number>
      Parameters:
      value - The input value to be converted
      Returns:
      the converted String value.
      Throws:
      IllegalArgumentException - if an error occurs converting to a String
    • convertToType Link icon

      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<N extends Number>
      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
    • getLocale Link icon

      public Locale getLocale()
      Gets the Locale for the Converter (or null if none specified).
      Returns:
      The locale to use for conversion
    • getPattern Link icon

      public String getPattern()
      Gets the number format pattern used to convert Numbers to/from a String (or null if none specified).

      See DecimalFormat for details of how to specify the pattern.

      Returns:
      The format pattern.
    • isAllowDecimals Link icon

      public boolean isAllowDecimals()
      Gets whether decimals are allowed in the number.
      Returns:
      Whether decimals are allowed in the number
    • setLocale Link icon

      public void setLocale(Locale locale)
      Sets the Locale for the Converter.
      Parameters:
      locale - The locale to use for conversion
    • setPattern Link icon

      public void setPattern(String pattern)
      Sets a number format pattern to use to convert Numbers to/from a String.

      See DecimalFormat for details of how to specify the pattern.

      Parameters:
      pattern - The format pattern.
    • setUseLocaleFormat Link icon

      public void setUseLocaleFormat(boolean useLocaleFormat)
      Sets whether a format should be used to convert the Number.
      Parameters:
      useLocaleFormat - true if a number format should be used.
    • toString Link icon

      public String toString()
      Provide a String representation of this number converter.
      Overrides:
      toString in class AbstractConverter<N extends Number>
      Returns:
      A String representation of this number converter