@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); } }
continue; pointer = JsonPointer.of(keyword, field); newData = data.withSchema(tree.append(pointer)); processor.process(report, newData);
@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); } } }
LogLevel.FATAL); ptr = schemaPointer.append(JsonPointer.of(keyword, index)); newData = data.withSchema(tree.setPointer(ptr)); processor.process(subReport, newData); fullReport.put(ptr.toString(), subReport.asJson());
LogLevel.FATAL); ptr = schemaPointer.append(JsonPointer.of(keyword, index)); newData = data.withSchema(tree.setPointer(ptr)); processor.process(subReport, newData); fullReport.put(ptr.toString(), subReport.asJson());
LogLevel.FATAL); ptr = schemaPointer.append(JsonPointer.of(keyword, index)); newData = data.withSchema(tree.setPointer(ptr)); processor.process(subReport, newData); fullReport.put(ptr.toString(), subReport.asJson());
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); } } }
LogLevel.FATAL); ptr = schemaPointer.append(JsonPointer.of(keyword, index)); newData = data.withSchema(tree.setPointer(ptr)); processor.process(subReport, newData); fullReport.put(ptr.toString(), subReport.asJson());
LogLevel.FATAL); ptr = schemaPointer.append(JsonPointer.of(keyword, index)); newData = data.withSchema(tree.setPointer(ptr)); processor.process(subReport, newData); fullReport.put(ptr.toString(), subReport.asJson());
final FullData newData = data.withSchema(schemaTree.setPointer(ptr));