in serializer-deserializer/src/main/java/com/amazonaws/services/schemaregistry/serializers/json/JsonValidator.java [38:75]
public void validateDataWithSchema(JsonNode schemaNode, JsonNode dataNode) {
try {
ObjectMapper mapper = new ObjectMapper();
JSONObject rawSchema = new JSONObject(mapper.writeValueAsString(schemaNode));
Schema schema = SchemaLoader.load(rawSchema, new ReferenceDisabledSchemaClient());
switch (dataNode.getNodeType()) {
case OBJECT: case POJO:
JSONObject rawObjectJson = new JSONObject(mapper.writeValueAsString(dataNode));
schema.validate(rawObjectJson);
break;
case ARRAY:
JSONArray rawArrayJson = new JSONArray(mapper.writeValueAsString(dataNode));
schema.validate(rawArrayJson);
break;
case STRING:
schema.validate(dataNode.textValue());
break;
case NUMBER:
schema.validate(dataNode.numberValue());
break;
case NULL:
schema.validate(JSONObject.NULL);
break;
case BOOLEAN:
schema.validate(dataNode.booleanValue());
break;
case BINARY:
schema.validate(dataNode.toString());
break;
case MISSING: default:
throw new AWSSchemaRegistryException("JsonNodeType is unknown or unsupported: "
+ dataNode.getNodeType());
}
} catch (Exception e) {
throw new AWSSchemaRegistryException("JSON data validation against schema failed.", e);
}
}