com.github.salomonbrys.kodein.TKodein.kt Maven / Gradle / Ivy
package com.github.salomonbrys.kodein
import java.lang.reflect.Type
/**
* Java access to Kodein dependency injection.
* Each method works either with a Class or with a TypeToken.
* To create a TypeToken, you must use the following syntax: `new TypeToken<Type<SubType>>(){}`
*/
@Suppress("UNCHECKED_CAST", "unused")
interface TKodein {
fun factory(argType: Type, type: Type, tag: Any? = null): (Any) -> Any
fun factory(argType: Type, type: Class, tag: Any? = null): (Any) -> T = factory(argType, type as Type, tag) as (Any) -> T
fun factory(argType: Type, type: TypeToken, tag: Any? = null): (Any) -> T = factory(argType, type.type, tag) as (Any) -> T
fun factory(argType: Class, type: Type, tag: Any? = null): (A) -> Any = factory(argType as Type, type, tag) as (A) -> Any
fun factory(argType: Class, type: Class, tag: Any? = null): (A) -> T = factory(argType as Type, type as Type, tag) as (A) -> T
fun factory(argType: Class, type: TypeToken, tag: Any? = null): (A) -> T = factory(argType as Type, type.type, tag) as (A) -> T
fun factory(argType: TypeToken, type: Type, tag: Any? = null): (A) -> Any = factory(argType.type, type, tag) as (A) -> Any
fun factory(argType: TypeToken, type: Class, tag: Any? = null): (A) -> T = factory(argType.type, type as Type, tag) as (A) -> T
fun factory(argType: TypeToken, type: TypeToken, tag: Any? = null): (A) -> T = factory(argType.type, type.type, tag) as (A) -> T
fun factoryOrNull(argType: Type, type: Type, tag: Any? = null): ((Any) -> Any)?
fun factoryOrNull(argType: Type, type: Class, tag: Any? = null): ((Any) -> T)? = factoryOrNull(argType, type as Type, tag) as ((Any) -> T)?
fun factoryOrNull(argType: Type, type: TypeToken, tag: Any? = null): ((Any) -> T)? = factoryOrNull(argType, type.type, tag) as ((Any) -> T)?
fun factoryOrNull(argType: Class, type: Type, tag: Any? = null): ((A) -> Any)? = factoryOrNull(argType as Type, type, tag) as ((A) -> Any)?
fun factoryOrNull(argType: Class, type: Class, tag: Any? = null): ((A) -> T)? = factoryOrNull(argType as Type, type as Type, tag) as ((A) -> T)?
fun factoryOrNull(argType: Class, type: TypeToken, tag: Any? = null): ((A) -> T)? = factoryOrNull(argType as Type, type.type, tag) as ((A) -> T)?
fun factoryOrNull(argType: TypeToken, type: Type, tag: Any? = null): ((A) -> Any)? = factoryOrNull(argType.type, type, tag) as ((A) -> Any)?
fun factoryOrNull(argType: TypeToken, type: Class, tag: Any? = null): ((A) -> T)? = factoryOrNull(argType.type, type as Type, tag) as ((A) -> T)?
fun factoryOrNull(argType: TypeToken, type: TypeToken, tag: Any? = null): ((A) -> T)? = factoryOrNull(argType.type, type.type, tag) as ((A) -> T)?
fun provider(type: Type, tag: Any? = null): () -> Any
fun provider(type: Class, tag: Any? = null): () -> T = provider(type as Type, tag) as () -> T
fun provider(type: TypeToken, tag: Any? = null): () -> T = provider(type.type, tag) as () -> T
fun providerOrNull(type: Type, tag: Any? = null): (() -> Any)?
fun providerOrNull(type: Class, tag: Any? = null): (() -> T)? = providerOrNull(type as Type, tag) as (() -> T)?
fun providerOrNull(type: TypeToken, tag: Any? = null): (() -> T)? = providerOrNull(type.type, tag) as (() -> T)?
fun instance(type: Type, tag: Any? = null): Any
fun instance(type: Class, tag: Any? = null): T = instance(type as Type, tag) as T
fun instance(type: TypeToken, tag: Any? = null): T = instance(type.type, tag) as T
fun instanceOrNull(type: Type, tag: Any? = null): Any?
fun instanceOrNull(type: Class, tag: Any? = null): T? = instanceOrNull(type as Type, tag) as T?
fun instanceOrNull(type: TypeToken, tag: Any? = null): T? = instanceOrNull(type.type, tag) as T?
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy