1 package org.seasar.cubby.validator.validators;
2
3 import org.seasar.cubby.validator.BaseValidator;
4 import org.seasar.cubby.validator.ValidationContext;
5 import org.seasar.framework.util.StringUtil;
6
7
8
9
10
11
12
13 public class RangeLengthValidator extends BaseValidator {
14
15
16
17
18 private final int min;
19
20
21
22
23 private final int max;
24
25
26
27
28
29
30 public RangeLengthValidator(final int min, final int max) {
31 this(min, max, "valid.rangeLength");
32 }
33
34
35
36
37
38
39
40 public RangeLengthValidator(final int min, final int max, final String messageKey) {
41 this.min = min;
42 this.max = max;
43 this.setMessageKey(messageKey);
44 }
45
46 public String validate(final ValidationContext ctx) {
47 final Object value = ctx.getValue();
48 if (value instanceof String) {
49 String str = (String)value;
50 if (StringUtil.isEmpty(str)) {
51 return null;
52 }
53
54 int length = str.length();
55 if (length >= min && length <= max) {
56 return null;
57 }
58 }else if(value == null){
59 return null;
60 }
61 return getMessage(getPropertyMessage(ctx.getName()), min, max);
62 }
63
64 }