[FIR] Refactor session components initialization
From now all customization of session should perform via DSL which declared in FirSessionFactory. Registration or mutation session services from other places is prohibited
This commit is contained in:
@@ -18,6 +18,9 @@ import kotlin.reflect.KClass
|
||||
@RequiresOptIn
|
||||
annotation class PrivateSessionConstructor
|
||||
|
||||
@RequiresOptIn
|
||||
annotation class SessionConfiguration
|
||||
|
||||
interface FirSessionComponent
|
||||
|
||||
abstract class FirSession @PrivateSessionConstructor constructor(val sessionProvider: FirSessionProvider?) : ComponentArrayOwner<FirSessionComponent, FirSessionComponent>() {
|
||||
@@ -39,6 +42,7 @@ abstract class FirSession @PrivateSessionConstructor constructor(val sessionProv
|
||||
|
||||
final override val typeRegistry: TypeRegistry<FirSessionComponent, FirSessionComponent> = Companion
|
||||
|
||||
@SessionConfiguration
|
||||
fun register(tClass: KClass<out FirSessionComponent>, value: FirSessionComponent) {
|
||||
registerComponent(tClass, value)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user