org.apache.commons.pool
public interface ObjectPool
ObjectPool
defines a trivially simple pooling interface. The only
required methods are {@link #borrowObject borrowObject} and {@link #returnObject returnObject}.
Example of use:
Object obj = null; try { obj = pool.borrowObject(); //...use the object... } catch(Exception e) { //...handle any exceptions... } finally { // make sure the object is returned to the pool if(null != obj) { pool.returnObject(obj); } } |
Version: $Revision: 155430 $ $Date: 2005-02-26 08:13:28 -0500 (Sat, 26 Feb 2005) $
Method Summary | |
---|---|
void | addObject()
Create an object using my {@link #setFactory factory} or other
implementation dependent mechanism, and place it into the pool.
addObject() is useful for "pre-loading" a pool with idle objects.
|
Object | borrowObject()
Obtain an instance from my pool.
|
void | clear()
Clears any objects sitting idle in the pool, releasing any
associated resources (optional operation).
|
void | close()
Close this pool, and free any resources associated with it. |
int | getNumActive()
Return the number of instances
currently borrowed from my pool
(optional operation).
|
int | getNumIdle()
Return the number of instances
currently idle in my pool (optional operation).
|
void | invalidateObject(Object obj)
Invalidates an object from the pool
By contract, obj MUST have been obtained
using {@link #borrowObject() borrowObject}
or a related method as defined in an implementation
or sub-interface.
|
void | returnObject(Object obj)
Return an instance to my pool.
|
void | setFactory(PoolableObjectFactory factory)
Sets the {@link PoolableObjectFactory factory} I use
to create new instances (optional operation). |
The behaviour of this method when the pool has been exhausted is not specified (although it may be specified by implementations).
Returns: an instance from my pool.
Throws: UnsupportedOperationException if this implementation does not support the operation
Returns: the number of instances currently borrowed in my pool
Throws: UnsupportedOperationException if this implementation does not support the operation
Returns: the number of instances currently idle in my pool
Throws: UnsupportedOperationException if this implementation does not support the operation
This method should be used when an object that has been borrowed is determined (due to an exception or other problem) to be invalid. If the connection should be validated before or after borrowing, then the {@link PoolableObjectFactory#validateObject} method should be used instead.
Parameters: obj a {@link #borrowObject borrowed} instance to be returned.
Parameters: obj a {@link #borrowObject borrowed} instance to be returned.
Parameters: factory the {@link PoolableObjectFactory} I use to create new instances.
Throws: IllegalStateException when the factory cannot be set at this time UnsupportedOperationException if this implementation does not support the operation