public class ClientDemo { private class MyFilter implements Filter{ private String filterInput; public MyFilter(String input){ this.filterInput = input; } @Override public String getParameters() { return null; } @Override public int currentLength() { return this.filterInput.length(); } } public void testValidators(){ ValidatorFactory factory = new ValidatorFactory(); Validator v = factory.getFilterValidator(new MyFilter("filter string goes here...")); v.validate(); } } }
/** * 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; } }
public ValidatorFactory build() { return new ValidatorFactory(new HashMap<String, Validator>(validators), new HashSet<String>(defaultSubjectValidators)); } }
@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); }
/** * 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; } }
public ValidatorFactory build() { return new ValidatorFactory(new HashMap<String, Validator>(validators), new HashSet<String>(defaultSubjectValidators)); } }
public class FilterImpl implements Filter { private final Validator validator; public FilterImpl(Validator validator) { this.validator = validator; } @Override public getValidator() { return this.validator; } //... } public class FilterFactory { private final ValidatorFactory validatorFactory = new ValidatorFactory(); public Filter createFilter() { return new FilterImpl(valdatorFactory.createFilterValidator()); } }