Package org.springframework.validation

# Class AbstractErrors

java.lang.Object
org.springframework.validation.AbstractErrors

All Implemented Interfaces:
  `Serializable`, `Errors`

Direct Known Subclasses:
  `AbstractBindingResult`

public abstract class AbstractErrors extends Object implements Errors, Serializable
Abstract implementation of the `Errors` interface. Provides nested path handling but does not define concrete management of `ObjectErrors` and `FieldErrors`.

Since:
  2.5.3
Author:
  Juergen Hoeller, Rossen Stoyanchev
See Also:
  - `AbstractBindingResult`
  - Serialized Form

## Field Summary

### Fields inherited from interface org.springframework.validation.Errors

`NESTED_PATH_SEPARATOR`

## Constructor Summary

Constructors
Constructor
Description
`AbstractErrors()`

## Method Summary

Modifier and Type
Method
Description
`protected String`
`canonicalFieldName(String field)`
Determine the canonical field name for the given field.
`protected void`
`doSetNestedPath(String nestedPath)`
Actually set the nested path.
`protected String`
`fixedField(String field)`
Transform the given field into its full path, regarding the nested path of this instance.
`List<FieldError>`
`getFieldErrors(String field)`
Get all errors associated with the given field.
`String`
`getNestedPath()`
Return the current nested path of this `Errors` object.
`protected boolean`
`isMatchingFieldError(String field, FieldError fieldError)`
Check whether the given FieldError matches the given field.
`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`
`setNestedPath(String nestedPath)`
Allow context to be changed so that standard validators can validate subtrees.
`String`
`toString()`
Return a summary of the recorded errors, for example, for inclusion in an exception message.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.springframework.validation.Errors

`addAllErrors, failOnError, getAllErrors, getErrorCount, getFieldError, getFieldError, getFieldErrorCount, getFieldErrorCount, getFieldErrors, getFieldType, getFieldValue, getGlobalError, getGlobalErrorCount, getGlobalErrors, getObjectName, hasErrors, hasFieldErrors, hasFieldErrors, hasGlobalErrors, reject, reject, reject, rejectValue, rejectValue, rejectValue`

## Constructor Details

### AbstractErrors

public AbstractErrors()

## Method Details

### setNestedPath

public void setNestedPath(@Nullable String nestedPath)
Description copied from interface: `Errors`
Allow context to be changed so that standard validators can validate subtrees. Reject calls prepend the given path to the field names.

For example, an address validator could validate the subobject "address" of a customer object.

The default implementation throws `UnsupportedOperationException` since not all `Errors` implementations support nested paths.

Specified by:
  `setNestedPath` in interface `Errors`
Parameters:
  `nestedPath` - nested path within this object, for example, "address" (defaults to "", `null` is also acceptable). Can end with a dot: both "address" and "address." are valid.
See Also:
  - `Errors.getNestedPath()`

### getNestedPath

public String getNestedPath()
Description copied from interface: `Errors`
Return the current nested path of this `Errors` object.

Returns a nested path with a dot, i.e. "address.", for easy building of concatenated paths. Default is an empty String.

Specified by:
  `getNestedPath` in interface `Errors`
See Also:
  - `Errors.setNestedPath(String)`

### pushNestedPath

public void pushNestedPath(String subPath)
Description copied from interface: `Errors`
Push the given sub path onto the nested path stack.

A `Errors.popNestedPath()` call will reset the original nested path before the corresponding `pushNestedPath(String)` call.

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.

The default implementation throws `UnsupportedOperationException` since not all `Errors` implementations support nested paths.

Specified by:
  `pushNestedPath` in interface `Errors`
Parameters:
  `subPath` - the sub path to push onto the nested path stack
See Also:
  - `Errors.popNestedPath()`

### popNestedPath

public void popNestedPath() throws IllegalStateException
Description copied from interface: `Errors`
Pop the former nested path from the nested path stack.

Specified by:
  `popNestedPath` in interface `Errors`
Throws:
  `IllegalStateException` - if there is no former nested path on the stack
See Also:
  - `Errors.pushNestedPath(String)`

### doSetNestedPath

protected void doSetNestedPath(@Nullable String nestedPath)
Actually set the nested path. Delegated to by setNestedPath and pushNestedPath.

### fixedField

protected String fixedField(@Nullable String field)
Transform the given field into its full path, regarding the nested path of this instance.

### canonicalFieldName

protected String canonicalFieldName(String field)
Determine the canonical field name for the given field.

The default implementation simply returns the field name as-is.

Parameters:
  `field` - the original field name
Returns:
  the canonical field name

### getFieldErrors

public List<FieldError> getFieldErrors(String field)
Description copied from interface: `Errors`
Get all errors associated with the given field.

Implementations may support not only full field names like "address.street" but also pattern matches like "address.*".

Specified by:
  `getFieldErrors` in interface `Errors`
Parameters:
  `field` - the field name
Returns:
  a List of `FieldError` instances
See Also:
  - `Errors.getFieldErrors()`

### isMatchingFieldError

protected boolean isMatchingFieldError(String field, FieldError fieldError)
Check whether the given FieldError matches the given field.

Parameters:
  `field` - the field that we are looking up FieldErrors for
  `fieldError` - the candidate FieldError
Returns:
  whether the FieldError matches the given field

### toString

public String toString()
Description copied from interface: `Errors`
Return a summary of the recorded errors, for example, for inclusion in an exception message.

Specified by:
  `toString` in interface `Errors`
Overrides:
  `toString` in class `Object`
See Also:
  - `Errors.failOnError(Function)`