Class SystemCharValidator
java.lang.Object
nablarch.core.validation.validator.StringValidatorSupport<A>
nablarch.core.validation.validator.CharacterLimitationValidator<SystemChar>
nablarch.core.validation.validator.unicode.SystemCharValidator
- All Implemented Interfaces:
DirectCallableValidator,Validator
システム許容文字のみからなる文字列であるかをチェックするクラス。
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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateAnnotation(Map<String, Object> params) 指定されたパラメータを属性値とするアノテーションオブジェクトを作成する。Class<? extends Annotation>対応するアノテーションのクラスを取得する。protected StringgetMessageIdFromAnnotation(SystemChar annotation) アノテーションからメッセージIDを取得する。protected booleanisValid(SystemChar annotation, String value) 有効文字以外が入力されていないかをチェックする。voidsetAllowSurrogatePair(boolean allowSurrogatePair) サロゲートペアを許容するかどうかを設定する。voidsetDefaultCharsetDef(CharsetDef defaultCharsetDef) デフォルトの許容文字集合定義を設定する。Methods inherited from class nablarch.core.validation.validator.CharacterLimitationValidator
setMessageId, validateSingleValueMethods inherited from class nablarch.core.validation.validator.StringValidatorSupport
validate, validate
-
Constructor Details
-
SystemCharValidator
public SystemCharValidator()
-
-
Method Details
-
isValid
有効文字以外が入力されていないかをチェックする。- Specified by:
isValidin classCharacterLimitationValidator<SystemChar>- Parameters:
annotation- アノテーションvalue- バリデーション対象の値(null以外)- Returns:
- 有効文字以外が入力されていない場合true
-
getMessageIdFromAnnotation
アノテーションからメッセージIDを取得する。指定された
SystemCharがメッセージIDをを持つ場合は、 そのメッセージIDを返却する。SystemCharがメッセージIDを持たない場合は、CharsetDefが持つメッセージIDを返却する。- Specified by:
getMessageIdFromAnnotationin classCharacterLimitationValidator<SystemChar>- Parameters:
annotation- メッセージIDを取得するアノテーション- Returns:
- アノテーションから取得したメッセージID
-
getAnnotationClass
対応するアノテーションのクラスを取得する。- Returns:
- 対応するアノテーションのクラス
-
setAllowSurrogatePair
public void setAllowSurrogatePair(boolean allowSurrogatePair) サロゲートペアを許容するかどうかを設定する。デフォルトでは許容しない。サロゲートペアを許容すると、 文字列のchar数(
String.length())と コードポイント数(String.codePointCount(int, int))が 合致しない文字列を扱うことになり、影響が非常に広範に渡るため デフォルトでは許容しない設定となっている。- Parameters:
allowSurrogatePair- サロゲートペアを許容する場合、真- See Also:
-
setDefaultCharsetDef
デフォルトの許容文字集合定義を設定する。SystemChar.charsetDef()が設定されていない場合、 この許容文字集合定義が使用される。- Parameters:
defaultCharsetDef- デフォルトの許容文字集合定義
-
createAnnotation
指定されたパラメータを属性値とするアノテーションオブジェクトを作成する。- Specified by:
createAnnotationin classStringValidatorSupport<SystemChar>- Parameters:
params- アノテーションの属性値を格納したMap- Returns:
- アノテーション
-