/** * create validator * * @param constraintValidatorFactory * @param messageInterpolator * @param traversableResolver * @param parameterNameProvider * @param failFast * @param validatedValueHandlers * @return */ protected Validator createValidator(ConstraintValidatorFactory constraintValidatorFactory, MessageInterpolator messageInterpolator, TraversableResolver traversableResolver, ParameterNameProvider parameterNameProvider, boolean failFast, List<ValidatedValueUnwrapper<?>> validatedValueHandlers) { BeanMetaDataManager513 beanMetaDataManager; if (!beanMetaDataManagerMap.containsKey(parameterNameProvider)) { beanMetaDataManager = new BeanMetaDataManager513(constraintHelper, executableHelper, parameterNameProvider, buildDataProviders(parameterNameProvider)); beanMetaDataManagerMap.put(parameterNameProvider, beanMetaDataManager); } else { beanMetaDataManager = beanMetaDataManagerMap.get(parameterNameProvider); } return new ValidatorImpl(constraintValidatorFactory, messageInterpolator, traversableResolver, beanMetaDataManager, parameterNameProvider, typeResolutionHelper, validatedValueHandlers, constraintValidatorManager, failFast); }