@RequiresReadLock
  public @NotNull RootEntry createTransientRootEntryForPaths(@NotNull Collection<String> paths, boolean includeChildren) {
    if (paths.isEmpty()) return new RootEntry();

    String singlePath = ContainerUtil.getOnlyItem(paths);
    if (singlePath != null) {
      return createTransientRootEntryForPath(singlePath, includeChildren);
    }

    RootEntry root = new RootEntry();
    List<SinglePathVisitor> visitors = ContainerUtil.map(paths, s -> new SinglePathVisitor(s, includeChildren));
    doCreateChildren(root, getLocalRoots(), false, new MergingPathVisitor(visitors));
    return root;
  }
@RequiresReadLock
  public @NotNull RootEntry createTransientRootEntryForPaths(@NotNull Collection<String> paths, boolean includeChildren)