概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
openGion 5.1.6.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 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()` オブジェクトプールの要素数を返します。
`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 MissingResourceException

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

  戻り値:
    キャッシュのインスタンス
  例外:
    `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 String toString()

  内部状況を簡易的に表現した文字列を返します。

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

概要 | パッケージ | クラス | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| openGion 5.1.6.0
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

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