|
|
@@ -2,6 +2,7 @@ package org.leumasjaffe.json.schema.factory;
|
|
|
|
|
|
import java.util.List;
|
|
|
import java.util.function.Predicate;
|
|
|
+import java.util.regex.Matcher;
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
|
import org.leumasjaffe.json.JsonHelper;
|
|
|
@@ -36,7 +37,7 @@ public class SchemaFactory {
|
|
|
case BOOLEAN:
|
|
|
return new Schema(object.asBoolean() ? FixedTester.ACCEPT : FixedTester.REJECT);
|
|
|
case OBJECT:
|
|
|
- final SchemaFactory versioned = getVersionFactory(object.path("$ref").asText());
|
|
|
+ final SchemaFactory versioned = getVersionFactory(object.path("$schema").asText());
|
|
|
return new Schema(JsonHelper.fields(object, versioned::createMapping));
|
|
|
default:
|
|
|
throw new IllegalStateException("Expected OBJECT or BOOLEAN, got " + object.getNodeType());
|
|
|
@@ -61,7 +62,9 @@ public class SchemaFactory {
|
|
|
|
|
|
private static int getVersionInt(final String version) {
|
|
|
final Pattern pat = Pattern.compile("http://json-schema.org/draft-(\\d+)/schema#");
|
|
|
- return Integer.parseInt(pat.matcher(version).group(1), 10);
|
|
|
+ final Matcher m = pat.matcher(version);
|
|
|
+ m.matches();
|
|
|
+ return Integer.parseInt(m.group(1), 10);
|
|
|
}
|
|
|
|
|
|
protected final List<Tester> createArray(final JsonNode array) {
|