@SuppressWarnings("unchecked") private <T> VerifierFactory toVerifierFactory( Class<T> dataType, String expectedPath, String verifyRulePath, ModelTransformer<?> transformer, ModelTester<?>... extraRules) throws URISyntaxException, IOException { DataModelDefinition<T> definition = getTestTools().toDataModelDefinition(dataType); DataModelSourceFactory source = resolveSource(expectedPath); List<TestRule> fragments = new ArrayList<>(); for (ModelTester<?> tester : extraRules) { TestRule rule = getTestTools().toVerifyRuleFragment(definition, (ModelTester<? super T>) tester); fragments.add(rule); } VerifyRuleFactory rules = getTestTools().getVerifyRuleFactory(toUri(verifyRulePath), fragments); VerifierFactory result = getTestTools().toVerifierFactory(source, rules); if (transformer != null) { UnaryOperator<DataModelSource> filter = toDataModelSourceFilter(definition, (ModelTransformer<? super T>) transformer); result = toVerifierFactory(result, filter); } return result; }