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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
| import org.springframework.util.CollectionUtils;
import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set;
public class BeanValidatorUtils { public BeanValidatorUtils() { }
public static <T> String validate(T object, Class... groups) { return validate(object, BeanValidatorUtils.OutputType.SIMPLE_STRING, groups); }
public static <T> String validate(T object, BeanValidatorUtils.OutputType outputType, Class... groups) { if (outputType == null) { outputType = BeanValidatorUtils.OutputType.SIMPLE_STRING; }
Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); Set<ConstraintViolation<T>> constraintViolations = validator.validate(object, groups); if (CollectionUtils.isEmpty(constraintViolations)) { return ""; } else { switch (outputType) { case MAP: return convertErrorMsg(constraintViolations); case ALL_STRING: return convertErrorMsgAllString(constraintViolations); case SIMPLE_STRING: return convertErrorMsgSimpleString(constraintViolations); default: return convertErrorMsgSimpleString(constraintViolations); } } }
private static <T> String convertErrorMsg(Set<ConstraintViolation<T>> cvs) { Map<String, StringBuilder> errorMap = new HashMap(); Iterator var3 = cvs.iterator();
while (var3.hasNext()) { ConstraintViolation<T> cv = (ConstraintViolation) var3.next(); String property = cv.getPropertyPath().toString(); if (errorMap.get(property) != null) { ((StringBuilder) errorMap.get(property)).append("," + cv.getMessage()); } else { StringBuilder sb = new StringBuilder(); sb.append(cv.getMessage()); errorMap.put(property, sb); } }
return errorMap.toString(); }
private static <T> String convertErrorMsgAllString(Set<ConstraintViolation<T>> cvs) { StringBuilder sb = new StringBuilder();
ConstraintViolation cv; for (Iterator var3 = cvs.iterator(); var3.hasNext(); sb.append(cv.getMessage())) { cv = (ConstraintViolation) var3.next(); if (sb.length() != 0) { sb.append(","); } }
return sb.toString(); }
private static <T> String convertErrorMsgSimpleString(Set<ConstraintViolation<T>> cvs) { StringBuilder sb = new StringBuilder(); Iterator var3 = cvs.iterator(); if (var3.hasNext()) { ConstraintViolation<T> cv = (ConstraintViolation) var3.next(); sb.append(cv.getMessage()); }
return sb.toString(); }
public static enum OutputType { MAP, ALL_STRING, SIMPLE_STRING;
private OutputType() { } } }
|