com.github.mygreen.supercsv.builder.Configuration 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.builder;
import java.lang.annotation.Annotation;
import java.util.Comparator;
import org.supercsv.cellprocessor.ift.CellProcessor;
/**
* {@link CellProcessor}を組み立てる際の設定を保持するクラス。
*
* @since 2.0
* @author T.TSUCHIE
*
*/
public class Configuration {
/**
* Beanのインスタンスの作成クラス
*/
private BeanFactory, Object> beanFactory = new DefaultBeanFactory();
/**
* アノテーションを一定の順序に並び変えるクラス。
*/
private Comparator annoationComparator = new AnnotationComparator();
/**
* フィールドのタイプに対して{@link ProcessorBuilder}を解決するクラス。
*/
private ProcessorBuilderResolver builderResolver = new ProcessorBuilderResolver();
/**
* 書き込み時に入力値検証処理をスキップするかどうか。
*/
private boolean skipValidationOnWrite = false;
public Configuration() {
}
/**
* Beanを生成するためのFactoryクラスを取得します。
* アノテーションの属性でクラスが指定された場合に、インスタンスを取得・作成するときに利用します。
* @return 実装クラスを取得します。
*/
public BeanFactory, Object> getBeanFactory() {
return beanFactory;
}
/**
* Beanを生成するためのFactoryクラスを設定します。
* アノテーションの属性でクラスが指定された場合に、インスタンスを取得・作成するときに利用します。
* @param beanFactory 実装クラスを指定します。
*/
public void setBeanFactory(BeanFactory, Object> beanFactory) {
this.beanFactory = beanFactory;
}
/**
* アノテーションの一定の順序に並び変えるクラスを取得します。
* 入力値検証や変換処理の順序を一定にするために使用します。
* デフォルトでは、{@link AnnotationComparator}が設定されています。
* @return {@link Comparator}の実装を取得する。
*/
public Comparator getAnnoationComparator() {
return annoationComparator;
}
/**
* アノテーションの一定の順序に並び変えるクラスを設定します。
* 入力値検証や変換処理の順序を一定にするために使用します。
* デフォルトでは、{@link AnnotationComparator}が設定されています。
*
* @param annoationComparator {@link Comparator}の実装
*/
public void setAnnoationComparator(Comparator annoationComparator) {
this.annoationComparator = annoationComparator;
}
/**
* フィールドのタイプに対して{@link ProcessorBuilder}を解決するクラスを取得します。
* 対応していないタイプに対応するときなど、このクラスに{@link ProcessorBuilder}の実装を登録します。
* @return 既存の{@link ProcessorBuilderResolver}を取得して、設定を変更する際に利用します。
*/
public ProcessorBuilderResolver getBuilderResolver() {
return builderResolver;
}
/**
* フィールドのタイプに対して{@link ProcessorBuilder}を解決するクラスを設定します。
* 対応していないタイプに対応するときなど、このクラスに{@link ProcessorBuilder}の実装を登録します。
* @param builderResolver 新しく{@link ProcessorBuilderResolver}を設定する際に利用します。
*/
public void setBuilderResolver(ProcessorBuilderResolver builderResolver) {
this.builderResolver = builderResolver;
}
/**
* 書き込み時に入力値検証をスキップするかどうかを取得します。
* 初期値は、{@literal false}で、入力値検証を行いまます。
* @return {@literal true}の場合、制約のCellProcessorやレコードのValidatorがスキップされます。
*/
public boolean isSkipValidationOnWrite() {
return skipValidationOnWrite;
}
/**
* 書き込み時に入力値検証をスキップするかどうかを設定します。
* @param skipValidationOnWrite {@literal true}の場合、制約のCellProcessorやレコードのValidatorがスキップされます。
*/
public void setSkipValidationOnWrite(boolean skipValidationOnWrite) {
this.skipValidationOnWrite = skipValidationOnWrite;
}
}