@@ -15,12 +15,39 @@ default List<Hook> getProviderHooks() {
1515 return new ArrayList <>();
1616 }
1717
18+ /**
19+ * Resolves a feature flag value as a {@link Number}.
20+ *
21+ * @param key the unique identifier for the flag
22+ * @param defaultValue the default value to return if the flag cannot be resolved
23+ * @param ctx the evaluation context containing any relevant information for resolution
24+ * @return a {@link ProviderEvaluation} containing the resolved {@code Number} value and additional evaluation details
25+ */
26+ default ProviderEvaluation <Number > getNumberEvaluation (String key , Number defaultValue , EvaluationContext ctx ) {
27+ ProviderEvaluation <Double > dep = getDoubleEvaluation (key , defaultValue .doubleValue (), ctx );
28+ return new ProviderEvaluation <>(
29+ dep .getValue (),
30+ dep .getReason (),
31+ dep .getVariant (),
32+ dep .getErrorCode (),
33+ dep .getErrorMessage (),
34+ dep .getFlagMetadata ());
35+ }
36+
1837 ProviderEvaluation <Boolean > getBooleanEvaluation (String key , Boolean defaultValue , EvaluationContext ctx );
1938
2039 ProviderEvaluation <String > getStringEvaluation (String key , String defaultValue , EvaluationContext ctx );
2140
41+ /**
42+ * @deprecated please use {@link #getNumberEvaluation(String, Number, EvaluationContext)}
43+ */
44+ @ Deprecated
2245 ProviderEvaluation <Integer > getIntegerEvaluation (String key , Integer defaultValue , EvaluationContext ctx );
2346
47+ /**
48+ * @deprecated please use {@link #getNumberEvaluation(String, Number, EvaluationContext)}
49+ */
50+ @ Deprecated
2451 ProviderEvaluation <Double > getDoubleEvaluation (String key , Double defaultValue , EvaluationContext ctx );
2552
2653 ProviderEvaluation <Value > getObjectEvaluation (String key , Value defaultValue , EvaluationContext ctx );
0 commit comments