Singleton

class Singleton<C : Any, T : Any>(val scope: Scope<C>, val contextType: TypeToken<in C>, explicitContext: Boolean, val createdType: TypeToken<out T>, refMaker: RefMaker? = null, val sync: Boolean = true, val creator: NoArgBindingDI<C>.() -> T) : NoArgDIBinding<C, T>

Singleton Binding: will create an instance on first request and will subsequently always return the same instance.

Parameters

T

The created type.

createdType

The type of the created object, used for debug print only.

creator

The function that will be called the first time an instance is requested. Guaranteed to be called only once. Should create a new instance.

Constructors

Link copied to clipboard
fun <C : Any, T : Any> Singleton(scope: Scope<C>, contextType: TypeToken<in C>, explicitContext: Boolean, createdType: TypeToken<out T>, refMaker: RefMaker? = null, sync: Boolean = true, creator: NoArgBindingDI<C>.() -> T)

Functions

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

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, Unit, T>, di: BindingDI<C>): (Unit) -> T

Properties

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

The type of the argument this factory will function for.

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 override val copier: DIBinding.Copier<C, Unit, 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>
Link copied to clipboard
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 override val scope: Scope<C>

The scope used by this factory, if any

Link copied to clipboard

Whether this bindings supports subtype handling.

Link copied to clipboard
val sync: Boolean = true