package com.nova.sankuai.infra.utils;
|
|
import org.springframework.stereotype.Component;
|
|
import javax.validation.ConstraintViolation;
|
import javax.validation.Validator;
|
import java.util.Set;
|
import java.util.stream.Collectors;
|
|
@Component
|
public class Jsr303Validator {
|
|
private final Validator validator;
|
|
public Jsr303Validator(Validator validator) {
|
this.validator = validator;
|
}
|
|
public <T> Set<ConstraintViolation<T>> getConstraintViolation(T pojo) {
|
return validator.validate(pojo);
|
}
|
|
public <T> String getValidationMsg(T pojo) {
|
Set<ConstraintViolation<T>> set = getConstraintViolation(pojo);
|
if (set.size() == 0) {
|
return null;
|
}
|
return set.stream()
|
.map(it -> String.format("%s: %s", it.getPropertyPath(), it.getMessage()))
|
.collect(Collectors.joining(", "));
|
}
|
|
public <T> boolean isLegal(T pojo) {
|
return getConstraintViolation(pojo).size() == 0;
|
}
|
}
|