Class FormattedStringToNumber

java.lang.Object
org.springframework.binding.convert.converters.StringToObject
org.springframework.binding.convert.converters.FormattedStringToNumber
All Implemented Interfaces:
Converter, TwoWayConverter

public class FormattedStringToNumber extends StringToObject
A converter for common number types such as integers and big decimals. Allows the configuration of an explicit number pattern and locale. Works with a general purpose DecimalFormat instance returned by calling NumberFormat.getInstance(Locale) by default. This instance supports parsing any number type generally and will not perform special type-specific logic such as rounding or truncation. Subclasses may override. Will coerse parsed Numbers to the desired numberClass as necessary. If type-coersion results in an overflow condition; for example, what can occur with a Long being coersed to a Short, an exception will be thrown.
Author:
Keith Donald
See Also:
  • Constructor Details

    • FormattedStringToNumber

      public FormattedStringToNumber()
    • FormattedStringToNumber

      public FormattedStringToNumber(Class<? extends Number> numberClass)
  • Method Details

    • setNumberFormatFactory

      public void setNumberFormatFactory(NumberFormatFactory numberFormatFactory)
      Sets the factory that returns the NumberFormat instance that will format numbers handled by this converter.
      Parameters:
      numberFormatFactory - the number format factory
    • getLenient

      public boolean getLenient()
      If this Converter is "lenient" in parsing number strings. A lenient converter does not require that all characters in the String be parsed successfully. Default is false.
      Returns:
      the lenient flag
    • setLenient

      public void setLenient(boolean lenient)
      Sets if this Converter should parse leniently.
      Parameters:
      lenient - the lenient flag
    • toObject

      protected Object toObject(String string, Class<?> targetClass)
      Specified by:
      toObject in class StringToObject
    • toString

      protected String toString(Object object)
      Specified by:
      toString in class StringToObject
    • convertToNumberClass

      protected Number convertToNumberClass(Number number, Class<? extends Number> numberClass) throws IllegalArgumentException
      Coerces the Number object returned by NumberFormat to the desired numberClass. Subclasses may override.
      Parameters:
      number - the parsed number
      Returns:
      the coersed number
      Throws:
      IllegalArgumentException - when an overflow condition occurs during coersion