View Javadoc

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   /**
8    * 配列の最小サイズを検証します。
9    * @author agata
10   *
11   */
12  public class MinSizeValidator extends BaseValidator {
13  
14  	/**
15  	 * 配列の最小サイズ
16  	 */
17  	private final int min;
18  
19  	/**
20  	 * コンストラクタ
21  	 * @param min 配列の最小サイズ
22  	 */
23  	public MinSizeValidator(final int min) {
24  		this(min, "valid.minSize");
25  	}
26  
27  	/**
28  	 * エラーメッセージキーを指定するコンストラクタ
29  	 * @param min 配列の最小サイズ
30  	 * @param messageKey エラーメッセージキー
31  	 */
32  	public MinSizeValidator(final int min, final String messageKey) {
33  		this.min = min;
34  		this.setMessageKey(messageKey);
35  	}
36  
37  	public String validate(final ValidationContext ctx) {
38  		final Object value = ctx.getValue();
39  		if (value == null) {
40  			return null; 
41  		} 
42  		int size = CubbyUtils.getObjectSize(value);
43  		if (size >= min) {
44  			return null;
45  		} else {
46  			return getMessage(getPropertyMessage(ctx.getName()), min);
47  		}
48  	}
49  }