Package org.apache.commons.pool
Class PoolUtils.CheckedKeyedObjectPool<K,V>
- java.lang.Object
-
- org.apache.commons.pool.PoolUtils.CheckedKeyedObjectPool<K,V>
-
- All Implemented Interfaces:
KeyedObjectPool<K,V>
- Enclosing class:
- PoolUtils
private static class PoolUtils.CheckedKeyedObjectPool<K,V> extends java.lang.Object implements KeyedObjectPool<K,V>
A keyed object pool that performs type checking on objects passed to pool methods.
-
-
Constructor Summary
Constructors Constructor Description CheckedKeyedObjectPool(KeyedObjectPool<K,V> keyedPool, java.lang.Class<V> type)
Create a new CheckedKeyedObjectPool from the given pool with given expected object type.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addObject(K key)
Create an object using thefactory
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 givenkey
(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 givenkey
(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 givenkey
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.0java.lang.String
toString()
-
-
-
Field Detail
-
type
private final java.lang.Class<V> type
Expected type of objects managed by the pool. This should be a subtype of the return type of the object factory used by the pool.
-
keyedPool
private final KeyedObjectPool<K,V> keyedPool
Underlying pool
-
-
Constructor Detail
-
CheckedKeyedObjectPool
CheckedKeyedObjectPool(KeyedObjectPool<K,V> keyedPool, java.lang.Class<V> type)
Create a new CheckedKeyedObjectPool from the given pool with given expected object type.- Parameters:
keyedPool
- underlying pooltype
- expected object type- Throws:
java.lang.IllegalArgumentException
- if either parameter is null
-
-
Method Detail
-
borrowObject
public V borrowObject(K key) throws java.lang.Exception, java.util.NoSuchElementException, java.lang.IllegalStateException
Borrow an object from the pool, verifying correct return type.- Specified by:
borrowObject
in interfaceKeyedObjectPool<K,V>
- Parameters:
key
- pool key- Returns:
- type-checked object from the pool under the given key
- Throws:
java.lang.ClassCastException
- if the object returned by the pool is not of the expected typejava.lang.IllegalStateException
- afterclose
has been called on this pooljava.lang.Exception
- whenmakeObject
throws an exceptionjava.util.NoSuchElementException
- when the pool is exhausted and cannot or will not return another instance
-
returnObject
public void returnObject(K key, V obj)
Return an object to the pool, checking its type.- Specified by:
returnObject
in interfaceKeyedObjectPool<K,V>
- Parameters:
key
- the associated key (not type-checked)obj
- the object to return (type-checked)- Throws:
java.lang.ClassCastException
- if obj is not of the expected type
-
invalidateObject
public void invalidateObject(K key, V obj)
Invalidate an object to the pool, checking its type.- Specified by:
invalidateObject
in interfaceKeyedObjectPool<K,V>
- Parameters:
key
- the associated key (not type-checked)obj
- the object to return (type-checked)- Throws:
java.lang.ClassCastException
- if obj is not of the expected type
-
addObject
public void addObject(K key) throws java.lang.Exception, java.lang.IllegalStateException, java.lang.UnsupportedOperationException
Create an object using thefactory
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).- Specified by:
addObject
in interfaceKeyedObjectPool<K,V>
- Parameters:
key
- the key a new instance should be added to- Throws:
java.lang.Exception
- whenKeyedPoolableObjectFactory.makeObject(K)
fails.java.lang.IllegalStateException
- afterKeyedObjectPool.close()
has been called on this pool.java.lang.UnsupportedOperationException
- when this pool cannot add new idle objects.
-
getNumIdle
public int getNumIdle(K key) throws java.lang.UnsupportedOperationException
Returns the number of instances corresponding to the givenkey
currently idle in this pool (optional operation). Returns a negative value if this information is not available.- Specified by:
getNumIdle
in interfaceKeyedObjectPool<K,V>
- Parameters:
key
- the key to query- Returns:
- the number of instances corresponding to the given
key
currently idle in this pool or a negative value if unsupported - Throws:
java.lang.UnsupportedOperationException
- deprecated: when this implementation doesn't support the operation
-
getNumActive
public int getNumActive(K key) throws java.lang.UnsupportedOperationException
Returns the number of instances currently borrowed from but not yet returned to the pool corresponding to the givenkey
(optional operation). Returns a negative value if this information is not available.- Specified by:
getNumActive
in interfaceKeyedObjectPool<K,V>
- Parameters:
key
- the key to query- Returns:
- the number of instances corresponding to the given
key
currently borrowed in this pool or a negative value if unsupported - Throws:
java.lang.UnsupportedOperationException
- deprecated: when this implementation doesn't support the operation
-
getNumIdle
public int getNumIdle() throws java.lang.UnsupportedOperationException
Returns the total number of instances currently idle in this pool (optional operation). Returns a negative value if this information is not available.- Specified by:
getNumIdle
in interfaceKeyedObjectPool<K,V>
- Returns:
- the total number of instances currently idle in this pool or a negative value if unsupported
- Throws:
java.lang.UnsupportedOperationException
- deprecated: when this implementation doesn't support the operation
-
getNumActive
public int getNumActive() throws java.lang.UnsupportedOperationException
Returns the total number of instances current borrowed from this pool but not yet returned (optional operation). Returns a negative value if this information is not available.- Specified by:
getNumActive
in interfaceKeyedObjectPool<K,V>
- Returns:
- the total number of instances currently borrowed from this pool or a negative value if unsupported
- Throws:
java.lang.UnsupportedOperationException
- deprecated: when this implementation doesn't support the operation
-
clear
public void clear() throws java.lang.Exception, java.lang.UnsupportedOperationException
Clears the pool, removing all pooled instances (optional operation). ThrowsUnsupportedOperationException
if the pool cannot be cleared.- Specified by:
clear
in interfaceKeyedObjectPool<K,V>
- Throws:
java.lang.UnsupportedOperationException
- when this implementation doesn't support the operationjava.lang.Exception
-
clear
public void clear(K key) throws java.lang.Exception, java.lang.UnsupportedOperationException
Clears the specified pool, removing all pooled instances corresponding to the givenkey
(optional operation). ThrowsUnsupportedOperationException
if the pool cannot be cleared.- Specified by:
clear
in interfaceKeyedObjectPool<K,V>
- Parameters:
key
- the key to clear- Throws:
java.lang.UnsupportedOperationException
- when this implementation doesn't support the operationjava.lang.Exception
-
close
public void close()
Close this pool, and free any resources associated with it.Calling
addObject
orborrowObject
after invoking this method on a pool will cause them to throw anIllegalStateException
.- Specified by:
close
in interfaceKeyedObjectPool<K,V>
-
setFactory
@Deprecated public void setFactory(KeyedPoolableObjectFactory<K,V> factory) throws java.lang.IllegalStateException, java.lang.UnsupportedOperationException
Deprecated.to be removed in version 2.0Sets the object factory associated with the pool- Specified by:
setFactory
in interfaceKeyedObjectPool<K,V>
- Parameters:
factory
- object factory- Throws:
java.lang.IllegalStateException
- when the factory cannot be set at this timejava.lang.UnsupportedOperationException
- when this implementation doesn't support the operation
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-