Skip to content

Commit fa6b87c

Browse files
committed
Default value of EventDetails is null to signify undefined
Signed-off-by: penguindan <[email protected]>
1 parent 3b31746 commit fa6b87c

File tree

8 files changed

+76
-64
lines changed

8 files changed

+76
-64
lines changed

kotlin-sdk/api/android/kotlin-sdk.api

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -664,7 +664,9 @@ public final class dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$E
664664
}
665665

666666
public final class dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderConfigurationChanged : dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents {
667+
public fun <init> ()V
667668
public fun <init> (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;)V
669+
public synthetic fun <init> (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
668670
public final fun component1 ()Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;
669671
public final fun copy (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;)Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderConfigurationChanged;
670672
public static synthetic fun copy$default (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderConfigurationChanged;Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderConfigurationChanged;
@@ -692,13 +694,16 @@ public final class dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$P
692694
public final class dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderNotReady : dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents {
693695
public static final field INSTANCE Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderNotReady;
694696
public fun equals (Ljava/lang/Object;)Z
695-
public fun getEventDetails ()Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;
697+
public synthetic fun getEventDetails ()Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;
698+
public fun getEventDetails ()Ljava/lang/Void;
696699
public fun hashCode ()I
697700
public fun toString ()Ljava/lang/String;
698701
}
699702

700703
public final class dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderReady : dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents {
704+
public fun <init> ()V
701705
public fun <init> (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;)V
706+
public synthetic fun <init> (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
702707
public final fun component1 ()Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;
703708
public final fun copy (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;)Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderReady;
704709
public static synthetic fun copy$default (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderReady;Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderReady;
@@ -709,7 +714,9 @@ public final class dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$P
709714
}
710715

711716
public final class dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderStale : dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents {
717+
public fun <init> ()V
712718
public fun <init> (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;)V
719+
public synthetic fun <init> (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
713720
public final fun component1 ()Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;
714721
public final fun copy (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;)Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderStale;
715722
public static synthetic fun copy$default (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderStale;Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderStale;

kotlin-sdk/api/jvm/kotlin-sdk.api

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -664,7 +664,9 @@ public final class dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$E
664664
}
665665

666666
public final class dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderConfigurationChanged : dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents {
667+
public fun <init> ()V
667668
public fun <init> (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;)V
669+
public synthetic fun <init> (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
668670
public final fun component1 ()Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;
669671
public final fun copy (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;)Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderConfigurationChanged;
670672
public static synthetic fun copy$default (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderConfigurationChanged;Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderConfigurationChanged;
@@ -692,13 +694,16 @@ public final class dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$P
692694
public final class dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderNotReady : dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents {
693695
public static final field INSTANCE Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderNotReady;
694696
public fun equals (Ljava/lang/Object;)Z
695-
public fun getEventDetails ()Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;
697+
public synthetic fun getEventDetails ()Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;
698+
public fun getEventDetails ()Ljava/lang/Void;
696699
public fun hashCode ()I
697700
public fun toString ()Ljava/lang/String;
698701
}
699702

700703
public final class dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderReady : dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents {
704+
public fun <init> ()V
701705
public fun <init> (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;)V
706+
public synthetic fun <init> (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
702707
public final fun component1 ()Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;
703708
public final fun copy (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;)Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderReady;
704709
public static synthetic fun copy$default (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderReady;Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderReady;
@@ -709,7 +714,9 @@ public final class dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$P
709714
}
710715

711716
public final class dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderStale : dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents {
717+
public fun <init> ()V
712718
public fun <init> (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;)V
719+
public synthetic fun <init> (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
713720
public final fun component1 ()Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;
714721
public final fun copy (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;)Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderStale;
715722
public static synthetic fun copy$default (Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderStale;Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$EventDetails;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents$ProviderStale;

kotlin-sdk/src/commonMain/kotlin/dev/openfeature/kotlin/sdk/events/OpenFeatureProviderEvents.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,43 +13,43 @@ sealed class OpenFeatureProviderEvents {
1313
val eventMetadata: Map<String, Any> = emptyMap()
1414
)
1515

16-
abstract val eventDetails: EventDetails
16+
abstract val eventDetails: EventDetails?
1717

1818
/**
1919
* The provider is ready to perform flag evaluations.
2020
*/
2121
data class ProviderReady(
22-
override val eventDetails: EventDetails
22+
override val eventDetails: EventDetails? = null
2323
) : OpenFeatureProviderEvents()
2424

2525
/**
2626
* The provider signaled an error.
2727
*/
2828
data class ProviderError(
29-
override val eventDetails: EventDetails = EventDetails(),
29+
override val eventDetails: EventDetails? = null,
3030
@Deprecated("Please use eventDetails instead.") val error: OpenFeatureError? = null
3131
) : OpenFeatureProviderEvents()
3232

3333
data class ProviderConfigurationChanged(
34-
override val eventDetails: EventDetails
34+
override val eventDetails: EventDetails? = null
3535
) : OpenFeatureProviderEvents()
3636

3737
/**
3838
* The provider's cached state is no longer valid and may not be up-to-date with the source of truth.
3939
*/
4040
data class ProviderStale(
41-
override val eventDetails: EventDetails
41+
override val eventDetails: EventDetails? = null
4242
) : OpenFeatureProviderEvents()
4343

4444
@Deprecated("Use ProviderError instead", ReplaceWith("ProviderError"))
4545
data object ProviderNotReady : OpenFeatureProviderEvents() {
46-
override val eventDetails = EventDetails()
46+
override val eventDetails = null
4747
}
4848
}
4949

5050
internal fun OpenFeatureProviderEvents.ProviderError.toOpenFeatureStatusError(): OpenFeatureStatus {
5151
return when {
52-
eventDetails.errorCode != null -> {
52+
eventDetails?.errorCode != null -> {
5353
val openFeatureError = OpenFeatureError.fromMessageAndErrorCode(
5454
errorMessage = eventDetails.message ?: "Provider did not supply an error message",
5555
errorCode = eventDetails.errorCode

kotlin-sdk/src/commonTest/kotlin/dev/openfeature/kotlin/sdk/DeveloperExperienceTests.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -351,10 +351,10 @@ class DeveloperExperienceTests {
351351
job.cancelAndJoin()
352352
assertEquals(
353353
listOf<OpenFeatureProviderEvents>(
354-
OpenFeatureProviderEvents.ProviderStale(OpenFeatureProviderEvents.EventDetails()),
355-
OpenFeatureProviderEvents.ProviderStale(OpenFeatureProviderEvents.EventDetails()),
356-
OpenFeatureProviderEvents.ProviderStale(OpenFeatureProviderEvents.EventDetails()),
357-
OpenFeatureProviderEvents.ProviderStale(OpenFeatureProviderEvents.EventDetails())
354+
OpenFeatureProviderEvents.ProviderStale(),
355+
OpenFeatureProviderEvents.ProviderStale(),
356+
OpenFeatureProviderEvents.ProviderStale(),
357+
OpenFeatureProviderEvents.ProviderStale()
358358
),
359359
staleEvents
360360
)

kotlin-sdk/src/commonTest/kotlin/dev/openfeature/kotlin/sdk/ProviderEventingTests.kt

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,7 @@ class ProviderEventingTests {
4848
)
4949
delay(healDelayMillis)
5050
flow.emit(
51-
OpenFeatureProviderEvents.ProviderConfigurationChanged(
52-
OpenFeatureProviderEvents.EventDetails()
53-
)
51+
OpenFeatureProviderEvents.ProviderConfigurationChanged()
5452
)
5553
}
5654

@@ -107,9 +105,9 @@ class ProviderEventingTests {
107105
testScheduler.advanceUntilIdle()
108106
assertEquals(
109107
listOf(
110-
OpenFeatureProviderEvents.ProviderReady(OpenFeatureProviderEvents.EventDetails()),
111-
OpenFeatureProviderEvents.ProviderStale(OpenFeatureProviderEvents.EventDetails()),
112-
OpenFeatureProviderEvents.ProviderConfigurationChanged(OpenFeatureProviderEvents.EventDetails())
108+
OpenFeatureProviderEvents.ProviderReady(),
109+
OpenFeatureProviderEvents.ProviderStale(),
110+
OpenFeatureProviderEvents.ProviderConfigurationChanged()
113111
),
114112
emittedEvents
115113
)
@@ -131,15 +129,15 @@ class ProviderEventingTests {
131129
job.cancelAndJoin()
132130
assertEquals(
133131
listOf(
134-
OpenFeatureProviderEvents.ProviderReady(OpenFeatureProviderEvents.EventDetails()),
135-
OpenFeatureProviderEvents.ProviderStale(OpenFeatureProviderEvents.EventDetails()),
136-
OpenFeatureProviderEvents.ProviderConfigurationChanged(OpenFeatureProviderEvents.EventDetails()),
137-
OpenFeatureProviderEvents.ProviderReady(OpenFeatureProviderEvents.EventDetails()),
138-
OpenFeatureProviderEvents.ProviderStale(OpenFeatureProviderEvents.EventDetails()),
139-
OpenFeatureProviderEvents.ProviderStale(OpenFeatureProviderEvents.EventDetails()),
140-
OpenFeatureProviderEvents.ProviderStale(OpenFeatureProviderEvents.EventDetails()),
141-
OpenFeatureProviderEvents.ProviderStale(OpenFeatureProviderEvents.EventDetails()),
142-
OpenFeatureProviderEvents.ProviderConfigurationChanged(OpenFeatureProviderEvents.EventDetails())
132+
OpenFeatureProviderEvents.ProviderReady(),
133+
OpenFeatureProviderEvents.ProviderStale(),
134+
OpenFeatureProviderEvents.ProviderConfigurationChanged(),
135+
OpenFeatureProviderEvents.ProviderReady(),
136+
OpenFeatureProviderEvents.ProviderStale(),
137+
OpenFeatureProviderEvents.ProviderStale(),
138+
OpenFeatureProviderEvents.ProviderStale(),
139+
OpenFeatureProviderEvents.ProviderStale(),
140+
OpenFeatureProviderEvents.ProviderConfigurationChanged()
143141
),
144142
emittedEvents
145143
)

kotlin-sdk/src/commonTest/kotlin/dev/openfeature/kotlin/sdk/helpers/AutoHealingProvider.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class AutoHealingProvider(
3131
)
3232
)
3333
delay(healDelay)
34-
_events.emit(OpenFeatureProviderEvents.ProviderReady(OpenFeatureProviderEvents.EventDetails()))
34+
_events.emit(OpenFeatureProviderEvents.ProviderReady())
3535
ready = true
3636
}
3737

kotlin-sdk/src/commonTest/kotlin/dev/openfeature/kotlin/sdk/helpers/DoSomethingProvider.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ open class DoSomethingProvider(
2727

2828
override suspend fun initialize(initialContext: EvaluationContext?) {
2929
delay(1000)
30-
events.emit(OpenFeatureProviderEvents.ProviderReady(OpenFeatureProviderEvents.EventDetails()))
30+
events.emit(OpenFeatureProviderEvents.ProviderReady())
3131
}
3232

3333
override fun shutdown() {
@@ -39,7 +39,7 @@ open class DoSomethingProvider(
3939
newContext: EvaluationContext
4040
) {
4141
delay(500)
42-
events.emit(OpenFeatureProviderEvents.ProviderConfigurationChanged(OpenFeatureProviderEvents.EventDetails()))
42+
events.emit(OpenFeatureProviderEvents.ProviderConfigurationChanged())
4343
}
4444

4545
override fun getBooleanEvaluation(
@@ -101,8 +101,8 @@ class OverlyEmittingProvider(name: String) : DoSomethingProvider(
101101
oldContext: EvaluationContext?,
102102
newContext: EvaluationContext
103103
) {
104-
events.emit(OpenFeatureProviderEvents.ProviderStale(OpenFeatureProviderEvents.EventDetails()))
105-
events.emit(OpenFeatureProviderEvents.ProviderConfigurationChanged(OpenFeatureProviderEvents.EventDetails()))
104+
events.emit(OpenFeatureProviderEvents.ProviderStale())
105+
events.emit(OpenFeatureProviderEvents.ProviderConfigurationChanged())
106106
}
107107

108108
override fun track(
@@ -111,8 +111,8 @@ class OverlyEmittingProvider(name: String) : DoSomethingProvider(
111111
details: TrackingEventDetails?
112112
) {
113113
super.track(trackingEventName, context, details)
114-
events.tryEmit(OpenFeatureProviderEvents.ProviderStale(OpenFeatureProviderEvents.EventDetails()))
115-
events.tryEmit(OpenFeatureProviderEvents.ProviderStale(OpenFeatureProviderEvents.EventDetails()))
116-
events.tryEmit(OpenFeatureProviderEvents.ProviderStale(OpenFeatureProviderEvents.EventDetails()))
114+
events.tryEmit(OpenFeatureProviderEvents.ProviderStale())
115+
events.tryEmit(OpenFeatureProviderEvents.ProviderStale())
116+
events.tryEmit(OpenFeatureProviderEvents.ProviderStale())
117117
}
118118
}

0 commit comments

Comments
 (0)