View Javadoc

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