Class 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.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private KeyedObjectPool<K,​V> keyedPool
      Underlying pool
      private java.lang.Class<V> type
      Expected type of objects managed by the pool.
    • 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 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()
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • 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.
    • 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 pool
        type - 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 interface KeyedObjectPool<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 type
        java.lang.IllegalStateException - after close has been called on this pool
        java.lang.Exception - when makeObject throws an exception
        java.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 interface KeyedObjectPool<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 interface KeyedObjectPool<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 the 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).
        Specified by:
        addObject in interface KeyedObjectPool<K,​V>
        Parameters:
        key - the key a new instance should be added to
        Throws:
        java.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.
      • getNumIdle

        public int getNumIdle​(K key)
                       throws java.lang.UnsupportedOperationException
        Returns the number of instances corresponding to the given key currently idle in this pool (optional operation). Returns a negative value if this information is not available.
        Specified by:
        getNumIdle in interface KeyedObjectPool<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 given key (optional operation). Returns a negative value if this information is not available.
        Specified by:
        getNumActive in interface KeyedObjectPool<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 interface KeyedObjectPool<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 interface KeyedObjectPool<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). Throws UnsupportedOperationException if the pool cannot be cleared.
        Specified by:
        clear in interface KeyedObjectPool<K,​V>
        Throws:
        java.lang.UnsupportedOperationException - when this implementation doesn't support the operation
        java.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 given key (optional operation). Throws UnsupportedOperationException if the pool cannot be cleared.
        Specified by:
        clear in interface KeyedObjectPool<K,​V>
        Parameters:
        key - the key to clear
        Throws:
        java.lang.UnsupportedOperationException - when this implementation doesn't support the operation
        java.lang.Exception
      • close

        public void close()
        Close this pool, and free any resources associated with it.

        Calling addObject or borrowObject after invoking this method on a pool will cause them to throw an IllegalStateException.

        Specified by:
        close in interface KeyedObjectPool<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.0
        Sets the object factory associated with the pool
        Specified by:
        setFactory in interface KeyedObjectPool<K,​V>
        Parameters:
        factory - object factory
        Throws:
        java.lang.IllegalStateException - when the factory cannot be set at this time
        java.lang.UnsupportedOperationException - when this implementation doesn't support the operation
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object