Coverage Report - org.seasar.cubby.validator.validators.MaxLengthValidator
 
Classes in this File Line Coverage Branch Coverage Complexity
MaxLengthValidator
100%
6/6
N/A
3.333
 
 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  
 /**
 8  
  * ?大?字数を検証します??<p>
 9  
  * String#length()メソ?ドで?字??長さを求めます?文字??バイト数でな?こと、半角?角も1?字としてカウントされることに注意してください?
 10  
  * @author agata
 11  
  * @see String#length()
 12  
  */
 13  
 public class MaxLengthValidator extends BaseValidator {
 14  
 
 15  
         /**
 16  
          * ?大?字数
 17  
          */
 18  
         private final int max;
 19  
 
 20  
         /**
 21  
          * コンストラクタ
 22  
          * @param max ?大?字数
 23  
          */
 24  
         public MaxLengthValidator(final int max) {
 25  6
                 this(max, "valid.maxLength");
 26  6
         }
 27  
 
 28  
         /**
 29  
          * エラーメ?セージキーを指定するコンストラクタ
 30  
          * @param max ?大?字数
 31  
          * @param messageKey エラーメ?セージキー
 32  
          */
 33  6
         public MaxLengthValidator(final int max, final String messageKey) {
 34  6
                 this.max = max;
 35  6
                 this.setMessageKey(messageKey);
 36  6
         }
 37  
 
 38  
         public String validate(final ValidationContext ctx) {
 39  
                 final Object value = ctx.getValue();
 40  
                 if (value instanceof String) {
 41  
                         String str = (String) value;
 42  
                         if (StringUtil.isEmpty((String) value)) {
 43  
                                 return null;
 44  
                         }
 45  
                         if (str.length() <= max) {
 46  
                                 return null;
 47  
                         }
 48  
                 } else if (value == null) {
 49  
                         return null;
 50  
                 }
 51  
                 return getMessage(getPropertyMessage(ctx.getName()), max);
 52  
         }
 53  
 }