/*
* Hibernate Validator, declare and validate application constraints
*
* License: Apache License, Version 2.0
* See the license.txt file in the root directory or <http://www.apache.org/licenses/LICENSE-2.0>.
*/
package org.hibernate.validator.cfg.context;
import java.lang.annotation.Annotation;
import javax.validation.ConstraintValidator;
import org.hibernate.validator.Incubating;
Constraint mapping creational context representing a constraint (i.e. annotation type). Allows to define which
validators should validate this constraint.
Author: Yoann Rodiere Type parameters: - <A> – The annotation type represented by this context.
/**
* Constraint mapping creational context representing a constraint (i.e. annotation type). Allows to define which
* validators should validate this constraint.
*
* @param <A> The annotation type represented by this context.
*
* @author Yoann Rodiere
*/
public interface ConstraintDefinitionContext<A extends Annotation> extends ConstraintMappingTarget {
Specifies whether validators already mapped to this constraint (i.e. defined in the annotation declaration through Constraint.validatedBy()
or the validation engine defaults) should be included or not. Params: - includeExistingValidators – Whether or not to use already-mapped validators when validating this constraint.
Returns: This context for method chaining.
/**
* Specifies whether validators already mapped to this constraint (i.e. defined in the annotation declaration
* through {@link javax.validation.Constraint#validatedBy()} or the validation engine defaults) should
* be included or not.
*
* @param includeExistingValidators Whether or not to use already-mapped validators when validating this constraint.
* @return This context for method chaining.
*/
ConstraintDefinitionContext<A> includeExistingValidators(boolean includeExistingValidators);
Adds a new validator to validate this constraint.
Params: - validator – The validator to add.
Returns: This context for method chaining.
/**
* Adds a new validator to validate this constraint.
*
* @param validator The validator to add.
*
* @return This context for method chaining.
*/
ConstraintDefinitionContext<A> validatedBy(Class<? extends ConstraintValidator<A, ?>> validator);
Allows to configure a validation implementation using a Lambda expression or method reference. Useful for simple
validations without the need for accessing constraint properties or customization of error messages etc.
Params: - type – The type of the value to validate
Returns: This context for method chaining
/**
* Allows to configure a validation implementation using a Lambda expression or method reference. Useful for simple
* validations without the need for accessing constraint properties or customization of error messages etc.
* <p>
*
* @param type The type of the value to validate
* @return This context for method chaining
*/
@Incubating
<T> ConstraintValidatorDefinitionContext<A, T> validateType(Class<T> type);
Allows to specify a validation implementation for the given constraint and data type using a Lambda expression or
method reference.
/**
* Allows to specify a validation implementation for the given constraint and data type using a Lambda expression or
* method reference.
*/
@Incubating
interface ConstraintValidatorDefinitionContext<A extends Annotation, T> {
Applies the given Lambda expression or referenced method to values to be validated. It is guaranteed that null
is never passed to these expressions or methods. /**
* Applies the given Lambda expression or referenced method to values to be validated. It is guaranteed that
* {@code null} is never passed to these expressions or methods.
*/
ConstraintDefinitionContext<A> with(ValidationCallable<T> vc);
}
Callable implementing a validation routine. Usually given as method reference or Lambda expression.
/**
* Callable implementing a validation routine. Usually given as method reference or Lambda expression.
*/
@FunctionalInterface
@Incubating
interface ValidationCallable<T> {
boolean isValid(T object);
}
}