com.github.mygreen.supercsv.annotation.CsvColumn 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;
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 org.supercsv.cellprocessor.ift.CellProcessor;
import com.github.mygreen.supercsv.builder.ProcessorBuilder;
/**
* CSVのカラムであることを表現するためのアノテーションです。
* フィールドに付与します。
*
* 基本的な使い方
*
* - 属性{@link #number()}でカラムの番号を指定します。
*
値は1から始まります。
*
* - ヘッダー行が存在する場合、属性{@link #label()}で見出しの値を指定します。
*
省略した場合、フィールド名が適用されます。
*
*
*
*
* {@literal @CsvBean}
* public class SampleCsv {
*
* {@literal @CsvColumn(number=1)}
* private int no;
*
* {@literal @CsvColumn(number=2, label="名前")}
* private String name;
*
* // getter/setterは省略
* }
*
*
* @version 2.1
* @author T.TSUCHIE
*
*/
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CsvColumn {
/**
* 列番号を指定します。
* 他のカラムの値との重複は許可しません。
* @return 番号は1から始まります。
*/
int number() default 0;
/**
* 見出しとなるラベルを指定します。
* @return 指定しない場合、フィールド名が適用されます。
*/
String label() default "";
/**
* 独自の{@link ProcessorBuilder}を指定して{@link CellProcessor} を組み立てたい場合に指定します。
* サポートしていないクラスタイプに対応するときなどに指定します。
* @return {@link ProcessorBuilder}を実装したクラスを指定します。
*/
@SuppressWarnings("rawtypes")
Class extends ProcessorBuilder>[] builder() default {};
}