1
2
3
4 package org.mod4j.runtime.validation;
5
6 import org.springframework.validation.Errors;
7 import org.springframework.validation.Validator;
8
9
10
11
12 public class MaxLengthValidator implements Validator {
13 private String field;
14
15 private int max;
16
17 private Class clazz;
18
19
20
21
22
23 public MaxLengthValidator(Class clazz, String field, int max) {
24 this.clazz = clazz;
25 this.field = field;
26 this.max = max;
27 }
28
29
30
31
32 @SuppressWarnings("unchecked")
33 public boolean supports(Class clazz) {
34 return this.clazz.isAssignableFrom(clazz);
35 }
36
37
38
39
40 public void validate(Object target, Errors errors) {
41 String value = (String) errors.getFieldValue(field);
42 if (value != null) {
43 int length = value.length();
44 if (length > max) {
45 errors.rejectValue(field, "field.length.max", new Integer[] { new Integer(max), new Integer(length) },
46 field + " should be at most " + max + " long, but was " + length);
47 }
48 }
49 }
50
51 }