Skip to content

Commit f6a013c

Browse files
committed
Apply fixes
1 parent 1b0dffa commit f6a013c

2 files changed

Lines changed: 30 additions & 3 deletions

File tree

src/main/java/com/octopus/openfeature/provider/FeatureToggleEvaluation.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,32 @@
11
package com.octopus.openfeature.provider;
22

33
import com.fasterxml.jackson.annotation.JsonCreator;
4+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
45
import com.fasterxml.jackson.annotation.JsonProperty;
6+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
57

68
import java.util.ArrayList;
79
import java.util.List;
810
import java.util.Map;
911

12+
@JsonIgnoreProperties(ignoreUnknown = true)
1013
class FeatureToggleEvaluation {
1114
private final String name;
1215
private final String slug;
1316
private final boolean isEnabled;
1417
private final List<Map.Entry<String, String>> segments;
1518

1619
@JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
17-
FeatureToggleEvaluation(@JsonProperty("name") String name, @JsonProperty("slug")String slug, @JsonProperty("isEnabled") boolean isEnabled,
18-
@JsonProperty("segments") List<Map.Entry<String, String>> segments) {
20+
FeatureToggleEvaluation(
21+
@JsonProperty("name") String name,
22+
@JsonProperty("slug") String slug,
23+
@JsonProperty("isEnabled") boolean isEnabled,
24+
@JsonDeserialize(contentUsing = SegmentDeserializer.class) @JsonProperty("segments") List<Map.Entry<String, String>> segments
25+
) {
1926
this.name = name;
2027
this.slug = slug;
2128
this.isEnabled = isEnabled;
22-
29+
2330
this.segments = new ArrayList<>();
2431
if (segments != null) {
2532
this.segments.addAll(segments);
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.octopus.openfeature.provider;
2+
3+
import com.fasterxml.jackson.core.JsonParser;
4+
import com.fasterxml.jackson.databind.DeserializationContext;
5+
import com.fasterxml.jackson.databind.JsonDeserializer;
6+
import com.fasterxml.jackson.databind.JsonNode;
7+
8+
import java.io.IOException;
9+
import java.util.AbstractMap;
10+
import java.util.Map;
11+
12+
class SegmentDeserializer extends JsonDeserializer<Map.Entry<String, String>> {
13+
@Override
14+
public Map.Entry<String, String> deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
15+
JsonNode node = p.getCodec().readTree(p);
16+
String key = node.get("key").asText();
17+
String value = node.get("value").asText();
18+
return new AbstractMap.SimpleEntry<>(key, value);
19+
}
20+
}

0 commit comments

Comments
 (0)