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

com.github.mygreen.supercsv.builder.Configuration Maven / Gradle / Ivy

Go to download

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

There is a newer version: 2.3
Show newest version
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; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy