@NotNull
  private List<? extends ServiceViewItem> getRoots(boolean visible) {
    List<? extends ServiceViewItem> roots = processGroups(doGetRoots(), visible);
    if (roots.stream().anyMatch(ContributorNode.class::isInstance)) {
      if (myShowContributorRoots) {
        roots = ContainerUtil.filter(roots, item -> !(item instanceof ContributorNode) || !getChildren(item, visible).isEmpty());
      }
      else {
        roots = roots.stream()
          .flatMap(item -> item instanceof ContributorNode ? getChildren(item, visible).stream() : Stream.of(item))
          .collect(Collectors.toList());
      }
    }
    return roots;
  }
@NotNull
  private List<? extends ServiceViewItem> getRoots(boolean visible)