13. システム設定
13.1. システム設定の変更方法
CellProcessorを組み立てる際の動作を Configuration
[ JavaDoc ]クラスでカスタマイズすることができます。
Configuration は、
BeanMappingFactory
[ JavaDoc ]から設定/取得できます。
Spring Frameworkとの連携 を行う場合は、BeanMappingFactoryの変更を行います。
BeanMappingFactoryの設定を変更した場合は、BeanMappingを
CsvAnnotationBeanReader
やCsvAnnoationBeanWriter
に直接渡します。
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 ]で設定可能な項目一覧を下記に示します。
プロパティ名 |
説明 |
---|---|
beanFactory |
独自のTextFormatter/ConstraintProcessorFactory/ConversionProcessorFactoryなどの
インスタンスを作成するためのクラスです。
SpringBeanFactory に切り替えることで、Spring FrameworkのDI機能を使用することができます。 |
annoationComparator |
アノテーションを取得する際に、順番を一定に保つために並び変えるためのクラスです。
標準のクラス
AnnotationComparator [ JavaDoc ]は、アノテーションの属性「order」を元に並び変えます。 |
builderResolver |
各タイプの
ProcessorBuilder [ JavaDoc ]のインスタンスを管理するためのクラスです。基本的に、各種アノテーションで独自のクラスタイプに対応・カスタマイズすることができますが、
既存の実装を切り替えることもできます。
|
skipValidationOnWrite |
書き込み時の値の検証を一律でスキップするかどうか設定することができます。
デフォルトは false で値の検証を行います。
|