public class SystemCharValidator extends CharacterLimitationValidator<SystemChar>
   SystemCharアノテーションで設定された許容文字であるかをバリデーションする。
   
使用するための設定
許容文字集合 "smallLetter" を次のように定義する。 許容文字集合の定義方法は、範囲指定やリテラル指定などいくつかあるので、詳細はnablarch.core.validation.validator.unicodeパッケージのjavadocを参照。
   
      <component name="smallLetter" class="nablarch.core.validation.validator.unicode.RangedCharsetDef ">
         <property name="startCodePoint" value="U+0061" />
         <property name="endCodePoint" value="U+007A" />
         <property name="messageId" value="MSG00002" />
     </component>
   
   本バリデータを使用するには許容文字集合とメッセージIDのデフォルト値を設定する必要がある。
   次の例では上で定義した許容文字集合 "smallLetter" をデフォルトの許容文字集合に、
   メッセージID "MSG90001" をデフォルトのメッセージIDに設定する。
   
      <component class="nablarch.core.validation.validator.unicode.SystemCharValidator">
         <!-- 定義した許容文字集合を設定 -->
         <property name="defaultCharsetDef" ref="smallLetter"/>
         <property name="messageId" value="MSG90001"/>
     </component>
   
   
   プロパティごとの設定
プロパティごとのバリデーションの内容を設定するにはSystemCharアノテーションで設定する。
   バリデーション内容として、別途定義された許容文字集合 "passCharacter"、メッセージID "PASSWORD" を設定する場合は
   SystemCharアノテーションを次のように記述する。
   
      @PropertyName("パスワード")
      @SystemChar(charsetDef = "passCharacter", messageId = "PASSWORD")
     public void setConfirmPassword(String confirmPassword) {
         this.confirmPassword = confirmPassword;
     }
   
   使用されるメッセージIDの優先順位
メッセージIDはSystemChar, CharsetDef, SystemCharValidatorのそれぞれで設定できるが、
   使用するメッセージIDの優先順はSystemChar, CharsetDef, SystemCharValidatorの順となる。
   例えば、全てにメッセージIDが指定されていた場合はSystemCharで指定されているメッセージIDが使用される。
 | Constructor and Description | 
|---|
SystemCharValidator()  | 
| Modifier and Type | Method and Description | 
|---|---|
SystemChar | 
createAnnotation(java.util.Map<java.lang.String,java.lang.Object> params)
指定されたパラメータを属性値とするアノテーションオブジェクトを作成する。 
 | 
java.lang.Class<? extends java.lang.annotation.Annotation> | 
getAnnotationClass()
対応するアノテーションのクラスを取得する。 
 | 
protected java.lang.String | 
getMessageIdFromAnnotation(SystemChar annotation)
アノテーションからメッセージIDを取得する。 
 | 
protected boolean | 
isValid(SystemChar annotation,
       java.lang.String value)
有効文字以外が入力されていないかをチェックする。 
 | 
void | 
setAllowSurrogatePair(boolean allowSurrogatePair)
サロゲートペアを許容するかどうかを設定する。 
 | 
void | 
setDefaultCharsetDef(CharsetDef defaultCharsetDef)
デフォルトの許容文字集合定義を設定する。 
 | 
setMessageId, validateSingleValuevalidate, validateprotected boolean isValid(SystemChar annotation, java.lang.String value)
isValid in class CharacterLimitationValidator<SystemChar>annotation - アノテーションvalue - バリデーション対象の値(null以外)protected java.lang.String getMessageIdFromAnnotation(SystemChar annotation)
 指定されたSystemCharがメッセージIDをを持つ場合は、
 そのメッセージIDを返却する。
 SystemCharがメッセージIDを持たない場合は、
 CharsetDefが持つメッセージIDを返却する。
 
getMessageIdFromAnnotation in class CharacterLimitationValidator<SystemChar>annotation - メッセージIDを取得するアノテーションpublic java.lang.Class<? extends java.lang.annotation.Annotation> getAnnotationClass()
public void setAllowSurrogatePair(boolean allowSurrogatePair)
 デフォルトでは許容しない。サロゲートペアを許容すると、
 文字列のchar数(String.length())と
 コードポイント数(String.codePointCount(int, int))が
 合致しない文字列を扱うことになり、影響が非常に広範に渡るため
 デフォルトでは許容しない設定となっている。
 
allowSurrogatePair - サロゲートペアを許容する場合、真String.codePointCount(int, int), 
String.length()public void setDefaultCharsetDef(CharsetDef defaultCharsetDef)
 SystemChar.charsetDef()が設定されていない場合、
 この許容文字集合定義が使用される。
 
defaultCharsetDef - デフォルトの許容文字集合定義public SystemChar createAnnotation(java.util.Map<java.lang.String,java.lang.Object> params)
createAnnotation in class StringValidatorSupport<SystemChar>params - アノテーションの属性値を格納したMap