Package nablarch.fw.messaging
Class InterSystemMessage<TSelf extends InterSystemMessage<?>>
java.lang.Object
nablarch.fw.messaging.InterSystemMessage<TSelf>
- Type Parameters:
- TSelf- 各具象クラスの型
- Direct Known Subclasses:
- ReceivedMessage,- SendingMessage
外部システムに対する送受信電文の内容を格納するデータオブジェクト。
 
 このオブジェクトは以下のデータを保持する。
 
- プロトコルヘッダー
- メッセージボディ
プロトコルヘッダー
プロトコルヘッダーはMOM間のメッセージ転送制御に関連する制御情報であり、 MOM側で自動的に解析される。 これらの情報の多くは、MOM製品に依存した仕様であるため、本フレームワークは プロトコルヘッダーに極力依存しない設計となっている。
本フレームワークが直接使用するプロトコルヘッダーは以下の5つのみである。- メッセージIDヘッダ
- 関連メッセージIDヘッダ
- 送信宛先ヘッダ
- 応答宛先ヘッダ
- メッセージ有効期間ヘッダ (送信電文のみ)
メッセージボディ
プロトコルヘッダーを除いた電文のデータ部をメッセージボディと呼ぶ。 メッセージボディ部は、MOM側では単にバイナリデータとして扱うものとし、 解析は全てフレームワーク側で行う。
メッセージボディのフォーマットは nablarch.core.dataformat パッケージが提供する 機能を用いて定義する。解析後の電文はList-Map形式でアクセスすることが可能である。
メッセージボディ内は通常、以下に示すような階層構造をもち、その解析は各階層に 対応したデータリーダもしくはハンドラによって段階的に行われる。- フレームワーク制御ヘッダ
- 業務共通ヘッダ
- 業務データ
クラス構成
このクラスは各電文クラスに共通する機能やデータ構造を実装するものの、 直接インスタンスを作成することはできない。 これは、Jakarta Messagingのjakarta.jms.Messageのような汎用メッセージオブジェクトを使いまわすのではなく、 その用途に応じて以下の4つの具象クラスを使いわける設計となっているためである。
- ReceivedMessage (受信メッセージ)
- SendingMessage (送信メッセージ)
- RequestMessage (被仕向け要求受信メッセージ) : ReceivedMessageのサブクラス
- ResponseMessage (応答送信メッセージ) : SendingMessageのサブクラス
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic final classフレームワークで使用する既定ヘッダーのフィールド名
- 
Constructor SummaryConstructorsConstructorDescriptionデフォルトコンストラクタInterSystemMessage(InterSystemMessage<?> orgMessage) コピーコンストラクタ
- 
Method SummaryModifier and TypeMethodDescriptionabstract byte[]メッセーボディのバイナリ表現を返す。 送信(仕向)電文の場合はデータレコードをレコードフォーマッタで直列化したものを返す。 受信(被仕向)電文の場合はパース前の送信電文の内容をそのまま返す。この電文に関連付けられているメッセージのメッセージIDを返す。この電文の宛先キューの論理名を取得する。 MessagingContext.send(SendingMessage) メソッドでは、この戻り値に対応する 宛先に送信される。メッセージボディのフォーマット定義を返す。<T> Tヘッダーの値を返す。ヘッダーの一覧をMap形式で返す。この電文に割り当てられた識別子(メッセージID)を返す。 メッセージIDは電文送信時にMOMによって自動的に割り振られるため、 書式や一意性の範囲は製品依存となる。 また、送信前の電文にはnullが設定されている。電文のデータ部の末尾レコードの中から指定されたフィールドの値を取得して返す。電文のデータ部の末尾レコードを返す。getRecordOf(String recordType) 指定された種別のレコードを返す。 複数存在する場合は、その先頭のレコードを返す。 存在しない場合はnullを返す。メッセージボディに含まれる全レコードを返す。getRecordsOf(String recordType) メッセージボディに含まれる指定された種別の全レコードを返す。 該当するレコードが存在しない場合は空のリストを返す。応答宛先キューの論理名を返す。setCorrelationId(String messageId) この電文に既存のメッセージのIDを関連付ける。setDestination(String destination) 送信宛先キューの論理名を設定する。setFormatter(DataRecordFormatter formatter) メッセージボディのフォーマット定義を設定する。ヘッダーの値を設定する。setHeaderMap(Map<String, ?> headers) ヘッダーの一覧を設定する。 (既存のヘッダーは全て削除される。)setMessageId(String messageId) メッセージIDを設定する。 メッセージIDはMOM側で採番される値であり、 このメソッドは単体テスト用に便宜的に容易されているものである。setReplyTo(String replyTo) この電文に対する応答宛先となるキューの論理名を設定する。
- 
Constructor Details- 
InterSystemMessagepublic InterSystemMessage()デフォルトコンストラクタ
- 
InterSystemMessageコピーコンストラクタ- Parameters:
- orgMessage- コピー元電文
 
 
- 
- 
Method Details- 
setFormatterメッセージボディのフォーマット定義を設定する。- Parameters:
- formatter- フォーマット定義オブジェクト
- Returns:
- このオブジェクト自体
 
- 
getFormatterメッセージボディのフォーマット定義を返す。- Returns:
- メッセージボディのフォーマット定義
 
- 
getRecordOf指定された種別のレコードを返す。 複数存在する場合は、その先頭のレコードを返す。 存在しない場合はnullを返す。- Parameters:
- recordType- レコード名
- Returns:
- 指定した種別のデータレコード (存在しない場合はnull)
 
- 
getRecordsメッセージボディに含まれる全レコードを返す。- Returns:
- メッセージボディに含まれる全てのレコード
 
- 
getRecordsOfメッセージボディに含まれる指定された種別の全レコードを返す。 該当するレコードが存在しない場合は空のリストを返す。- Parameters:
- recordType- レコード種別
- Returns:
- メッセージボディに含まれる指定された種別の全レコード
 
- 
getParamMap電文のデータ部の末尾レコードを返す。 主にシングルレコード形式の電文で使用することを想定している。 レコードが存在しない場合はnullを返す。- Returns:
- 受信電文内の各フィールドの値を格納したMap
 
- 
getParam電文のデータ部の末尾レコードの中から指定されたフィールドの値を取得して返す。 主にシングルレコード形式の電文で使用することを想定している。 レコードが存在しない場合、もしくは、レコードに指定された項目が存在しない 場合はnullを返す。 。- Parameters:
- name- 取得するフィールドの名称
- Returns:
- フィールドの値
 
- 
getBodyBytespublic abstract byte[] getBodyBytes()メッセーボディのバイナリ表現を返す。 送信(仕向)電文の場合はデータレコードをレコードフォーマッタで直列化したものを返す。 受信(被仕向)電文の場合はパース前の送信電文の内容をそのまま返す。- Returns:
- メッセーボディのバイナリ表現
 
- 
getHeaderMapヘッダーの一覧をMap形式で返す。- Returns:
- ヘッダーの一覧
 
- 
getHeaderヘッダーの値を返す。- Type Parameters:
- T- 期待するヘッダの型
- Parameters:
- headerName- 値を取得するヘッダーの名前
- Returns:
- ヘッダーの値
 
- 
setHeaderヘッダーの値を設定する。- Parameters:
- name- 値を設定するヘッダーの名前
- value- ヘッダーの値
- Returns:
- このオブジェクト自体
 
- 
setHeaderMapヘッダーの一覧を設定する。 (既存のヘッダーは全て削除される。)- Parameters:
- headers- ヘッダーの一覧
- Returns:
- このオブジェクト自体
 
- 
getMessageIdこの電文に割り当てられた識別子(メッセージID)を返す。 メッセージIDは電文送信時にMOMによって自動的に割り振られるため、 書式や一意性の範囲は製品依存となる。 また、送信前の電文にはnullが設定されている。- Returns:
- この電文のID文字列 (送信前はnull)
 
- 
setMessageIdメッセージIDを設定する。 メッセージIDはMOM側で採番される値であり、 このメソッドは単体テスト用に便宜的に容易されているものである。- Parameters:
- messageId- メッセージIDとして指定する文字列
- Returns:
- このオブジェクト自体
 
- 
getDestinationこの電文の宛先キューの論理名を取得する。 MessagingContext.send(SendingMessage) メソッドでは、この戻り値に対応する 宛先に送信される。- Returns:
- 宛先キューの論理名
 
- 
setDestination送信宛先キューの論理名を設定する。- Parameters:
- destination- 応答宛先キューの論理名
- Returns:
- このオブジェクト自体
 
- 
getCorrelationIdこの電文に関連付けられているメッセージのメッセージIDを返す。- Returns:
- この電文のID文字列
 
- 
setCorrelationIdこの電文に既存のメッセージのIDを関連付ける。- Parameters:
- messageId- 関連付けるメッセージのID
- Returns:
- この電文のID文字列
 
- 
getReplyTo応答宛先キューの論理名を返す。- Returns:
- この電文のID文字列
 
- 
setReplyToこの電文に対する応答宛先となるキューの論理名を設定する。- Parameters:
- replyTo- 応答宛先キューの論理名
- Returns:
- このオブジェクト自体
 
 
-