o = clazz.newInstance(); o.validateField(field.getName(), conf.get(key));
o = (((Class<Validator>) clazz).newInstance()); o.validateField(field.getName(), conf.get(key));
public static void validateField(String name, Class[] keyValidators, Class[] valueValidators, Object o) throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException { if (o == null) { return; } //check if Map SimpleTypeValidator.validateField(name, Map.class, o); for (Map.Entry<Object, Object> entry : ((Map<Object, Object>) o).entrySet()) { for (Class kv : keyValidators) { Object keyValidator = kv.getConstructor().newInstance(); if (keyValidator instanceof Validator) { ((Validator) keyValidator).validateField(name + " Map key", entry.getKey()); } else { LOG.warn("validator: {} cannot be used in MapEntryCustomValidator to validate keys. Individual entry validators must a instance of Validator class", kv.getName()); } } for (Class vv : valueValidators) { Object valueValidator = vv.getConstructor().newInstance(); if (valueValidator instanceof Validator) { ((Validator) valueValidator).validateField(name + " Map value", entry.getValue()); } else { LOG.warn("validator: {} cannot be used in MapEntryCustomValidator to validate values. Individual entry validators must a instance of Validator class", vv.getName()); } } } } }
public static void validateField(String name, Class[] validators, Object o) throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException { if (o == null) { return; } //check if iterable SimpleTypeValidator.validateField(name, Iterable.class, o); for (Object entry : (Iterable) o) { for (Class validator : validators) { Object v = validator.getConstructor().newInstance(); if (v instanceof Validator) { ((Validator) v).validateField(name + " list entry", entry); } else { LOG.warn("validator: {} cannot be used in ListEntryCustomValidator. Individual entry validators must a instance of Validator class", validator.getName()); } } } } }
Object keyValidator = kv.getConstructor().newInstance(); if (keyValidator instanceof Validator) { ((Validator) keyValidator).validateField(name + " Map key", entry.getKey()); } else { LOG.warn( Object valueValidator = vv.getConstructor().newInstance(); if (valueValidator instanceof Validator) { ((Validator) valueValidator).validateField(name + " Map value", entry.getValue()); } else { LOG.warn(
public static void validateField(String name, Class<?>[] validators, Object o) throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException { if (o == null) { return; } //check if iterable SimpleTypeValidator.validateField(name, Iterable.class, o); for (Object entry : (Iterable<?>) o) { for (Class<?> validator : validators) { Object v = validator.getConstructor().newInstance(); if (v instanceof Validator) { ((Validator) v).validateField(name + " list entry", entry); } else { LOG.warn( "validator: {} cannot be used in ListEntryCustomValidator. Individual entry validators must a instance of " + "Validator class", validator.getName()); } } } }