类 InfraValidatorAdapter

java.lang.Object
cn.taketoday.validation.beanvalidation.InfraValidatorAdapter
所有已实现的接口:
SmartValidator, Validator, jakarta.validation.Validator
直接已知子类:
CustomValidatorBean, LocalValidatorFactoryBean

public class InfraValidatorAdapter extends Object implements SmartValidator, jakarta.validation.Validator
Adapter that takes a JSR-303 javax.validator.Validator and exposes it as a Framework Validator while also exposing the original JSR-303 Validator interface itself.

Can be used as a programmatic wrapper. Also serves as base class for CustomValidatorBean and LocalValidatorFactoryBean, and as the primary implementation of the SmartValidator interface.

this adapter is fully compatible with Bean Validation 1.1 as well as 2.0.

从以下版本开始:
4.0
作者:
Juergen Hoeller, Sam Brannen
另请参阅:
  • 构造器详细资料

    • InfraValidatorAdapter

      public InfraValidatorAdapter(jakarta.validation.Validator targetValidator)
      Create a new ContextValidatorAdapter for the given JSR-303 Validator.
      参数:
      targetValidator - the JSR-303 Validator to wrap
  • 方法详细资料

    • supports

      public boolean supports(Class<?> clazz)
      从接口复制的说明: Validator
      Can this Validator validate instances of the supplied clazz?

      This method is typically implemented like so:

      return Foo.class.isAssignableFrom(clazz);
      (Where Foo is the class (or superclass) of the actual object instance that is to be validated.)
      指定者:
      supports 在接口中 Validator
      参数:
      clazz - the Class that this Validator is being asked if it can validate
      返回:
      true if this Validator can indeed validate instances of the supplied clazz
    • validate

      public void validate(Object target, Errors errors)
      从接口复制的说明: Validator
      Validate the supplied target object, which must be of a Class for which the Validator.supports(Class) method typically has (or would) return true.

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

      指定者:
      validate 在接口中 Validator
      参数:
      target - the object that is to be validated
      errors - contextual state about the validation process
      另请参阅:
    • validate

      public void validate(Object target, Errors errors, Object... validationHints)
      从接口复制的说明: SmartValidator
      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.

      指定者:
      validate 在接口中 SmartValidator
      参数:
      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
      另请参阅:
      • Validator.validate(Object, Class[])
    • validateValue

      public void validateValue(Class<?> targetType, String fieldName, @Nullable Object value, Errors errors, Object... validationHints)
      从接口复制的说明: SmartValidator
      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.
      指定者:
      validateValue 在接口中 SmartValidator
      参数:
      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
      另请参阅:
      • Validator.validateValue(Class, String, Object, Class[])
    • processConstraintViolations

      protected void processConstraintViolations(Set<jakarta.validation.ConstraintViolation<Object>> violations, Errors errors)
      Process the given JSR-303 ConstraintViolations, adding corresponding errors to the provided Framework Errors object.
      参数:
      violations - the JSR-303 ConstraintViolation results
      errors - the Framework errors object to register to
    • determineField

      protected String determineField(jakarta.validation.ConstraintViolation<Object> violation)
      Determine a field for the given constraint violation.

      The default implementation returns the stringified property path.

      参数:
      violation - the current JSR-303 ConstraintViolation
      返回:
      the Framework-reported field (for use with Errors)
      另请参阅:
    • determineErrorCode

      protected String determineErrorCode(jakarta.validation.metadata.ConstraintDescriptor<?> descriptor)
      Determine a Framework-reported error code for the given constraint descriptor.

      The default implementation returns the simple class name of the descriptor's annotation type. Note that the configured MessageCodesResolver will automatically generate error code variations which include the object name and the field name.

      参数:
      descriptor - the JSR-303 ConstraintDescriptor for the current violation
      返回:
      a corresponding error code (for use with Errors)
      另请参阅:
    • getArgumentsForConstraint

      protected Object[] getArgumentsForConstraint(String objectName, String field, jakarta.validation.metadata.ConstraintDescriptor<?> descriptor)
      Return FieldError arguments for a validation error on the given field. Invoked for each violated constraint.

      The default implementation returns a first argument indicating the field name (see getResolvableField(java.lang.String, java.lang.String)). Afterwards, it adds all actual constraint annotation attributes (i.e. excluding "message", "groups" and "payload") in alphabetical order of their attribute names.

      Can be overridden to e.g. add further attributes from the constraint descriptor.

      参数:
      objectName - the name of the target object
      field - the field that caused the binding error
      descriptor - the JSR-303 constraint descriptor
      返回:
      the Object array that represents the FieldError arguments
      另请参阅:
    • getResolvableField

      protected MessageSourceResolvable getResolvableField(String objectName, String field)
      Build a resolvable wrapper for the specified field, allowing to resolve the field's name in a MessageSource.

      The default implementation returns a first argument indicating the field: of type DefaultMessageSourceResolvable, with "objectName.field" and "field" as codes, and with the plain field name as default message.

      参数:
      objectName - the name of the target object
      field - the field that caused the binding error
      返回:
      a corresponding MessageSourceResolvable for the specified field
      另请参阅:
    • getRejectedValue

      @Nullable protected Object getRejectedValue(String field, jakarta.validation.ConstraintViolation<Object> violation, BindingResult bindingResult)
      Extract the rejected value behind the given constraint violation, for exposure through the Framework errors representation.
      参数:
      field - the field that caused the binding error
      violation - the corresponding JSR-303 ConstraintViolation
      bindingResult - a Framework BindingResult for the backing object which contains the current field's value
      返回:
      the invalid value to expose as part of the field error
      另请参阅:
    • requiresMessageFormat

      protected boolean requiresMessageFormat(jakarta.validation.ConstraintViolation<?> violation)
      Indicate whether this violation's interpolated message has remaining placeholders and therefore requires MessageFormat to be applied to it. Called for a Bean Validation defined message (coming out ValidationMessages.properties) when rendered as the default message in Framework's MessageSource.

      The default implementation considers a Framework-style "{0}" placeholder for the field name as an indication for MessageFormat. Any other placeholder or escape syntax occurrences are typically a mismatch, coming out of regex pattern values or the like. Note that standard Bean Validation does not support "{0}" style placeholders at all; this is a feature typically used in Framework MessageSource resource bundles.

      参数:
      violation - the Bean Validation constraint violation, including BV-defined interpolation of named attribute references in its message
      返回:
      true if java.text.MessageFormat is to be applied, or false if the violation's message should be used as-is
      另请参阅:
    • validate

      public <T> Set<jakarta.validation.ConstraintViolation<T>> validate(T object, Class<?>... groups)
      指定者:
      validate 在接口中 jakarta.validation.Validator
    • validateProperty

      public <T> Set<jakarta.validation.ConstraintViolation<T>> validateProperty(T object, String propertyName, Class<?>... groups)
      指定者:
      validateProperty 在接口中 jakarta.validation.Validator
    • validateValue

      public <T> Set<jakarta.validation.ConstraintViolation<T>> validateValue(Class<T> beanType, String propertyName, Object value, Class<?>... groups)
      指定者:
      validateValue 在接口中 jakarta.validation.Validator
    • getConstraintsForClass

      public jakarta.validation.metadata.BeanDescriptor getConstraintsForClass(Class<?> clazz)
      指定者:
      getConstraintsForClass 在接口中 jakarta.validation.Validator
    • unwrap

      public <T> T unwrap(@Nullable Class<T> type)
      指定者:
      unwrap 在接口中 jakarta.validation.Validator
    • forExecutables

      public jakarta.validation.executable.ExecutableValidator forExecutables()
      指定者:
      forExecutables 在接口中 jakarta.validation.Validator