private static void flattenObject()

in src/main/software/amazon/event/ruler/Event.java [282:309]


    private static void flattenObject(final JsonNode object, final Map<String, List<String>> map, final Stack<String> path) {
        final Iterator<Map.Entry<String, JsonNode>> fields = object.fields();
        while (fields.hasNext()) {
            final Map.Entry<String, JsonNode> field = fields.next();
            final JsonNode val = field.getValue();

            path.push(field.getKey());
            switch (val.getNodeType()) {
                case OBJECT:
                    flattenObject(val, map, path);
                    break;
                case ARRAY:
                    flattenArray(val, map, path);
                    break;
                case STRING:
                    recordNameVal(map, path, '"' + val.asText() + '"');
                    break;
                case NULL:
                case BOOLEAN:
                case NUMBER:
                    recordNameVal(map, path, val.asText());
                    break;
                default:
                    throw new RuntimeException("Unknown JsonNode type for: " + val.asText());
            }
            path.pop();
        }
    }