Class DataFileFragment

java.lang.Object
nablarch.test.core.file.DataFileFragment
Direct Known Subclasses:
FixedLengthFileFragment, VariableLengthFileFragment

public abstract class DataFileFragment extends Object
ファイルの断片を表すクラス。
1つのレコード種別とそのレコード種別に適合する複数のレコードにより構成される。
  • Field Details

    • container

      protected final DataFile container
      この断片を包含するファイル
    • names

      protected List<String> names
      フィールド名称
    • types

      protected List<String> types
      データ型のシンボル
    • lengths

      protected List<String> lengths
      フィールド長
    • values

      protected List<Map<String,String>> values
      レコードのデータ
    • FIRST_FIELD_NO

      public static final String FIRST_FIELD_NO
      最初のフィールドの値(連番)が格納されるキー
      See Also:
  • Constructor Details

    • DataFileFragment

      protected DataFileFragment(DataFile container)
      コンストラクタ。
      Parameters:
      container - 本インスタンスが所属するファイル
  • Method Details

    • setRecordType

      public void setRecordType(String recordType)
      レコード種別を設定する。
      Parameters:
      recordType - レコード種別
    • addValue

      public void addValue(List<String> line)
      値を追加する。
      Parameters:
      line - 行データ
    • addValueWithId

      public void addValueWithId(List<String> line, String no)
      最初のフィールドの値(連番)を追加する。
      Parameters:
      line - 行データ
      no - 最初のフィールドの値(連番)
    • setNames

      public void setNames(List<String> names)
      フィールド名称を設定する。
      Parameters:
      names - フィールド名称
    • setTypes

      public void setTypes(List<String> types)
      データ型のシンボルを設定する。
      データ型の要素数はフィールド名と同じでなければならない。
      Parameters:
      types - データ型のシンボル
    • getTypeForTest

      protected String getTypeForTest(int fieldIndex)
      フィールドに対するテスト用のデータ型シンボルを取得する。

      テスト用のデータ型シンボルは、通常typesのデータ型シンボルであるが、 "TEST_" というデータ型シンボルが存在した場合はこのデータ型シンボルを使用する。

      例えば下記の様なデータ型がフィールド定義に存在していた場合を考える。

      X
      X9
      TEST_X9

      この場合、このメソッドの返す値は下記のようになる。

      typesに入ったデータ型XX9
      戻り値のデータ型シンボルXTEST_X9

      Parameters:
      fieldIndex - 対象となるフィールドのインデックス
      Returns:
      テスト用のデータ型シンボル
    • getConvertorFactorySupport

      protected abstract ConvertorFactorySupport getConvertorFactorySupport()
      コンバータの生成を行うクラスを取得する。
      Returns:
      コンバータの生成を行うファクトリクラス
    • setLengths

      public void setLengths(List<String> lengths)
      フィールド長を設定する。
      フィールド長の要素数はフィールド名と同じでなければならない。
      Parameters:
      lengths - フィールド長
    • convertForDataRecord

      protected abstract Map<String,Object> convertForDataRecord(Map<String,String> value)
      テストデータ(文字列)からDataRecord用に値を変換する。
      Parameters:
      value - 元の値(文字列)
      Returns:
      変換後の値
    • convertValue

      protected abstract Object convertValue(String fieldName, String stringExpression)
      値の型変換を行う。
      Parameters:
      fieldName - フィールド名称
      stringExpression - 処理対象フィールドの文字列表現
      Returns:
      型変換された値
    • getTypeOf

      protected final String getTypeOf(String fieldName)
      フィールド名から、そのフィールドのレコードタイプを取得する。
      Parameters:
      fieldName - フィールド名
      Returns:
      レコードタイプ
    • getIndexOf

      protected final int getIndexOf(String fieldName)
      フィールド名からそのフィールドが格納されている位置(インデックス)を取得する。
      Parameters:
      fieldName - フィールド名
      Returns:
      インデックス
    • getFieldDefinition

      protected FieldDefinition getFieldDefinition(String fieldName)
      フィールド定義を取得する。
      Parameters:
      fieldName - フィールド名
      Returns:
      フィールド定義
    • removePadding

      protected Object removePadding(String fieldName, Object value, FixedLengthDataRecordFormatter formatter)
      パディングを取り除く。
      Parameters:
      fieldName - フィールド名称
      value - 処理対象となる値
      formatter - バディング除去用のフォーマッタ
      Returns:
      パディングを取り除いた値
    • getDataType

      protected DataType getDataType(String typeSymbol, FieldDefinition field, int length)
      データタイプを取得する。
      Parameters:
      typeSymbol - データタイプ名
      field - フィールド定義
      length - フィールド長
      Returns:
      データタイプ
    • createFieldDefinition

      protected abstract FieldDefinition createFieldDefinition(int fieldIndex)
      FieldDefinitionを生成する。
      設定されたデータからFieldDefinitionを生成する。
      Parameters:
      fieldIndex - 対象となるフィールドのインデックス
      Returns:
      生成したFieldDefinition
    • isSizeValid

      protected abstract boolean isSizeValid()
      各要素のサイズが妥当であるかどうか判定する。
      Returns:
      妥当である場合、真
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getLengthOf

      protected final int getLengthOf(String fieldName)
      フィールド名から、そのフィールドのフィールド長を取得する。
      Parameters:
      fieldName - フィールド名
      Returns:
      フィールド長