1 package org.seasar.cubby.validator.validators;
2
3 import org.seasar.cubby.util.CubbyUtils;
4 import org.seasar.cubby.validator.BaseValidator;
5 import org.seasar.cubby.validator.ValidationContext;
6
7 public class MaxSizeValidator extends BaseValidator {
8
9 private final int max;
10
11 public MaxSizeValidator(final int max) {
12 this(max, "valid.maxSize");
13 }
14
15 public MaxSizeValidator(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 == null) {
23 return null;
24 }
25 int size = CubbyUtils.getObjectSize(value);
26 if (size <= max) {
27 return null;
28 } else {
29 return getMessage(getPropertyMessage(ctx.getName()), max);
30 }
31 }
32 }