public interface IParameterizedPool<T,P>
Please see SoftUnboundedPool for a reference implementation.
| Modifier and Type | Method and Description |
|---|---|
<I extends T> |
borrowObject(Class<I> clazz,
P parameter)
Borrows an object from the pool.
|
void |
dispose()
Disposes of the pool.
|
void |
init(IInstantiationListener<T,P> objectInstantiationListener,
IActivationListener<T,P> objectActivationListener,
IPassivationListener<T,P> objectPassivationListener,
IDisposalListener<T,P> objectDisposalListener)
Initializes the pool with a number of listeners.
|
void |
returnObject(T object,
P parameter)
Returns an object to the pool.
|
void init(IInstantiationListener<T,P> objectInstantiationListener, IActivationListener<T,P> objectActivationListener, IPassivationListener<T,P> objectPassivationListener, IDisposalListener<T,P> objectDisposalListener)
<I extends T> I borrowObject(Class<I> clazz, P parameter) throws InstantiationException, IllegalAccessException
clazz - class of object to be borrowedparameter - additional parameter determining a possible sub type within the
same class of objects being borrowed. A combination of class and
parameter uniquely identifies a "class" (equivalence class) of pooled
objects. The parameter is assumed to correctly implement the
Object.equals(Object) and Object.hashCode() methods. The
parameter can be null. The implementation must pass the
parameter to all listeners when managing the life cycle of the pooled
object. It is the callers responsibility to ensure that exactly the same
value of the parameter is passed to the corresponding
borrowObject(Class, Object) and
returnObject(Object, Object) methods.InstantiationExceptionIllegalAccessExceptionvoid returnObject(T object, P parameter)
object - object to returnparameter - parameter provided when borrowing the object. If the parameter was
not null when borrowing the object, the same value will be
passed here.void dispose()