Class DataFileFragment

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

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

    Fields
    Modifier and Type
    Field
    Description
    protected final DataFile
    この断片を包含するファイル
    static final String
    最初のフィールドの値(連番)が格納されるキー
    protected List<String>
    フィールド長
    protected List<String>
    フィールド名称
    protected List<String>
    データ型のシンボル
    protected List<Map<String,String>>
    レコードのデータ
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    コンストラクタ。
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    値を追加する。
    void
    最初のフィールドの値(連番)を追加する。
    protected abstract Map<String,Object>
    テストデータ(文字列)からDataRecord用に値を変換する。
    protected abstract Object
    convertValue(String fieldName, String stringExpression)
    値の型変換を行う。
    protected abstract nablarch.core.dataformat.FieldDefinition
    createFieldDefinition(int fieldIndex)
    FieldDefinitionを生成する。
    設定されたデータからFieldDefinitionを生成する。
    protected abstract nablarch.core.dataformat.convertor.ConvertorFactorySupport
    コンバータの生成を行うクラスを取得する。
    protected nablarch.core.dataformat.convertor.datatype.DataType
    getDataType(String typeSymbol, nablarch.core.dataformat.FieldDefinition field, int length)
    データタイプを取得する。
    protected nablarch.core.dataformat.FieldDefinition
    フィールド定義を取得する。
    protected final int
    getIndexOf(String fieldName)
    フィールド名からそのフィールドが格納されている位置(インデックス)を取得する。
    protected final int
    getLengthOf(String fieldName)
    フィールド名から、そのフィールドのフィールド長を取得する。
    protected String
    getTypeForTest(int fieldIndex)
    フィールドに対するテスト用のデータ型シンボルを取得する。
    protected final String
    getTypeOf(String fieldName)
    フィールド名から、そのフィールドのレコードタイプを取得する。
    protected abstract boolean
    各要素のサイズが妥当であるかどうか判定する。
    protected Object
    removePadding(String fieldName, Object value, nablarch.core.dataformat.FixedLengthDataRecordFormatter formatter)
    パディングを取り除く。
    void
    フィールド長を設定する。
    フィールド長の要素数はフィールド名と同じでなければならない。
    void
    フィールド名称を設定する。
    void
    setRecordType(String recordType)
    レコード種別を設定する。
    void
    データ型のシンボルを設定する。
    データ型の要素数はフィールド名と同じでなければならない。

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • 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 nablarch.core.dataformat.convertor.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 nablarch.core.dataformat.FieldDefinition getFieldDefinition(String fieldName)
      フィールド定義を取得する。
      Parameters:
      fieldName - フィールド名
      Returns:
      フィールド定義
    • removePadding

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

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

      protected abstract nablarch.core.dataformat.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:
      フィールド長