public ValidatorFactory buildValidatorFactory()

in bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidationProvider.java [76:104]


    public ValidatorFactory buildValidatorFactory(final ConfigurationState configuration) {
        final Class<? extends ValidatorFactory> validatorFactoryClass;
        try {
            final String validatorFactoryClassname =
                configuration.getProperties().get(ApacheValidatorConfiguration.Properties.VALIDATOR_FACTORY_CLASSNAME);

            if (validatorFactoryClassname == null) {
                validatorFactoryClass = ApacheValidatorFactory.class;
            } else {
                validatorFactoryClass =
                    Reflection.toClass(validatorFactoryClassname).asSubclass(ValidatorFactory.class);
            }
        } catch (ValidationException ex) {
            throw ex;
        } catch (Exception ex) {
            throw new ValidationException("error building ValidatorFactory", ex);
        }

        try {
            return validatorFactoryClass.getConstructor(ConfigurationState.class).newInstance(configuration);
        } catch (Exception e) {
            final Throwable t = Exceptions.causeOf(e);
            if (t instanceof ValidationException) {
                throw (ValidationException) t;
            }
            throw Exceptions.create(ValidationException::new, t, "Cannot instantiate %s",
                validatorFactoryClass.getName());
        }
    }