com.github.mygreen.supercsv.annotation.conversion.CsvNullConvert 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.conversion;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import com.github.mygreen.supercsv.annotation.DefaultGroup;
import com.github.mygreen.supercsv.builder.BuildCase;
/**
* 指定した値と一致したときにnullに変換するためのアノテーションです。
*
* 基本的な使い方
*
*
* - 属性{@link #value()}で、変換対象の値を指定します。
*
複数指定可能です。
*
* - 比較する際に、大文字・小文字の区別を付けたくない場合は、属性{@link #ignoreCase()}の値を{@literal true}にします。
* - アノテーション{@link CsvDefaultValue}と併用する際には、処理結果が互いに変換対象となるため、
* 属性{@link #cases()}や{@link #groups()}で適用するケースを分けるようにしてください。
*
*
*
*
* {@literal @CsvBean}
* public class SampleCsv {
*
* // 複数指定可能です
* {@literal @CsvColumn(number=1)}
* {@literal @CsvNullConvert({"-", "N/A"})}
* private Integer value;
*
* // 大文字・小文字の区別を行わない場合
* {@literal @CsvColumn(number=2)}
* {@literal @CsvNullConvert(value={"-", "N/A"}, ignoreCase=true)}
* private Integer salary;
*
* // 読み込み時のみ適用する場合
* {@literal @CsvColumn(number=3)}
* {@literal @CsvNullConvert(value="-", cases=BuildCase.Read)}
* private String comment;
*
* // getter/setterは省略
* }
*
*
* @since 2.0
* @author T.TSUCHIE
*
*/
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Repeatable(CsvNullConvert.List.class)
@CsvConversion(value={})
public @interface CsvNullConvert {
/**
* 変換対象の値を指定します。
* @return 変換対象となる値を指定します。
*
*/
String[] value();
/**
* 値を比較する際に大文字・小文字の区別を行わないかどうか指定します。
* @return trueの場合、大文字・小文字の区別を行いません。
*/
boolean ignoreCase() default false;
/**
* 適用するケースを指定します。
* @return 何も指定しない場合は全てのケースに適用されます。
*/
BuildCase[] cases() default {};
/**
* グループのクラスを指定します。
* 処理ごとに適用するアノテーションを切り替えたい場合に指定します。
* @return 指定しない場合は、{@link DefaultGroup}が適用され全ての処理に適用されます。
*/
Class>[] groups() default {};
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@interface List {
CsvNullConvert[] value();
}
}