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