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