openGionopenGion
5.3.2.0

org.opengion.fukurou.util
クラス AbstractObjectPool<E>

java.lang.Object
  上位を拡張 org.opengion.fukurou.util.AbstractObjectPool<E>
直系の既知のサブクラス:
ConnectionPool, ProcessFactory.ProcessPool

public abstract class AbstractObjectPool<E>
extends java.lang.Object

AbstractObjectPool は、生成された Object をプールするキャッシュクラスです。 サブクラスで、各クラスごとにオブジェクトを生成/初期化/終了するように各メソッドを コーディングしなおしてください。 サブクラスでは、Object createInstance() と、oid objectInitial( Object obj )、 void objectFinal( Object obj ) を オーバーライドしてください。

バージョン
4.0
作成者
Kazuhiko Hasegawa
導入されたバージョン:
JDK5.0,

コンストラクタの概要
AbstractObjectPool()
           
 
メソッドの概要
 boolean clear()
          すべての要素を オブジェクトプールから削除します。
protected abstract  E createInstance()
          具体的に新しいインスタンスを生成するメソッド。
protected  void init(int minsize, int maxsize, boolean limit)
          初期化メソッド 初期オブジェクト数、最大オブジェクト数、拡張制限を指定します。
protected  void init(int minsize, int maxsize, boolean limit, int limitTime)
          初期化メソッド 初期オブジェクト数、初期配列数、拡張制限、オブジェクトの寿命を指定します。
 boolean isEmpty()
          オブジェクトプールが要素を持たないかどうかを判定します。
 E newInstance()
          キャッシュのインスタンスを返します。
protected  void objectFinal(E obj)
          オブジェクトプールから削除するときに呼ばれます。
protected  E objectInitial(E obj)
          オブジェクトプールに戻すとき(release するとき)に呼ばれます。
 void release(E obj)
          オブジェクトを、オブジェクトプールに戻します。
 void remove(E obj)
          オブジェクトを、オブジェクトプールから削除します。
 int size()
          オブジェクトプールの要素数を返します。
 java.lang.String toString()
          内部状況を簡易的に表現した文字列を返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

AbstractObjectPool

public AbstractObjectPool()
メソッドの詳細

init

protected void init(int minsize,
                    int maxsize,
                    boolean limit)
初期化メソッド 初期オブジェクト数、最大オブジェクト数、拡張制限を指定します。 初期オブジェクト数は、プールを作成すると同時に確保するオブジェクトの個数です。 オブジェクトの生成に時間がかかり、かつ、必ず複数使用するのであれば, 予め複数確保しておけば、パフォーマンスが向上します。 最大オブジェクト数は、拡張制限が、無制限(limit = false )の場合は、 無視されます。制限ありの場合は、この値を上限に、オブジェクトを増やします。 拡張制限は、生成するオブジェクト数に制限をかけるかどうかを指定します。 一般に、コネクション等のリソースを確保する場合は、拡張制限を加えて、 生成するオブジェクト数を制限します。

パラメータ:
minsize - 初期オブジェクト数
maxsize - 最大オブジェクト数
limit - 拡張制限(true)/無制限(false)

init

protected void init(int minsize,
                    int maxsize,
                    boolean limit,
                    int limitTime)
初期化メソッド 初期オブジェクト数、初期配列数、拡張制限、オブジェクトの寿命を指定します。 初期オブジェクト数、初期配列数、拡張制限、までは、init を参照してください。 オブジェクトの寿命は、生成された時間からの経過時間(秒)だけ、キャッシュしておく 場合に使用します。 例えば、コネクション等で、長期間のプーリングがリソースを圧迫する場合や、 接続側自身が、タイマーで切断する場合など、オブジェクトの生存期間を 指定して管理する必要があります。

パラメータ:
minsize - 初期オブジェクト数
maxsize - 初期配列数
limit - 拡張制限(true)/無制限(false)
limitTime - オブジェクトの寿命の時間制限値(秒)
関連項目:
init( int , int , boolean )

newInstance

public E newInstance()
              throws java.util.MissingResourceException
キャッシュのインスタンスを返します。 なお、拡張制限をしている場合に、最初に確保した数以上のオブジェクト生成の 要求があった場合は、 MissingResourceException が throw されます。 また,オブジェクトが寿命を超えている場合は、削除した後、新たに次の オブジェクトの生成を行います。

戻り値:
キャッシュのインスタンス
例外:
java.util.MissingResourceException - 拡張制限により、新しいインスタンスを生成できない場合
変更履歴:
4.0.0.1 (2007/12/03) 生成リミットチェックを厳密に行う。
4.0.0.1 (2007/12/03) 生成リミットエラー時に、タイムアウトをチェックする。

createInstance

protected abstract E createInstance()
具体的に新しいインスタンスを生成するメソッド。 サブクラスで具体的に記述する必要があります。

戻り値:
新しいインスタンス

release

public void release(E obj)
オブジェクトを、オブジェクトプールに戻します。 戻すべきオブジェクトが null の場合は,削除されたと判断します。 よって、生成されたオブジェクトの総数も、ひとつ減らします。

パラメータ:
obj - オブジェクトプールに戻すオブジェクト

remove

public void remove(E obj)
オブジェクトを、オブジェクトプールから削除します。 remove されるオブジェクトは、すでにキャッシュから取り出された後なので、 そのまま、何もしなければ自然消滅(GC)されます。 自然消滅する前に、objectFinal( Object ) が呼ばれます。 生成されたオブジェクトの総数も、ひとつ減らします。

パラメータ:
obj - 削除するオブジェクト

size

public int size()
オブジェクトプールの要素数を返します。

戻り値:
プールの要素数

isEmpty

public boolean isEmpty()
オブジェクトプールが要素を持たないかどうかを判定します。

戻り値:
オブジェクトプールが要素を持っていない、つまりそのサイズが 0 の場合にだけ true、そうでない場合は false

clear

public boolean clear()
すべての要素を オブジェクトプールから削除します。 貸し出し中のオブジェクトは、クリアしません。よって、返り値は、 すべてのオブジェクトをクリアできた場合は、true 、貸し出し中の オブジェクトが存在した場合(クリアできなかった場合)は、false です。

戻り値:
すべてクリア(true)/貸し出し中のオブジェクトが残っている(false)

objectFinal

protected void objectFinal(E obj)
オブジェクトプールから削除するときに呼ばれます。 このメソッドで各オブジェクトごとの終了処理を行います。 例えば、データベースコネクションであれば、close() 処理などです。 デフォルトでは、なにも行いません。

パラメータ:
obj - 終了処理を行うオブジェクト

objectInitial

protected E objectInitial(E obj)
オブジェクトプールに戻すとき(release するとき)に呼ばれます。 このメソッドで各オブジェクトごとの初期処理を行います。 オブジェクトプールに戻すときには、初期化して、次の貸し出しに 対応できるように、初期処理しておく必要があります。 デフォルトでは、引数のオブジェクトをそのまま返します。

パラメータ:
obj - 初期処理を行うオブジェクト
戻り値:
初期処理を行ったオブジェクト

toString

public java.lang.String toString()
内部状況を簡易的に表現した文字列を返します。

オーバーライド:
クラス java.lang.Object 内の toString
戻り値:
このオブジェクトプールの文字列表現

openGion 5.3.2.0

Webアプリケーションフレームワーク openGion
SourceForge.JPCopyright (c) 2009 The openGion Project.