Package org.apache.sling.validation.spi
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 Summary
Fields -
Method Summary
Modifier and TypeMethodDescription@NotNull ValidationResultvalidate(T data, @NotNull ValidatorContext context, @NotNull ValueMap arguments) Validates thedataand/or thevalueMapaccording to the internal constraints of this validator.
-
Field Details
-
PROPERTY_VALIDATOR_ID
EachValidatormust have a service property with namevalidator.idof typeString. The validators are only addressable via the value of this property from the validation models. If there are multiple validators registered for the samevalidator.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
EachValidatormay have a service property with namevalidator.severityof typeInteger. This is taken as the severity of allValidationFailures constructed by thisValidatorin 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 thedataand/or thevalueMapaccording to the internal constraints of this validator. The validator can enforce the type of the given data just by setting the appropriate parameter typeTwhich can be any non-primitive class. Depending on whether this type is an array or not thevalidatemethod is called differently:
If the data cannot be converted into the typeT is array type Valuemap contains array value validateis called...yes yes once per property with datacontaining the full arrayyes no once per property with datacontaining a single element arrayno yes once per element in the property array with datacontaining one array elementno no once per property with datacontaining the value of the propertyTthe validator is not called, but validation fails.- Parameters:
data- the data to validate (primary property), nevernull.context- the validation context contains additional information about the data to be validated, nevernull.arguments- the parameterization of the validator. Nevernullbut 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
-