public class CustomNumberEditor
extends java.beans.PropertyEditorSupport
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.
Number
,
NumberFormat
,
DataBinder.registerCustomEditor(java.lang.Class<?>, java.beans.PropertyEditor)
Modifier and Type | Field and Description |
---|---|
private boolean |
allowEmpty |
private java.lang.Class<? extends java.lang.Number> |
numberClass |
private java.text.NumberFormat |
numberFormat |
Constructor and Description |
---|
CustomNumberEditor(java.lang.Class<? extends java.lang.Number> numberClass,
boolean allowEmpty)
Create a new CustomNumberEditor instance, using the default
valueOf methods for parsing and toString
methods for rendering. |
CustomNumberEditor(java.lang.Class<? extends java.lang.Number> numberClass,
java.text.NumberFormat numberFormat,
boolean allowEmpty)
Create a new CustomNumberEditor instance, using the given NumberFormat
for parsing and rendering.
|
Modifier and Type | Method and Description |
---|---|
java.lang.String |
getAsText()
Format the Number as String, using the specified NumberFormat.
|
void |
setAsText(java.lang.String text)
Parse the Number from the given text, using the specified NumberFormat.
|
void |
setValue(java.lang.Object value)
Coerce a Number value into the required target class, if necessary.
|
private final java.lang.Class<? extends java.lang.Number> numberClass
@Nullable private final java.text.NumberFormat numberFormat
private final boolean allowEmpty
public CustomNumberEditor(java.lang.Class<? extends java.lang.Number> numberClass, boolean allowEmpty) throws java.lang.IllegalArgumentException
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.
numberClass
- the Number subclass to generateallowEmpty
- if empty strings should be allowedjava.lang.IllegalArgumentException
- if an invalid numberClass has been specifiedNumberUtils.parseNumber(String, Class)
,
Integer.valueOf(java.lang.String, int)
,
Integer.toString(int, int)
public CustomNumberEditor(java.lang.Class<? extends java.lang.Number> numberClass, @Nullable java.text.NumberFormat numberFormat, boolean allowEmpty) throws java.lang.IllegalArgumentException
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.
numberClass
- the Number subclass to generatenumberFormat
- the NumberFormat to use for parsing and renderingallowEmpty
- if empty strings should be allowedjava.lang.IllegalArgumentException
- if an invalid numberClass has been specifiedNumberUtils.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)
public void setAsText(java.lang.String text) throws java.lang.IllegalArgumentException
setAsText
in interface java.beans.PropertyEditor
setAsText
in class java.beans.PropertyEditorSupport
java.lang.IllegalArgumentException
public void setValue(@Nullable java.lang.Object value)
setValue
in interface java.beans.PropertyEditor
setValue
in class java.beans.PropertyEditorSupport
public java.lang.String getAsText()
getAsText
in interface java.beans.PropertyEditor
getAsText
in class java.beans.PropertyEditorSupport