Class LayoutFileParser

java.lang.Object
nablarch.core.dataformat.LayoutFileParser

public class LayoutFileParser extends Object
フォーマット定義ファイルのLL(1)パーサ。
Author:
Iwauo Tajima
  • Constructor Details

    • LayoutFileParser

      @Published(tag="architect") public LayoutFileParser(String filePath)
      コンストラクタ。
      Parameters:
      filePath - フォーマット定義ファイルのパス
    • LayoutFileParser

      @Published(tag="architect") public LayoutFileParser(String filePath, String encoding)
      コンストラクタ。 フォーマット定義ファイルのエンコーディングを指定する。
      Parameters:
      filePath - フォーマット定義ファイルのパス
      encoding - フォーマット定義ファイルのエンコーディング
  • Method Details

    • createDefinition

      protected LayoutDefinition createDefinition(String filePath)
      パース結果を格納するクラスを生成し、フィールドに設定する。
      Parameters:
      filePath - フォーマット定義ファイルのパス
      Returns:
      パース結果を格納するクラス
    • parse

      @Published(tag="architect") public LayoutDefinition parse() throws SyntaxErrorException
      フォーマット定義ファイルをパースし、その内容を渡されたオブジェクトに設定する。
      Returns:
      パース結果オブジェクト
      Throws:
      SyntaxErrorException - フォーマット定義ファイル内に構文エラーが存在した場合。
    • directives

      public void directives(LayoutDefinition definition)
      共通設定部をパースする。
      Parameters:
      definition - フォーマット定義情報保持クラス
    • directive

      public void directive(LayoutDefinition definition)
      動作設定(ディレクティブ)を読み込む。
      Parameters:
      definition - フォーマット定義情報保持クラス
    • recordFormats

      public void recordFormats(LayoutDefinition layout)
      レコードタイプ定義部をパースする。
      Parameters:
      layout - フォーマット定義情報保持クラス
    • recordFormat

      public void recordFormat(LayoutDefinition layout)
      レコード定義を読み込む。
      Parameters:
      layout - フォーマット定義情報保持クラス
    • fieldFormats

      public void fieldFormats(LayoutDefinition layout, RecordDefinition record)
      フィールド定義部をパースする。
      Parameters:
      layout - フォーマット定義情報保持クラス
      record - レコードフォーマット定義
    • conditionalStatements

      public void conditionalStatements(RecordDefinition record)
      レコードタイプ判定条件定義部を読み込む
      Parameters:
      record - レコードフォーマット定義
    • conditionalStatement

      public void conditionalStatement(RecordDefinition record)
      レコードタイプ判定条件を読み込む
      Parameters:
      record - レコードフォーマット定義
    • fieldFormat

      public FieldDefinition fieldFormat()
      フィールド定義を読み込む。
      Returns:
      レコードフォーマット定義
    • valueConvertors

      public void valueConvertors(FieldDefinition field)
      フィールドに設定されているすべてのコンバート定義を読み込む。
      Parameters:
      field - フィールドフォーマット定義
    • valueConvertor

      public void valueConvertor(FieldDefinition field)
      フィールド値のタイプ定義およびコンバート定義を読み込む。
      Parameters:
      field - フィールド定義
    • argsOpt

      public Object[] argsOpt()
      コンバータのオプション定義を読み込む。
      Returns:
      オプションの配列
    • literal

      public Object literal()
      リテラル値を読み込む。
      Returns:
      リテラル値
    • peek

      public LayoutFileParser.Token peek()
      次のトークンを返却する。 ただし、現在の読み出し位置は変更しない。
      Returns:
      次のトークン
    • consume

      次のトークンを返し、読み込んだトークン分のだけ読み出し位置を進める。
      Returns:
      次のトークン
      Throws:
      SyntaxErrorException - 読み出し位置が既に終端に達している場合
    • consume

      次のトークンを読み込み、読み出し位置を進める。 このとき、読み込んだトークンの種別が指定したものと異なる場合は実行時例外を送出する。
      Parameters:
      type - 読み込むトークンの種別
      Returns:
      読み込んだトークン
      Throws:
      SyntaxErrorException - 読み込んだトークンが指定したものと異なる場合。
    • consumeIfFollowing

      public boolean consumeIfFollowing(LayoutFileParser.TokenType type)
      次のトークンが指定した種別のものである場合のみ、それを読み込んでスキャナの 位置を進める。 種別が一致しない場合は何もしない。
      Parameters:
      type - 読み込むトークンの種別
      Returns:
      種別が一致し、トークンを読み込んだ場合はtrue。 そうでなかった場合はfalse。