Package org.apache.tomcat.dbcp.pool2

## Class BasePooledObjectFactory<T>

- java.lang.Object
- - org.apache.tomcat.dbcp.pool2.BaseObject
  - - org.apache.tomcat.dbcp.pool2.BasePooledObjectFactory<T>

Type Parameters:
  `T` - Type of element managed in this factory.

All Implemented Interfaces:
  `PooledObjectFactory<T>`

    public abstract class BasePooledObjectFactory<T>
    extends BaseObject
    implements PooledObjectFactory<T>

A base implementation of `PoolableObjectFactory`.

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

This class is immutable, and therefore thread-safe

Since:
  2.0
See Also:
  `PooledObjectFactory`, `BaseKeyedPooledObjectFactory`

### Constructor Summary

Constructors
`BasePooledObjectFactory()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`void` `activateObject​(PooledObject<T> p)` No-op.
`abstract T` `create()` Creates an object instance, to be wrapped in a `PooledObject`.
`void` `destroyObject​(PooledObject<T> p)` No-op.
`PooledObject<T>` `makeObject()` Creates an instance that can be served by the pool and wrap it in a `PooledObject` to be managed by the pool.
`void` `passivateObject​(PooledObject<T> p)` No-op.
`boolean` `validateObject​(PooledObject<T> p)` This implementation always returns `true`.
`abstract PooledObject<T>` `wrap​(T obj)` 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.PooledObjectFactory

`destroyObject`

### Constructor Detail

#### BasePooledObjectFactory

    public BasePooledObjectFactory()

### Method Detail

#### create

    public abstract T create()
                      throws java.lang.Exception

Creates an object instance, to be wrapped in a `PooledObject`.

This method must support concurrent, multi-threaded activation.

Returns:
  an instance to 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<T> wrap​(T obj)

Wrap the provided instance with an implementation of `PooledObject`.

Parameters:
  `obj` - the instance to wrap
Returns:
  The provided instance, wrapped by a `PooledObject`

#### makeObject

    public PooledObject<T> makeObject()
                               throws java.lang.Exception

Description copied from interface: `PooledObjectFactory`
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 `PooledObjectFactory<T>`
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​(PooledObject<T> p)
                       throws java.lang.Exception

No-op.

Specified by:
  `destroyObject` in interface `PooledObjectFactory<T>`
Parameters:
  `p` - ignored
Throws:
  `java.lang.Exception` - should be avoided as it may be swallowed by the pool implementation.
See Also:
  `PooledObjectFactory.validateObject(org.apache.tomcat.dbcp.pool2.PooledObject<T>)`, `ObjectPool.invalidateObject(T)`

#### validateObject

    public boolean validateObject​(PooledObject<T> p)

This implementation always returns `true`.

Specified by:
  `validateObject` in interface `PooledObjectFactory<T>`
Parameters:
  `p` - ignored
Returns:
  `true`

#### activateObject

    public void activateObject​(PooledObject<T> p)
                        throws java.lang.Exception

No-op.

Specified by:
  `activateObject` in interface `PooledObjectFactory<T>`
Parameters:
  `p` - ignored
Throws:
  `java.lang.Exception` - if there is a problem activating `obj`, this exception may be swallowed by the pool.
See Also:
  `PooledObjectFactory.destroyObject(org.apache.tomcat.dbcp.pool2.PooledObject<T>)`

#### passivateObject

    public void passivateObject​(PooledObject<T> p)
                         throws java.lang.Exception

No-op.

Specified by:
  `passivateObject` in interface `PooledObjectFactory<T>`
Parameters:
  `p` - ignored
Throws:
  `java.lang.Exception` - if there is a problem passivating `obj`, this exception may be swallowed by the pool.
See Also:
  `PooledObjectFactory.destroyObject(org.apache.tomcat.dbcp.pool2.PooledObject<T>)`