Package nablarch.fw.messaging
Class StructuredResponseMessage
java.lang.Object
nablarch.fw.messaging.InterSystemMessage<SendingMessage>
nablarch.fw.messaging.SendingMessage
nablarch.fw.messaging.ResponseMessage
nablarch.fw.messaging.StructuredResponseMessage
- All Implemented Interfaces:
Result
構造化されたデータを取り扱うために、addRecord時にデータをすぐに書き込まず、メモリ上にキャッシュする応答メッセージ。
-
Nested Class Summary
Nested classes/interfaces inherited from class nablarch.fw.messaging.InterSystemMessage
InterSystemMessage.HeaderName
Nested classes/interfaces inherited from interface nablarch.fw.Result
Result.ClientError, Result.Error, Result.MultiStatus, Result.NotFound, Result.Success
-
Constructor Summary
ConstructorDescriptionStructuredResponseMessage
(RequestMessage message) 要求電文に対する応答電文を作成する。 RequestMessage#reply() から呼ばれることを想定している。 -
Method Summary
Modifier and TypeMethodDescription電文のデータ部に指定したレコードを追加する。電文のデータ部に、出力時に使用するデータレイアウト(レコードタイプ)を指定してレコードを追加する。電文のデータ部に、出力時に使用するデータレイアウト(レコードタイプ)を指定してレコードを追加する。電文のデータ部に、指定したレコードを追加する。byte[]
メッセーボディのバイナリ表現を返す。 送信(仕向)電文の場合はデータレコードをレコードフォーマッタで直列化したものを返す。 受信(被仕向)電文の場合はパース前の送信電文の内容をそのまま返す。setFormatter
(DataRecordFormatter formatter) メッセージボディのフォーマット定義を設定する。Methods inherited from class nablarch.fw.messaging.ResponseMessage
getFwHeader, getMessage, getStatusCode, isSuccess, setFwHeaderDefinition, setResult, setStatusCodeHeader, throwAsError, throwAsError
Methods inherited from class nablarch.fw.messaging.SendingMessage
getBodyStream, getTimeToLive, setTimeToLive
Methods inherited from class nablarch.fw.messaging.InterSystemMessage
getCorrelationId, getDestination, getFormatter, getHeader, getHeaderMap, getMessageId, getParam, getParamMap, getRecordOf, getRecords, getRecordsOf, getReplyTo, setCorrelationId, setDestination, setHeader, setHeaderMap, setMessageId, setReplyTo
-
Constructor Details
-
StructuredResponseMessage
要求電文に対する応答電文を作成する。 RequestMessage#reply() から呼ばれることを想定している。- Parameters:
message
- 要求電文オブジェクト
-
-
Method Details
-
setFormatter
メッセージボディのフォーマット定義を設定する。
この実装ではフォーマッタの初期化処理を行う。- Overrides:
setFormatter
in classInterSystemMessage<SendingMessage>
- Parameters:
formatter
- フォーマット定義オブジェクト- Returns:
- このオブジェクト自体
-
getBodyBytes
public byte[] getBodyBytes()メッセーボディのバイナリ表現を返す。 送信(仕向)電文の場合はデータレコードをレコードフォーマッタで直列化したものを返す。 受信(被仕向)電文の場合はパース前の送信電文の内容をそのまま返す。 この実装では、フレームワーク制御ヘッダ部と業務データ部をそれぞれ直列化し、 連結したものを返す。 ただし、フレームワーク制御ヘッダを直列化する際、フレームワーク制御ヘッダ定義 を使用する。これは、通常MessageReplyHandler
によって設定される。 この実装ではこの時点でキャッシュされたメッセージをフォーマッタに書き込み、バイト列を生成する。- Overrides:
getBodyBytes
in classResponseMessage
- Returns:
- メッセーボディのバイナリ表現
-
addRecord
電文のデータ部に、指定したレコードを追加する。 出力時に使用するデータレイアウト(レコードタイプ)は、record
の内容から自動的に判別される。- Overrides:
addRecord
in classResponseMessage
- Parameters:
record
- レコード内容- Returns:
- このオブジェクト自体
-
addRecord
@Published(tag="architect") public ResponseMessage addRecord(String recordType, Map<String, ?> record) 電文のデータ部に、出力時に使用するデータレイアウト(レコードタイプ)を指定してレコードを追加する。recordType
にnull
を渡した場合、SendingMessage.addRecord(Map)
と同様の処理を行う。- Overrides:
addRecord
in classResponseMessage
- Parameters:
recordType
- レコードタイプrecord
- レコード内容- Returns:
- このオブジェクト自体
-
addRecord
電文のデータ部に指定したレコードを追加する。 出力時に使用するデータレイアウト(レコードタイプ)は、渡されたデータの内容から自動的に判別される。- Overrides:
addRecord
in classResponseMessage
- Parameters:
recordObj
- レコード内容を表現したオブジェクト- Returns:
- このオブジェクト自体
-
addRecord
電文のデータ部に、出力時に使用するデータレイアウト(レコードタイプ)を指定してレコードを追加する。recordType
にnull
を渡した場合、SendingMessage.addRecord(Object)
と同様の処理を行う。- Overrides:
addRecord
in classResponseMessage
- Parameters:
recordType
- レコードタイプrecordObj
- レコード内容を表現したオブジェクト- Returns:
- このオブジェクト自体
-