org.apache.commons.pool2

## Class BaseObjectPool<T>

- java.lang.Object
- - org.apache.commons.pool2.BaseObjectPool<T>

- Type Parameters:
    `T` - Type of element pooled in this pool.
  All Implemented Interfaces:
    ObjectPool<T>
  Direct Known Subclasses:
    SoftReferenceObjectPool

      public abstract class BaseObjectPool<T>
      extends Object
      implements ObjectPool<T>

  A simple base implementation of `ObjectPool`. Optional operations are implemented to either do nothing, return a value indicating it is unsupported or throw `UnsupportedOperationException`.

  This class is intended to be thread-safe.

  Since:
    2.0
  Version:
    $Revision: 1333925 $

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `BaseObjectPool()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addObject()` Not supported in this base implementation.Always throws an `UnsupportedOperationException`, subclasses should override this behavior.
    `protected void` | `assertOpen()` Throws an `IllegalStateException` when this pool has been closed.
    `abstract T` | `borrowObject()` Obtains an instance from the pool.
    `void` | `clear()` Not supported in this base implementation.
    `void` | `close()` Close this pool.
    `int` | `getNumActive()` Not supported in this base implementation.
    `int` | `getNumIdle()` Not supported in this base implementation.
    `abstract void` | `invalidateObject(T obj)` Invalidates an object from the pool.
    `boolean` | `isClosed()` Has this pool instance been closed.
    `abstract void` | `returnObject(T obj)` Returns an instance to the pool.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### BaseObjectPool

          public BaseObjectPool()

  - ### Method Detail

    - #### borrowObject

          public abstract T borrowObject()
                                  throws Exception

      Obtains an instance from the pool.
      Specified by:
        `borrowObject` in interface `ObjectPool<T>`
      Returns:
        an instance from the pool
      Throws:
        `Exception` - if an instance cannot be obtained from the pool

    - #### returnObject

          public abstract void returnObject(T obj)
                                     throws Exception

      Returns an instance to the pool.
      Specified by:
        `returnObject` in interface `ObjectPool<T>`
      Parameters:
        `obj` - instance to return to the pool
      Throws:
        `Exception`

    - #### invalidateObject

          public abstract void invalidateObject(T obj)
                                         throws Exception

      Invalidates an object from the pool.

      By contract, `obj` must have been obtained using `borrowObject`.

      This method should be used when an object that has been borrowed is determined (due to an exception or other problem) to be invalid.

      Specified by:
        `invalidateObject` in interface `ObjectPool<T>`
      Parameters:
        `obj` - a `borrowed` instance to be disposed.
      Throws:
        `Exception`

    - #### getNumIdle

          public int getNumIdle()

      Not supported in this base implementation.
      Specified by:
        `getNumIdle` in interface `ObjectPool<T>`
      Returns:
        a negative value.

    - #### getNumActive

          public int getNumActive()

      Not supported in this base implementation.
      Specified by:
        `getNumActive` in interface `ObjectPool<T>`
      Returns:
        a negative value.

    - #### clear

          public void clear()
                     throws Exception,
                            UnsupportedOperationException

      Not supported in this base implementation.
      Specified by:
        `clear` in interface `ObjectPool<T>`
      Throws:
        `UnsupportedOperationException`
        `Exception`

    - #### addObject

          public void addObject()
                         throws Exception,
                                UnsupportedOperationException

      Not supported in this base implementation.Always throws an `UnsupportedOperationException`, subclasses should override this behavior.
      Specified by:
        `addObject` in interface `ObjectPool<T>`
      Throws:
        `UnsupportedOperationException`
        `Exception` - when `PooledObjectFactory.makeObject()` fails.
        `IllegalStateException` - after `ObjectPool.close()` has been called on this pool.

    - #### close

          public void close()

      Close this pool. This affects the behavior of `isClosed` and `assertOpen`.
      Specified by:
        `close` in interface `ObjectPool<T>`

    - #### isClosed

          public final boolean isClosed()

      Has this pool instance been closed.
      Returns:
        `true` when this pool has been closed.

    - #### assertOpen

          protected final void assertOpen()
                                   throws IllegalStateException

      Throws an `IllegalStateException` when this pool has been closed.
      Throws:
        `IllegalStateException` - when this pool has been closed.
      See Also:
        `isClosed()`

Copyright © 2001–2013 The Apache Software Foundation. All rights reserved.