Package nablarch.core.dataformat
Class LayoutFileParser
java.lang.Object
nablarch.core.dataformat.LayoutFileParser
フォーマット定義ファイルのLL(1)パーサ。
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classフォーマット定義ファイルの構文定義上の終端要素(トークン)。static classフォーマット定義ファイルの字句要素解析器static enumフォーマット定義ファイルの終端要素(トークン)の種別 -
Constructor Summary
ConstructorsConstructorDescriptionLayoutFileParser(String filePath) コンストラクタ。LayoutFileParser(String filePath, String encoding) コンストラクタ。 フォーマット定義ファイルのエンコーディングを指定する。 -
Method Summary
Modifier and TypeMethodDescriptionObject[]argsOpt()コンバータのオプション定義を読み込む。voidconditionalStatement(RecordDefinition record) レコードタイプ判定条件を読み込むvoidレコードタイプ判定条件定義部を読み込むconsume()次のトークンを返し、読み込んだトークン分のだけ読み出し位置を進める。次のトークンを読み込み、読み出し位置を進める。 このとき、読み込んだトークンの種別が指定したものと異なる場合は実行時例外を送出する。boolean次のトークンが指定した種別のものである場合のみ、それを読み込んでスキャナの 位置を進める。 種別が一致しない場合は何もしない。protected LayoutDefinitioncreateDefinition(String filePath) パース結果を格納するクラスを生成し、フィールドに設定する。voiddirective(LayoutDefinition definition) 動作設定(ディレクティブ)を読み込む。voiddirectives(LayoutDefinition definition) 共通設定部をパースする。フィールド定義を読み込む。voidfieldFormats(LayoutDefinition layout, RecordDefinition record) フィールド定義部をパースする。literal()リテラル値を読み込む。parse()フォーマット定義ファイルをパースし、その内容を渡されたオブジェクトに設定する。peek()次のトークンを返却する。 ただし、現在の読み出し位置は変更しない。voidrecordFormat(LayoutDefinition layout) レコード定義を読み込む。voidrecordFormats(LayoutDefinition layout) レコードタイプ定義部をパースする。voidvalueConvertor(FieldDefinition field) フィールド値のタイプ定義およびコンバート定義を読み込む。voidvalueConvertors(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。
-