View Javadoc

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   * @author Eric Jan Malotaux
11   */
12  public class MaxLengthValidator implements Validator {
13      private String field;
14  
15      private int max;
16  
17      private Class clazz;
18  
19      /**
20       * @param field
21       * @param max
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       * {@inheritDoc}
31       */
32      @SuppressWarnings("unchecked")
33      public boolean supports(Class clazz) {
34          return this.clazz.isAssignableFrom(clazz);
35      }
36  
37      /**
38       * {@inheritDoc}
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  }