@Nullable
    RootNode getSingleRoot() {
      if (!groups.isEmpty() || roots.size() != 1) return null;
      RootNode node = roots.get(0);
      ModuleRootManager manager = getModuleRootManager(getModule(node.getVirtualFile(), node.getProject()));
      if (manager == null) return null;
      // ensure that a content root is not a source root or test root
      for (VirtualFile file : manager.getSourceRoots()) {
        if (!VfsUtilCore.isAncestor(node.getVirtualFile(), file, true)) return null;
      }
      return node;
    }
@Nullable
    RootNode getSingleRoot()