@@ -12,7 +12,8 @@ import kotlinx.coroutines.flow.flatMapLatest
1212
1313@Suppress(" TooManyFunctions" )
1414object OpenFeatureAPI {
15- private var provider: FeatureProvider ? = null
15+ private val NOOP_PROVIDER = NoOpProvider ()
16+ private var provider: FeatureProvider = NOOP_PROVIDER
1617 private var context: EvaluationContext ? = null
1718 private val providersFlow: MutableSharedFlow <FeatureProvider > = MutableSharedFlow (replay = 1 )
1819 internal val sharedProvidersFlow: SharedFlow <FeatureProvider > get() = providersFlow
@@ -40,26 +41,26 @@ object OpenFeatureAPI {
4041 provider.awaitReadyOrError(dispatcher)
4142 }
4243
43- fun getProvider (): FeatureProvider ? {
44+ fun getProvider (): FeatureProvider {
4445 return provider
4546 }
4647
4748 fun clearProvider () {
48- provider = null
49+ provider = NOOP_PROVIDER
4950 }
5051
5152 fun setEvaluationContext (evaluationContext : EvaluationContext ) {
5253 val oldContext = context
5354 context = evaluationContext
54- getProvider()? .onContextSet(oldContext, evaluationContext)
55+ getProvider().onContextSet(oldContext, evaluationContext)
5556 }
5657
5758 fun getEvaluationContext (): EvaluationContext ? {
5859 return context
5960 }
6061
6162 fun getProviderMetadata (): ProviderMetadata ? {
62- return provider? .metadata
63+ return provider.metadata
6364 }
6465
6566 fun getClient (name : String? = null, version : String? = null): Client {
@@ -75,7 +76,7 @@ object OpenFeatureAPI {
7576 }
7677
7778 fun shutdown () {
78- provider? .shutdown()
79+ provider.shutdown()
7980 }
8081
8182 /*
0 commit comments