sunshine
2024-11-05 0d71954001d47e92683a508f43ea31c3bf822ffb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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;
    }
}