@Override public HibernateValidatorContext addValueExtractor(ValueExtractor<?> extractor) { ValueExtractorDescriptor descriptor = new ValueExtractorDescriptor( extractor ); ValueExtractorDescriptor previous = valueExtractorDescriptors.put( descriptor.getKey(), descriptor ); if ( previous != null ) { throw LOG.getValueExtractorForTypeAndTypeUseAlreadyPresentException( extractor, previous.getValueExtractor() ); } return this; }
@Override public HibernateValidatorConfiguration addValueExtractor(ValueExtractor<?> extractor) { Contracts.assertNotNull( extractor, MESSAGES.parameterMustNotBeNull( "extractor" ) ); ValueExtractorDescriptor descriptor = new ValueExtractorDescriptor( extractor ); ValueExtractorDescriptor previous = valueExtractorDescriptors.put( descriptor.getKey(), descriptor ); if ( previous != null ) { throw LOG.getValueExtractorForTypeAndTypeUseAlreadyPresentException( extractor, previous.getValueExtractor() ); } if ( LOG.isDebugEnabled() ) { LOG.debug( "Adding value extractor " + extractor ); } return this; }
@SuppressWarnings("unchecked") private void setValueExtractors(Set<String> valueExtractorFqcns, ClassLoader externalClassLoader) { for ( String valueExtractorFqcn : valueExtractorFqcns ) { ValueExtractor<?> valueExtractor; try { Class<? extends ValueExtractor<?>> clazz = (Class<? extends ValueExtractor<?>>) run( LoadClass.action( valueExtractorFqcn, externalClassLoader ) ); valueExtractor = run( NewInstance.action( clazz, "value extractor class" ) ); } catch (ValidationException e) { throw LOG.getUnableToInstantiateValueExtractorClassException( valueExtractorFqcn, e ); } ValueExtractorDescriptor descriptor = new ValueExtractorDescriptor( valueExtractor ); ValueExtractorDescriptor previous = valueExtractorDescriptors.put( descriptor.getKey(), descriptor ); if ( previous != null ) { throw LOG.getValueExtractorForTypeAndTypeUseAlreadyPresentException( valueExtractor, previous.getValueExtractor() ); } LOG.addingValueExtractor( (Class<? extends ValueExtractor<?>>) valueExtractor.getClass() ); } }