private static class PoolUtils.CheckedKeyedObjectPool<K,V> extends java.lang.Object implements KeyedObjectPool<K,V>
Modifier and Type | Field and Description |
---|---|
private KeyedObjectPool<K,V> |
keyedPool
Underlying pool
|
private java.lang.Class<V> |
type
Expected type of objects managed by the pool.
|
Constructor and Description |
---|
CheckedKeyedObjectPool(KeyedObjectPool<K,V> keyedPool,
java.lang.Class<V> type)
Create a new CheckedKeyedObjectPool from the given pool with given expected object type.
|
Modifier and Type | Method and Description |
---|---|
void |
addObject(K key)
Create an object using the
factory or other
implementation dependent mechanism, passivate it, and then place it in the idle object pool. |
V |
borrowObject(K key)
Borrow an object from the pool, verifying correct return type.
|
void |
clear()
Clears the pool, removing all pooled instances (optional operation).
|
void |
clear(K key)
Clears the specified pool, removing all
pooled instances corresponding to
the given
key (optional operation). |
void |
close()
Close this pool, and free any resources associated with it.
|
int |
getNumActive()
Returns the total number of instances
current borrowed from this pool but not
yet returned (optional operation).
|
int |
getNumActive(K key)
Returns the number of instances
currently borrowed from but not yet returned
to the pool corresponding to the
given
key (optional operation). |
int |
getNumIdle()
Returns the total number of instances
currently idle in this pool (optional operation).
|
int |
getNumIdle(K key)
Returns the number of instances
corresponding to the given
key
currently idle in this pool (optional operation). |
void |
invalidateObject(K key,
V obj)
Invalidate an object to the pool, checking its type.
|
void |
returnObject(K key,
V obj)
Return an object to the pool, checking its type.
|
void |
setFactory(KeyedPoolableObjectFactory<K,V> factory)
Deprecated.
to be removed in version 2.0
|
java.lang.String |
toString() |
private final java.lang.Class<V> type
private final KeyedObjectPool<K,V> keyedPool
CheckedKeyedObjectPool(KeyedObjectPool<K,V> keyedPool, java.lang.Class<V> type)
keyedPool
- underlying pooltype
- expected object typejava.lang.IllegalArgumentException
- if either parameter is nullpublic V borrowObject(K key) throws java.lang.Exception, java.util.NoSuchElementException, java.lang.IllegalStateException
borrowObject
in interface KeyedObjectPool<K,V>
key
- pool keyjava.lang.ClassCastException
- if the object returned by the pool is not of the expected typejava.lang.IllegalStateException
- after close
has been called on this pooljava.lang.Exception
- when makeObject
throws an exceptionjava.util.NoSuchElementException
- when the pool is exhausted and cannot or will not return another instancepublic void returnObject(K key, V obj)
returnObject
in interface KeyedObjectPool<K,V>
key
- the associated key (not type-checked)obj
- the object to return (type-checked)java.lang.ClassCastException
- if obj is not of the expected typepublic void invalidateObject(K key, V obj)
invalidateObject
in interface KeyedObjectPool<K,V>
key
- the associated key (not type-checked)obj
- the object to return (type-checked)java.lang.ClassCastException
- if obj is not of the expected typepublic void addObject(K key) throws java.lang.Exception, java.lang.IllegalStateException, java.lang.UnsupportedOperationException
factory
or other
implementation dependent mechanism, passivate it, and then place it in the idle object pool.
addObject
is useful for "pre-loading" a pool with idle objects
(Optional operation).addObject
in interface KeyedObjectPool<K,V>
key
- the key a new instance should be added tojava.lang.Exception
- when KeyedPoolableObjectFactory.makeObject(K)
fails.java.lang.IllegalStateException
- after KeyedObjectPool.close()
has been called on this pool.java.lang.UnsupportedOperationException
- when this pool cannot add new idle objects.public int getNumIdle(K key) throws java.lang.UnsupportedOperationException
key
currently idle in this pool (optional operation).
Returns a negative value if this information is not available.getNumIdle
in interface KeyedObjectPool<K,V>
key
- the key to querykey
currently idle in this pool or a negative value if unsupportedjava.lang.UnsupportedOperationException
- deprecated: when this implementation doesn't support the operationpublic int getNumActive(K key) throws java.lang.UnsupportedOperationException
key
(optional operation).
Returns a negative value if this information is not available.getNumActive
in interface KeyedObjectPool<K,V>
key
- the key to querykey
currently borrowed in this pool or a negative value if unsupportedjava.lang.UnsupportedOperationException
- deprecated: when this implementation doesn't support the operationpublic int getNumIdle() throws java.lang.UnsupportedOperationException
getNumIdle
in interface KeyedObjectPool<K,V>
java.lang.UnsupportedOperationException
- deprecated: when this implementation doesn't support the operationpublic int getNumActive() throws java.lang.UnsupportedOperationException
getNumActive
in interface KeyedObjectPool<K,V>
java.lang.UnsupportedOperationException
- deprecated: when this implementation doesn't support the operationpublic void clear() throws java.lang.Exception, java.lang.UnsupportedOperationException
UnsupportedOperationException
if the pool cannot be cleared.clear
in interface KeyedObjectPool<K,V>
java.lang.UnsupportedOperationException
- when this implementation doesn't support the operationjava.lang.Exception
public void clear(K key) throws java.lang.Exception, java.lang.UnsupportedOperationException
key
(optional operation).
Throws UnsupportedOperationException
if the pool cannot be cleared.clear
in interface KeyedObjectPool<K,V>
key
- the key to clearjava.lang.UnsupportedOperationException
- when this implementation doesn't support the operationjava.lang.Exception
public void close()
Calling addObject
or borrowObject
after invoking
this method on a pool will cause them to throw an IllegalStateException
.
close
in interface KeyedObjectPool<K,V>
@Deprecated public void setFactory(KeyedPoolableObjectFactory<K,V> factory) throws java.lang.IllegalStateException, java.lang.UnsupportedOperationException
setFactory
in interface KeyedObjectPool<K,V>
factory
- object factoryjava.lang.IllegalStateException
- when the factory cannot be set at this timejava.lang.UnsupportedOperationException
- when this implementation doesn't support the operationpublic java.lang.String toString()
toString
in class java.lang.Object