private boolean hasText(String str) {
    if (StringUtils.isEmpty(str)) {
      return false;
    }
    int strLen = str.length();
    for (int i = 0; i < strLen; i++) {
      if (!Character.isWhitespace(str.charAt(i))) {
        return true;
      }
    }
    return false;
  }
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