Class TypeInstantiator<T>

java.lang.Object
oracle.dbtools.plugin.api.types.TypeInstantiator<T>
Type Parameters:
T - The type of object to instantiate

public abstract class TypeInstantiator<T> extends Object
TypeInstantiator implementations are responsible for instantiating instances of type TypeInstantiator.
Since:
19.3.0
Author:
cdivilly
  • Constructor Details

    • TypeInstantiator

      protected TypeInstantiator(Class<T> type)
      Constructor for a custom TypeInstantiator implementation
      Parameters:
      type - The type that will be instantiated
    • TypeInstantiator

      protected TypeInstantiator(Class<T> type, boolean custom)
      Constructor
      Parameters:
      type - The type that will be instantiated
      custom - if true indicates this is a custom TypeInstantiator implementation, as opposed to one generated by the dependency injection runtime
  • Method Details

    • isCustom

      public boolean isCustom()
      Indicates if this is a custom instantiator for this type, or a generic one provided by the dependency injection framework
      Returns:
      true if this is a custom instantiator, false if this is a generic instantiator
    • load

      public abstract T load(InstanceLocator locator) throws TypeDependencyNotAvailableException
      Instantiate the instance of T
      Parameters:
      locator - The InstanceLocator that provides the dependencies required to instantiate T
      Returns:
      instance of T
      Throws:
      TypeDependencyNotAvailableException - if the type could not be instantiated
    • type

      public final Class<T> type()
      The type that will be instantiated
      Returns:
      The type that this TypeInstantiator instantiates
    • notAvailable

      protected final TypeDependencyNotAvailableException notAvailable(Throwable cause)
    • dependenciesSatisfied

      public boolean dependenciesSatisfied(InstanceLocator locator)
      Used to determine if the dependencies for the constructor are satisfied.
      Parameters:
      locator -
      Returns: