public void validateDataWithSchema()

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);
        }
    }