Class DataFileParser<T extends DataFile>

java.lang.Object
nablarch.test.core.reader.DataFileParser<T>
Type Parameters:
T - 解析結果の型
Direct Known Subclasses:
FixedLengthFileParser, VariableLengthFileParser

public abstract class DataFileParser<T extends DataFile> extends Object
固定長ファイルのテストデータを解析するクラス。
Author:
T.Kawasaki
  • Field Details

    • currentFile

      protected T extends DataFile currentFile
      現在処理中のファイル
    • currentFragment

      protected DataFileFragment currentFragment
      現在処理中の断片
    • status

      protected DataFileParser.Status status
      現在の処理状態
    • directory

      protected String directory
      ディレクトリ
    • resource

      protected String resource
      リソース名
  • Constructor Details

    • DataFileParser

      public DataFileParser(TestDataReader reader, List<TestDataInterpreter> interpreters, DataType targetType)
      コンストラクタ
      Parameters:
      reader - リーダ
      interpreters - 解釈クラス
      targetType - 解析対象のデータタイプ
  • Method Details

    • createNewFile

      protected abstract T createNewFile(String filePath)
      新しいファイルを生成する。
      Parameters:
      filePath - ファイルパス
      Returns:
      ファイル
    • onReadingDirectives

      protected void onReadingDirectives(List<String> line)
      ディレクティブ行を読み込む。
      Parameters:
      line - 行データ
    • onReadingNames

      protected void onReadingNames(List<String> line)
      フィールド名の行を読み込む。
      Parameters:
      line - 行データ
    • onReadingTypes

      protected void onReadingTypes(List<String> line)
      データ型行を読み込む。
      Parameters:
      line - 行データ
    • onReadingLengths

      protected void onReadingLengths(List<String> line)
      フィールド長の行を読み込む。
      Parameters:
      line - 行データ
    • onReadingValues

      protected void onReadingValues(List<String> line)
      データ行を読み込む。
      Parameters:
      line - 行データ
    • processDirectives

      protected boolean processDirectives(List<String> line)
      ディレクティブ行を処理する。
      与えられた行データがディレクティブ行の場合、ディレクティブを取得する。
      Parameters:
      line - 行データ
      Returns:
      与えられた行がディレクティブ行の場合、真
    • isDirective

      protected abstract boolean isDirective(String key)
      ディレクティブかどうか判定する。
      Parameters:
      key - キー
      Returns:
      与えられたキーがディレクティブであれば真
    • tail

      protected <TYPE> List<TYPE> tail(List<TYPE> list)
      先頭要素を削除したリストを返却する。 対象となるリストが空の場合(要素数0)、空のリストをそのまま返却する。
      Type Parameters:
      TYPE - リスト要素の型
      Parameters:
      list - 対象となるリスト
      Returns:
      先頭要素を除いたリスト
    • getTargetType

      protected final DataType getTargetType()
      解析対象のデータ型を返却する。
      Returns:
      解析対象のデータ型
    • parse

      public final void parse(String directory, String resource, String id)
      解析を実行する。

      読み込んだシートはキャッシュする。

      Parameters:
      directory - 読み込み元のディレクトリ
      resource - リソース名称
      id - ID
    • parse

      public final void parse(String directory, String resource, String id, boolean saveCache)
      解析を実行する。
      Parameters:
      directory - 読み込み元のディレクトリ
      resource - リソース名称
      id - ID
      saveCache - 読み込んだファイルのデータをキャッシュに保存するか
    • getDataType

      protected final DataType getDataType(String dataTypeCell)
      データタイプを返却する。
      Parameters:
      dataTypeCell - データタイプが記載されたセル
      Returns:
      データタイプ
    • getTypeValue

      protected final String getTypeValue(List<String> dataTypeRow)
      テストデータタイプのバリュー値を取得する。
      Parameters:
      dataTypeRow - 1行分のデータ
      Returns:
      バリュー値
    • readLine

      protected final List<String> readLine()
      テストデータから1行文のデータを読み込む。
      テストデータをすべて読み込んだ場合は、nullを返却する。
      Returns:
      1行データ