Interface Validator<T>

All Known Implementing Classes:
RegexValidator

@ConsumerType public interface Validator<T>
A Validator is responsible for validating a single piece of information according to an internal constraint.
  • Field Details

    • PROPERTY_VALIDATOR_ID

      static final String PROPERTY_VALIDATOR_ID
      Each Validator must have a service property with name validator.id of type String. The validators are only addressable via the value of this property from the validation models. If there are multiple validators registered for the same validator.id, the one with highest service ranking is used. It is recommended to prefix the value of the validator with the providing bundle symbolic name to prevent any name clashes.
      See Also:
    • PROPERTY_VALIDATOR_SEVERITY

      static final String PROPERTY_VALIDATOR_SEVERITY
      Each Validator may have a service property with name validator.severity of type Integer. This is taken as the severity of all ValidationFailures constructed by this Validator in case the model has not overwritten the severity. If this property is not set the default severity is being used.
      See Also:
  • Method Details

    • validate

      @NotNull @NotNull ValidationResult validate(@NotNull T data, @NotNull @NotNull ValidatorContext context, @NotNull @NotNull ValueMap arguments) throws SlingValidationException
      Validates the data and/or the valueMap according to the internal constraints of this validator. The validator can enforce the type of the given data just by setting the appropriate parameter type T which can be any non-primitive class. Depending on whether this type is an array or not the validate method is called differently:
      T is array type Valuemap contains array value validate is called...
      yes yes once per property with data containing the full array
      yes no once per property with data containing a single element array
      no yes once per element in the property array with data containing one array element
      no no once per property with data containing the value of the property
      If the data cannot be converted into the type T the validator is not called, but validation fails.
      Parameters:
      data - the data to validate (primary property), never null.
      context - the validation context contains additional information about the data to be validated, never null.
      arguments - the parameterization of the validator. Never null but might be the empty map.
      Returns:
      the validation result (encapsulates the validation status as well as messages).
      Throws:
      SlingValidationException - if some expected arguments are missing from the arguments map