@Override
  public Iterable<Path> getRootDirectories() {
    Map<String, Path> rootDirectories = new LinkedHashMap<>();
    for (Path root : myLocalFS.getRootDirectories()) {
      rootDirectories.put(root.toString(), root);
    }
    // Some of the backend file systems may override the roots.
    // However, it's important to check that they override only the registered paths.
    for (Backend backend : myBackends.get()) {
      for (Path candidate : backend.fileSystem.getRootDirectories()) {
        if (backend.matchRoot(candidate.toString())) {
          rootDirectories.put(candidate.toString(), candidate);
          break;
        }
      }
    }
    return rootDirectories.values();
  }
@Override
  public Iterable<Path> getRootDirectories()