@Nullable
  public static <T> T getFile(final FilePathMerger<T> merger, final String path) {
    if (path == null) {
      return null;
    }
    final List<String> tail = new ArrayList<>();
    final T file = getFile(merger, path, tail);
    if (tail.isEmpty()) {
      return file;
    }
    return null;
  }
@Nullable
  public static <T> T getFile(final FilePathMerger<T> merger, final String path)