@Target(value={FIELD,ANNOTATION_TYPE}) @Retention(value=RUNTIME) @Documented @Repeatable(value=CsvWordRequire.List.class) @CsvConstraint(value={}) public @interface CsvWordRequire
文字列型に指定可能です。
属性value()で語彙を指定します。
@CsvBean
public class SampleCsv {
@CsvColumn(number=1)
@CsvWordRequire({"名前", "住所"})
private String comment;
// setter/getterは省略
}
語彙をDBやファイルなどの別リソースから取得する場合は、属性provider()にて、
プロバイダRequiredWordProviderの実装クラスを指定します。
Spring Frameworkと連携している場合は、プロバイダクラスをSpringBeanとして登録しておくことでインジェクションできます。
@CsvBean
public class SampleCsv {
@CsvColumn(number=1)
@CsvWordForbid(provider=FileRequiredWordProvider.class)
private String comment;
// setter/getterは省略
}
// プロバイダクラスの実装(ファイルから語彙を取得する)
public class FileRequiredWordProvider implements RequiredWordProvider {
@Override
public Collection<String> getRequiredWords(final FieldAccessor field) {
try {
return Files.readAllLines(
new File("required_word.txt").toPath(), Charset.forName("UTF-8"));
} catch (IOException e) {
throw new RuntimeException("fail reading the required words file.", e);
}
}
}
public abstract String[] value
DBやファイルなどから語彙を取得する場合は、provider()を指定します。
public abstract Class<? extends RequiredWordProvider>[] provider
RequiredWordProviderの実装クラスを指定します。public abstract String message
{key}の書式の場合、プロパティファイルから取得した値を指定できます。
使用可能なメッセージ中の変数は下記の通りです。
Collectionです。CellProcessorに基づいたメッセージが出力されます。public abstract BuildCase[] cases
public abstract Class<?>[] groups
処理ごとに適用するアノテーションを切り替えたい場合に指定します。
DefaultGroupが適用され全ての処理に適用されます。Copyright © 2025 mygreen. All rights reserved.