## org.springframework.beans.propertyeditors
Class CustomNumberEditor

    java.lang.Object
      java.beans.PropertyEditorSupport
          org.springframework.beans.propertyeditors.CustomNumberEditor

All Implemented Interfaces:
  PropertyEditor

    public class CustomNumberEditor

extends PropertyEditorSupport

Property editor for any Number subclass such as Short, Integer, Long, BigInteger, Float, Double, BigDecimal. Can use a given NumberFormat for (locale-specific) parsing and rendering, or alternatively the default `decode` / `valueOf` / `toString` methods.

This is not meant to be used as system PropertyEditor but rather as locale-specific number editor within custom controller code, parsing user-entered number strings into Number properties of beans and rendering them in the UI form.

In web MVC code, this editor will typically be registered with `binder.registerCustomEditor` calls in a custom `initBinder` method.

Since:
  06.06.2003
Author:
  Juergen Hoeller
See Also:
  `Number`, `NumberFormat`, `DataBinder.registerCustomEditor(java.lang.Class, java.beans.PropertyEditor)`, `BaseCommandController.initBinder(javax.servlet.http.HttpServletRequest, org.springframework.web.bind.ServletRequestDataBinder)`

Constructor Summary
`CustomNumberEditor(Class numberClass, boolean allowEmpty)` Create a new CustomNumberEditor instance, using the default `valueOf` methods for parsing and `toString` methods for rendering.
`CustomNumberEditor(Class numberClass, NumberFormat numberFormat, boolean allowEmpty)` Create a new CustomNumberEditor instance, using the given NumberFormat for parsing and rendering.

Method Summary
`String` `getAsText()` Format the Number as String, using the specified NumberFormat.
`void` `setAsText(String text)` Parse the Number from the given text, using the specified NumberFormat.
`void` `setValue(Object value)` Coerce a Number value into the required target class, if necessary.

Methods inherited from class java.beans.PropertyEditorSupport
`addPropertyChangeListener, firePropertyChange, getCustomEditor, getJavaInitializationString, getSource, getTags, getValue, isPaintable, paintValue, removePropertyChangeListener, setSource, supportsCustomEditor`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### CustomNumberEditor

    public CustomNumberEditor(Class numberClass,
                              boolean allowEmpty)
                       throws IllegalArgumentException

  Create a new CustomNumberEditor instance, using the default `valueOf` methods for parsing and `toString` methods for rendering.

  The "allowEmpty" parameter states if an empty String should be allowed for parsing, i.e. get interpreted as `null` value. Else, an IllegalArgumentException gets thrown in that case.

  Parameters:
    `numberClass` - Number subclass to generate
    `allowEmpty` - if empty strings should be allowed
  Throws:
    `IllegalArgumentException` - if an invalid numberClass has been specified
  See Also:
    `NumberUtils.parseNumber(String, Class)`, `Integer.valueOf(java.lang.String, int)`, `Integer.toString(int, int)`

### CustomNumberEditor

    public CustomNumberEditor(Class numberClass,
                              NumberFormat numberFormat,
                              boolean allowEmpty)
                       throws IllegalArgumentException

  Create a new CustomNumberEditor instance, using the given NumberFormat for parsing and rendering.

  The allowEmpty parameter states if an empty String should be allowed for parsing, i.e. get interpreted as `null` value. Else, an IllegalArgumentException gets thrown in that case.

  Parameters:
    `numberClass` - Number subclass to generate
    `numberFormat` - NumberFormat to use for parsing and rendering
    `allowEmpty` - if empty strings should be allowed
  Throws:
    `IllegalArgumentException` - if an invalid numberClass has been specified
  See Also:
    `NumberUtils.parseNumber(String, Class, java.text.NumberFormat)`, `NumberFormat.parse(java.lang.String, java.text.ParsePosition)`, `NumberFormat.format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition)`

Method Detail

### setAsText

    public void setAsText(String text)
                   throws IllegalArgumentException

  Parse the Number from the given text, using the specified NumberFormat.

  Specified by:
    `setAsText` in interface `PropertyEditor`
  Overrides:
    `setAsText` in class `PropertyEditorSupport`
  Throws:
    `IllegalArgumentException`

### setValue

    public void setValue(Object value)

  Coerce a Number value into the required target class, if necessary.

  Specified by:
    `setValue` in interface `PropertyEditor`
  Overrides:
    `setValue` in class `PropertyEditorSupport`

### getAsText

    public String getAsText()

  Format the Number as String, using the specified NumberFormat.

  Specified by:
    `getAsText` in interface `PropertyEditor`
  Overrides:
    `getAsText` in class `PropertyEditorSupport`