InjectorFactory

izumi.distage.InjectorFactory

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Injector.type

Members list

Concise view

Value members

Abstract methods

def apply[F[_] : DefaultModule](overrides: BootstrapModule*): Injector[F]

Create a new Injector

Create a new Injector

Attributes

F

the effect type to use for effect and resource bindings and the result of izumi.distage.model.Injector#produce

overrides

Optional: Overrides of Injector's own bootstrap environment - injector itself is constructed with DI. They can be used to customize the Injector, e.g. by adding members to izumi.distage.model.planning.PlanningHook Set.

def apply[F[_] : DefaultModule](bootstrapBase: BootstrapContextModule, bootstrapActivation: Activation, parent: Option[Locator], overrides: Seq[BootstrapModule]): Injector[F]

Create a new Injector with custom parameters izumi.distage.model.definition.BootstrapContextModule

Create a new Injector with custom parameters izumi.distage.model.definition.BootstrapContextModule

Attributes

F

The effect type to use for effect and resource bindings and the result of izumi.distage.model.Injector#produce

bootstrapActivation

A map of axes of configuration to choices along these axes for the bootstrap environment. The passed activation will affect only the bootstrapping of the Injector itself (see izumi.distage.bootstrap.BootstrapLocator). To set activation choices for subsequent injections, pass Activation to the methods of the created Injector

bootstrapBase

Initial bootstrap context module, such as izumi.distage.bootstrap.BootstrapLocator.defaultBootstrap

overrides

Overrides of Injector's own bootstrap environment - injector itself is constructed with DI. They can be used to customize the Injector, e.g. by adding members to izumi.distage.model.planning.PlanningHook Set.

parent

If set, this locator will be used as parent for the bootstrap locator. Use this parameter if you want to reuse components from another injection BUT also want to recreate the bootstrap environment with new parameters. If you just want to reuse all components, including the bootstrap environment, use inherit

def apply(): Injector[Identity]

Create a new default Injector with izumi.fundamentals.platform.functional.Identity effect type

Create a new default Injector with izumi.fundamentals.platform.functional.Identity effect type

Use apply[F]() variant to specify a different effect type

Attributes

def inherit[F[_] : Tag](parent: Locator): Injector[F]

Create a new injector inheriting configuration, hooks and the object graph from a previous injection.

Create a new injector inheriting configuration, hooks and the object graph from a previous injection.

Attributes

F

the effect type to use for effect and resource bindings and the result of izumi.distage.model.Injector#produce

parent

Instances from parent izumi.distage.model.Locator will be available as imports in new Injector's produce

def inheritWithNewDefaultModule[F[_] : Tag](parent: Locator, defaultModule: DefaultModule[F]): Injector[F]

Create a new injector inheriting configuration, hooks and the object graph from a previous injection.

Create a new injector inheriting configuration, hooks and the object graph from a previous injection.

Unlike inherit this will fully (re)create the defaultModule in subsequent injections, without reusing the existing instances in parent.

Attributes

F

the effect type to use for effect and resource bindings and the result of izumi.distage.model.Injector#produce

parent

Instances from parent izumi.distage.model.Locator will be available as imports in new Injector's produce

def providedKeys[F[_] : DefaultModule](overrides: BootstrapModule*): Set[DIKey]

Keys summonable by default in DI, including those added additionally by izumi.distage.modules.DefaultModule

Keys summonable by default in DI, including those added additionally by izumi.distage.modules.DefaultModule

Attributes

def providedKeys[F[_] : DefaultModule](bootstrapBase: BootstrapContextModule, overrides: BootstrapModule*): Set[DIKey]

Concrete methods

def bootloader[F[_]](bootstrapModule: BootstrapModule, bootstrapActivation: Activation, defaultModule: DefaultModule[F], input: PlannerInput): Bootloader