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 public class RangeLengthValidator extends BaseValidator {
8
9 private final int min;
10
11 private final int max;
12
13 public RangeLengthValidator(final int min, final int max) {
14 this(min, max, "valid.rangeLength");
15 }
16
17 public RangeLengthValidator(final int min, final int max, final String messageKey) {
18 this.min = min;
19 this.max = max;
20 this.setMessageKey(messageKey);
21 }
22
23 public String validate(final ValidationContext ctx) {
24 final Object value = ctx.getValue();
25 if (value instanceof String) {
26 String str = (String)value;
27 if (StringUtil.isEmpty(str)) {
28 return null;
29 }
30
31 int length = str.length();
32 if (length >= min && length <= max) {
33 return null;
34 }
35 }else if(value == null){
36 return null;
37 }
38 return getMessage(getPropertyMessage(ctx.getName()), min, max);
39 }
40
41 }