package core.framework.impl.validate;
import java.lang.reflect.Field;
import java.util.List;
import java.util.Map;
/**
* @author neo
*/
class ObjectValidator implements FieldValidator {
private final Map<Field, List<FieldValidator>> validators;
ObjectValidator(Map<Field, List<FieldValidator>> validators) {
this.validators = validators;
}
@Override
public void validate(Object instance, ValidationErrors errors, boolean partial) {
if (instance != null) {
validators.forEach((field, validators) -> {
try {
Object fieldValue = field.get(instance);
validators.forEach(validator -> validator.validate(fieldValue, errors, partial));
} catch (IllegalAccessException e) {
throw new Error(e);
}
});
}
}
}