code: protected void generatePackageTreeFile() throws DocFileIOException {
          HtmlTree body = getPackageTreeHeader();
          HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN))
                  ? HtmlTree.MAIN()
                  : body;
          Content headContent = contents.getContent("doclet.Hierarchy_For_Package",
                  utils.getPackageName(packageElement));
          Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, false,
                  HtmlStyle.title, headContent);
          Content div = HtmlTree.DIV(HtmlStyle.header, heading);
          if (configuration.packages.size() > 1) {
              addLinkToMainTree(div);
          }
          htmlTree.addContent(div);
          HtmlTree divTree = new HtmlTree(HtmlTag.DIV);
          divTree.addStyle(HtmlStyle.contentContainer);
          addTree(classtree.baseClasses(), "doclet.Class_Hierarchy", divTree);
          addTree(classtree.baseInterfaces(), "doclet.Interface_Hierarchy", divTree);
          addTree(classtree.baseAnnotationTypes(), "doclet.Annotation_Type_Hierarchy", divTree);
          addTree(classtree.baseEnums(), "doclet.Enum_Hierarchy", divTree, true);
          htmlTree.addContent(divTree);
          if (configuration.allowTag(HtmlTag.MAIN)) {
              body.addContent(htmlTree);
          }
          HtmlTree tree = (configuration.allowTag(HtmlTag.FOOTER))
                  ? HtmlTree.FOOTER()
                  : body;
          addNavLinks(false, tree);
          addBottom(tree);
          if (configuration.allowTag(HtmlTag.FOOTER)) {
              body.addContent(tree);
          }
          printHtmlDocument(null, true, body);
      }
docs: Generate a separate tree file for each package.
  @throws DocFileIOException if there is a problem generating the package tree file