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