# Uses of Package
oracle.dbtools.plugin.api.di

- Packages that use oracle.dbtools.plugin.api.di
  Package | Description
  --- | ---
  oracle.dbtools.plugin.api.di | A `javax.inject` compatible Dependency Injection (D.I.) framework.
  oracle.dbtools.plugin.api.types | Provides a layer atop `java.lang.reflect` package to aid dependency resolution and injection.

- Classes in oracle.dbtools.plugin.api.di used by oracle.dbtools.plugin.api.di
  Class | Description
  --- | ---
  Annotations | Provides methods for working with annotations.
  Annotations.Builder | Builds new `Annotation` instances
  AvailableDependencies | Enumerates the publicly available services that can be injected into plugins via the `Inject` annotation on a type's constructor.
  DeferredInstanceProvider | `InstanceProvider` implementation that defers resolving an instance until `DeferredInstanceProvider.get()`, `DeferredInstanceProvider.hasMultiple()`, `DeferredInstanceProvider.isUnsatisfied()`, or `DeferredInstanceProvider.iterator()` is invoked
  DependencyInjectionModule | A Module is a collection of related services
  InstanceLocator | Allows the application to dynamically obtain instances of services with a specified combination of required type and qualifiers.
  InstanceProvider | `Provider` specialization that provides the ability to: determine if a provider implementation was found, via `InstanceProvider.isUnsatisfied()` determine if there are multiple implementations found, via `InstanceProvider.isAmbiguous()` Iterate over the available implementations, via `InstanceProvider.iterator()` Stream through available implementations, via `InstanceProvider.stream()`
  Instances | Locates concrete instances of types
  Instances.Builder | Build `Instances` instances
  Instances.QualifiedInstance | Represents an individual instance of a qualified service
  ModuleDependencies | Enumerates the set of `DependencyInjectionModule`s that a given `DependencyInjectionModule` depends on
  ModuleDependencies.Builder |
  ResolvedInstances | Represents the discovered matches for a call to `InstanceLocator.select(TypeQualifier)`
  ScopeConfiguration | Provides the capability to inject additional services and instances into a scope

- Classes in oracle.dbtools.plugin.api.di used by oracle.dbtools.plugin.api.types
  Class | Description
  --- | ---
  InstanceLocator | Allows the application to dynamically obtain instances of services with a specified combination of required type and qualifiers.
  Instances | Locates concrete instances of types