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
- 応答宛先キューの論理名