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 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  }