@NotNull
  @Override
  protected List<? extends ExternalSystemNode<?>> doBuildChildren() {
    setIdeGrouping(null);
    final List<? extends ExternalSystemNode<?>> children = super.doBuildChildren();
    final List<ExternalSystemNode<?>> visibleChildren = ContainerUtil.filter(children, node -> node.isVisible());
    if (getExternalProjectsView().getGroupModules()) {
      final List<ExternalSystemNode<?>> topLevelChildren =
        ContainerUtil.filter(visibleChildren, node -> !(node instanceof ModuleNode) || ((ModuleNode)node).getIdeParentGrouping() == null);
      if (topLevelChildren.size() == 1) {
        ExternalSystemNode<?> child = topLevelChildren.get(0);
        if (child instanceof ModuleNode) {
          effectiveRoot = (ModuleNode)child;
          return effectiveRoot.doBuildChildren();
        }
      }
      return topLevelChildren;
    }

    effectiveRoot = null;
    return visibleChildren;
  }
@NotNull
  @Override
  protected List<? extends ExternalSystemNode<?>> doBuildChildren()