SubTypes

class SubTypes<C : Any, A, T : Any>(val contextType: TypeToken<in C>, val argType: TypeToken<in A>, val createdType: TypeToken<out T>, val block: (TypeToken<out T>) -> DIBinding<in C, in A, out T>) : DIBinding<C, A, T>

Binding that holds multiple bindings for subtypes of T.

Parameters

C

The context type of all bindings in the set.

A

The argument type of all bindings in the set.

T

The provided type of all bindings in the set.

block

A function that provides a binding for each subtype.

Constructors

Link copied to clipboard
fun <C : Any, A, T : Any> SubTypes(contextType: TypeToken<in C>, argType: TypeToken<in A>, createdType: TypeToken<out T>, block: (TypeToken<out T>) -> DIBinding<in C, in A, out T>)

Functions

Link copied to clipboard

The full(er) name of this factory, used for debug print only.

Link copied to clipboard
open override fun factoryName(): String

The name of this factory, used for debug print only.

Link copied to clipboard
open override fun getFactory(key: DI.Key<C, A, T>, di: BindingDI<C>): (A) -> T

Returns a factory for the given key. A factory is a function that returns an instance of type T function argument A.

Properties

Link copied to clipboard
open override val argType: TypeToken<in A>

The type of the argument this factory will function for.

Link copied to clipboard
val block: (TypeToken<out T>) -> DIBinding<in C, in A, out T>
Link copied to clipboard
open override val contextType: TypeToken<in C>

The type of contexts that are to be set when using this factory.

Link copied to clipboard
open val copier: DIBinding.Copier<C, A, T>?

A copier that is responsible for copying / resetting the binding. If null, it means that the binding do not hold any reference or status and need not be copied.

Link copied to clipboard
open override val createdType: TypeToken<out T>

The type of object that is created by this factory.

Link copied to clipboard

The description of this factory (using simple type names), used for debug print only.

Link copied to clipboard

The description of this factory (using full type names), used for debug print only.

Link copied to clipboard
open val scope: Scope<C>?

The scope used by this factory, if any

Link copied to clipboard
open override val supportSubTypes: Boolean

Whether this bindings supports subtype handling.