Package nablarch.fw.messaging.reader
Class FwHeaderReader
java.lang.Object
nablarch.fw.messaging.reader.FwHeaderReader
- All Implemented Interfaces:
DataReader<RequestMessage>
受信電文のフレームワーク制御ヘッダの解析を行うデータリーダ。
このデータリーダの戻り値の型である
MessageReader
が読み込んだ受信電文のメッセージボディから
フレームワーク制御ヘッダ部分を読み込み、後続のハンドラからそれらの値を参照可能とする。このデータリーダの戻り値の型である
RequestMessage
は、フレームワーク制御ヘッダに
対するアクセサを保持し、Request
インターフェースを実装する。
受信電文読み込み時にエラーが発生した場合は、必ず例外(MessageReadError
)を送出する。
この場合、業務処理へのディスパッチは発生せず、フレームワークが直接エラー応答を行うことになる。- Author:
- Iwauo Tajima
-
Nested Class Summary
Nested classes/interfaces inherited from interface nablarch.fw.DataReader
DataReader.NoMoreRecord
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close
(ExecutionContext ctx) このリーダの利用を停止し、内部的に保持している各種リソースを解放する。boolean
hasNext
(ExecutionContext ctx) 次に読み込むデータが存在するかどうかを返却する。read
(ExecutionContext ctx) 受信電文のフレームワーク制御ヘッダ部分を読み込む。setFormatFileDir
(String dirName) 業務データ部のフォーマット定義ファイルの配置先ディレクトリ論理名を設定する。フレームワーク制御ヘッダ定義を設定する。setMessageFormatFileNamePattern
(String pattern) 受信電文のフォーマット定義ファイル名のパターン文字列を設定する。setMessageReader
(DataReader<ReceivedMessage> messageReader) 受信電文を読み込むリーダを設定する。応答電文のフォーマット定義ファイル名のパターン文字列を設定する。
-
Constructor Details
-
FwHeaderReader
public FwHeaderReader()
-
-
Method Details
-
read
受信電文のフレームワーク制御ヘッダ部分を読み込む。MessageReader
で取得した受信電文オブジェクトの フレームワーク制御項目を読み込み、下記項目をスレッドコンテキストに設定する。- リクエストID
- 内部リクエストID
- ユーザID(フレームワーク制御項目に設定されている場合のみ)
- Specified by:
read
in interfaceDataReader<RequestMessage>
- Parameters:
ctx
- 実行コンテキスト- Returns:
- 要求電文オブジェクト(受信電文オブジェクトが
null
の場合はnull
を返す) - Throws:
MessageReadError
- フレームワーク制御ヘッダのパースに失敗した場合
-
hasNext
次に読み込むデータが存在するかどうかを返却する。- Specified by:
hasNext
in interfaceDataReader<RequestMessage>
- Parameters:
ctx
- 実行コンテキスト- Returns:
- 次に読み込むデータが存在する場合は
true
-
close
このリーダの利用を停止し、内部的に保持している各種リソースを解放する。- Specified by:
close
in interfaceDataReader<RequestMessage>
- Parameters:
ctx
-
-
setMessageReader
受信電文を読み込むリーダを設定する。- Parameters:
messageReader
- データリーダ- Returns:
- このオブジェクト自体
- Throws:
IllegalArgumentException
- データリーダがnull
の場合
-
setFwHeaderDefinition
フレームワーク制御ヘッダ定義を設定する。- Parameters:
def
- フレームワーク制御ヘッダ設定- Returns:
- このオブジェクト自体
- Throws:
IllegalArgumentException
- フレームワーク制御ヘッダ設定がnull
の場合
-
setFormatFileDir
業務データ部のフォーマット定義ファイルの配置先ディレクトリ論理名を設定する。 デフォルト値は"format"。- Parameters:
dirName
- フォーマット定義ファイルの配置先ディレクトリ論理名- Returns:
- このオブジェクト自体
- Throws:
IllegalArgumentException
- 配置先ディレクトリ論理名が無効な場合
-
setMessageFormatFileNamePattern
受信電文のフォーマット定義ファイル名のパターン文字列を設定する。 デフォルトの設定では、以下の名称のフォーマット定義ファイルを取得する。(リクエストID) + "_RECEIVE.fmt"
- Parameters:
pattern
- フォーマット定義ファイル名のパターン文字列- Returns:
- このオブジェクト自体
- Throws:
IllegalArgumentException
- パターン文字列が無効な場合
-
setReplyMessageFormatFileNamePattern
応答電文のフォーマット定義ファイル名のパターン文字列を設定する。 デフォルトの設定では、以下の名称のフォーマット定義ファイルを取得する。(リクエストID) + "_SEND.fmt"
- Parameters:
pattern
- フォーマット定義ファイル名のパターン文字列- Returns:
- このオブジェクト自体
- Throws:
IllegalArgumentException
- パターン文字列が無効な場合
-