@Target(value=ANNOTATION_TYPE) @Retention(value=RUNTIME) @Documented public @interface CsvConstraint
制約のアノテーションには必ず付与します。
ElementType.FIELDとElementType.ANNOTATION_TYPEの2つを指定します。
ElementType.ANNOTATION_TYPEを追加しておきます。
value()で、ConstraintProcessorFactoryの実装クラスを指定します。
// 独自の値の検証用のアノテーション
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Repeatable(CsvCustomConstraint.List.class)
@CsvConstraint(CustomConstratinFactory.class) // ファクトリクラスを指定
public @interface CsvCustomConstraint {
// 固有の属性 - 必要であれば定義します。
String text();
// 共通の属性 - ケース
BuildCase[] cases() default {};
// 共通の属性 - グループ
Class<?>[] groups() default {};
// 共通の属性 - 並び順
int order() default 0;
// 繰り返しのアノテーションの格納用アノテーションの定義
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@interface List {
CsvCustomConstraint[] value();
}
}
| 修飾子とタイプ | 必須要素と説明 |
|---|---|
Class<? extends ConstraintProcessorFactory<?>>[] |
value
アノテーションに対応したCellProcessorを作成するファクトリクラスを指定します。
|
public abstract Class<? extends ConstraintProcessorFactory<?>>[] value
省略した場合、AbstractProcessorBuilder.registerForConstraint(Class, ConstraintProcessorFactory)で手動で登録する必要があります。
ConstraintProcessorFactoryを実装したクラスを指定します。Copyright © 2025 mygreen. All rights reserved.