org.springframework.beans.propertyeditors
public class: CustomBooleanEditor [javadoc |
source]
java.lang.Object
java.beans.PropertyEditorSupport
org.springframework.beans.propertyeditors.CustomBooleanEditor
All Implemented Interfaces:
PropertyEditor
Property editor for Boolean/boolean properties.
This is not meant to be used as system PropertyEditor but rather as
locale-specific Boolean editor within custom controller code, to parse
UI-caused boolean strings into boolean properties of beans and check
them in the UI form.
In web MVC code, this editor will typically be registered with
binder.registerCustomEditor calls in an implementation
of BaseCommandController's initBinder method.
Also see:
- org.springframework.validation.DataBinder#registerCustomEditor
- org.springframework.web.servlet.mvc.BaseCommandController#initBinder
- author:
Juergen - Hoeller
- since:
10.06.2003 -
| Field Summary |
|---|
| public static final String | VALUE_TRUE | |
| public static final String | VALUE_FALSE | |
| public static final String | VALUE_ON | |
| public static final String | VALUE_OFF | |
| public static final String | VALUE_YES | |
| public static final String | VALUE_NO | |
| public static final String | VALUE_1 | |
| public static final String | VALUE_0 | |
| Constructor: |
public CustomBooleanEditor(boolean allowEmpty) {
this(null, null, allowEmpty);
}
Create a new CustomBooleanEditor instance, with "true"/"on"/"yes"
and "false"/"off"/"no" as recognized String values.
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:
allowEmpty - if empty strings should be allowed
|
public CustomBooleanEditor(String trueString,
String falseString,
boolean allowEmpty) {
this.trueString = trueString;
this.falseString = falseString;
this.allowEmpty = allowEmpty;
}
Create a new CustomBooleanEditor instance,
with configurable String values for true and false.
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:
trueString - the String value that represents true:
for example, "true" (VALUE_TRUE), "on" (VALUE_ON),
"yes" (VALUE_YES) or some custom value
falseString - the String value that represents false:
for example, "false" (VALUE_FALSE), "off" (VALUE_OFF),
"no" (VALUE_NO) or some custom value
allowEmpty - if empty strings should be allowed
Also see:
- VALUE_TRUE
- VALUE_FALSE
- VALUE_ON
- VALUE_OFF
- VALUE_YES
- VALUE_NO
|
| Method from org.springframework.beans.propertyeditors.CustomBooleanEditor Summary: |
|---|
|
getAsText, setAsText |
| Methods from java.beans.PropertyEditorSupport: |
|---|
|
addPropertyChangeListener, firePropertyChange, getAsText, getCustomEditor, getJavaInitializationString, getSource, getTags, getValue, isPaintable, paintValue, removePropertyChangeListener, setAsText, setSource, setValue, supportsCustomEditor |
| Method from org.springframework.beans.propertyeditors.CustomBooleanEditor Detail: |
public String getAsText() {
if (Boolean.TRUE.equals(getValue())) {
return (this.trueString != null ? this.trueString : VALUE_TRUE);
}
else if (Boolean.FALSE.equals(getValue())) {
return (this.falseString != null ? this.falseString : VALUE_FALSE);
}
else {
return "";
}
}
|
public void setAsText(String text) throws IllegalArgumentException {
String input = (text != null ? text.trim() : null);
if (this.allowEmpty && !StringUtils.hasLength(input)) {
// Treat empty String as null value.
setValue(null);
}
else if (this.trueString != null && input.equalsIgnoreCase(this.trueString)) {
setValue(Boolean.TRUE);
}
else if (this.falseString != null && input.equalsIgnoreCase(this.falseString)) {
setValue(Boolean.FALSE);
}
else if (this.trueString == null &&
(input.equalsIgnoreCase(VALUE_TRUE) || input.equalsIgnoreCase(VALUE_ON) ||
input.equalsIgnoreCase(VALUE_YES) || input.equals(VALUE_1))) {
setValue(Boolean.TRUE);
}
else if (this.falseString == null &&
(input.equalsIgnoreCase(VALUE_FALSE) || input.equalsIgnoreCase(VALUE_OFF) ||
input.equalsIgnoreCase(VALUE_NO) || input.equals(VALUE_0))) {
setValue(Boolean.FALSE);
}
else {
throw new IllegalArgumentException("Invalid boolean value [" + text + "]");
}
}
|