
com.github.mygreen.supercsv.annotation.format.CsvEnumFormat Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of super-csv-annotation Show documentation
Show all versions of super-csv-annotation Show documentation
CSVのJavaライブラリであるSuperCSVに、アノテーション機能を追加したライブラリです。
package com.github.mygreen.supercsv.annotation.format;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.Collection;
import org.supercsv.cellprocessor.ift.CellProcessor;
/**
* 列挙型の書式を定義するためのアノテーションです。
*
* @version 2.0
* @author T.TSUCHIE
*
*/
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CsvEnumFormat {
/**
* 読み込み時に、大文字・小文字を区別なく候補の値と比較して処理するか指定します。
* @return trueの場合、大文字・小文字の区別は行いません。
*/
boolean ignoreCase() default false;
/**
* 列挙型を{@link Enum#name()}メソッド以外から取得するときに指定します。
* 例). Color.label()のlabel()メソッドを指定するときには、'label'と指定します。
* @return 独自に実装した引数なしの文字列型を返すメソッドを指定します。省略した場合は、{@link Enum#name()}から取得できる値が採用されます。
*/
String selector() default "";
/**
* エラー時のメッセージを指定します。
*
{@literal {key}}の書式の場合、プロパティファイルから取得した値を指定できます。
* このメッセージは、文字列を列挙型にパースする際に失敗したときに適用されるメッセージに使用します。
*
* 使用可能なメッセージ中の変数は下記の通りです。
*
* - lineNumber : カラムの値に改行が含まれている場合を考慮した実際の行番号です。1から始まります。
* - rowNumber : CSVの行番号です。1から始まります。
* - columnNumber : CSVの列番号です。1から始まります。
* - label : カラムの見出し名です。
* - validatedValue : 実際のカラムの値です。
* - ignoreCase : アノテーションの属性{@link #ignoreCase()}の値です。
* - selector : アノテーションの属性{@link #selector()}の値です。
* - enums : 列挙型の値を{@link Collection}型に変換した値です。
*
*
* @return 省略した場合は、適用された{@link CellProcessor}に基づいたメッセージが出力されます。
*/
String message() default "{com.github.mygreen.supercsv.annotation.format.CsvEnumFormat.message}";
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy