@Override
  public boolean getAllPossibleValues(List<Completion> completions, Class<?> targetType,
      String existingData, String optionContext, MethodTarget target) {
    if (StringUtils.isBlank(existingData)) {
      getRoots().forEach(path -> completions.add(new Completion(path)));
      return !completions.isEmpty();
    }

    getSiblings(existingData).stream().filter(string -> string.startsWith(existingData))
        .forEach(path -> completions.add(new Completion(path)));

    return !completions.isEmpty();
  }
if path is a dir, it will return the list of files under this dir. if path is a filename, it
will return all the siblings of this file
geode-gfsh/src/main/java/org/apache/geode/management/internal/cli/converters/FilePathStringConverter.java