@Target(value={FIELD,ANNOTATION_TYPE}) @Retention(value=RUNTIME) @Documented @Repeatable(value=CsvDateTimeRange.List.class) @CsvConstraint(value={}) public @interface CsvDateTimeRange
日時型に指定可能です。
min()
で、下限値としての日時を指定します。
max()
で、上限値としての日時を指定します。
inclusive()
で、値の検証時に属性min()
とmax()
の値を含むかどうか指定します。
@CsvBean
public class SampleCsv {
// 値は書式に沿った形式で入力します。
@CsvColumn(number=1)
@CsvDateTimeFormat(pattern="yyyy/MM/dd")
@CsvDateTimeRange(min="1900/01/01", max="2050/12/31")
private LocalDate birthday;
// 比較する際には指定した期間内(境界値を含まない)かどうかで判定します。
@CsvColumn(number=2)
@CsvDateTimeRange(min="1970-01-01 00:00:00.000", max="9999-12-31 23:59:59.999", inclusive=false)
private Timestamp registerTime;
// getter/setterは省略
}
public abstract String min
public abstract String max
public abstract boolean inclusive
true
の場合、日時以降か、以前かどうかとして比較します。
false
の場合、値より後か、前かどうかとして比較します。public abstract String message
{key}の書式の場合、プロパティファイルから取得した値を指定できます。
使用可能なメッセージ中の変数は下記の通りです。
min()
をフィールドの型に変換した値です。max()
をフィールドの型に変換した値です。inclusive()
の値です。TextPrinter.print(Object)
でvalidatedValue, min, maxの値を文字列に変換します。CellProcessor
に基づいたメッセージが出力されます。public abstract BuildCase[] cases
public abstract Class<?>[] groups
処理ごとに適用するアノテーションを切り替えたい場合に指定します。
DefaultGroup
が適用され全ての処理に適用されます。Copyright © 2022 mygreen. All rights reserved.