PerUserPoolDataSourceFactory (Apache Tomcat 11.0.23 API Documentation)
Description: declaration: package: org.apache.tomcat.dbcp.dbcp2.datasources, class: PerUserPoolDataSourceFactory

# Class PerUserPoolDataSourceFactory

java.lang.Object
org.apache.tomcat.dbcp.dbcp2.datasources.PerUserPoolDataSourceFactory

All Implemented Interfaces:
  `ObjectFactory`

public class PerUserPoolDataSourceFactory extends Object
A JNDI ObjectFactory which creates `PerUserPoolDataSource`s.

Since:
  2.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PerUserPoolDataSourceFactory()`
  Constructs a new PerUserPoolDataSourceFactory instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static void`
  `closeAll()`
  Closes all pools associated with this class.
  `protected static final Object`
  `deserialize(byte[] data)`
  Deserializes the provided byte array to create an object.
  `protected InstanceKeyDataSource`
  `getNewInstance(Reference ref)`
  Creates an instance of the subclass and sets any properties contained in the Reference.
  `Object`
  `getObjectInstance(Object refObj, Name name, Context context, Hashtable<?,?> env)`
  Implements ObjectFactory to create an instance of SharedPoolDataSource or PerUserPoolDataSource
  `protected boolean`
  `isCorrectClass(String className)`
  Tests if className is the value returned from getClass().getName().toString().

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### PerUserPoolDataSourceFactory

    public PerUserPoolDataSourceFactory()
    Constructs a new PerUserPoolDataSourceFactory instance.

- ## Method Details

  - ### getNewInstance

    protected InstanceKeyDataSource getNewInstance(Reference ref) throws IOException, ClassNotFoundException
    Creates an instance of the subclass and sets any properties contained in the Reference.
    Parameters:
      `ref` - The properties to be set on the created DataSource
    Returns:
      A configured DataSource of the appropriate type.
    Throws:
      `IOException` - If an I/O error occurs during the deserialization of a configuration parameter.
      `ClassNotFoundException` - If a class cannot be found during the deserialization of a configuration parameter.

  - ### isCorrectClass

    protected boolean isCorrectClass(String className)
    Tests if className is the value returned from getClass().getName().toString().
    Parameters:
      `className` - The class name to test.
    Returns:
      true if and only if className is the value returned from getClass().getName().toString()

  - ### closeAll

    public static void closeAll() throws ListException
    Closes all pools associated with this class.
    Throws:
      `ListException` - a `ListException` containing all exceptions thrown by `InstanceKeyDataSource.close()`
    Since:
      2.4.0 throws a `ListException` instead of, in 2.3.0 and before, the first exception thrown by `InstanceKeyDataSource.close()`.
    See Also:
      - `InstanceKeyDataSource.close()`

  - ### deserialize

    protected static final Object deserialize(byte[] data) throws IOException, ClassNotFoundException
    Deserializes the provided byte array to create an object.
    Parameters:
      `data` - Data to deserialize to create the configuration parameter.
    Returns:
      The Object created by deserializing the data.
    Throws:
      `ClassNotFoundException` - If a class cannot be found during the deserialization of a configuration parameter.
      `IOException` - If an I/O error occurs during the deserialization of a configuration parameter.

  - ### getObjectInstance

    public Object getObjectInstance(Object refObj, Name name, Context context, Hashtable<?,?> env) throws IOException, ClassNotFoundException
    Implements ObjectFactory to create an instance of SharedPoolDataSource or PerUserPoolDataSource
    Specified by:
      `getObjectInstance` in interface `ObjectFactory`
    Throws:
      `IOException`
      `ClassNotFoundException`