org.seasar.jms.core.message.impl
クラス AbstractMessageFactory<MSGTYPE extends Message>

java.lang.Object
  上位を拡張 org.seasar.jms.core.message.impl.AbstractMessageFactory<MSGTYPE>
型パラメータ:
MSGTYPE - JMSメッセージの型
すべての実装されたインタフェース:
MessageFactory<MSGTYPE>
直系の既知のサブクラス:
BytesMessageFactory, MapMessageFactory, ObjectMessageFactory, TextMessageFactory

public abstract class AbstractMessageFactory<MSGTYPE extends Message>
extends Object
implements MessageFactory<MSGTYPE>

JMSメッセージを作成するコンポーネントの抽象クラスです。

このコンポーネントはJMSセッションからJMSメッセージを作成します。作成されるJMSメッセージの型は型引数として示されます。 作成されたJMSメッセージのヘッダやプロパティはこのコンポーネントのプロパティに設定されているものがコピーされます。 JMSメッセージを生成する方法とそのペイロードを設定する方法はサブクラスに依存します。

このクラスおよびサブクラスはインスタンスモードPROTOTYPEで使われることを想定しており、スレッドセーフではありません。

作成者:
koichik

フィールドの概要
protected  String correlationID
          JMSメッセージのヘッダに設定されるcorrelationID
protected  byte[] correlationIDAsBytes
          JMSメッセージのヘッダに設定されるcorrelationID
protected  Map<String,Object> properties
          JMSメッセージのプロパティに設定されるMap
protected  Destination replyTo
          JMSメッセージのヘッダに設定されるreplyTo
 
コンストラクタの概要
AbstractMessageFactory()
          インスタンスを構築します。
 
メソッドの概要
 void addProperties(Map<String,Object> properties)
          指定されたMapに含まれるマッピングを全てプロパティとして設定します。
 void addProperty(String name, Object value)
          指定された名前を持つプロパティ値を設定します。
 MSGTYPE createMessage(Session session)
          JMSセッションからJMSメッセージを作成して返します。
protected abstract  MSGTYPE createMessageInstance(Session session)
          JMSメッセージのインスタンスを作成して返します。
 void setCorrelationID(String correlationID)
          JMSメッセージのヘッダに設定されるcorrelationIDを文字列で設定します。
 void setCorrelationIDAsBytes(byte[] correlationIDAsBytes)
          correlationIDをバイト列で設定します。
 void setReplyTo(Destination replyTo)
          replyToをバイト列で設定します。
protected  void setupHeader(Message message)
          JMSメッセージのメッセージヘッダを設定します。
protected abstract  void setupPayload(MSGTYPE message)
          JMSメッセージのペイロードを設定します。
protected  void setupProperties(Message message)
          JMSメッセージのメッセージプロパティを設定します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

correlationID

protected String correlationID
JMSメッセージのヘッダに設定されるcorrelationID


correlationIDAsBytes

protected byte[] correlationIDAsBytes
JMSメッセージのヘッダに設定されるcorrelationID


replyTo

protected Destination replyTo
JMSメッセージのヘッダに設定されるreplyTo


properties

protected final Map<String,Object> properties
JMSメッセージのプロパティに設定されるMap

コンストラクタの詳細

AbstractMessageFactory

public AbstractMessageFactory()
インスタンスを構築します。

メソッドの詳細

setCorrelationID

public void setCorrelationID(String correlationID)
インタフェース MessageFactory の記述:
JMSメッセージのヘッダに設定されるcorrelationIDを文字列で設定します。

設定された値は作成されたJMSメッセージのMessage.setJMSCorrelationID(String)でヘッダに設定されます。

定義:
インタフェース MessageFactory<MSGTYPE extends Message> 内の setCorrelationID
パラメータ:
correlationID - JMSメッセージのヘッダに設定される correlationID

setCorrelationIDAsBytes

public void setCorrelationIDAsBytes(byte[] correlationIDAsBytes)
インタフェース MessageFactory の記述:
correlationIDをバイト列で設定します。

設定された値は作成されたJMSメッセージのMessage.setJMSCorrelationIDAsBytes(byte[])でヘッダに設定されます。

定義:
インタフェース MessageFactory<MSGTYPE extends Message> 内の setCorrelationIDAsBytes
パラメータ:
correlationIDAsBytes - JMSメッセージのヘッダに設定されるcorrelationID

setReplyTo

public void setReplyTo(Destination replyTo)
インタフェース MessageFactory の記述:
replyToをバイト列で設定します。

設定された値は作成されたJMSメッセージのMessage.setJMSReplyTo(Destination)でヘッダに設定されます。

定義:
インタフェース MessageFactory<MSGTYPE extends Message> 内の setReplyTo
パラメータ:
replyTo - JMSメッセージのヘッダに設定されるreplyTo

addProperty

public void addProperty(String name,
                        Object value)
インタフェース MessageFactory の記述:
指定された名前を持つプロパティ値を設定します。

設定された値は作成されたJMSメッセージのMessage.setObjectProperty(java.lang.String, java.lang.Object)でプロパティに設定されます。

定義:
インタフェース MessageFactory<MSGTYPE extends Message> 内の addProperty
パラメータ:
name - プロパティ名
value - プロパティ値

addProperties

public void addProperties(Map<String,Object> properties)
インタフェース MessageFactory の記述:
指定されたMapに含まれるマッピングを全てプロパティとして設定します。

設定された値は作成されたJMSメッセージのMessage.setObjectProperty(java.lang.String, java.lang.Object)でプロパティに設定されます。

定義:
インタフェース MessageFactory<MSGTYPE extends Message> 内の addProperties
パラメータ:
properties - プロパティ

createMessage

public MSGTYPE createMessage(Session session)
インタフェース MessageFactory の記述:
JMSセッションからJMSメッセージを作成して返します。

作成されたJMSメッセージのヘッダおよびプロパティはこのコンポーネントからコピーされます。 JMSメッセージのペイロードは実装クラスのsetupPayload()メソッドで設定されます。

定義:
インタフェース MessageFactory<MSGTYPE extends Message> 内の createMessage
パラメータ:
session - JMSセッション
戻り値:
JMSメッセージ

createMessageInstance

protected abstract MSGTYPE createMessageInstance(Session session)
                                                          throws JMSException
JMSメッセージのインスタンスを作成して返します。

サブクラス固有の方法でJMSメッセージを作成します。 作成されたJMSメッセージの型は型引数MSGTYPEに 適合しなくてはなりません。

パラメータ:
session - JMSセッション
戻り値:
JMSメッセージ
例外:
JMSException - JMSメッセージを作成できなかった場合にスローされます。

setupHeader

protected void setupHeader(Message message)
                    throws JMSException
JMSメッセージのメッセージヘッダを設定します。

このインスタンスのプロパティの値をJMSメッセージのヘッダに設定します。
現在対応しているヘッダはMessage.setJMSCorrelationID(java.lang.String)および Message.setJMSCorrelationIDAsBytes(byte[])だけです。

パラメータ:
message - JMSメッセージ
例外:
JMSException - JMSメッセージにヘッダを設定できなかった場合にスローされます

setupProperties

protected void setupProperties(Message message)
                        throws JMSException
JMSメッセージのメッセージプロパティを設定します。

このインスタンスにaddProperty(java.lang.String, java.lang.Object)で設定された値をJMSメッセージのプロパティに設定します。

パラメータ:
message - JMSメッセージ
例外:
JMSException - JMSメッセージにプロパティを設定できなかった場合にスローされます

setupPayload

protected abstract void setupPayload(MSGTYPE message)
                              throws JMSException
JMSメッセージのペイロードを設定します。

パラメータ:
message - JMSメッセージ
例外:
JMSException - JMSメッセージにペイロードを設定できなかった場合にスローされます


Copyright © 2005-2009 The Seasar Foundation. All Rights Reserved.