K2: Add ability identify DI components by string key instead of KClass
It allows having several the same typed-component in the container
This commit is contained in:
committed by
Space Team
parent
58c1b5dd1f
commit
dab50daf56
@@ -24,6 +24,10 @@ abstract class FirSession @PrivateSessionConstructor constructor(
|
||||
return generateAccessor(T::class)
|
||||
}
|
||||
|
||||
inline fun <reified T : FirSessionComponent> sessionComponentAccessor(id: String): ArrayMapAccessor<FirSessionComponent, FirSessionComponent, T> {
|
||||
return generateAccessor(id)
|
||||
}
|
||||
|
||||
inline fun <reified T : FirSessionComponent> nullableSessionComponentAccessor(): NullableArrayMapAccessor<FirSessionComponent, FirSessionComponent, T> {
|
||||
return generateNullableAccessor(T::class)
|
||||
}
|
||||
@@ -38,6 +42,11 @@ abstract class FirSession @PrivateSessionConstructor constructor(
|
||||
registerComponent(tClass, value)
|
||||
}
|
||||
|
||||
@SessionConfiguration
|
||||
fun register(keyQualifiedName: String, value: FirSessionComponent) {
|
||||
registerComponent(keyQualifiedName, value)
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
val moduleData = nullableModuleData ?: return "Libraries session"
|
||||
return "Source session for module ${moduleData.name}"
|
||||
|
||||
Reference in New Issue
Block a user