Package nablarch.core.dataformat
Class LayoutFileParser
java.lang.Object
nablarch.core.dataformat.LayoutFileParser
フォーマット定義ファイルのLL(1)パーサ。
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
フォーマット定義ファイルの構文定義上の終端要素(トークン)。static class
フォーマット定義ファイルの字句要素解析器static enum
フォーマット定義ファイルの終端要素(トークン)の種別 -
Constructor Summary
ConstructorDescriptionLayoutFileParser
(String filePath) コンストラクタ。LayoutFileParser
(String filePath, String encoding) コンストラクタ。 フォーマット定義ファイルのエンコーディングを指定する。 -
Method Summary
Modifier and TypeMethodDescriptionObject[]
argsOpt()
コンバータのオプション定義を読み込む。void
conditionalStatement
(RecordDefinition record) レコードタイプ判定条件を読み込むvoid
レコードタイプ判定条件定義部を読み込むconsume()
次のトークンを返し、読み込んだトークン分のだけ読み出し位置を進める。次のトークンを読み込み、読み出し位置を進める。 このとき、読み込んだトークンの種別が指定したものと異なる場合は実行時例外を送出する。boolean
次のトークンが指定した種別のものである場合のみ、それを読み込んでスキャナの 位置を進める。 種別が一致しない場合は何もしない。protected LayoutDefinition
createDefinition
(String filePath) パース結果を格納するクラスを生成し、フィールドに設定する。void
directive
(LayoutDefinition definition) 動作設定(ディレクティブ)を読み込む。void
directives
(LayoutDefinition definition) 共通設定部をパースする。フィールド定義を読み込む。void
fieldFormats
(LayoutDefinition layout, RecordDefinition record) フィールド定義部をパースする。literal()
リテラル値を読み込む。parse()
フォーマット定義ファイルをパースし、その内容を渡されたオブジェクトに設定する。peek()
次のトークンを返却する。 ただし、現在の読み出し位置は変更しない。void
recordFormat
(LayoutDefinition layout) レコード定義を読み込む。void
recordFormats
(LayoutDefinition layout) レコードタイプ定義部をパースする。void
valueConvertor
(FieldDefinition field) フィールド値のタイプ定義およびコンバート定義を読み込む。void
valueConvertors
(FieldDefinition field) フィールドに設定されているすべてのコンバート定義を読み込む。
-
Constructor Details
-
LayoutFileParser
コンストラクタ。- Parameters:
filePath
- フォーマット定義ファイルのパス
-
LayoutFileParser
コンストラクタ。 フォーマット定義ファイルのエンコーディングを指定する。- Parameters:
filePath
- フォーマット定義ファイルのパスencoding
- フォーマット定義ファイルのエンコーディング
-
-
Method Details
-
createDefinition
パース結果を格納するクラスを生成し、フィールドに設定する。- Parameters:
filePath
- フォーマット定義ファイルのパス- Returns:
- パース結果を格納するクラス
-
parse
フォーマット定義ファイルをパースし、その内容を渡されたオブジェクトに設定する。- Returns:
- パース結果オブジェクト
- Throws:
SyntaxErrorException
- フォーマット定義ファイル内に構文エラーが存在した場合。
-
directives
共通設定部をパースする。- Parameters:
definition
- フォーマット定義情報保持クラス
-
directive
動作設定(ディレクティブ)を読み込む。- Parameters:
definition
- フォーマット定義情報保持クラス
-
recordFormats
レコードタイプ定義部をパースする。- Parameters:
layout
- フォーマット定義情報保持クラス
-
recordFormat
レコード定義を読み込む。- Parameters:
layout
- フォーマット定義情報保持クラス
-
fieldFormats
フィールド定義部をパースする。- Parameters:
layout
- フォーマット定義情報保持クラスrecord
- レコードフォーマット定義
-
conditionalStatements
レコードタイプ判定条件定義部を読み込む- Parameters:
record
- レコードフォーマット定義
-
conditionalStatement
レコードタイプ判定条件を読み込む- Parameters:
record
- レコードフォーマット定義
-
fieldFormat
フィールド定義を読み込む。- Returns:
- レコードフォーマット定義
-
valueConvertors
フィールドに設定されているすべてのコンバート定義を読み込む。- Parameters:
field
- フィールドフォーマット定義
-
valueConvertor
フィールド値のタイプ定義およびコンバート定義を読み込む。- Parameters:
field
- フィールド定義
-
argsOpt
コンバータのオプション定義を読み込む。- Returns:
- オプションの配列
-
literal
リテラル値を読み込む。- Returns:
- リテラル値
-
peek
次のトークンを返却する。 ただし、現在の読み出し位置は変更しない。- Returns:
- 次のトークン
-
consume
次のトークンを返し、読み込んだトークン分のだけ読み出し位置を進める。- Returns:
- 次のトークン
- Throws:
SyntaxErrorException
- 読み出し位置が既に終端に達している場合
-
consume
次のトークンを読み込み、読み出し位置を進める。 このとき、読み込んだトークンの種別が指定したものと異なる場合は実行時例外を送出する。- Parameters:
type
- 読み込むトークンの種別- Returns:
- 読み込んだトークン
- Throws:
SyntaxErrorException
- 読み込んだトークンが指定したものと異なる場合。
-
consumeIfFollowing
次のトークンが指定した種別のものである場合のみ、それを読み込んでスキャナの 位置を進める。 種別が一致しない場合は何もしない。- Parameters:
type
- 読み込むトークンの種別- Returns:
- 種別が一致し、トークンを読み込んだ場合はtrue。 そうでなかった場合はfalse。
-