/** * Create a {@link Subject} that validates schemas as configured. */ public static Subject validatingSubject(Subject subject, ValidatorFactory factory) { if (null == subject) { return subject; } List<Validator> validators; SubjectConfig config = subject.getConfig(); // if the validators key is not specified in the subject config, get the default ones. // ensure that even an empty set is honored as "no validators" if (config.get(SubjectConfig.VALIDATORS_KEY) != null) validators = factory.getValidators(config.getValidators()); else validators = factory.getValidators(factory.getDefaultSubjectValidators()); if (!validators.isEmpty()) { return new ValidatingSubject(subject, new CompositeValidator(validators)); } else { return subject; } }
/** * Create a {@link Subject} that validates schemas as configured. */ public static Subject validatingSubject(Subject subject, ValidatorFactory factory) { if (null == subject) { return subject; } List<Validator> validators; SubjectConfig config = subject.getConfig(); // if the validators key is not specified in the subject config, get the default ones. // ensure that even an empty set is honored as "no validators" if (config.get(SubjectConfig.VALIDATORS_KEY) != null) validators = factory.getValidators(config.getValidators()); else validators = factory.getValidators(factory.getDefaultSubjectValidators()); if (!validators.isEmpty()) { return new ValidatingSubject(subject, new CompositeValidator(validators)); } else { return subject; } }
@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); }