@Override public ValidatorFactory buildValidatorFactory(ConfigurationState configurationState) { return new ValidatorFactoryImpl( configurationState ); } }
private static boolean getTraversableResolverResultCacheEnabled(ConfigurationImpl configuration, Map<String, String> properties) { return checkPropertiesForBoolean( properties, HibernateValidatorConfiguration.ENABLE_TRAVERSABLE_RESOLVER_RESULT_CACHE, configuration != null ? configuration.isTraversableResolverResultCacheEnabled() : true ); }
@Override public Validator getValidator() { return validatorFactory.createValidator( constraintValidatorFactory, messageInterpolator, traversableResolver, parameterNameProvider, failFast, validatedValueHandlers, timeProvider, methodValidationConfiguration ); } }
public ValidatorContextImpl(ValidatorFactoryImpl validatorFactory) { this.validatorFactory = validatorFactory; this.messageInterpolator = validatorFactory.getMessageInterpolator(); this.traversableResolver = validatorFactory.getTraversableResolver(); this.constraintValidatorFactory = validatorFactory.getConstraintValidatorFactory(); this.parameterNameProvider = validatorFactory.getParameterNameProvider(); this.failFast = validatorFactory.isFailFast(); this.validatedValueHandlers = new ArrayList<ValidatedValueUnwrapper<?>>( validatorFactory.getValidatedValueHandlers() ); this.timeProvider = validatorFactory.getTimeProvider(); }
public ValidatorContextImpl(ValidatorFactoryImpl validatorFactory) { this.validatorFactoryScopedContextBuilder = new ValidatorFactoryScopedContext.Builder( validatorFactory.getValidatorFactoryScopedContext() ); this.validatorFactory = validatorFactory; this.constraintValidatorFactory = validatorFactory.getConstraintValidatorFactory(); this.methodValidationConfigurationBuilder = new MethodValidationConfiguration.Builder( validatorFactory.getMethodValidationConfiguration() ); this.valueExtractorManager = validatorFactory.getValueExtractorManager(); this.valueExtractorDescriptors = new HashMap<>(); }
public ValidatorFactoryImpl(ConfigurationState configurationState) { ClassLoader externalClassLoader = getExternalClassLoader( configurationState ); getConstraintMappings( typeResolutionHelper, configurationState, registerCustomConstraintValidators( constraintMappings, constraintHelper ); getAllowOverridingMethodAlterParameterConstraint( hibernateSpecificConfig, properties ) ).allowMultipleCascadedValidationOnReturnValues( getAllowMultipleCascadedValidationOnReturnValues( hibernateSpecificConfig, properties ) ).allowParallelMethodsDefineParameterConstraints( getAllowParallelMethodsDefineParameterConstraints( hibernateSpecificConfig, properties ) ).build(); new ExecutableParameterNameProvider( configurationState.getParameterNameProvider() ), configurationState.getClockProvider(), getTemporalValidationTolerance( configurationState, properties ), getScriptEvaluatorFactory( configurationState, properties, externalClassLoader ), getFailFast( hibernateSpecificConfig, properties ), getTraversableResolverResultCacheEnabled( hibernateSpecificConfig, properties ), getConstraintValidatorPayload( hibernateSpecificConfig ) ); logValidatorFactoryScopedConfiguration( validatorFactoryScopedContext );
public ValidatorFactoryImpl(ConfigurationState configurationState) { ClassLoader externalClassLoader = getExternalClassLoader( configurationState ); this.timeProvider = getTimeProvider( configurationState, externalClassLoader ); this.beanMetaDataManagerMap = Collections.synchronizedMap( new IdentityHashMap<ParameterNameProvider, BeanMetaDataManager>() ); this.constraintHelper = new ConstraintHelper(); getConstraintMappings( configurationState, externalClassLoader registerCustomConstraintValidators( constraintMappings, constraintHelper ); getPropertyConfiguredValidatedValueHandlers( properties, externalClassLoader tmpFailFast = checkPropertiesForBoolean( properties, HibernateValidatorConfiguration.FAIL_FAST, tmpFailFast ); this.failFast = tmpFailFast; tmpAllowOverridingMethodAlterParameterConstraint = checkPropertiesForBoolean( properties, HibernateValidatorConfiguration.ALLOW_PARAMETER_CONSTRAINT_OVERRIDE, tmpAllowMultipleCascadedValidationOnReturnValues = checkPropertiesForBoolean( properties, HibernateValidatorConfiguration.ALLOW_MULTIPLE_CASCADED_VALIDATION_ON_RESULT, tmpAllowParallelMethodsDefineParameterConstraints = checkPropertiesForBoolean( properties,
private static Set<DefaultConstraintMapping> getConstraintMappings(TypeResolutionHelper typeResolutionHelper, ConfigurationState configurationState, ClassLoader externalClassLoader) { Set<DefaultConstraintMapping> constraintMappings = newHashSet(); if ( configurationState instanceof ConfigurationImpl ) { ConfigurationImpl hibernateConfiguration = (ConfigurationImpl) configurationState; // programmatic config /* We add these first so that constraint mapping created through DefaultConstraintMappingBuilder will take * these programmatically defined mappings into account when checking for constraint definition uniqueness */ constraintMappings.addAll( hibernateConfiguration.getProgrammaticMappings() ); // service loader based config ConstraintMappingContributor serviceLoaderBasedContributor = new ServiceLoaderBasedConstraintMappingContributor( typeResolutionHelper, externalClassLoader != null ? externalClassLoader : run( GetClassLoader.fromContext() ) ); DefaultConstraintMappingBuilder builder = new DefaultConstraintMappingBuilder( constraintMappings ); serviceLoaderBasedContributor.createConstraintMappings( builder ); } // XML-defined constraint mapping contributors List<ConstraintMappingContributor> contributors = getPropertyConfiguredConstraintMappingContributors( configurationState.getProperties(), externalClassLoader ); for ( ConstraintMappingContributor contributor : contributors ) { DefaultConstraintMappingBuilder builder = new DefaultConstraintMappingBuilder( constraintMappings ); contributor.createConstraintMappings( builder ); } return constraintMappings; }
private static void registerCustomConstraintValidators(Set<DefaultConstraintMapping> constraintMappings, ConstraintHelper constraintHelper) { Set<Class<?>> definedConstraints = newHashSet(); for ( DefaultConstraintMapping constraintMapping : constraintMappings ) { for ( ConstraintDefinitionContribution<?> contribution : constraintMapping.getConstraintDefinitionContributions() ) { processConstraintDefinitionContribution( contribution, constraintHelper, definedConstraints ); } } }
@Override public HibernateValidatorContext constraintValidatorFactory(ConstraintValidatorFactory factory) { if ( factory == null ) { this.constraintValidatorFactory = validatorFactory.getConstraintValidatorFactory(); } else { this.constraintValidatorFactory = factory; } return this; }
executableHelper, parameterNameProvider, buildDataProviders( parameterNameProvider ), methodValidationConfiguration );
private static Set<DefaultConstraintMapping> getConstraintMappings(ConfigurationState configurationState, ClassLoader externalClassLoader) { Set<DefaultConstraintMapping> constraintMappings = newHashSet(); if ( configurationState instanceof ConfigurationImpl ) { ConfigurationImpl hibernateConfiguration = (ConfigurationImpl) configurationState; // programmatic config /* We add these first so that constraint mapping created through DefaultConstraintMappingBuilder will take * these programmatically defined mappings into account when checking for constraint definition uniqueness */ constraintMappings.addAll( hibernateConfiguration.getProgrammaticMappings() ); // service loader based config ConstraintMappingContributor serviceLoaderBasedContributor = hibernateConfiguration.getServiceLoaderBasedConstraintMappingContributor(); DefaultConstraintMappingBuilder builder = new DefaultConstraintMappingBuilder( constraintMappings ); serviceLoaderBasedContributor.createConstraintMappings( builder ); } // XML-defined constraint mapping contributors List<ConstraintMappingContributor> contributors = getPropertyConfiguredConstraintMappingContributors( configurationState.getProperties(), externalClassLoader ); for ( ConstraintMappingContributor contributor : contributors ) { DefaultConstraintMappingBuilder builder = new DefaultConstraintMappingBuilder( constraintMappings ); contributor.createConstraintMappings( builder ); } return constraintMappings; }
private static void registerCustomConstraintValidators(Set<DefaultConstraintMapping> constraintMappings, ConstraintHelper constraintHelper) { Set<Class<?>> definedConstraints = newHashSet(); for ( DefaultConstraintMapping constraintMapping : constraintMappings ) { for ( ConstraintDefinitionContribution<?> contribution : constraintMapping.getConstraintDefinitionContributions() ) { processConstraintDefinitionContribution( contribution, constraintHelper, definedConstraints ); } } }
@Override public HibernateValidatorContext constraintValidatorFactory(ConstraintValidatorFactory factory) { if ( factory == null ) { this.constraintValidatorFactory = validatorFactory.getConstraintValidatorFactory(); } else { this.constraintValidatorFactory = factory; } return this; }
Validator createValidator(ConstraintValidatorFactory constraintValidatorFactory, ValueExtractorManager valueExtractorManager, ValidatorFactoryScopedContext validatorFactoryScopedContext, MethodValidationConfiguration methodValidationConfiguration) { BeanMetaDataManager beanMetaDataManager = beanMetaDataManagers.computeIfAbsent( new BeanMetaDataManagerKey( validatorFactoryScopedContext.getParameterNameProvider(), valueExtractorManager, methodValidationConfiguration ), key -> new BeanMetaDataManager( constraintHelper, executableHelper, typeResolutionHelper, validatorFactoryScopedContext.getParameterNameProvider(), valueExtractorManager, validationOrderGenerator, buildDataProviders(), methodValidationConfiguration ) ); return new ValidatorImpl( constraintValidatorFactory, beanMetaDataManager, valueExtractorManager, constraintValidatorManager, validationOrderGenerator, validatorFactoryScopedContext ); }
private static boolean getAllowParallelMethodsDefineParameterConstraints(ConfigurationImpl hibernateSpecificConfig, Map<String, String> properties) { return checkPropertiesForBoolean( properties, HibernateValidatorConfiguration.ALLOW_PARALLEL_METHODS_DEFINE_PARAMETER_CONSTRAINTS, hibernateSpecificConfig != null ? hibernateSpecificConfig.getMethodValidationConfiguration().isAllowParallelMethodsDefineParameterConstraints() : false ); }
@Override public Validator getValidator() { return createValidator( constraintValidatorManager.getDefaultConstraintValidatorFactory(), valueExtractorManager, validatorFactoryScopedContext, methodValidationConfiguration ); }
@Override public ValidatorFactory buildValidatorFactory(ConfigurationState configurationState) { return new ValidatorFactoryImpl( configurationState ); } }
private static boolean getAllowMultipleCascadedValidationOnReturnValues(ConfigurationImpl hibernateSpecificConfig, Map<String, String> properties) { return checkPropertiesForBoolean( properties, HibernateValidatorConfiguration.ALLOW_MULTIPLE_CASCADED_VALIDATION_ON_RESULT, hibernateSpecificConfig != null ? hibernateSpecificConfig.getMethodValidationConfiguration().isAllowMultipleCascadedValidationOnReturnValues() : false ); }
@Override public Validator getValidator() { return createValidator( constraintValidatorManager.getDefaultConstraintValidatorFactory(), messageInterpolator, traversableResolver, parameterNameProvider, failFast, validatedValueHandlers, timeProvider, methodValidationConfiguration ); }