private Map<String, Object> getFlattenedMap(Map<String, Object> source) {
    Map<String, Object> result = new LinkedHashMap<String, Object>();
    buildFlattenedMap(result, source, null);
    return result;
  }
Return a flattened version of the given map, recursively following any nested Map or Collection
values. Entries from the resulting map retain the same order as the source.
src/main/java/com/eudemon/ratelimiter/env/resolver/YamlPropertySourceResolver.java