Class BaseKeyedPooledObjectFactory<K,​V>

  • Type Parameters:
    K - The type of keys managed by this factory.
    V - Type of element managed by this factory.
    All Implemented Interfaces:
    KeyedPooledObjectFactory<K,​V>

    public abstract class BaseKeyedPooledObjectFactory<K,​V>
    extends BaseObject
    implements KeyedPooledObjectFactory<K,​V>
    A base implementation of KeyedPooledObjectFactory.

    All operations defined here are essentially no-op's.

    This class is immutable, and therefore thread-safe.

    Since:
    2.0
    See Also:
    KeyedPooledObjectFactory
    • Constructor Detail

      • BaseKeyedPooledObjectFactory

        public BaseKeyedPooledObjectFactory()
    • Method Detail

      • create

        public abstract V create​(K key)
                          throws java.lang.Exception
        Create an instance that can be served by the pool.
        Parameters:
        key - the key used when constructing the object
        Returns:
        an instance that can be served by the pool
        Throws:
        java.lang.Exception - if there is a problem creating a new instance, this will be propagated to the code requesting an object.
      • makeObject

        public PooledObject<V> makeObject​(K key)
                                   throws java.lang.Exception
        Description copied from interface: KeyedPooledObjectFactory
        Creates an instance that can be served by the pool and wrap it in a PooledObject to be managed by the pool.
        Specified by:
        makeObject in interface KeyedPooledObjectFactory<K,​V>
        Parameters:
        key - the key used when constructing the object
        Returns:
        a PooledObject wrapping an instance that can be served by the pool.
        Throws:
        java.lang.Exception - if there is a problem creating a new instance, this will be propagated to the code requesting an object.
      • validateObject

        public boolean validateObject​(K key,
                                      PooledObject<V> p)
        Ensures that the instance is safe to be returned by the pool.

        The default implementation always returns true.

        Specified by:
        validateObject in interface KeyedPooledObjectFactory<K,​V>
        Parameters:
        key - the key used when selecting the object
        p - a PooledObject wrapping the instance to be validated
        Returns:
        always true in the default implementation
      • wrap

        public abstract PooledObject<V> wrap​(V value)
        Wrap the provided instance with an implementation of PooledObject.
        Parameters:
        value - the instance to wrap
        Returns:
        The provided instance, wrapped by a PooledObject