MCPcopy Create free account
hub / github.com/everit-org/json-schema / EnumSchema

Class EnumSchema

core/src/main/java/org/everit/json/schema/EnumSchema.java:20–114  ·  view source on GitHub ↗

Enum schema validator.

Source from the content-addressed store, hash-verified

18 * Enum schema validator.
19 */
20public class EnumSchema extends Schema {
21
22 static Object toJavaValue(Object orig) {
23 if (orig instanceof JSONArray) {
24 return OrgJsonUtil.toList((JSONArray) orig);
25 } else if (orig instanceof JSONObject) {
26 return toMap((JSONObject) orig);
27 } else if (orig == JSONObject.NULL) {
28 return null;
29 } else {
30 return orig;
31 }
32 }
33
34 static List<Object> toJavaValues(List<Object> orgJsons) {
35 return orgJsons.stream().map(EnumSchema::toJavaValue).collect(toList());
36 }
37
38 /**
39 * Builder class for {@link EnumSchema}.
40 */
41 public static class Builder extends Schema.Builder<EnumSchema> {
42
43 private List<Object> possibleValues = new ArrayList<>();
44
45 @Override
46 public EnumSchema build() {
47 return new EnumSchema(this);
48 }
49
50 public Builder possibleValue(Object possibleValue) {
51 possibleValues.add(possibleValue);
52 return this;
53 }
54
55 public Builder possibleValues(List<Object> possibleValues) {
56 this.possibleValues = possibleValues;
57 return this;
58 }
59
60 public Builder possibleValues(Set<Object> possibleValues) {
61 this.possibleValues = possibleValues.stream().collect(toList());
62 return this;
63 }
64 }
65
66 public static Builder builder() {
67 return new Builder();
68 }
69
70 private final List<Object> possibleValues;
71
72 public EnumSchema(Builder builder) {
73 super(builder);
74 possibleValues = Collections.unmodifiableList(toJavaValues(builder.possibleValues));
75 }
76
77 public Set<Object> getPossibleValues() {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected