Package org.springframework.validation

# Interface SmartValidator

All Superinterfaces:
  `Validator`

All Known Implementing Classes:
  `CustomValidatorBean`, `LocalValidatorFactoryBean`, `OptionalValidatorFactoryBean`, `SpringValidatorAdapter`

public interface SmartValidator extends Validator
Extended variant of the `Validator` interface, adding support for validation 'hints'.

Since:
  3.1
Author:
  Juergen Hoeller, Sam Brannen

## Method Summary

Modifier and Type
Method
Description
`default <T> T`
`unwrap(Class<T> type)`
Return a contained validator instance of the specified type, unwrapping as far as necessary.
`void`
`validate(Object target, Errors errors, Object... validationHints)`
Validate the supplied `target` object, which must be of a type of `Class` for which the `Validator.supports(Class)` method typically returns `true`.
`default void`
`validateValue(Class<?> targetType, String fieldName, Object value, Errors errors, Object... validationHints)`
Validate the supplied value for the specified field on the target type, reporting the same validation errors as if the value would be bound to the field on an instance of the target class.

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

`supports, validate, validateObject`

## Method Details

### validate

void validate(Object target, Errors errors, Object... validationHints)
Validate the supplied `target` object, which must be of a type of `Class` for which the `Validator.supports(Class)` method typically returns `true`.

The supplied `errors` instance can be used to report any resulting validation errors.

This variant of `validate()` supports validation hints, such as validation groups against a JSR-303 provider (in which case, the provided hint objects need to be annotation arguments of type `Class`).

Note: Validation hints may get ignored by the actual target `Validator`, in which case this method should behave just like its regular `Validator.validate(Object, Errors)` sibling.

Parameters:
  `target` - the object that is to be validated
  `errors` - contextual state about the validation process
  `validationHints` - one or more hint objects to be passed to the validation engine
See Also:
  - `Validator.validate(Object, Class[])`

### validateValue

default void validateValue(Class<?> targetType, String fieldName, @Nullable Object value, Errors errors, Object... validationHints)
Validate the supplied value for the specified field on the target type, reporting the same validation errors as if the value would be bound to the field on an instance of the target class.

Parameters:
  `targetType` - the target type
  `fieldName` - the name of the field
  `value` - the candidate value
  `errors` - contextual state about the validation process
  `validationHints` - one or more hint objects to be passed to the validation engine
Since:
  5.1
See Also:
  - `Validator.validateValue(Class, String, Object, Class[])`

### unwrap

@Nullable default <T> T unwrap(@Nullable Class<T> type)
Return a contained validator instance of the specified type, unwrapping as far as necessary.

Type Parameters:
  `T` - the type of the object to return
Parameters:
  `type` - the class of the object to return
Returns:
  a validator instance of the specified type; `null` if there isn't a nested validator; an exception may be raised if the specified validator type does not match.
Since:
  6.1