|
|
@@ -1,11 +1,14 @@
|
|
|
package org.leumasjaffe.json.schema.tester;
|
|
|
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
import org.leumasjaffe.json.schema.Tester;
|
|
|
|
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
|
+import com.fasterxml.jackson.databind.node.JsonNodeType;
|
|
|
|
|
|
import lombok.AccessLevel;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
@@ -19,6 +22,14 @@ public class AllOfTester implements Tester {
|
|
|
public AllOfTester(Tester...testers) {
|
|
|
this(Arrays.asList(testers));
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public JsonNodeType[] acceptedTypes() {
|
|
|
+ final Set<JsonNodeType> set = new HashSet<>();
|
|
|
+ children.stream().map(Tester::acceptedTypes)
|
|
|
+ .forEach(a -> set.retainAll(Arrays.asList(a)));
|
|
|
+ return set.toArray(new JsonNodeType[0]);
|
|
|
+ }
|
|
|
|
|
|
public boolean accepts(JsonNode node) {
|
|
|
return children.parallelStream().allMatch(t -> t.accepts(node));
|