All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.salomonbrys.kodein.internal.TKodeinImpl.kt Maven / Gradle / Ivy

There is a newer version: 4.1.0
Show newest version
package com.github.salomonbrys.kodein.internal

import com.github.salomonbrys.kodein.Kodein
import com.github.salomonbrys.kodein.KodeinContainer
import com.github.salomonbrys.kodein.TKodein
import java.lang.reflect.Type

@Suppress("UNCHECKED_CAST", "unused")
class TKodeinImpl(private val _container: KodeinContainer) : TKodein {

    override fun factory(argType: Type, type: Type, tag: Any?): (Any) -> Any = _container.nonNullFactory(Kodein.Key(Kodein.Bind(type, tag), argType))

    override fun factoryOrNull(argType: Type, type: Type, tag: Any?): ((Any) -> Any)? = _container.factoryOrNull(Kodein.Key(Kodein.Bind(type, tag), argType))

    override fun provider(type: Type, tag: Any?): () -> Any = _container.nonNullProvider(Kodein.Bind(type, tag))

    override fun providerOrNull(type: Type, tag: Any?): (() -> Any)? = _container.providerOrNull(Kodein.Bind(type, tag))

    override fun instance(type: Type, tag: Any?): Any = _container.nonNullProvider(Kodein.Bind(type, tag)).invoke()

    override fun instanceOrNull(type: Type, tag: Any?): Any? = _container.providerOrNull(Kodein.Bind(type, tag))?.invoke()
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy