Package org.apache.tomcat.dbcp.pool2

## Class BaseKeyedPooledObjectFactory<K,​V>

- java.lang.Object
- - org.apache.tomcat.dbcp.pool2.BaseObject
  - - org.apache.tomcat.dbcp.pool2.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 Summary

Constructors
`BaseKeyedPooledObjectFactory()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`void` `activateObject​(K key, PooledObject<V> p)` Reinitialize an instance to be returned by the pool.
`abstract V` `create​(K key)` Create an instance that can be served by the pool.
`void` `destroyObject​(K key, PooledObject<V> p)` Destroy an instance no longer needed by the pool.
`PooledObject<V>` `makeObject​(K key)` Create an instance that can be served by the pool and wrap it in a `PooledObject` to be managed by the pool.
`void` `passivateObject​(K key, PooledObject<V> p)` Uninitialize an instance to be returned to the idle object pool.
`boolean` `validateObject​(K key, PooledObject<V> p)` Ensures that the instance is safe to be returned by the pool.
`abstract PooledObject<V>` `wrap​(V value)` Wrap the provided instance with an implementation of `PooledObject`.

### Methods inherited from class org.apache.tomcat.dbcp.pool2.BaseObject

`toString, toStringAppendFields`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.apache.tomcat.dbcp.pool2.KeyedPooledObjectFactory

`destroyObject`

### 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.

#### 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`

#### makeObject

    public PooledObject<V> makeObject​(K key)
                               throws java.lang.Exception

Description copied from interface: `KeyedPooledObjectFactory`
Create 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.

#### destroyObject

    public void destroyObject​(K key,
                              PooledObject<V> p)
                       throws java.lang.Exception

Destroy an instance no longer needed by the pool.

The default implementation is a no-op.

Specified by:
  `destroyObject` in interface `KeyedPooledObjectFactory<K,​V>`
Parameters:
  `key` - the key used when selecting the instance
  `p` - a `PooledObject` wrapping the instance to be destroyed
Throws:
  `java.lang.Exception` - should be avoided as it may be swallowed by the pool implementation.
See Also:
  `KeyedPooledObjectFactory.validateObject(K, org.apache.tomcat.dbcp.pool2.PooledObject<V>)`, `KeyedObjectPool.invalidateObject(K, V)`

#### 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

#### activateObject

    public void activateObject​(K key,
                               PooledObject<V> p)
                        throws java.lang.Exception

Reinitialize an instance to be returned by the pool.

The default implementation is a no-op.

Specified by:
  `activateObject` in interface `KeyedPooledObjectFactory<K,​V>`
Parameters:
  `key` - the key used when selecting the object
  `p` - a `PooledObject` wrapping the instance to be activated
Throws:
  `java.lang.Exception` - if there is a problem activating `obj`, this exception may be swallowed by the pool.
See Also:
  `KeyedPooledObjectFactory.destroyObject(K, org.apache.tomcat.dbcp.pool2.PooledObject<V>)`

#### passivateObject

    public void passivateObject​(K key,
                                PooledObject<V> p)
                         throws java.lang.Exception

Uninitialize an instance to be returned to the idle object pool.

The default implementation is a no-op.

Specified by:
  `passivateObject` in interface `KeyedPooledObjectFactory<K,​V>`
Parameters:
  `key` - the key used when selecting the object
  `p` - a `PooledObject` wrapping the instance to be passivated
Throws:
  `java.lang.Exception` - if there is a problem passivating `obj`, this exception may be swallowed by the pool.
See Also:
  `KeyedPooledObjectFactory.destroyObject(K, org.apache.tomcat.dbcp.pool2.PooledObject<V>)`