/*
 * 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.internal.engine.validationcontext;

import java.util.Set;

import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
import jakarta.validation.ConstraintValidatorFactory;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.metadata.ConstraintDescriptor;

import org.hibernate.validator.constraintvalidation.HibernateConstraintValidatorInitializationContext;
import org.hibernate.validator.internal.engine.valuecontext.ValueContext;
import org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree;
import org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorContextImpl;
import org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorManager;
import org.hibernate.validator.internal.engine.constraintvalidation.ConstraintViolationCreationContext;
import org.hibernate.validator.internal.engine.path.PathImpl;
import org.hibernate.validator.internal.metadata.descriptor.ConstraintDescriptorImpl;

Context object interface keeping track of all required data for operations inside ConstraintTree and its subclasses.

Allows to collect all failing constraints, creates ConstraintValidatorContexts based on the constraint descriptors, and exposes other resources needed to initialize a new ConstraintValidator.

Author:Hardy Ferentschik, Emmanuel Bernard, Gunnar Morling, Guillaume Smet, Marko Bekhta
/** * Context object interface keeping track of all required data for operations inside {@link ConstraintTree} * and its subclasses. * <p> * Allows to collect all failing constraints, creates {@link ConstraintValidatorContext}s based on the constraint * descriptors, and exposes other resources needed to initialize a new {@link ConstraintValidator}. * * @author Hardy Ferentschik * @author Emmanuel Bernard * @author Gunnar Morling * @author Guillaume Smet * @author Marko Bekhta */
public interface ValidationContext<T> { boolean isFailFastModeEnabled(); ConstraintValidatorManager getConstraintValidatorManager(); HibernateConstraintValidatorInitializationContext getConstraintValidatorInitializationContext(); ConstraintValidatorFactory getConstraintValidatorFactory(); void addConstraintFailure( ValueContext<?, ?> valueContext, ConstraintViolationCreationContext constraintViolationCreationContext, ConstraintDescriptor<?> descriptor ); Set<ConstraintViolation<T>> getFailingConstraints(); ConstraintValidatorContextImpl createConstraintValidatorContextFor(ConstraintDescriptorImpl<?> constraintDescriptor, PathImpl path); }