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
  Constructor
  Description
  `BasePooledObjectFactory()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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)`
  Always returns `true`.
  `abstract PooledObject<T>`
  `wrap(T obj)`
  Wraps 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 Details

  - ### BasePooledObjectFactory

    public BasePooledObjectFactory()

- ## Method Details

  - ### activateObject

    public void activateObject(PooledObject<T> p) throws Exception
    No-op.
    Specified by:
      `activateObject` in interface `PooledObjectFactory<T>`
    Parameters:
      `p` - ignored
    Throws:
      `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>)`

  - ### create

    public abstract T create() throws 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:
      `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 Exception
    No-op.
    Specified by:
      `destroyObject` in interface `PooledObjectFactory<T>`
    Parameters:
      `p` - ignored
    Throws:
      `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)`

  - ### makeObject

    public PooledObject<T> makeObject() throws 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, not null.
    Throws:
      `Exception` - if there is a problem creating a new instance, this will be propagated to the code requesting an object.

  - ### passivateObject

    public void passivateObject(PooledObject<T> p) throws Exception
    No-op.
    Specified by:
      `passivateObject` in interface `PooledObjectFactory<T>`
    Parameters:
      `p` - ignored
    Throws:
      `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>)`

  - ### validateObject

    public boolean validateObject(PooledObject<T> p)
    Always returns `true`.
    Specified by:
      `validateObject` in interface `PooledObjectFactory<T>`
    Parameters:
      `p` - ignored
    Returns:
      `true`

  - ### wrap

    public abstract PooledObject<T> wrap(T obj)
    Wraps the provided instance with an implementation of `PooledObject`.
    Parameters:
      `obj` - the instance to wrap
    Returns:
      The provided instance, wrapped by a `PooledObject`