private void traverseObject()

in src/main/software/amazon/event/ruler/Event.java [123:152]


    private void traverseObject(final JsonParser parser, final TreeMap<String, List<Value>> fieldMap, final Progress progress) throws IOException {
        while (parser.nextToken() != JsonToken.END_OBJECT) {
            // step name
            final String stepName = parser.getCurrentName();
            JsonToken nextToken = parser.nextToken();

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

            progress.path.push(stepName);
            switch (nextToken) {
                case START_OBJECT:
                    traverseObject(parser, fieldMap, progress);
                    break;
                case START_ARRAY:
                    traverseArray(parser, fieldMap, progress);
                    break;
                case VALUE_STRING:
                    addField(fieldMap, progress, '"' + parser.getText() + '"');
                    break;
                default:
                    addField(fieldMap, progress, parser.getText());
                    break;
            }
            progress.path.pop();
        }
    }