public class CodeValueValidator extends StringValidatorSupport<CodeValue>
CodeValue
で指定したコード値と、プロパティの値が合致するかチェックする。
使用するための設定
本バリデータを使用するためにはデフォルトのメッセージIDを指定する必要がある。
<component name="codeValueValidator" class="nablarch.common.code.validator.CodeValueValidator">
<property name="messageId" value="MSGXXXXXX"/>
</component>
プロパティの設定
プロパティのセッタにCodeValue
アノテーションを次のように設定する。
genderがcodeIdとpatternで選択された値と合致するかチェック@PropertyName("性別")
@CodeValue(codeId="0001", pattern="PATTERN1")
public String setGender(String gender) { this.gender = gender; }
genderがコード値として有効であるかのみをチェック@PropertyName("性別")
@CodeValue(codeId="0001")
public String setGender(String gender) { this.gender = gender; }
Constructor and Description |
---|
CodeValueValidator() |
Modifier and Type | Method and Description |
---|---|
CodeValue |
createAnnotation(java.util.Map<java.lang.String,java.lang.Object> params)
指定されたパラメータを属性値とするアノテーションオブジェクトを作成する。
|
java.lang.Class<? extends java.lang.annotation.Annotation> |
getAnnotationClass()
対応するアノテーションのクラスを取得する。
|
void |
setMessageId(java.lang.String messageId)
コードに含まれない値が指定された場合のデフォルトのエラーメッセージのメッセージIDを設定する。
例 : "{0}には\"{1}\"のいずれかの値を指定してください。" ※通常コードは画面上のドロップダウンやセレクトボックスで選択することが多い。 この場合、このエラーメッセージはプログラムバグかユーザによるプログラム改竄以外に表示されることはない。 このため、本エラーメッセージはインプットボックスでコードを入力するという特殊な入力を行う画面以外では使用されない。 |
<T> boolean |
validateSingleValue(ValidationContext<T> context,
java.lang.String propertyName,
java.lang.Object propertyDisplayObject,
CodeValue codeValue,
java.lang.String value)
1つの入力値に対するバリデーションを行う。
|
validate, validate
public void setMessageId(java.lang.String messageId)
messageId
- コードに含まれない値が指定された場合のデフォルトのエラーメッセージのメッセージIDpublic java.lang.Class<? extends java.lang.annotation.Annotation> getAnnotationClass()
public <T> boolean validateSingleValue(ValidationContext<T> context, java.lang.String propertyName, java.lang.Object propertyDisplayObject, CodeValue codeValue, java.lang.String value)
validateSingleValue
in class StringValidatorSupport<CodeValue>
T
- バリデーション結果で取得できる型context
- バリデーションコンテキストpropertyName
- プロパティ名propertyDisplayObject
- プロパティの表示名オブジェクトcodeValue
- アノテーションvalue
- バリデーション対象の値public CodeValue createAnnotation(java.util.Map<java.lang.String,java.lang.Object> params)
StringValidatorSupport
createAnnotation
in class StringValidatorSupport<CodeValue>
params
- アノテーションの属性値を格納したMap