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を参照。
本バリデータを使用するには許容文字集合とメッセージIDのデフォルト値を設定する必要がある。 次の例では上で定義した許容文字集合 "smallLetter" をデフォルトの許容文字集合に、 メッセージID "MSG90001" をデフォルトのメッセージIDに設定する。<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>
<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
-
Method Summary
Modifier and TypeMethodDescriptioncreateAnnotation
(Map<String, Object> params) 指定されたパラメータを属性値とするアノテーションオブジェクトを作成する。Class<? extends Annotation>
対応するアノテーションのクラスを取得する。protected String
getMessageIdFromAnnotation
(SystemChar annotation) アノテーションからメッセージIDを取得する。protected boolean
isValid
(SystemChar annotation, String value) 有効文字以外が入力されていないかをチェックする。void
setAllowSurrogatePair
(boolean allowSurrogatePair) サロゲートペアを許容するかどうかを設定する。void
setDefaultCharsetDef
(CharsetDef defaultCharsetDef) デフォルトの許容文字集合定義を設定する。Methods inherited from class nablarch.core.validation.validator.CharacterLimitationValidator
setMessageId, validateSingleValue
Methods inherited from class nablarch.core.validation.validator.StringValidatorSupport
validate, validate
-
Constructor Details
-
SystemCharValidator
public SystemCharValidator()
-
-
Method Details
-
isValid
有効文字以外が入力されていないかをチェックする。- Specified by:
isValid
in classCharacterLimitationValidator<SystemChar>
- Parameters:
annotation
- アノテーションvalue
- バリデーション対象の値(null以外)- Returns:
- 有効文字以外が入力されていない場合true
-
getMessageIdFromAnnotation
アノテーションからメッセージIDを取得する。指定された
SystemChar
がメッセージIDをを持つ場合は、 そのメッセージIDを返却する。SystemChar
がメッセージIDを持たない場合は、CharsetDef
が持つメッセージIDを返却する。- Specified by:
getMessageIdFromAnnotation
in 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:
createAnnotation
in classStringValidatorSupport<SystemChar>
- Parameters:
params
- アノテーションの属性値を格納したMap- Returns:
- アノテーション
-