code: protected void generateIndexFile() throws DocFileIOException {
          String title = configuration.getText("doclet.Window_Single_Index");
          HtmlTree body = getBody(true, getWindowTitle(title));
          HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
                  ? HtmlTree.HEADER()
                  : body;
          addTop(htmlTree);
          addNavLinks(true, htmlTree);
          if (configuration.allowTag(HtmlTag.HEADER)) {
              body.addContent(htmlTree);
          }
          HtmlTree divTree = new HtmlTree(HtmlTag.DIV);
          divTree.addStyle(HtmlStyle.contentContainer);
          elements = new TreeSet<>(indexbuilder.getIndexMap().keySet());
          elements.addAll(configuration.tagSearchIndexKeys);
          addLinksForIndexes(divTree);
          for (Character unicode : elements) {
              if (configuration.tagSearchIndexMap.get(unicode) == null) {
                  addContents(unicode, indexbuilder.getMemberList(unicode), divTree);
              } else if (indexbuilder.getMemberList(unicode) == null) {
                  addSearchContents(unicode, configuration.tagSearchIndexMap.get(unicode), divTree);
              } else {
                  addContents(unicode, indexbuilder.getMemberList(unicode),
                          configuration.tagSearchIndexMap.get(unicode), divTree);
              }
          }
          addLinksForIndexes(divTree);
          body.addContent((configuration.allowTag(HtmlTag.MAIN))
                  ? HtmlTree.MAIN(divTree)
                  : divTree);
          if (configuration.allowTag(HtmlTag.FOOTER)) {
              htmlTree = HtmlTree.FOOTER();
          }
          addNavLinks(false, htmlTree);
          addBottom(htmlTree);
          if (configuration.allowTag(HtmlTag.FOOTER)) {
              body.addContent(htmlTree);
          }
          createSearchIndexFiles();
          printHtmlDocument(null, true, body);
      }
docs: Generate the contents of each index file, with Header, Footer,
  Member Field, Method and Constructor Description.
  @throws DocFileIOException if there is a problem generating the index