public SchemaContext(final FullData data) { schema = data.getSchema(); final JsonTree tree = data.getInstance(); instanceType = tree != null ? NodeType.getNodeType(tree.getNode()) : null; }
@Override public void validate(final Processor<FullData, FullData> processor, final ProcessingReport report, final MessageBundle bundle, final FullData data) throws ProcessingException { final String regex = data.getSchema().getNode().get(keyword) .textValue(); final String value = data.getInstance().getNode().textValue(); if (!RhinoHelper.regMatch(regex, value)) report.error(newMsg(data, bundle, "err.common.pattern.noMatch") .putArgument("regex", regex).putArgument("string", value)); }
@Override public FullData process(final ProcessingReport report, final FullData input) throws ProcessingException { final JsonNode schema = input.getSchema().getNode(); final JsonPointer ptr = schema == sub1 ? ptr1 : ptr2; assertEquals(input.getSchema().getPointer(), ptr, "schema pointer differs from expectations"); final WantedState wanted = schema == sub1 ? wanted1 : wanted2; wanted.doIt(report); return input; } }
@Override public FullData process(final ProcessingReport report, final FullData input) throws ProcessingException { assertEquals(input.getSchema().getPointer(), PTR); wanted.doIt(report, message); return input; } }
@Override public FullData process(final ProcessingReport report, final FullData input) throws ProcessingException { assertEquals(input.getSchema().getPointer(), PTR); wanted.doIt(report); return input; } }
return; final SchemaTree tree = data.getSchema(); FullData newData; JsonPointer pointer;
final SchemaURI schemaURI = new SchemaURI(data.getSchema());
@Override public void validate(final Processor<FullData, FullData> processor, final ProcessingReport report, final MessageBundle bundle, final FullData data) throws ProcessingException { final SchemaTree tree = data.getSchema(); final JsonNode node = tree.getNode().get(keyword); FullData newData; if (node.isObject()) { newData = data.withSchema(tree.append(JsonPointer.of(keyword))); processor.process(report, newData); return; } /* * Not an object? An array */ final int size = node.size(); JsonPointer pointer; for (int index = 0; index < size; index++) { pointer = JsonPointer.of(keyword, index); newData = data.withSchema(tree.append(pointer)); processor.process(report, newData); } }
private ProcessingMessage validationLoopMessage(final FullData input) { final ArrayNode node = JacksonUtils.nodeFactory().arrayNode(); for (final SchemaURI uri: schemaURIs) node.add(uri.toString()); return input.newMessage() .put("domain", "validation") .setMessage(errmsg) .putArgument("alreadyVisited", new SchemaURI(input.getSchema())) .putArgument("instancePointer", pointer.toString()) .put("validationPath", node); } }
@Override public void validate(final Processor<FullData, FullData> processor, final ProcessingReport report, final MessageBundle bundle, final FullData data) throws ProcessingException { final SchemaTree tree = data.getSchema(); final ProcessingReport subReport = new ListProcessingReport(report.getLogLevel(), LogLevel.FATAL); processor.process(subReport, data.withSchema(tree.append(PTR))); if (subReport.isSuccess()) report.error(newMsg(data, bundle, "err.draftv4.not.fail")); }
private void processObject(final ProcessingReport report, final FullData input) throws ProcessingException { final SchemaTree tree = input.getSchema(); final JsonTree instance = input.getInstance(); final JsonNode schema = tree.getNode(); final JsonNode node = instance.getNode(); final JsonNode digest = ObjectSchemaDigester.getInstance() .digest(schema); final ObjectSchemaSelector selector = new ObjectSchemaSelector(digest); final List<String> fields = Lists.newArrayList(node.fieldNames()); Collections.sort(fields); FullData data; JsonTree newInstance; for (final String field: fields) { newInstance = instance.append(JsonPointer.of(field)); data = input.withInstance(newInstance); for (final JsonPointer ptr: selector.selectSchemas(field)) { data = data.withSchema(tree.append(ptr)); process(report, data); } } }
throws ProcessingException final SchemaTree tree = data.getSchema(); final JsonPointer schemaPointer = tree.getPointer(); final JsonNode schemas = tree.getNode().get(keyword);
throws ProcessingException final SchemaTree tree = data.getSchema(); final JsonPointer schemaPointer = tree.getPointer(); final JsonNode schemas = tree.getNode().get(keyword);
throws ProcessingException final SchemaTree tree = data.getSchema(); final JsonPointer schemaPointer = tree.getPointer(); final JsonNode schemas = tree.getNode().get(keyword);
final SchemaTree tree = data.getSchema(); final JsonPointer schemaPointer = tree.getPointer();
private void processArray(final ProcessingReport report, final FullData input) throws ProcessingException { final SchemaTree tree = input.getSchema(); final JsonTree instance = input.getInstance(); final JsonNode schema = tree.getNode(); final JsonNode node = instance.getNode(); final JsonNode digest = ArraySchemaDigester.getInstance() .digest(schema); final ArraySchemaSelector selector = new ArraySchemaSelector(digest); final int size = node.size(); FullData data; JsonTree newInstance; for (int index = 0; index < size; index++) { newInstance = instance.append(JsonPointer.of(index)); data = input.withInstance(newInstance); for (final JsonPointer ptr: selector.selectSchemas(index)) { data = data.withSchema(tree.append(ptr)); process(report, data); } } }
final SchemaTree tree = data.getSchema(); final JsonPointer schemaPointer = tree.getPointer(); final ObjectNode fullReport = FACTORY.objectNode();
private JsonNode definitionsNode(final FullData data) { // Swagger 2.0 used 'definitions' while OpenAPI uses 'components/schemas' final JsonNode baseNode = data.getSchema().getBaseNode(); if (baseNode.has("components")) { return baseNode.get("components").get("schemas"); } return baseNode.get("definitions"); }
private JsonPointer pointerToDiscriminator(final FullData data, final JsonNode discriminatorNode) { // Swagger 2.0 used 'definitions' while OpenAPI uses 'components/schemas' if (data.getSchema().getBaseNode().has("components")) { return JsonPointer.of("components", "schemas", discriminatorNode.textValue()); } return JsonPointer.of("definitions", discriminatorNode.textValue()); }
final FullData data) throws ProcessingException { if (visitedNodes.get().contains(data.getSchema().getNode())) { visitedNodes.get().remove(data.getSchema().getNode()); return; final SchemaTree schemaTree = data.getSchema(); final String parentDefinitionRef = "#" + schemaTree.getPointer().toString(); final Map<String, JsonNode> validDiscriminatorValues = new HashMap<>();