@Provides @Singleton ValidatorFactory provideValidatorFactory(Injector injector, @Named(Config.DEFAULT_SUBJECT_VALIDATORS) String defaultSubjectValidators) { ValidatorFactory.Builder builder = new ValidatorFactory.Builder(); for(String prop : props.stringPropertyNames()) { if (prop.startsWith(Config.VALIDATOR_PREFIX)) { String validatorName = prop.substring(Config.VALIDATOR_PREFIX.length()); Class<Validator> validatorClass = injector.getInstance( Key.<Class<Validator>>get( new TypeLiteral<Class<Validator>>(){}, Names.named(prop))); builder.setValidator(validatorName, injector.getInstance(validatorClass)); } } // assign the default subject validators builder.setDefaultValidators(RepositoryUtil.commaSplit(defaultSubjectValidators)); return builder.build(); }
@Provides @Singleton ValidatorFactory provideValidatorFactory(Injector injector, @Named(Config.DEFAULT_SUBJECT_VALIDATORS) String defaultSubjectValidators) { ValidatorFactory.Builder builder = new ValidatorFactory.Builder(); for(String prop : props.stringPropertyNames()) { if (prop.startsWith(Config.VALIDATOR_PREFIX)) { String validatorName = prop.substring(Config.VALIDATOR_PREFIX.length()); Class<Validator> validatorClass = injector.getInstance( Key.<Class<Validator>>get( new TypeLiteral<Class<Validator>>(){}, Names.named(prop))); builder.setValidator(validatorName, injector.getInstance(validatorClass)); } } // assign the default subject validators builder.setDefaultValidators(RepositoryUtil.commaSplit(defaultSubjectValidators)); return builder.build(); }
@Test public void test() throws SchemaValidationException { Validator foo = new Validator() { @Override public void validate(String schemaToValidate, Iterable<SchemaEntry> schemasInOrder) throws SchemaValidationException { } }; ValidatorFactory fact = new ValidatorFactory.Builder().setValidator("foo", foo).build(); HashSet<String> fooset = new HashSet<String>(); fooset.add("foo"); fooset.add(null); // should ignore Assert.assertSame(foo, fact.getValidators(fooset).get(0)); fact.getValidators(fooset).get(0).validate(null, null); }
@Before public void setUpRepository() { repo = new InMemoryRepository(new ValidatorFactory.Builder(). setValidator(ACCEPT_VALIDATOR, new Validator(){ @Override public void validate(String schemaToValidate, Iterable<SchemaEntry> schemasInOrder) throws SchemaValidationException { // nothing } }).build()); }
@Test(expected=RuntimeException.class) public void testInvalidName() { new ValidatorFactory.Builder() .setValidator("repo.willBreak", null); }