View Javadoc

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