Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
org.hibernate.validator.internal.engine.validationcontext.ValidationContextBuilder Maven / Gradle / Ivy
Go to download
Hibernate's Bean Validation (JSR-380) reference implementation.
/*
* Hibernate Validator, declare and validate application constraints
*
* License: Apache License, Version 2.0
* See the license.txt file in the root directory or .
*/
package org.hibernate.validator.internal.engine.validationcontext;
import java.lang.reflect.Executable;
import javax.validation.ConstraintValidatorFactory;
import javax.validation.TraversableResolver;
import org.hibernate.validator.constraintvalidation.HibernateConstraintValidatorInitializationContext;
import org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorManager;
import org.hibernate.validator.internal.engine.path.PathImpl;
import org.hibernate.validator.internal.metadata.BeanMetaDataManager;
import org.hibernate.validator.internal.metadata.aggregated.BeanMetaData;
/**
* Builder for creating {@link AbstractValidationContext}s suited for the different kinds of validation.
*
* @author Gunnar Morling
* @author Marko Bekhta
*/
public class ValidationContextBuilder {
private final BeanMetaDataManager beanMetaDataManager;
private final ConstraintValidatorManager constraintValidatorManager;
private final ConstraintValidatorFactory constraintValidatorFactory;
private final TraversableResolver traversableResolver;
private final HibernateConstraintValidatorInitializationContext constraintValidatorInitializationContext;
private final ValidatorScopedContext validatorScopedContext;
public ValidationContextBuilder(
BeanMetaDataManager beanMetaDataManager,
ConstraintValidatorManager constraintValidatorManager,
ConstraintValidatorFactory constraintValidatorFactory,
ValidatorScopedContext validatorScopedContext,
TraversableResolver traversableResolver,
HibernateConstraintValidatorInitializationContext constraintValidatorInitializationContext) {
this.beanMetaDataManager = beanMetaDataManager;
this.constraintValidatorManager = constraintValidatorManager;
this.constraintValidatorFactory = constraintValidatorFactory;
this.traversableResolver = traversableResolver;
this.constraintValidatorInitializationContext = constraintValidatorInitializationContext;
this.validatorScopedContext = validatorScopedContext;
}
public BaseBeanValidationContext forValidate(T rootBean) {
@SuppressWarnings("unchecked")
Class rootBeanClass = (Class) rootBean.getClass();
BeanMetaData rootBeanMetaData = beanMetaDataManager.getBeanMetaData( rootBeanClass );
return new BeanValidationContext<>(
constraintValidatorManager,
constraintValidatorFactory,
validatorScopedContext,
traversableResolver,
constraintValidatorInitializationContext,
rootBean,
rootBeanClass,
rootBeanMetaData
);
}
public BaseBeanValidationContext forValidateProperty(T rootBean, PathImpl propertyPath) {
@SuppressWarnings("unchecked")
Class rootBeanClass = (Class) rootBean.getClass();
BeanMetaData rootBeanMetaData = beanMetaDataManager.getBeanMetaData( rootBeanClass );
return new PropertyValidationContext<>(
constraintValidatorManager,
constraintValidatorFactory,
validatorScopedContext,
traversableResolver,
constraintValidatorInitializationContext,
rootBean,
rootBeanClass,
rootBeanMetaData,
propertyPath.getLeafNode().getName()
);
}
public BaseBeanValidationContext forValidateValue(Class rootBeanClass, PathImpl propertyPath) {
BeanMetaData rootBeanMetaData = beanMetaDataManager.getBeanMetaData( rootBeanClass );
return new PropertyValidationContext<>(
constraintValidatorManager,
constraintValidatorFactory,
validatorScopedContext,
traversableResolver,
constraintValidatorInitializationContext,
null, //root bean
rootBeanClass,
rootBeanMetaData,
propertyPath.getLeafNode().getName()
);
}
public ExecutableValidationContext forValidateParameters(
T rootBean,
Executable executable,
Object[] executableParameters) {
@SuppressWarnings("unchecked")
Class rootBeanClass = rootBean != null ? (Class) rootBean.getClass() : (Class) executable.getDeclaringClass();
BeanMetaData rootBeanMetaData = beanMetaDataManager.getBeanMetaData( rootBeanClass );
return new ParameterExecutableValidationContext<>(
constraintValidatorManager,
constraintValidatorFactory,
validatorScopedContext,
traversableResolver,
constraintValidatorInitializationContext,
rootBean,
rootBeanClass,
rootBeanMetaData,
executable,
rootBeanMetaData.getMetaDataFor( executable ),
executableParameters
);
}
public ExecutableValidationContext forValidateReturnValue(
T rootBean,
Executable executable,
Object executableReturnValue) {
@SuppressWarnings("unchecked")
Class rootBeanClass = rootBean != null ? (Class) rootBean.getClass() : (Class) executable.getDeclaringClass();
BeanMetaData rootBeanMetaData = beanMetaDataManager.getBeanMetaData( rootBeanClass );
return new ReturnValueExecutableValidationContext<>(
constraintValidatorManager,
constraintValidatorFactory,
validatorScopedContext,
traversableResolver,
constraintValidatorInitializationContext,
rootBean,
rootBeanClass,
rootBeanMetaData,
executable,
rootBeanMetaData.getMetaDataFor( executable ),
executableReturnValue
);
}
}