org.seasar.jms.core.destination.impl
クラス AbstractDestinationFactory

java.lang.Object
  上位を拡張 org.seasar.jms.core.destination.impl.AbstractDestinationFactory
すべての実装されたインタフェース:
DestinationFactory
直系の既知のサブクラス:
JndiDestinationFactory, QueueFactory, ReplyToDestinationFactory, TemporaryQueueFactory, TemporaryTopicFactory, TopicFactory

public abstract class AbstractDestinationFactory
extends Object
implements DestinationFactory

JMSデスティネーション(キューまたはトピック)を作成するコンポーネントの抽象クラスです。

この実装は一度作成したデスティネーションをインスタンスに保持します。 このため、JMSデスティネーション一つにつき一つのインスタンスが作成されるように構成する必要があります。
JNDIからJMSデスティネーションをルックアップするようなサブクラスのインスタンスモードはSINGLETONにすることができますが、 JMSセッション毎あるいはJMSメッセージ毎にインスタンスが作成されるように構成する必要があるサブクラスもあります。

作成者:
koichik

フィールドの概要
protected  Destination destination
          JMSデスティネーション
 
コンストラクタの概要
AbstractDestinationFactory()
          インスタンスを構築します。
 
メソッドの概要
protected abstract  Destination createDestination(Session session)
          JMSデスティネーションを作成して返します。
 Destination getDestination(Session session)
          JMSデスティネーションを返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

destination

protected Destination destination
JMSデスティネーション

コンストラクタの詳細

AbstractDestinationFactory

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

メソッドの詳細

getDestination

public Destination getDestination(Session session)
JMSデスティネーションを返します。

このメソッドが最初に呼び出された場合はサブクラスによって実装されるcreateDestination(javax.jms.Session)を 呼び出してJMSデスティネーションを作成します。
2回目以降の呼び出しでは最初の呼び出しで作成されたJMSデスティネーションを返します。

定義:
インタフェース DestinationFactory 内の getDestination
パラメータ:
session - JMSセッション
戻り値:
JMSデスティネーション
例外:
SJMSRuntimeException - JMSExceptionが発生した場合にスローされます

createDestination

protected abstract Destination createDestination(Session session)
                                          throws JMSException
JMSデスティネーションを作成して返します。

このメソッドはgetDestination(javax.jms.Session)が最初に呼び出された時に一度だけ呼び出されます。

パラメータ:
session - JMSセッション
戻り値:
JMSデスティネーション
例外:
JMSException - JMSの操作で例外が発生した場合にスローされます


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