TSelf
- 各具象クラスの型public abstract class InterSystemMessage<TSelf extends InterSystemMessage<?>> extends Object
プロトコルヘッダーはMOM間のメッセージ転送制御に関連する制御情報であり、 MOM側で自動的に解析される。 これらの情報の多くは、MOM製品に依存した仕様であるため、本フレームワークは プロトコルヘッダーに極力依存しない設計となっている。
本フレームワークが直接使用するプロトコルヘッダーは以下の5つのみである。プロトコルヘッダーを除いた電文のデータ部をメッセージボディと呼ぶ。 メッセージボディ部は、MOM側では単にバイナリデータとして扱うものとし、 解析は全てフレームワーク側で行う。
メッセージボディのフォーマットは nablarch.core.dataformat パッケージが提供する 機能を用いて定義する。解析後の電文はList-Map形式でアクセスすることが可能である。
メッセージボディ内は通常、以下に示すような階層構造をもち、その解析は各階層に 対応したデータリーダもしくはハンドラによって段階的に行われる。このクラスは各電文クラスに共通する機能やデータ構造を実装するものの、 直接インスタンスを作成することはできない。 これは、JMSのjavax.jms.Messageのような汎用メッセージオブジェクトを使いまわすのではなく、 その用途に応じて以下の4つの具象クラスを使いわける設計となっているためである。
修飾子とタイプ | メソッドと説明 |
---|---|
String |
getCorrelationId()
この電文に関連付けられているメッセージのメッセージIDを返す。
|
String |
getDestination()
この電文の宛先キューの論理名を取得する。
|
Map |
getHeaderMap()
ヘッダーの一覧をMap形式で返す。
|
String |
getMessageId()
この電文に割り当てられた識別子(メッセージID)を返す。
|
Object |
getParam(String name)
電文のデータ部の末尾レコードの中から指定されたフィールドの値を取得して返す。
|
Map |
getParamMap()
電文のデータ部の末尾レコードを返す。
|
DataRecord |
getRecordOf(String recordType)
指定された種別のレコードを返す。
|
List<DataRecord> |
getRecords()
メッセージボディに含まれる全レコードを返す。
|
List<DataRecord> |
getRecordsOf(String recordType)
メッセージボディに含まれる指定された種別の全レコードを返す。
|
String |
getReplyTo()
応答宛先キューの論理名を返す。
|
TSelf |
setCorrelationId(String messageId)
この電文に既存のメッセージのIDを関連付ける。
|
TSelf |
setDestination(String destination)
送信宛先キューの論理名を設定する。
|
TSelf |
setFormatter(DataRecordFormatter formatter)
メッセージボディのフォーマット定義を設定する。
|
TSelf |
setMessageId(String messageId)
メッセージIDを設定する。
|
TSelf |
setReplyTo(String replyTo)
この電文に対する応答宛先となるキューの論理名を設定する。
|
@Published(tag="architect") public TSelf setFormatter(DataRecordFormatter formatter)
formatter
- フォーマット定義オブジェクト@Published(tag="architect") public DataRecord getRecordOf(String recordType)
recordType
- レコード名@Published(tag="architect") public List<DataRecord> getRecords()
@Published(tag="architect") public List<DataRecord> getRecordsOf(String recordType)
recordType
- レコード種別@Published(tag="architect") public Map getParamMap()
@Published(tag="architect") public Object getParam(String name)
name
- 取得するフィールドの名称@Published(tag="architect") public Map getHeaderMap()
@Published(tag="architect") public String getMessageId()
@Published(tag="architect") public TSelf setMessageId(String messageId)
messageId
- メッセージIDとして指定する文字列@Published(tag="architect") public String getDestination()
@Published(tag="architect") public TSelf setDestination(String destination)
destination
- 応答宛先キューの論理名@Published(tag="architect") public String getCorrelationId()
@Published(tag="architect") public TSelf setCorrelationId(String messageId)
messageId
- 関連付けるメッセージのID@Published(tag="architect") public String getReplyTo()