Skip to content

Commit 37bdea7

Browse files
maxnrpdd-oleksiitypotter
authored
feat!: Adding Long type support (#225)
Signed-off-by: Max Pinheiro <max.pinheiro@fluxon.com> Signed-off-by: Max <73404116+maxnrp@users.noreply.github.com> Signed-off-by: Tyler Potter <tyler.john.potter@gmail.com> Co-authored-by: Oleksii Shmalko <oleksii.shmalko@datadoghq.com> Co-authored-by: Tyler Potter <tyler.john.potter@gmail.com>
1 parent 2f1b956 commit 37bdea7

27 files changed

Lines changed: 315 additions & 0 deletions

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,14 @@ class NewProvider(override val hooks: List<Hook<*>>, override val metadata: Prov
441441
// resolve an integer flag value
442442
}
443443

444+
override fun getLongEvaluation(
445+
key: String,
446+
defaultValue: Long,
447+
context: EvaluationContext?
448+
): ProviderEvaluation<Long> {
449+
// resolve a long (64-bit integer) flag value
450+
}
451+
444452
override fun getObjectEvaluation(
445453
key: String,
446454
defaultValue: Value,

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

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public final class dev/openfeature/kotlin/sdk/Builder {
1212
public final fun putBoolean (Ljava/lang/String;Z)Ldev/openfeature/kotlin/sdk/Builder;
1313
public final fun putDouble (Ljava/lang/String;D)Ldev/openfeature/kotlin/sdk/Builder;
1414
public final fun putInt (Ljava/lang/String;I)Ldev/openfeature/kotlin/sdk/Builder;
15+
public final fun putLong (Ljava/lang/String;J)Ldev/openfeature/kotlin/sdk/Builder;
1516
public final fun putString (Ljava/lang/String;Ljava/lang/String;)Ldev/openfeature/kotlin/sdk/Builder;
1617
}
1718

@@ -54,6 +55,7 @@ public final class dev/openfeature/kotlin/sdk/EvaluationMetadata {
5455
public final fun getBoolean (Ljava/lang/String;)Ljava/lang/Boolean;
5556
public final fun getDouble (Ljava/lang/String;)Ljava/lang/Double;
5657
public final fun getInt (Ljava/lang/String;)Ljava/lang/Integer;
58+
public final fun getLong (Ljava/lang/String;)Ljava/lang/Long;
5759
public final fun getString (Ljava/lang/String;)Ljava/lang/String;
5860
public fun hashCode ()I
5961
}
@@ -68,6 +70,7 @@ public abstract interface class dev/openfeature/kotlin/sdk/FeatureProvider {
6870
public abstract fun getDoubleEvaluation (Ljava/lang/String;DLdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
6971
public abstract fun getHooks ()Ljava/util/List;
7072
public abstract fun getIntegerEvaluation (Ljava/lang/String;ILdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
73+
public abstract fun getLongEvaluation (Ljava/lang/String;JLdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
7174
public abstract fun getMetadata ()Ldev/openfeature/kotlin/sdk/ProviderMetadata;
7275
public abstract fun getObjectEvaluation (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/Value;Ldev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
7376
public abstract fun getStringEvaluation (Ljava/lang/String;Ljava/lang/String;Ldev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
@@ -96,6 +99,10 @@ public abstract interface class dev/openfeature/kotlin/sdk/Features {
9699
public abstract fun getIntegerDetails (Ljava/lang/String;ILdev/openfeature/kotlin/sdk/FlagEvaluationOptions;)Ldev/openfeature/kotlin/sdk/FlagEvaluationDetails;
97100
public abstract fun getIntegerValue (Ljava/lang/String;I)I
98101
public abstract fun getIntegerValue (Ljava/lang/String;ILdev/openfeature/kotlin/sdk/FlagEvaluationOptions;)I
102+
public abstract fun getLongDetails (Ljava/lang/String;J)Ldev/openfeature/kotlin/sdk/FlagEvaluationDetails;
103+
public abstract fun getLongDetails (Ljava/lang/String;JLdev/openfeature/kotlin/sdk/FlagEvaluationOptions;)Ldev/openfeature/kotlin/sdk/FlagEvaluationDetails;
104+
public abstract fun getLongValue (Ljava/lang/String;J)J
105+
public abstract fun getLongValue (Ljava/lang/String;JLdev/openfeature/kotlin/sdk/FlagEvaluationOptions;)J
99106
public abstract fun getObjectDetails (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/Value;)Ldev/openfeature/kotlin/sdk/FlagEvaluationDetails;
100107
public abstract fun getObjectDetails (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/Value;Ldev/openfeature/kotlin/sdk/FlagEvaluationOptions;)Ldev/openfeature/kotlin/sdk/FlagEvaluationDetails;
101108
public abstract fun getObjectValue (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/Value;)Ldev/openfeature/kotlin/sdk/Value;
@@ -157,6 +164,7 @@ public final class dev/openfeature/kotlin/sdk/FlagValueType : java/lang/Enum {
157164
public static final field BOOLEAN Ldev/openfeature/kotlin/sdk/FlagValueType;
158165
public static final field DOUBLE Ldev/openfeature/kotlin/sdk/FlagValueType;
159166
public static final field INTEGER Ldev/openfeature/kotlin/sdk/FlagValueType;
167+
public static final field LONG Ldev/openfeature/kotlin/sdk/FlagValueType;
160168
public static final field OBJECT Ldev/openfeature/kotlin/sdk/FlagValueType;
161169
public static final field STRING Ldev/openfeature/kotlin/sdk/FlagValueType;
162170
public static fun getEntries ()Lkotlin/enums/EnumEntries;
@@ -240,6 +248,7 @@ public class dev/openfeature/kotlin/sdk/NoOpProvider : dev/openfeature/kotlin/sd
240248
public fun getDoubleEvaluation (Ljava/lang/String;DLdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
241249
public fun getHooks ()Ljava/util/List;
242250
public fun getIntegerEvaluation (Ljava/lang/String;ILdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
251+
public fun getLongEvaluation (Ljava/lang/String;JLdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
243252
public fun getMetadata ()Ldev/openfeature/kotlin/sdk/ProviderMetadata;
244253
public fun getObjectEvaluation (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/Value;Ldev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
245254
public fun getStringEvaluation (Ljava/lang/String;Ljava/lang/String;Ldev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
@@ -303,6 +312,10 @@ public final class dev/openfeature/kotlin/sdk/OpenFeatureClient : dev/openfeatur
303312
public fun getIntegerDetails (Ljava/lang/String;ILdev/openfeature/kotlin/sdk/FlagEvaluationOptions;)Ldev/openfeature/kotlin/sdk/FlagEvaluationDetails;
304313
public fun getIntegerValue (Ljava/lang/String;I)I
305314
public fun getIntegerValue (Ljava/lang/String;ILdev/openfeature/kotlin/sdk/FlagEvaluationOptions;)I
315+
public fun getLongDetails (Ljava/lang/String;J)Ldev/openfeature/kotlin/sdk/FlagEvaluationDetails;
316+
public fun getLongDetails (Ljava/lang/String;JLdev/openfeature/kotlin/sdk/FlagEvaluationOptions;)Ldev/openfeature/kotlin/sdk/FlagEvaluationDetails;
317+
public fun getLongValue (Ljava/lang/String;J)J
318+
public fun getLongValue (Ljava/lang/String;JLdev/openfeature/kotlin/sdk/FlagEvaluationOptions;)J
306319
public fun getMetadata ()Ldev/openfeature/kotlin/sdk/ClientMetadata;
307320
public fun getObjectDetails (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/Value;)Ldev/openfeature/kotlin/sdk/FlagEvaluationDetails;
308321
public fun getObjectDetails (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/Value;Ldev/openfeature/kotlin/sdk/FlagEvaluationOptions;)Ldev/openfeature/kotlin/sdk/FlagEvaluationDetails;
@@ -463,6 +476,7 @@ public abstract interface class dev/openfeature/kotlin/sdk/Value {
463476
public fun asInstant ()Lkotlin/time/Instant;
464477
public fun asInteger ()Ljava/lang/Integer;
465478
public fun asList ()Ljava/util/List;
479+
public fun asLong ()Ljava/lang/Long;
466480
public fun asString ()Ljava/lang/String;
467481
public fun asStructure ()Ljava/util/Map;
468482
public fun isNull ()Z
@@ -475,6 +489,7 @@ public final class dev/openfeature/kotlin/sdk/Value$Boolean : dev/openfeature/ko
475489
public fun asInstant ()Lkotlin/time/Instant;
476490
public fun asInteger ()Ljava/lang/Integer;
477491
public fun asList ()Ljava/util/List;
492+
public fun asLong ()Ljava/lang/Long;
478493
public fun asString ()Ljava/lang/String;
479494
public fun asStructure ()Ljava/util/Map;
480495
public final fun component1 ()Z
@@ -493,6 +508,7 @@ public final class dev/openfeature/kotlin/sdk/Value$DefaultImpls {
493508
public static fun asInstant (Ldev/openfeature/kotlin/sdk/Value;)Lkotlin/time/Instant;
494509
public static fun asInteger (Ldev/openfeature/kotlin/sdk/Value;)Ljava/lang/Integer;
495510
public static fun asList (Ldev/openfeature/kotlin/sdk/Value;)Ljava/util/List;
511+
public static fun asLong (Ldev/openfeature/kotlin/sdk/Value;)Ljava/lang/Long;
496512
public static fun asString (Ldev/openfeature/kotlin/sdk/Value;)Ljava/lang/String;
497513
public static fun asStructure (Ldev/openfeature/kotlin/sdk/Value;)Ljava/util/Map;
498514
public static fun isNull (Ldev/openfeature/kotlin/sdk/Value;)Z
@@ -505,6 +521,7 @@ public final class dev/openfeature/kotlin/sdk/Value$Double : dev/openfeature/kot
505521
public fun asInstant ()Lkotlin/time/Instant;
506522
public fun asInteger ()Ljava/lang/Integer;
507523
public fun asList ()Ljava/util/List;
524+
public fun asLong ()Ljava/lang/Long;
508525
public fun asString ()Ljava/lang/String;
509526
public fun asStructure ()Ljava/util/Map;
510527
public final fun component1 ()D
@@ -524,6 +541,7 @@ public final class dev/openfeature/kotlin/sdk/Value$Instant : dev/openfeature/ko
524541
public fun asInstant ()Lkotlin/time/Instant;
525542
public fun asInteger ()Ljava/lang/Integer;
526543
public fun asList ()Ljava/util/List;
544+
public fun asLong ()Ljava/lang/Long;
527545
public fun asString ()Ljava/lang/String;
528546
public fun asStructure ()Ljava/util/Map;
529547
public final fun component1 ()Lkotlin/time/Instant;
@@ -543,6 +561,7 @@ public final class dev/openfeature/kotlin/sdk/Value$Integer : dev/openfeature/ko
543561
public fun asInstant ()Lkotlin/time/Instant;
544562
public fun asInteger ()Ljava/lang/Integer;
545563
public fun asList ()Ljava/util/List;
564+
public fun asLong ()Ljava/lang/Long;
546565
public fun asString ()Ljava/lang/String;
547566
public fun asStructure ()Ljava/util/Map;
548567
public final fun component1 ()I
@@ -563,6 +582,7 @@ public final class dev/openfeature/kotlin/sdk/Value$List : dev/openfeature/kotli
563582
public fun asInstant ()Lkotlin/time/Instant;
564583
public fun asInteger ()Ljava/lang/Integer;
565584
public fun asList ()Ljava/util/List;
585+
public fun asLong ()Ljava/lang/Long;
566586
public fun asString ()Ljava/lang/String;
567587
public fun asStructure ()Ljava/util/Map;
568588
public final fun component1 ()Ljava/util/List;
@@ -579,13 +599,34 @@ public final class dev/openfeature/kotlin/sdk/Value$List$Companion {
579599
public final fun invoke (Ljava/util/List;)Ldev/openfeature/kotlin/sdk/Value$List;
580600
}
581601

602+
public final class dev/openfeature/kotlin/sdk/Value$Long : dev/openfeature/kotlin/sdk/Value {
603+
public fun <init> (J)V
604+
public fun asBoolean ()Ljava/lang/Boolean;
605+
public fun asDouble ()Ljava/lang/Double;
606+
public fun asInstant ()Lkotlin/time/Instant;
607+
public fun asInteger ()Ljava/lang/Integer;
608+
public fun asList ()Ljava/util/List;
609+
public fun asLong ()Ljava/lang/Long;
610+
public fun asString ()Ljava/lang/String;
611+
public fun asStructure ()Ljava/util/Map;
612+
public final fun component1 ()J
613+
public final fun copy (J)Ldev/openfeature/kotlin/sdk/Value$Long;
614+
public static synthetic fun copy$default (Ldev/openfeature/kotlin/sdk/Value$Long;JILjava/lang/Object;)Ldev/openfeature/kotlin/sdk/Value$Long;
615+
public fun equals (Ljava/lang/Object;)Z
616+
public final fun getLong ()J
617+
public fun hashCode ()I
618+
public fun isNull ()Z
619+
public fun toString ()Ljava/lang/String;
620+
}
621+
582622
public final class dev/openfeature/kotlin/sdk/Value$Null : dev/openfeature/kotlin/sdk/Value {
583623
public static final field INSTANCE Ldev/openfeature/kotlin/sdk/Value$Null;
584624
public fun asBoolean ()Ljava/lang/Boolean;
585625
public fun asDouble ()Ljava/lang/Double;
586626
public fun asInstant ()Lkotlin/time/Instant;
587627
public fun asInteger ()Ljava/lang/Integer;
588628
public fun asList ()Ljava/util/List;
629+
public fun asLong ()Ljava/lang/Long;
589630
public fun asString ()Ljava/lang/String;
590631
public fun asStructure ()Ljava/util/Map;
591632
public fun equals (Ljava/lang/Object;)Z
@@ -600,6 +641,7 @@ public final class dev/openfeature/kotlin/sdk/Value$String : dev/openfeature/kot
600641
public fun asInstant ()Lkotlin/time/Instant;
601642
public fun asInteger ()Ljava/lang/Integer;
602643
public fun asList ()Ljava/util/List;
644+
public fun asLong ()Ljava/lang/Long;
603645
public fun asString ()Ljava/lang/String;
604646
public fun asStructure ()Ljava/util/Map;
605647
public final fun component1 ()Ljava/lang/String;
@@ -620,6 +662,7 @@ public final class dev/openfeature/kotlin/sdk/Value$Structure : dev/openfeature/
620662
public fun asInstant ()Lkotlin/time/Instant;
621663
public fun asInteger ()Ljava/lang/Integer;
622664
public fun asList ()Ljava/util/List;
665+
public fun asLong ()Ljava/lang/Long;
623666
public fun asString ()Ljava/lang/String;
624667
public fun asStructure ()Ljava/util/Map;
625668
public final fun component1 ()Ljava/util/Map;
@@ -880,6 +923,7 @@ public final class dev/openfeature/kotlin/sdk/multiprovider/MultiProvider : dev/
880923
public fun getDoubleEvaluation (Ljava/lang/String;DLdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
881924
public fun getHooks ()Ljava/util/List;
882925
public fun getIntegerEvaluation (Ljava/lang/String;ILdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
926+
public fun getLongEvaluation (Ljava/lang/String;JLdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
883927
public fun getMetadata ()Ldev/openfeature/kotlin/sdk/ProviderMetadata;
884928
public fun getObjectEvaluation (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/Value;Ldev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
885929
public final fun getStatusFlow ()Lkotlinx/coroutines/flow/StateFlow;
@@ -897,6 +941,7 @@ public final class dev/openfeature/kotlin/sdk/multiprovider/MultiProvider$ChildF
897941
public fun getDoubleEvaluation (Ljava/lang/String;DLdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
898942
public fun getHooks ()Ljava/util/List;
899943
public fun getIntegerEvaluation (Ljava/lang/String;ILdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
944+
public fun getLongEvaluation (Ljava/lang/String;JLdev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;
900945
public fun getMetadata ()Ldev/openfeature/kotlin/sdk/ProviderMetadata;
901946
public final fun getName ()Ljava/lang/String;
902947
public fun getObjectEvaluation (Ljava/lang/String;Ldev/openfeature/kotlin/sdk/Value;Ldev/openfeature/kotlin/sdk/EvaluationContext;)Ldev/openfeature/kotlin/sdk/ProviderEvaluation;

0 commit comments

Comments
 (0)