Package org.postgresql.util

# Class ObjectFactory

java.lang.Object
org.postgresql.util.ObjectFactory

Direct Known Subclasses:
  `MakeSSL`

public class ObjectFactory extends Object
Helper class to instantiate objects. Note: the class is NOT public API, so it is subject to change.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ObjectFactory()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static <T> T`
  `instantiate(Class<T> expectedClass, String classname, Properties info, boolean tryString, @Nullable String stringarg)`
  Instantiates a class using the appropriate constructor.

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

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

- ## Constructor Details

  - ### ObjectFactory

    public ObjectFactory()

- ## Method Details

  - ### instantiate

    public static <T> T instantiate(Class<T> expectedClass, String classname, Properties info, boolean tryString, @Nullable String stringarg) throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException
    Instantiates a class using the appropriate constructor. If a constructor with a single Propertiesparameter exists, it is used. Otherwise, if tryString is true a constructor with a single String argument is searched if it fails, or tryString is true a no argument constructor is tried.
    Type Parameters:
      `T` - type of expected class
    Parameters:
      `expectedClass` - expected class of type T, if the classname instantiated doesn't match the expected type of this class this method will fail
      `classname` - name of the class to instantiate
      `info` - parameter to pass as Properties
      `tryString` - whether to look for a single String argument constructor
      `stringarg` - parameter to pass as String
    Returns:
      the instantiated class
    Throws:
      `ClassNotFoundException` - if something goes wrong
      `SecurityException` - if something goes wrong
      `NoSuchMethodException` - if something goes wrong
      `IllegalArgumentException` - if something goes wrong
      `InstantiationException` - if something goes wrong
      `IllegalAccessException` - if something goes wrong
      `InvocationTargetException` - if something goes wrong