@SuppressWarnings("rawtypes") @Override public void createConstraintMappings(ConstraintMappingBuilder builder) { Map<Class<?>, List<Class<?>>> customValidators = newHashMap(); // find additional constraint validators via the Java ServiceLoader mechanism List<ConstraintValidator> discoveredConstraintValidators = run( GetInstancesFromServiceLoader.action( primaryClassLoader, ConstraintValidator.class ) ); for ( ConstraintValidator constraintValidator : discoveredConstraintValidators ) { Class<? extends ConstraintValidator> constraintValidatorClass = constraintValidator.getClass(); Class<?> annotationType = determineAnnotationType( constraintValidatorClass ); List<Class<?>> validators = customValidators.get( annotationType ); if ( annotationType != null && validators == null ) { validators = new ArrayList<Class<?>>(); customValidators.put( annotationType, validators ); } validators.add( constraintValidatorClass ); } ConstraintMapping constraintMapping = builder.addConstraintMapping(); for ( Map.Entry<Class<?>, List<Class<?>>> entry : customValidators.entrySet() ) { registerConstraintDefinition( constraintMapping, entry.getKey(), entry.getValue() ); } }
@Override public void createConstraintMappings(ConstraintMappingBuilder builder) { Map<Class<?>, List<Class<?>>> customValidators = newHashMap(); // find additional constraint validators via the Java ServiceLoader mechanism GetConstraintValidatorList constraintValidatorListAction = new GetConstraintValidatorList(); List<ConstraintValidator<?, ?>> discoveredConstraintValidators = run( constraintValidatorListAction ); for ( ConstraintValidator<?, ?> constraintValidator : discoveredConstraintValidators ) { Class<?> constraintValidatorClass = constraintValidator.getClass(); Class<?> annotationType = determineAnnotationType( constraintValidatorClass ); List<Class<?>> validators = customValidators.get( annotationType ); if ( annotationType != null && validators == null ) { validators = new ArrayList<Class<?>>(); customValidators.put( annotationType, validators ); } validators.add( constraintValidatorClass ); } ConstraintMapping constraintMapping = builder.addConstraintMapping(); for ( Map.Entry<Class<?>, List<Class<?>>> entry : customValidators.entrySet() ) { registerConstraintDefinition( constraintMapping, entry.getKey(), entry.getValue() ); } }