jp.terasoluna.fw.ex.unit.io.impl
クラス CsvSource<T>
java.lang.Object
jp.terasoluna.fw.ex.unit.io.impl.AbstractInputSource<T>
jp.terasoluna.fw.ex.unit.io.impl.CsvSource<T>
- すべての実装されたインタフェース:
- InputSource<T>
public class CsvSource<T>
- extends AbstractInputSource<T>
CSVファイルから入力ソースオブジェクトを生成します。
コンストラクタまたはsetterにて以下のパラメータを指定します。またAbstractInputSource
で設定可能なパラメータも指定できます。
パラメータ名 |
説明 |
設定箇所 |
必須 |
file |
CSVファイル名または、java.io.File オブジェクト オブジェクト |
コンストラクタ |
○ |
clazz |
CSVからマッピングするBeanのクラス |
コンストラクタ |
○ |
hasHeader |
読み込むCSVファイルにヘッダ行があるかどうか。 デフォルトはtrueであり、先頭行を読み込んでheader(Stringの配列)を作成します。
ヘッダ行がないCSVファイルを読み込む場合、hasHeaderをfalseにした上で
setHeader(String[])
により独自にheaderを設定してください。この場合、一行目からデータ部として扱われます。 |
setter |
|
lineSplitter |
CVSデータ一行分の文字列をStringの配列にするための処理。デフォルトではDefaultLineSplitter
を使用して、半角カンマ区切りで配列を作成します。 |
setter |
|
populator |
CVSデータ一行分のStringの配列からclazzで設定したクラスのオブジェクトを生成する処理。デフォルトでは
DefaultPopulator を使用します。 |
setter |
|
encoding |
CSVファイルのエンコーディング。デフォルトはMS932です。 |
setter |
|
以下の例にて使用法を説明します。
person.csvの内容を以下とします。
ID,NAME,ADDRESS
1,田中,東京
2,鈴木,大阪
3,山田,神奈川
4,山本,福岡
これに対してマッピングするクラスを以下とします。
public class Person {
private Integer id;
private Sring name;
private String address;
// setter/getterは略
}
【データ比較機能】
業務処理の結果としてPersonクラスのリストが作成される際に、このCSVの内容が期待値となる場合、次のように比較することができます。
// CSVファイルから入力ソースを作成する
CsvSource<Person> source = new CsvSource<Person>("person.csv", Person.class);
// 業務処理の結果
List<Person> result = ...;
// 業務処理の結果とCSVの内容を比較する
AssertUtils
.assertInputEquals(source, result);
【データ保存機能】
// 試験データをPersonテーブルに保存します
source.to(new DbTarget
<Person>(jdbcTemplate, Person.class));
クラス java.lang.Object から継承されたメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CsvSource
public CsvSource(File input,
Class<T> clazz)
- コンストラクタ。
- パラメータ:
input
- CSVファイルclazz
- マッピングするクラス
CsvSource
public CsvSource(String path,
Class<T> clazz)
throws UTRuntimeException
- コンストラクタ。
与えられたCSVファイルパスがクラスパス上に存在する場合は、そのファイルを使用します。
そうでない場合は与えられたCSVファイルパスをFile
クラスのコンストラクタに渡して
File
オブジェクトを作成します。
- パラメータ:
path
- CSVファイルパス名clazz
- マッピングするクラス
- 例外:
UTRuntimeException
- CSVファイルパスからのFile
オブジェクトの作成に失敗した場合
populate
protected T populate(String line)
getIterator
public Iterator<T> getIterator()
- インタフェース
InputSource
の記述:
- 入力ソースからイテレータを作成します。
- 戻り値:
- イテレータ
setHasHeader
public void setHasHeader(boolean hasHeader)
setPopulator
public void setPopulator(Populator<T> populate)
setLineSplitter
public void setLineSplitter(LineSplitter lineSplitter)
- パラメータ:
lineSplitter
- セットする lineSplitter
setEncoding
public void setEncoding(String encoding)
- パラメータ:
encoding
- セットする encoding
setHeader
public void setHeader(String[] header)
- オーバーライド:
- クラス
AbstractInputSource<T>
内の setHeader
Copyright © 2011. All Rights Reserved.