Skip to content

Commit 63c3f13

Browse files
authored
Merge pull request #216 from cyqw/master
change type of possibleValues in EnumSchema from Set to List
2 parents 22cc738 + 111e785 commit 63c3f13

File tree

3 files changed

+26
-17
lines changed

3 files changed

+26
-17
lines changed

core/src/main/java/org/everit/json/schema/EnumSchema.java

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package org.everit.json.schema;
22

3-
import static java.util.stream.Collectors.toSet;
3+
import static java.util.stream.Collectors.toList;
44

55
import java.util.Collections;
6-
import java.util.HashSet;
6+
import java.util.ArrayList;
77
import java.util.Objects;
8+
import java.util.List;
89
import java.util.Set;
9-
10+
import java.util.stream.Collectors;
1011
import org.everit.json.schema.internal.JSONPrinter;
1112
import org.json.JSONArray;
1213
import org.json.JSONObject;
@@ -28,16 +29,16 @@ static Object toJavaValue(Object orig) {
2829
}
2930
}
3031

31-
static Set<Object> toJavaValues(Set<Object> orgJsons) {
32-
return orgJsons.stream().map(EnumSchema::toJavaValue).collect(toSet());
32+
static List<Object> toJavaValues(List<Object> orgJsons) {
33+
return orgJsons.stream().map(EnumSchema::toJavaValue).collect(toList());
3334
}
3435

3536
/**
3637
* Builder class for {@link EnumSchema}.
3738
*/
3839
public static class Builder extends Schema.Builder<EnumSchema> {
3940

40-
private Set<Object> possibleValues = new HashSet<>();
41+
private List<Object> possibleValues = new ArrayList<>();
4142

4243
@Override
4344
public EnumSchema build() {
@@ -49,24 +50,33 @@ public Builder possibleValue(Object possibleValue) {
4950
return this;
5051
}
5152

52-
public Builder possibleValues(Set<Object> possibleValues) {
53+
public Builder possibleValues(List<Object> possibleValues) {
5354
this.possibleValues = possibleValues;
5455
return this;
5556
}
57+
58+
public Builder possibleValues(Set<Object> possibleValues) {
59+
this.possibleValues = possibleValues.stream().collect(toList());
60+
return this;
61+
}
5662
}
5763

5864
public static Builder builder() {
5965
return new Builder();
6066
}
6167

62-
private final Set<Object> possibleValues;
68+
private final List<Object> possibleValues;
6369

6470
public EnumSchema(Builder builder) {
6571
super(builder);
66-
possibleValues = Collections.unmodifiableSet(toJavaValues(builder.possibleValues));
72+
possibleValues = Collections.unmodifiableList(toJavaValues(builder.possibleValues));
6773
}
6874

6975
public Set<Object> getPossibleValues() {
76+
return possibleValues.stream().collect(Collectors.toSet());
77+
}
78+
79+
public List<Object> getPossibleValuesAsList() {
7080
return possibleValues;
7181
}
7282

core/src/main/java/org/everit/json/schema/loader/SchemaExtractor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ class EnumSchemaExtractor extends AbstractSchemaExtractor {
143143
return emptyList();
144144
}
145145
EnumSchema.Builder builder = EnumSchema.builder();
146-
Set<Object> possibleValues = new HashSet<>();
146+
List<Object> possibleValues = new ArrayList<>();
147147
require("enum").requireArray().forEach((i, item) -> possibleValues.add(item.unwrap()));
148148
builder.possibleValues(possibleValues);
149149
return singletonList(builder);

core/src/test/java/org/everit/json/schema/EnumSchemaTest.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,9 @@
2020

2121
import java.io.StringWriter;
2222
import java.util.HashMap;
23-
import java.util.HashSet;
23+
import java.util.ArrayList;
2424
import java.util.List;
2525
import java.util.Map;
26-
import java.util.Set;
2726
import java.util.stream.Collectors;
2827
import java.util.stream.IntStream;
2928

@@ -38,11 +37,11 @@
3837

3938
public class EnumSchemaTest {
4039

41-
private Set<Object> possibleValues;
40+
private List<Object> possibleValues;
4241

4342
@Before
4443
public void before() {
45-
possibleValues = new HashSet<>();
44+
possibleValues = new ArrayList<>();
4645
possibleValues.add(true);
4746
possibleValues.add("foo");
4847
}
@@ -86,10 +85,10 @@ public void objectInArrayMatches() {
8685
subject.validate(list);
8786
}
8887

89-
private Set<Object> asSet(final JSONArray array) {
90-
return new HashSet<>(IntStream.range(0, array.length())
88+
private List<Object> asSet(final JSONArray array) {
89+
return new ArrayList<>(IntStream.range(0, array.length())
9190
.mapToObj(i -> array.get(i))
92-
.collect(Collectors.toSet()));
91+
.collect(Collectors.toList()));
9392
}
9493

9594
@Test

0 commit comments

Comments
 (0)