@Override public <M> Verifier createVerifier( DataModelDefinition<M> definition, VerifyContext context) throws IOException { final Verifier delegate = verifierFactory.createVerifier(definition, context); return new Verifier() { @Override public List<Difference> verify(DataModelSource results) throws IOException { DataModelSource filtered = sourceFilter.apply(results); return delegate.verify(filtered); } @Override public void close() throws IOException { delegate.close(); } }; } @Override
private <T> List<Difference> inspect( DataModelDefinition<T> definition, ExporterDescription description, VerifyContext verifyContext, VerifierFactory verifier) throws IOException { assert definition != null; assert description != null; assert verifier != null; List<Difference> results; try (DataModelSource target = getDriver(description).createSource(definition, description, context); Verifier engine = verifier.createVerifier(definition, verifyContext)) { results = engine.verify(target); } Collections.sort(results, new DifferenceComparator(definition)); return results; }
try (Verifier verifier = target.createVerifier(definition, verifyContext)) { if (verifier instanceof Verifier.Validatable) { ((Verifier.Validatable) verifier).validate();