private void loadObject()

in src/main/software/amazon/event/ruler/Event.java [247:280]


    private void loadObject(final JsonNode object, final Map<String, List<Value>> fieldMap, final Progress progress) {
        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();

            // If we know current step name hasn't been used by any rules, we don't parse into this step.
            if (!progress.machine.isFieldStepUsed(field.getKey())) {
                continue;
            }

            progress.path.push(field.getKey());
            switch (val.getNodeType()) {
                case OBJECT:
                    loadObject(val, fieldMap, progress);
                    break;
                case ARRAY:
                    loadArray(val, fieldMap, progress);
                    break;

                case STRING:
                    addField(fieldMap, progress, '"' + val.asText() + '"');
                    break;
                case NULL:
                case BOOLEAN:
                case NUMBER:
                    addField(fieldMap, progress, val.asText());
                    break;
                default:
                    throw new RuntimeException("Unknown JsonNode type for: " + val.asText());
            }
            progress.path.pop();
        }
    }