Skip to content

Commit 5d26247

Browse files
committed
feat!: use value for object resolver
Signed-off-by: Todd Baert <[email protected]>
1 parent 3e62414 commit 5d26247

10 files changed

+27
-27
lines changed

Diff for: src/main/java/dev/openfeature/javasdk/FeatureProvider.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ default List<Hook> getProviderHooks() {
2121

2222
ProviderEvaluation<Double> getDoubleEvaluation(String key, Double defaultValue, EvaluationContext ctx);
2323

24-
ProviderEvaluation<Structure> getObjectEvaluation(String key, Structure defaultValue, EvaluationContext ctx);
24+
ProviderEvaluation<Value> getObjectEvaluation(String key, Value defaultValue, EvaluationContext ctx);
2525
}

Diff for: src/main/java/dev/openfeature/javasdk/Features.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,19 @@ FlagEvaluationDetails<Integer> getIntegerDetails(String key, Integer defaultValu
5757
FlagEvaluationDetails<Double> getDoubleDetails(String key, Double defaultValue, EvaluationContext ctx,
5858
FlagEvaluationOptions options);
5959

60-
Structure getObjectValue(String key, Structure defaultValue);
60+
Value getObjectValue(String key, Value defaultValue);
6161

62-
Structure getObjectValue(String key, Structure defaultValue, EvaluationContext ctx);
62+
Value getObjectValue(String key, Value defaultValue, EvaluationContext ctx);
6363

64-
Structure getObjectValue(String key, Structure defaultValue, EvaluationContext ctx,
64+
Value getObjectValue(String key, Value defaultValue, EvaluationContext ctx,
6565
FlagEvaluationOptions options);
6666

67-
FlagEvaluationDetails<Structure> getObjectDetails(String key, Structure defaultValue);
67+
FlagEvaluationDetails<Value> getObjectDetails(String key, Value defaultValue);
6868

69-
FlagEvaluationDetails<Structure> getObjectDetails(String key, Structure defaultValue,
69+
FlagEvaluationDetails<Value> getObjectDetails(String key, Value defaultValue,
7070
EvaluationContext ctx);
7171

72-
FlagEvaluationDetails<Structure> getObjectDetails(String key, Structure defaultValue,
72+
FlagEvaluationDetails<Value> getObjectDetails(String key, Value defaultValue,
7373
EvaluationContext ctx,
7474
FlagEvaluationOptions options);
7575
}

Diff for: src/main/java/dev/openfeature/javasdk/NoOpProvider.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@ public ProviderEvaluation<Double> getDoubleEvaluation(String key, Double default
5757
}
5858

5959
@Override
60-
public ProviderEvaluation<Structure> getObjectEvaluation(String key, Structure defaultValue,
60+
public ProviderEvaluation<Value> getObjectEvaluation(String key, Value defaultValue,
6161
EvaluationContext invocationContext) {
62-
return ProviderEvaluation.<Structure>builder()
62+
return ProviderEvaluation.<Value>builder()
6363
.value(defaultValue)
6464
.variant(PASSED_IN_DEFAULT)
6565
.reason(Reason.DEFAULT)

Diff for: src/main/java/dev/openfeature/javasdk/OpenFeatureClient.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ private <T> ProviderEvaluation<?> createProviderEvaluation(
122122
case DOUBLE:
123123
return provider.getDoubleEvaluation(key, (Double) defaultValue, invocationContext);
124124
case OBJECT:
125-
return provider.getObjectEvaluation(key, (Structure) defaultValue, invocationContext);
125+
return provider.getObjectEvaluation(key, (Value) defaultValue, invocationContext);
126126
default:
127127
throw new GeneralError("Unknown flag type");
128128
}
@@ -257,34 +257,34 @@ public FlagEvaluationDetails<Double> getDoubleDetails(String key, Double default
257257
}
258258

259259
@Override
260-
public Structure getObjectValue(String key, Structure defaultValue) {
260+
public Value getObjectValue(String key, Value defaultValue) {
261261
return getObjectDetails(key, defaultValue).getValue();
262262
}
263263

264264
@Override
265-
public Structure getObjectValue(String key, Structure defaultValue, EvaluationContext ctx) {
265+
public Value getObjectValue(String key, Value defaultValue, EvaluationContext ctx) {
266266
return getObjectDetails(key, defaultValue, ctx).getValue();
267267
}
268268

269269
@Override
270-
public Structure getObjectValue(String key, Structure defaultValue, EvaluationContext ctx,
270+
public Value getObjectValue(String key, Value defaultValue, EvaluationContext ctx,
271271
FlagEvaluationOptions options) {
272272
return getObjectDetails(key, defaultValue, ctx, options).getValue();
273273
}
274274

275275
@Override
276-
public FlagEvaluationDetails<Structure> getObjectDetails(String key, Structure defaultValue) {
276+
public FlagEvaluationDetails<Value> getObjectDetails(String key, Value defaultValue) {
277277
return getObjectDetails(key, defaultValue, null);
278278
}
279279

280280
@Override
281-
public FlagEvaluationDetails<Structure> getObjectDetails(String key, Structure defaultValue,
281+
public FlagEvaluationDetails<Value> getObjectDetails(String key, Value defaultValue,
282282
EvaluationContext ctx) {
283283
return getObjectDetails(key, defaultValue, ctx, FlagEvaluationOptions.builder().build());
284284
}
285285

286286
@Override
287-
public FlagEvaluationDetails<Structure> getObjectDetails(String key, Structure defaultValue, EvaluationContext ctx,
287+
public FlagEvaluationDetails<Value> getObjectDetails(String key, Value defaultValue, EvaluationContext ctx,
288288
FlagEvaluationOptions options) {
289289
return this.evaluateFlag(FlagValueType.OBJECT, key, defaultValue, ctx, options);
290290
}

Diff for: src/main/java/dev/openfeature/javasdk/Value.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import lombok.ToString;
88

99
/**
10-
* Values serve as a return type for provider objects.
10+
* Values serve as a generic return type for structure data from providers.
1111
* Providers may deal in JSON, protobuf, XML or some other data-interchange format.
1212
* This intermediate representation provides a good medium of exchange.
1313
*/

Diff for: src/test/java/dev/openfeature/javasdk/AlwaysBrokenProvider.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public ProviderEvaluation<Double> getDoubleEvaluation(String key, Double default
3333
}
3434

3535
@Override
36-
public ProviderEvaluation<Structure> getObjectEvaluation(String key, Structure defaultValue, EvaluationContext invocationContext) {
36+
public ProviderEvaluation<Value> getObjectEvaluation(String key, Value defaultValue, EvaluationContext invocationContext) {
3737
throw new NotImplementedException("BORK");
3838
}
3939
}

Diff for: src/test/java/dev/openfeature/javasdk/DoSomethingProvider.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ public ProviderEvaluation<Double> getDoubleEvaluation(String key, Double default
4444
}
4545

4646
@Override
47-
public ProviderEvaluation<Structure> getObjectEvaluation(String key, Structure defaultValue, EvaluationContext invocationContext) {
47+
public ProviderEvaluation<Value> getObjectEvaluation(String key, Value defaultValue, EvaluationContext invocationContext) {
4848
savedContext = invocationContext;
49-
return ProviderEvaluation.<Structure>builder()
49+
return ProviderEvaluation.<Value>builder()
5050
.value(null)
5151
.build();
5252
}

Diff for: src/test/java/dev/openfeature/javasdk/FlagEvaluationSpecTest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,9 @@ private Client _client() {
115115
assertEquals(40.0, c.getDoubleValue(key, .4, new EvaluationContext()));
116116
assertEquals(40.0, c.getDoubleValue(key, .4, new EvaluationContext(), FlagEvaluationOptions.builder().build()));
117117

118-
assertEquals(null, c.getObjectValue(key, new Structure()));
119-
assertEquals(null, c.getObjectValue(key, new Structure(), new EvaluationContext()));
120-
assertEquals(null, c.getObjectValue(key, new Structure(), new EvaluationContext(), FlagEvaluationOptions.builder().build()));
118+
assertEquals(null, c.getObjectValue(key, new Value()));
119+
assertEquals(null, c.getObjectValue(key, new Value(), new EvaluationContext()));
120+
assertEquals(null, c.getObjectValue(key, new Value(), new EvaluationContext(), FlagEvaluationOptions.builder().build()));
121121
}
122122

123123
@Specification(number="1.4.1", text="The client MUST provide methods for detailed flag value evaluation with parameters flag key (string, required), default value (boolean | number | string | structure, required), evaluation context (optional), and evaluation options (optional), which returns an evaluation details structure.")

Diff for: src/test/java/dev/openfeature/javasdk/NoOpProviderTest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ public class NoOpProviderTest {
3030
assertEquals(0.4, eval.getValue());
3131
}
3232

33-
@Test void structure() {
33+
@Test void value() {
3434
NoOpProvider p = new NoOpProvider();
35-
Structure s = new Structure();
36-
ProviderEvaluation<Structure> eval = p.getObjectEvaluation("key", s, null);
35+
Value s = new Value();
36+
ProviderEvaluation<Value> eval = p.getObjectEvaluation("key", s, null);
3737
assertEquals(s, eval.getValue());
3838
}
3939
}

Diff for: src/test/java/dev/openfeature/javasdk/ProviderSpecTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public class ProviderSpecTest {
3636
ProviderEvaluation<Boolean> boolean_result = p.getBooleanEvaluation("key", false, new EvaluationContext());
3737
assertNotNull(boolean_result.getValue());
3838

39-
ProviderEvaluation<Structure> object_result = p.getObjectEvaluation("key", new Structure(), new EvaluationContext());
39+
ProviderEvaluation<Value> object_result = p.getObjectEvaluation("key", new Value(), new EvaluationContext());
4040
assertNotNull(object_result.getValue());
4141

4242
}

0 commit comments

Comments
 (0)