Package nablarch.core.validation.ee
Annotation Interface EnumElement
@Target({METHOD,FIELD,ANNOTATION_TYPE,CONSTRUCTOR,PARAMETER})
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy=EnumElementValidator.class)
@Published
public @interface EnumElement
許容する値を列挙型で指定するためのアノテーション。
入力値が
上記以外の場合は、入力値と
nullまたは空文字列の場合は、validと判定する。上記以外の場合は、入力値と
value()で指定された列挙型定数を比較し、一致するものが存在すれば検証成功と判定される。
比較ロジックは以下の通りとなる。
-
列挙型が
EnumElement.WithValueを実装していない場合、入力値と列挙型定数の名前(Enum.name()で取得した値)を比較する。 入力値はStringに制限される(それ以外の場合、実行時エラーが発生する)。 デフォルトでは、比較時に入力値及び列挙型定数の大文字小文字は区別しない。 区別する場合はcaseSensitive()をtrueに設定する(デフォルト:false)。 -
列挙型が
EnumElement.WithValueを実装している場合、入力値とEnumElement.WithValue.getValue()が返却する値を比較する。 入力値はStringもしくはNumberに制限される(それ以外の場合、実行時エラーが発生する)。 この場合、caseSensitive()を指定しても無視される。
EnumElement.WithValue.getValue()を実装した列挙型を使用する場合の例を以下に示す。
public class SampleBean {
@EnumElement(SampleEnum.class)
String sampleString;
}
public enum SampleEnum implements EnumElement.WithValue<String> {
ON("1"), OFF("0");
private final String value;
SampleEnum(String value) {
this.value = value;
}
@Override
public String getValue() {
return value;
}
}
- Author:
- Takayuki UCHIDA
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class許容値を列挙型でバリデーションするConstraintValidatorクラス。static @interface複数指定用のアノテーションstatic interfaceEnumElementで許容する列挙型の値を実装するためのインタフェース。 -
Required Element Summary
Required Elements -
Optional Element Summary
Optional Elements
-
Element Details
-
value
許容する値を含む列挙型
-
-