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