@Override public <T> VerifyRuleFactory toVerifyRuleFactory( DataModelDefinition<T> dataModel, ModelVerifier<? super T> verifier) { if (dataModel == null) { throw new IllegalArgumentException("dataModel must not be null"); //$NON-NLS-1$ } if (verifier == null) { throw new IllegalArgumentException("verifier must not be null"); //$NON-NLS-1$ } ModelVerifierDriver<T> rule = new ModelVerifierDriver<>(verifier, dataModel); return new VerifyRuleFactory() { @Override public <S> VerifyRule createRule( DataModelDefinition<S> definition, VerifyContext context) throws IOException { return rule; } @Override public String toString() { return rule.toString(); } }; }
@Override public Object getKey(DataModelReflection target) { return verifier.getKey(convert(target)); }
/** * Converts {@link ModelVerifier} into {@link VerifyRule}. * @param <T> type of model * @param modelClass class of model * @param verifier target verifier * @return converted rule * @throws IOException if failed to convert * @throws IllegalArgumentException if some parameters were {@code null} */ public <T> VerifyRule rule(Class<? extends T> modelClass, ModelVerifier<T> verifier) throws IOException { if (modelClass == null) { throw new IllegalArgumentException("modelClass must not be null"); //$NON-NLS-1$ } if (verifier == null) { throw new IllegalArgumentException("verifier must not be null"); //$NON-NLS-1$ } DataModelDefinition<? extends T> definition = findDefinition(modelClass); return new ModelVerifierDriver<>(verifier, definition); }