Skip to content
This repository has been archived by the owner on Sep 13, 2023. It is now read-only.

Different Metadata interfaces client/provider #27

Merged
merged 2 commits into from
Jul 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion OpenFeature/src/main/java/dev/openfeature/sdk/Client.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.openfeature.sdk

interface Client : Features {
val metadata: Metadata
val metadata: ClientMetadata
val hooks: List<Hook<*>>

fun addHooks(hooks: List<Hook<*>>)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package dev.openfeature.sdk

interface Metadata {
interface ClientMetadata {
val name: String?
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package dev.openfeature.sdk

interface FeatureProvider {
val hooks: List<Hook<*>>
val metadata: Metadata
val metadata: ProviderMetadata

// Called by OpenFeatureAPI whenever the new Provider is registered
suspend fun initialize(initialContext: EvaluationContext?)
Expand Down
4 changes: 2 additions & 2 deletions OpenFeature/src/main/java/dev/openfeature/sdk/HookContext.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ data class HookContext<T>(
val type: FlagValueType,
var defaultValue: T,
var ctx: EvaluationContext?,
var clientMetadata: Metadata?,
var providerMetadata: Metadata
var clientMetadata: ClientMetadata?,
var providerMetadata: ProviderMetadata
)
4 changes: 2 additions & 2 deletions OpenFeature/src/main/java/dev/openfeature/sdk/NoOpProvider.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.openfeature.sdk

class NoOpProvider : FeatureProvider {
override var metadata: Metadata = NoOpMetadata("No-op provider")
override var metadata: ProviderMetadata = NoOpProviderMetadata("No-op provider")
override suspend fun initialize(initialContext: EvaluationContext?) {
// no-op
}
Expand Down Expand Up @@ -54,5 +54,5 @@ class NoOpProvider : FeatureProvider {
return ProviderEvaluation(defaultValue, "Passed in default", Reason.DEFAULT.toString())
}

data class NoOpMetadata(override var name: String?) : Metadata
data class NoOpProviderMetadata(override var name: String?) : ProviderMetadata
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ object OpenFeatureAPI {
return context
}

fun getProviderMetadata(): Metadata? {
fun getProviderMetadata(): ProviderMetadata? {
return provider?.metadata
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class OpenFeatureClient(
version: String? = null,
override val hooks: MutableList<Hook<*>> = mutableListOf()
) : Client {
override val metadata: Metadata = ClientMetadata(name)
override val metadata: ClientMetadata = Metadata(name)
private var hookSupport = HookSupport()
override fun addHooks(hooks: List<Hook<*>>) {
this.hooks += hooks
Expand Down Expand Up @@ -242,5 +242,5 @@ class OpenFeatureClient(
}
}

data class ClientMetadata(override var name: String?) : Metadata
data class Metadata(override var name: String?) : ClientMetadata
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package dev.openfeature.sdk

interface ProviderMetadata {
val name: String?
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ package dev.openfeature.sdk.helpers
import dev.openfeature.sdk.EvaluationContext
import dev.openfeature.sdk.FeatureProvider
import dev.openfeature.sdk.Hook
import dev.openfeature.sdk.Metadata
import dev.openfeature.sdk.ProviderEvaluation
import dev.openfeature.sdk.ProviderMetadata
import dev.openfeature.sdk.Value
import dev.openfeature.sdk.exceptions.OpenFeatureError.FlagNotFoundError

class AlwaysBrokenProvider(override var hooks: List<Hook<*>> = listOf(), override var metadata: Metadata = AlwaysBrokenMetadata()) :
class AlwaysBrokenProvider(override var hooks: List<Hook<*>> = listOf(), override var metadata: ProviderMetadata = AlwaysBrokenProviderMetadata()) :
FeatureProvider {
override suspend fun initialize(initialContext: EvaluationContext?) {
// no-op
Expand Down Expand Up @@ -61,5 +61,5 @@ class AlwaysBrokenProvider(override var hooks: List<Hook<*>> = listOf(), overrid
throw FlagNotFoundError(key)
}

class AlwaysBrokenMetadata(override var name: String? = "test") : Metadata
class AlwaysBrokenProviderMetadata(override var name: String? = "test") : ProviderMetadata
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ package dev.openfeature.sdk.helpers
import dev.openfeature.sdk.EvaluationContext
import dev.openfeature.sdk.FeatureProvider
import dev.openfeature.sdk.Hook
import dev.openfeature.sdk.Metadata
import dev.openfeature.sdk.ProviderEvaluation
import dev.openfeature.sdk.ProviderMetadata
import dev.openfeature.sdk.Value

class DoSomethingProvider(override val hooks: List<Hook<*>> = listOf(), override val metadata: Metadata = DoSomethingMetadata()) : FeatureProvider {
class DoSomethingProvider(override val hooks: List<Hook<*>> = listOf(), override val metadata: ProviderMetadata = DoSomethingProviderMetadata()) : FeatureProvider {
override suspend fun initialize(initialContext: EvaluationContext?) {
// no-op
}
Expand Down Expand Up @@ -58,5 +58,5 @@ class DoSomethingProvider(override val hooks: List<Hook<*>> = listOf(), override
): ProviderEvaluation<Value> {
return ProviderEvaluation(Value.Null)
}
class DoSomethingMetadata(override var name: String? = "something") : Metadata
class DoSomethingProviderMetadata(override var name: String? = "something") : ProviderMetadata
}