13. システム設定

13.1. システム設定の変更方法

CellProcessorを組み立てる際の動作を Configuration [ JavaDoc ]クラスでカスタマイズすることができます。

  • Configuration は、BeanMappingFactory [ JavaDoc ]から設定/取得できます。

  • BeanMappingFactoryの設定を変更した場合は、BeanMappingを CsvAnnotationBeanReaderCsvAnnoationBeanWriter に直接渡します。

 1import com.github.mygreen.supercsv.builder.BeanMapping;
 2import com.github.mygreen.supercsv.builder.BeanMappingFactory;
 3import com.github.mygreen.supercsv.builder.Configuration;
 4import com.github.mygreen.supercsv.io.CsvAnnotationBeanReader;
 5
 6import java.nio.charset.Charset;
 7import java.nio.file.Files;
 8import java.io.File;
 9
10import org.supercsv.prefs.CsvPreference;
11
12public class Sample {
13
14    // 読み込み時の指定
15    public void sampleConfiguration() {
16
17        // BeanMappingFactoryから、Configurationを取得する
18        BeanMappingFactory mappingFactory = new BeanMappingFactory();
19        Configuration config = mappingFactory.getConfiguration();
20
21        // 設定の変更
22        config.setSkipValidationOnWrite(true);
23
24        // BeanMappingオブジェクトの作成
25        BeanMapping<SampleCsv> beanMapping = mappingFactory.create(SampleCsv.class,
26            DefaultGroup.class, WriteGroup.class);  // デフォルトと書き込み用のグループクラスを指定する。
27
28        CsvAnnotationBeanReader<SampleCsv> csvReader = new CsvAnnotationBeanReader<>(
29                beanMapping, // BeanMappingのオブジェクトを直接渡します
30                Files.newBufferedReader(new File("sample.csv").toPath(), Charset.forName("Windows-31j")),
31                CsvPreference.STANDARD_PREFERENCE);
32
33        //... 以下省略
34    }
35
36}

13.2. システム設定の項目一覧

Configuration [ JavaDoc ]で設定可能な項目一覧を下記に示します。

表 - 13.2.1 システム設定の項目一覧

プロパティ名

説明

beanFactory

独自のTextFormatter/ConstraintProcessorFactory/ConversionProcessorFactoryなどの
インスタンスを作成するためのクラスです。
SpringBeanFactory に切り替えることで、Spring FrameworkのDI機能を使用することができます。

annoationComparator

アノテーションを取得する際に、順番を一定に保つために並び変えるためのクラスです。
標準のクラス AnnotationComparator [ JavaDoc ]は、アノテーションの属性「order」を元に並び変えます。

builderResolver

各タイプの ProcessorBuilder [ JavaDoc ]のインスタンスを管理するためのクラスです。
基本的に、各種アノテーションで独自のクラスタイプに対応・カスタマイズすることができますが、
既存の実装を切り替えることもできます。

skipValidationOnWrite

書き込み時の値の検証を一律でスキップするかどうか設定することができます。
デフォルトは false で値の検証を行います。