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