All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.mygreen.supercsv.annotation.CsvBean Maven / Gradle / Ivy

Go to download

CSVのJavaライブラリであるSuperCSVに、アノテーション機能を追加したライブラリです。

There is a newer version: 2.3
Show newest version
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 headerMapper() default DefaultHeaderMapper.class; /** * レコードに対する値の検証を行うクラスを指定します。 *

カラム間の相関チェックやBean Validationを使用する際に指定します。

* * @since 2.0 * @return {@link CsvValidator}を実装したクラスを指定します。 * 複数指定可能で、指定した順に実行されます。 * */ Class>[] validators() default {}; /** * ライフサイクルコールバック用のリスナークラスを指定するためのアノテーション。 * @since 2.0 * @return コールバック用アノテーションを指定したメソッドを指定します。 */ Class[] listeners() default {}; }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy