Skip to content

Commit e7e29a5

Browse files
authored
feat!: Add hook data (binary breaking change) (#228)
Signed-off-by: Max Pinheiro <max.pinheiro@fluxon.com>
1 parent 5f29ccc commit e7e29a5

8 files changed

Lines changed: 290 additions & 207 deletions

File tree

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

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -181,34 +181,29 @@ public final class dev/openfeature/kotlin/sdk/Hook$DefaultImpls {
181181
}
182182

183183
public final class dev/openfeature/kotlin/sdk/HookContext {
184-
public fun <init> (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FlagValueType;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Ldev/openfeature/kotlin/sdk/ClientMetadata;Ldev/openfeature/kotlin/sdk/ProviderMetadata;)V
184+
public fun <init> (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FlagValueType;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Ldev/openfeature/kotlin/sdk/ClientMetadata;Ldev/openfeature/kotlin/sdk/ProviderMetadata;Ljava/util/Map;)V
185+
public synthetic fun <init> (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FlagValueType;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Ldev/openfeature/kotlin/sdk/ClientMetadata;Ldev/openfeature/kotlin/sdk/ProviderMetadata;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
185186
public final fun component1 ()Ljava/lang/String;
186187
public final fun component2 ()Ldev/openfeature/kotlin/sdk/FlagValueType;
187188
public final fun component3 ()Ljava/lang/Object;
188189
public final fun component4 ()Ldev/openfeature/kotlin/sdk/EvaluationContext;
189190
public final fun component5 ()Ldev/openfeature/kotlin/sdk/ClientMetadata;
190191
public final fun component6 ()Ldev/openfeature/kotlin/sdk/ProviderMetadata;
191-
public final fun copy (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FlagValueType;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Ldev/openfeature/kotlin/sdk/ClientMetadata;Ldev/openfeature/kotlin/sdk/ProviderMetadata;)Ldev/openfeature/kotlin/sdk/HookContext;
192-
public static synthetic fun copy$default (Ldev/openfeature/kotlin/sdk/HookContext;Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FlagValueType;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Ldev/openfeature/kotlin/sdk/ClientMetadata;Ldev/openfeature/kotlin/sdk/ProviderMetadata;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/HookContext;
192+
public final fun component7 ()Ljava/util/Map;
193+
public final fun copy (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FlagValueType;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Ldev/openfeature/kotlin/sdk/ClientMetadata;Ldev/openfeature/kotlin/sdk/ProviderMetadata;Ljava/util/Map;)Ldev/openfeature/kotlin/sdk/HookContext;
194+
public static synthetic fun copy$default (Ldev/openfeature/kotlin/sdk/HookContext;Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FlagValueType;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Ldev/openfeature/kotlin/sdk/ClientMetadata;Ldev/openfeature/kotlin/sdk/ProviderMetadata;Ljava/util/Map;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/HookContext;
193195
public fun equals (Ljava/lang/Object;)Z
194196
public final fun getClientMetadata ()Ldev/openfeature/kotlin/sdk/ClientMetadata;
195197
public final fun getCtx ()Ldev/openfeature/kotlin/sdk/EvaluationContext;
196198
public final fun getDefaultValue ()Ljava/lang/Object;
197199
public final fun getFlagKey ()Ljava/lang/String;
200+
public final fun getHookData ()Ljava/util/Map;
198201
public final fun getProviderMetadata ()Ldev/openfeature/kotlin/sdk/ProviderMetadata;
199202
public final fun getType ()Ldev/openfeature/kotlin/sdk/FlagValueType;
200203
public fun hashCode ()I
201204
public fun toString ()Ljava/lang/String;
202205
}
203206

204-
public final class dev/openfeature/kotlin/sdk/HookSupport {
205-
public fun <init> ()V
206-
public final fun afterAllHooks (Ldev/openfeature/kotlin/sdk/FlagValueType;Ldev/openfeature/kotlin/sdk/HookContext;Ldev/openfeature/kotlin/sdk/FlagEvaluationDetails;Ljava/util/List;Ljava/util/Map;)V
207-
public final fun afterHooks (Ldev/openfeature/kotlin/sdk/FlagValueType;Ldev/openfeature/kotlin/sdk/HookContext;Ldev/openfeature/kotlin/sdk/FlagEvaluationDetails;Ljava/util/List;Ljava/util/Map;)V
208-
public final fun beforeHooks (Ldev/openfeature/kotlin/sdk/FlagValueType;Ldev/openfeature/kotlin/sdk/HookContext;Ljava/util/List;Ljava/util/Map;)V
209-
public final fun errorHooks (Ldev/openfeature/kotlin/sdk/FlagValueType;Ldev/openfeature/kotlin/sdk/HookContext;Ljava/lang/Exception;Ljava/util/List;Ljava/util/Map;)V
210-
}
211-
212207
public final class dev/openfeature/kotlin/sdk/ImmutableContext : dev/openfeature/kotlin/sdk/EvaluationContext {
213208
public fun <init> ()V
214209
public fun <init> (Ljava/lang/String;Ljava/util/Map;)V

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

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -181,34 +181,29 @@ public final class dev/openfeature/kotlin/sdk/Hook$DefaultImpls {
181181
}
182182

183183
public final class dev/openfeature/kotlin/sdk/HookContext {
184-
public fun <init> (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FlagValueType;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Ldev/openfeature/kotlin/sdk/ClientMetadata;Ldev/openfeature/kotlin/sdk/ProviderMetadata;)V
184+
public fun <init> (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FlagValueType;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Ldev/openfeature/kotlin/sdk/ClientMetadata;Ldev/openfeature/kotlin/sdk/ProviderMetadata;Ljava/util/Map;)V
185+
public synthetic fun <init> (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FlagValueType;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Ldev/openfeature/kotlin/sdk/ClientMetadata;Ldev/openfeature/kotlin/sdk/ProviderMetadata;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
185186
public final fun component1 ()Ljava/lang/String;
186187
public final fun component2 ()Ldev/openfeature/kotlin/sdk/FlagValueType;
187188
public final fun component3 ()Ljava/lang/Object;
188189
public final fun component4 ()Ldev/openfeature/kotlin/sdk/EvaluationContext;
189190
public final fun component5 ()Ldev/openfeature/kotlin/sdk/ClientMetadata;
190191
public final fun component6 ()Ldev/openfeature/kotlin/sdk/ProviderMetadata;
191-
public final fun copy (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FlagValueType;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Ldev/openfeature/kotlin/sdk/ClientMetadata;Ldev/openfeature/kotlin/sdk/ProviderMetadata;)Ldev/openfeature/kotlin/sdk/HookContext;
192-
public static synthetic fun copy$default (Ldev/openfeature/kotlin/sdk/HookContext;Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FlagValueType;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Ldev/openfeature/kotlin/sdk/ClientMetadata;Ldev/openfeature/kotlin/sdk/ProviderMetadata;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/HookContext;
192+
public final fun component7 ()Ljava/util/Map;
193+
public final fun copy (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FlagValueType;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Ldev/openfeature/kotlin/sdk/ClientMetadata;Ldev/openfeature/kotlin/sdk/ProviderMetadata;Ljava/util/Map;)Ldev/openfeature/kotlin/sdk/HookContext;
194+
public static synthetic fun copy$default (Ldev/openfeature/kotlin/sdk/HookContext;Ljava/lang/String;Ldev/openfeature/kotlin/sdk/FlagValueType;Ljava/lang/Object;Ldev/openfeature/kotlin/sdk/EvaluationContext;Ldev/openfeature/kotlin/sdk/ClientMetadata;Ldev/openfeature/kotlin/sdk/ProviderMetadata;Ljava/util/Map;ILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/HookContext;
193195
public fun equals (Ljava/lang/Object;)Z
194196
public final fun getClientMetadata ()Ldev/openfeature/kotlin/sdk/ClientMetadata;
195197
public final fun getCtx ()Ldev/openfeature/kotlin/sdk/EvaluationContext;
196198
public final fun getDefaultValue ()Ljava/lang/Object;
197199
public final fun getFlagKey ()Ljava/lang/String;
200+
public final fun getHookData ()Ljava/util/Map;
198201
public final fun getProviderMetadata ()Ldev/openfeature/kotlin/sdk/ProviderMetadata;
199202
public final fun getType ()Ldev/openfeature/kotlin/sdk/FlagValueType;
200203
public fun hashCode ()I
201204
public fun toString ()Ljava/lang/String;
202205
}
203206

204-
public final class dev/openfeature/kotlin/sdk/HookSupport {
205-
public fun <init> ()V
206-
public final fun afterAllHooks (Ldev/openfeature/kotlin/sdk/FlagValueType;Ldev/openfeature/kotlin/sdk/HookContext;Ldev/openfeature/kotlin/sdk/FlagEvaluationDetails;Ljava/util/List;Ljava/util/Map;)V
207-
public final fun afterHooks (Ldev/openfeature/kotlin/sdk/FlagValueType;Ldev/openfeature/kotlin/sdk/HookContext;Ldev/openfeature/kotlin/sdk/FlagEvaluationDetails;Ljava/util/List;Ljava/util/Map;)V
208-
public final fun beforeHooks (Ldev/openfeature/kotlin/sdk/FlagValueType;Ldev/openfeature/kotlin/sdk/HookContext;Ljava/util/List;Ljava/util/Map;)V
209-
public final fun errorHooks (Ldev/openfeature/kotlin/sdk/FlagValueType;Ldev/openfeature/kotlin/sdk/HookContext;Ljava/lang/Exception;Ljava/util/List;Ljava/util/Map;)V
210-
}
211-
212207
public final class dev/openfeature/kotlin/sdk/ImmutableContext : dev/openfeature/kotlin/sdk/EvaluationContext {
213208
public fun <init> ()V
214209
public fun <init> (Ljava/lang/String;Ljava/util/Map;)V

kotlin-sdk/src/commonMain/kotlin/dev/openfeature/kotlin/sdk/HookContext.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ data class HookContext<T>(
66
val defaultValue: T,
77
val ctx: EvaluationContext?,
88
val clientMetadata: ClientMetadata?,
9-
val providerMetadata: ProviderMetadata
9+
val providerMetadata: ProviderMetadata,
10+
val hookData: MutableMap<String, Any?> = mutableMapOf()
1011
)

0 commit comments

Comments
 (0)