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