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
 
コンストラクタの概要
AbstractMessageFactory()
          インスタンスを構築します。
AbstractMessageFactory(Map<String,Object> properties)
          インスタンスを構築します。
 
メソッドの概要
 void addProperty(String name, Object value)
          指定された名前を持つプロパティ値を設定します。
 MSGTYPE createMessage(Session session)
          JMSセッションからJMSメッセージを作成して返します。
protected abstract  MSGTYPE createMessageInstance(Session session)
          JMSメッセージのインスタンスを作成して返します。
 String getCorrelationID()
          JMSメッセージのヘッダに設定されるcorrelationIDを文字列で返します。
 byte[] getCorrelationIDAsBytes()
          JMSメッセージのヘッダに設定されるcorrelationIDをバイト列で返します。
 Object getProperty(String name)
          指定された名前を持つプロパティ値を返します。
 void setCorrelationID(String correlationID)
          JMSメッセージのヘッダに設定されるcorrelationIDを文字列で設定します。
 void setCorrelationIDAsBytes(byte[] correlationIDAsBytes)
          correlationIDをバイト列で設定します。
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


properties

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

コンストラクタの詳細

AbstractMessageFactory

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


AbstractMessageFactory

public AbstractMessageFactory(Map<String,Object> properties)
インスタンスを構築します。

パラメータ:
properties - JMSメッセージのプロパティに設定されるMap
メソッドの詳細

getCorrelationID

public String getCorrelationID()
JMSメッセージのヘッダに設定されるcorrelationIDを文字列で返します。

戻り値:
JMSメッセージのヘッダに設定されるcorrelationID

setCorrelationID

public void setCorrelationID(String correlationID)
JMSメッセージのヘッダに設定されるcorrelationIDを文字列で設定します。

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

パラメータ:
correlationID - JMSメッセージのヘッダに設定される correlationID

getCorrelationIDAsBytes

public byte[] getCorrelationIDAsBytes()
JMSメッセージのヘッダに設定されるcorrelationIDをバイト列で返します。

戻り値:
JMSメッセージのヘッダに設定されるcorrelationID

setCorrelationIDAsBytes

public void setCorrelationIDAsBytes(byte[] correlationIDAsBytes)
correlationIDをバイト列で設定します。

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

パラメータ:
correlationIDAsBytes - JMSメッセージのヘッダに設定されるcorrelationID

getProperty

public Object getProperty(String name)
指定された名前を持つプロパティ値を返します。

パラメータ:
name - プロパティ名
戻り値:
プロパティ名に対応するプロパティ値

addProperty

public void addProperty(String name,
                        Object value)
指定された名前を持つプロパティ値を設定します。

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

パラメータ:
name - プロパティ名
value - プロパティ値

createMessage

public MSGTYPE createMessage(Session session)
JMSセッションからJMSメッセージを作成して返します。

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

定義:
インタフェース 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-2007 The Seasar Foundation. All Rights Reserved.