Class StructuredResponseMessage

All Implemented Interfaces:
Result

public class StructuredResponseMessage extends ResponseMessage
構造化されたデータを取り扱うために、addRecord時にデータをすぐに書き込まず、メモリ上にキャッシュする応答メッセージ。
Author:
TIS
  • Constructor Details

    • StructuredResponseMessage

      @Published(tag="architect") public StructuredResponseMessage(RequestMessage message)
      要求電文に対する応答電文を作成する。 RequestMessage#reply() から呼ばれることを想定している。
      Parameters:
      message - 要求電文オブジェクト
  • Method Details

    • setFormatter

      public StructuredResponseMessage setFormatter(DataRecordFormatter formatter)
      メッセージボディのフォーマット定義を設定する。
      この実装ではフォーマッタの初期化処理を行う。
      Overrides:
      setFormatter in class InterSystemMessage<SendingMessage>
      Parameters:
      formatter - フォーマット定義オブジェクト
      Returns:
      このオブジェクト自体
    • getBodyBytes

      public byte[] getBodyBytes()
      メッセーボディのバイナリ表現を返す。 送信(仕向)電文の場合はデータレコードをレコードフォーマッタで直列化したものを返す。 受信(被仕向)電文の場合はパース前の送信電文の内容をそのまま返す。 この実装では、フレームワーク制御ヘッダ部と業務データ部をそれぞれ直列化し、 連結したものを返す。 ただし、フレームワーク制御ヘッダを直列化する際、フレームワーク制御ヘッダ定義 を使用する。これは、通常MessageReplyHandlerによって設定される。 この実装ではこの時点でキャッシュされたメッセージをフォーマッタに書き込み、バイト列を生成する。
      Overrides:
      getBodyBytes in class ResponseMessage
      Returns:
      メッセーボディのバイナリ表現
    • addRecord

      @Published(tag="architect") public ResponseMessage addRecord(Map<String,?> record)
      電文のデータ部に、指定したレコードを追加する。

      出力時に使用するデータレイアウト(レコードタイプ)は、recordの内容から自動的に判別される。

      Overrides:
      addRecord in class ResponseMessage
      Parameters:
      record - レコード内容
      Returns:
      このオブジェクト自体
    • addRecord

      @Published(tag="architect") public ResponseMessage addRecord(String recordType, Map<String,?> record)
      電文のデータ部に、出力時に使用するデータレイアウト(レコードタイプ)を指定してレコードを追加する。

      recordTypenullを渡した場合、SendingMessage.addRecord(Map)と同様の処理を行う。

      Overrides:
      addRecord in class ResponseMessage
      Parameters:
      recordType - レコードタイプ
      record - レコード内容
      Returns:
      このオブジェクト自体
    • addRecord

      @Published(tag="architect") public ResponseMessage addRecord(Object recordObj)
      電文のデータ部に指定したレコードを追加する。

      出力時に使用するデータレイアウト(レコードタイプ)は、渡されたデータの内容から自動的に判別される。

      Overrides:
      addRecord in class ResponseMessage
      Parameters:
      recordObj - レコード内容を表現したオブジェクト
      Returns:
      このオブジェクト自体
    • addRecord

      @Published(tag="architect") public ResponseMessage addRecord(String recordType, Object recordObj)
      電文のデータ部に、出力時に使用するデータレイアウト(レコードタイプ)を指定してレコードを追加する。

      recordTypenullを渡した場合、SendingMessage.addRecord(Object)と同様の処理を行う。

      Overrides:
      addRecord in class ResponseMessage
      Parameters:
      recordType - レコードタイプ
      recordObj - レコード内容を表現したオブジェクト
      Returns:
      このオブジェクト自体