|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Interface to be implemented by objects that can store and expose information about data binding errors.
Field names can be properties of the given object (e.g. "name" when binding to a customer object), or nested fields in case of subobjects (e.g. "address.street"). Supports subtree navigation via setNestedPath, e.g. an AddressValidator validates "address", not being aware that this is a subobject of customer.
Note: Errors objects are single-threaded.
setNestedPath(java.lang.String)
Field Summary | |
static String |
NESTED_PATH_SEPARATOR
Separator between path elements in a nested path, e.g. in "customer.name" or "customer.address.street" |
Method Summary | |
List |
getAllErrors()
Get all errors, both global and field ones. |
int |
getErrorCount()
Return the total number of errors. |
FieldError |
getFieldError(String field)
Get the first error associated with the given field, if any. |
int |
getFieldErrorCount(String field)
Return the number of errors associated with the given field. |
List |
getFieldErrors(String field)
Get all errors associated with the given field. |
Object |
getFieldValue(String field)
Return the current value of the given field, either the current bean property value or a rejected update from the last binding. |
ObjectError |
getGlobalError()
Get the first global error, if any. |
int |
getGlobalErrorCount()
Return the number of global (i.e. not field-specific) errors. |
List |
getGlobalErrors()
Get all global errors. |
String |
getNestedPath()
Return the current nested path of this Errors object. |
String |
getObjectName()
Return the name of the bound object. |
boolean |
hasErrors()
Return if there were any errors. |
boolean |
hasFieldErrors(String field)
Return if there are any errors associated with the given field. |
boolean |
hasGlobalErrors()
Return if there were any global (i.e. not field-specific) errors. |
void |
popNestedPath()
Pop the former nested path from the nested path stack. |
void |
pushNestedPath(String subPath)
Push the given sub path onto the nested path stack. |
void |
reject(String errorCode,
Object[] errorArgs,
String defaultMessage)
Reject the current object, using the given error description. |
void |
reject(String errorCode,
String defaultMessage)
Reject the current object, using the given error description. |
void |
rejectValue(String field,
String errorCode,
Object[] errorArgs,
String defaultMessage)
Reject the given field of the current object, using the given error description. |
void |
rejectValue(String field,
String errorCode,
String defaultMessage)
Reject the given field of the current object, using the given error description. |
void |
setNestedPath(String nestedPath)
Allow context to be changed so that standard validators can validate subtrees. |
Field Detail |
public static final String NESTED_PATH_SEPARATOR
PropertyAccessor.NESTED_PROPERTY_SEPARATOR
,
Constant Field ValuesMethod Detail |
public String getObjectName()
public void setNestedPath(String nestedPath)
For example, an address validator could validate the subobject "address" of a customer object.
nestedPath
- nested path within this object,
e.g. "address" (defaults to "", null is also acceptable).
Can end with a dot: both "address" and "address." are valid.public String getNestedPath()
Returns a nested path with a dot, i.e. "address.", for easy building of concatenated paths. Default is an empty String.
public void pushNestedPath(String subPath)
Using the nested path stack allows to set temporary nested paths for subobjects without having to worry about a temporary path holder.
For example: current path "spouse.", pushNestedPath("child") -> result path "spouse.child."; popNestedPath() -> "spouse." again
subPath
- the sub path to push onto the nested path stackpopNestedPath()
public void popNestedPath() throws IllegalStateException
IllegalStateException
- if there is no former nested path on the stackpushNestedPath(java.lang.String)
public void reject(String errorCode, String defaultMessage)
errorCode
- error code, interpretable as message keydefaultMessage
- fallback default messagepublic void reject(String errorCode, Object[] errorArgs, String defaultMessage)
errorCode
- error code, interpretable as message keyerrorArgs
- error arguments, for argument binding via MessageFormat
(can be null)defaultMessage
- fallback default messagepublic void rejectValue(String field, String errorCode, String defaultMessage)
field
- the field nameerrorCode
- error code, interpretable as message keydefaultMessage
- fallback default messagepublic void rejectValue(String field, String errorCode, Object[] errorArgs, String defaultMessage)
field
- the field nameerrorCode
- error code, interpretable as message keyerrorArgs
- error arguments, for argument binding via MessageFormat
(can be null)defaultMessage
- fallback default messagepublic boolean hasErrors()
public int getErrorCount()
public List getAllErrors()
public boolean hasGlobalErrors()
public int getGlobalErrorCount()
public List getGlobalErrors()
public ObjectError getGlobalError()
public boolean hasFieldErrors(String field)
field
- the field name
public int getFieldErrorCount(String field)
field
- the field name
public List getFieldErrors(String field)
Should support full field names like "name" but also pattern matches like "na*" or "address.*".
field
- the field name
public FieldError getFieldError(String field)
public Object getFieldValue(String field)
Allows for convenient access to user-specified field values, even if there were type mismatches.
field
- the field name
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |