public class ValidatableFileDataReader extends FileDataReader
ValidatableFileDataReader.FileValidatorActionに実装されたバリデーションロジックを
 setValidatorAction(FileValidatorAction)から設定することができる。
 バリデーションが正常終了した場合は、入力ファイルを開きなおして本処理を行う。setUseCache(boolean)にtrueを設定することで、バリデーション時に読み込んだデータを
 メモリ上にキャッシュし、都度2回の読み込みを1回に削減することができる。| Modifier and Type | Class and Description | 
|---|---|
static interface  | 
ValidatableFileDataReader.FileValidatorAction
バリデーションを行うオブジェクトが実装するインタフェース。
 
 このインタフェースに定義されたメソッドの他に、
 以下のシグニチャを持ったメソッドをレコードタイプ毎に定義する必要がある。 
このメソッドには、対象のレコードタイプに合わせたバリデーションロジックを実装する。 public Result "do" + [レコードタイプ名](DataRecord record, ExecutionContext ctx);
  | 
DataReader.NoMoreRecord| Constructor and Description | 
|---|
ValidatableFileDataReader()
ValidatableFileDataReaderオブジェクトを生成する。 | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
close(ExecutionContext ctx)
このリーダの利用を停止し、内部的に保持している各種リソースを解放する。
 
 キャッシュを有効にしていた場合、キャッシュを削除する。 
 | 
boolean | 
hasNext(ExecutionContext ctx)
次に読み込むデータが存在するかどうかを返却する。
 
 データをキャッシュしている場合、キャッシュから結果を返却する。 
キャッシュしていない場合、データファイルから結果を返却する。  | 
protected void | 
initialize()
キャッシュを使用しない場合、ファイルリーダを初期化する。 
 | 
DataRecord | 
read(ExecutionContext ctx)
データファイルを1レコードづつ読み込む。
 
 ファイルがバリデーション済みでない場合、バリデーションを行う。 
次に読み込むレコードが存在しない場合、 nullを返す。
 
 データをキャッシュしている場合、キャッシュからデータを読み込み返却する。キャッシュしていない場合、データファイルからデータを読み込み返却する。  | 
ValidatableFileDataReader | 
setUseCache(boolean useCache)
バリデーション時に読み込んだデータをキャッシュし、本処理で使用するかどうかを設定する。 
 | 
ValidatableFileDataReader | 
setValidatorAction(ValidatableFileDataReader.FileValidatorAction validatorAction)
バリデーション処理を実装したアクションクラスを設定する。 
 | 
protected void | 
validate(ExecutionContext ctx)
バリデーションを行う。
 
 キャッシュを有効にしている場合、読み込んだデータをキャッシュする。 
無効にしている場合、入力ファイルの再読み込みを行うため、 FileDataReaderを初期化する。 | 
createFileRecordReader, getFileReader, setBufferSize, setDataFile, setDataFile, setFileReader, setLayoutFile, setLayoutFile@Published(tag="architect") public ValidatableFileDataReader()
ValidatableFileDataReaderオブジェクトを生成する。public DataRecord read(ExecutionContext ctx)
nullを返す。
 
 データをキャッシュしている場合、キャッシュからデータを読み込み返却する。read in interface DataReader<DataRecord>read in class FileDataReaderctx - 実行コンテキストpublic boolean hasNext(ExecutionContext ctx)
hasNext in interface DataReader<DataRecord>hasNext in class FileDataReaderctx - 実行コンテキストtruepublic void close(ExecutionContext ctx)
close in interface DataReader<DataRecord>close in class FileDataReaderctx - 実行コンテキストprotected void validate(ExecutionContext ctx)
FileDataReaderを初期化する。ctx - 実行コンテキストjava.lang.IllegalStateException - バリデーション処理を実装したオブジェクトがnullの場合java.lang.RuntimeException - 実行時例外が発生した場合java.lang.Error - エラーが発生した場合protected void initialize()
@Published(tag="architect") public ValidatableFileDataReader setUseCache(boolean useCache)
useCache - キャッシュを有効化する場合はtrue@Published(tag="architect") public ValidatableFileDataReader setValidatorAction(ValidatableFileDataReader.FileValidatorAction validatorAction)
validatorAction - バリデーションを実装したアクションクラスjava.lang.IllegalArgumentException - バリデーションを実装したアクションクラスがnullの場合