private static void parseRuleObject()

in src/main/software/amazon/event/ruler/RuleCompiler.java [722:752]


        private static void parseRuleObject(final Map<List<String>, List<Patterns>> rule,
                                            final Deque<String> stack,
                                            final JsonParser parser,
                                            final boolean withQuotes) throws IOException {

            boolean fieldsPresent = false;
            while (parser.nextToken() != JsonToken.END_OBJECT) {
                fieldsPresent = true;

                // field name
                final String stepName = parser.getCurrentName();

                switch (parser.nextToken()) {
                    case START_OBJECT:
                        stack.addLast(stepName);
                        parseRuleObject(rule, stack, parser, withQuotes);
                        stack.removeLast();
                        break;

                    case START_ARRAY:
                        writeRules(rule, rulePathname(stack, stepName), parser, withQuotes);
                        break;

                    default:
                        barf(parser, String.format("\"%s\" must be an object or an array", stepName));
                }
            }
            if (!fieldsPresent) {
                barf(parser, "Empty objects are not allowed");
            }
        }