![JAR search and dependency download from the Maven repository](/logo.png)
com.github.mygreen.supercsv.annotation.CsvBean 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 com.github.mygreen.supercsv.builder.DefaultHeaderMapper;
import com.github.mygreen.supercsv.builder.HeaderMapper;
import com.github.mygreen.supercsv.exception.SuperCsvNoMatchHeaderException;
import com.github.mygreen.supercsv.io.CsvAnnotationBeanReader;
import com.github.mygreen.supercsv.io.CsvAnnotationBeanWriter;
import com.github.mygreen.supercsv.validation.CsvValidator;
/**
* CSVのBeanであることを表現するためのアノテーションです。
* クラスに付与します。
*
* 基本的な使い方
* CSVをマッピングするBeanのクラスに付与します。
*
*
* {@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.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CsvBean {
/**
* ヘッダーが存在することを前提として処理します。
* {@link CsvAnnotationBeanReader#readAll(boolean)}、{@link CsvAnnotationBeanWriter#writeAll(java.util.Collection, boolean)}を呼び出した際に利用します。
* @return trueの場合、読み込み時には1行目はヘッダー情報として読み込み、書き出し時にはヘッダー行が出力されるようになります。
*/
boolean header() default false;
/**
* ヘッダー行の読み込み時に、値の検証を行うか指定します。
* 部分的にカラムの読み込みを行う際、アノテーション{@link CsvPartial}で省略した見出しを定義していない場合は、属性の値をfalseに設定してください。
*
* @since 2.0
* @return trueの場合、ヘッダー行の値が定義されている値と同じかどうか検証を行います。
* ヘッダーの値が不正な場合、例外{@link SuperCsvNoMatchHeaderException}がスローされます。
*/
boolean validateHeader() default false;
/**
* カラムに対するヘッダーラベルを取得方法を指定します。
*
* @since 2.1
* @return {@link HeaderMapper}の実装クラスを指定します。
*/
Class extends HeaderMapper> headerMapper() default DefaultHeaderMapper.class;
/**
* レコードに対する値の検証を行うクラスを指定します。
* カラム間の相関チェックやBean Validationを使用する際に指定します。
*
* @since 2.0
* @return {@link CsvValidator}を実装したクラスを指定します。
* 複数指定可能で、指定した順に実行されます。
*
*/
Class extends CsvValidator>>[] validators() default {};
/**
* ライフサイクルコールバック用のリスナークラスを指定するためのアノテーション。
* @since 2.0
* @return コールバック用アノテーションを指定したメソッドを指定します。
*/
Class>[] listeners() default {};
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy