docs: private String buildReportChapter(final BuildData buildData) {
          log.info("\tBuilding Report Chapter");
  
          final ContentSpec contentSpec = buildData.getContentSpec();
          final String locale = buildData.getBuildLocale();
          final ZanataDetails zanataDetails = buildData.getZanataDetails();
  
          String reportChapter = "";
  
          final List<TopicErrorData> noContentTopics = buildData.getErrorDatabase().getErrorsOfType(locale, ErrorType.NO_CONTENT);
          final List<TopicErrorData> invalidInjectionTopics = buildData.getErrorDatabase().getErrorsOfType(locale,
                  ErrorType.INVALID_INJECTION);
          final List<TopicErrorData> invalidContentTopics = buildData.getErrorDatabase().getErrorsOfType(locale, ErrorType.INVALID_CONTENT);
          final List<TopicErrorData> invalidImageTopics = buildData.getErrorDatabase().getErrorsOfType(locale, ErrorType.INVALID_IMAGES);
          final List<TopicErrorData> untranslatedTopics = buildData.getErrorDatabase().getErrorsOfType(locale, ErrorType.UNTRANSLATED);
          final List<TopicErrorData> incompleteTranslatedTopics = buildData.getErrorDatabase().getErrorsOfType(locale,
                  ErrorType.INCOMPLETE_TRANSLATION);
          final List<TopicErrorData> fuzzyTranslatedTopics = buildData.getErrorDatabase().getErrorsOfType(locale,
                  ErrorType.FUZZY_TRANSLATION);
          final List<TopicErrorData> notPushedTranslatedTopics = buildData.getErrorDatabase().getErrorsOfType(locale,
                  ErrorType.NOT_PUSHED_FOR_TRANSLATION);
          final List<TopicErrorData> oldTranslatedTopics = buildData.getErrorDatabase().getErrorsOfType(locale, ErrorType.OLD_TRANSLATION);
          final List<TopicErrorData> oldUntranslatedTopics = buildData.getErrorDatabase().getErrorsOfType(locale, ErrorType.OLD_UNTRANSLATED);
  
          final List<String> list = new LinkedList<String>();
          list.add(DocBookUtilities.buildListItem("Total Number of Errors: " + getNumErrors()));
          list.add(DocBookUtilities.buildListItem("Total Number of Warnings: " + getNumWarnings()));
          list.add(DocBookUtilities.buildListItem("Number of Topics with No Content: " + noContentTopics.size()));
          list.add(DocBookUtilities.buildListItem("Number of Topics with Invalid Injection points: " + invalidInjectionTopics.size()));
          list.add(DocBookUtilities.buildListItem("Number of Topics with Invalid Content: " + invalidContentTopics.size()));
          list.add(DocBookUtilities.buildListItem("Number of Topics with Invalid Image references: " + invalidImageTopics.size()));
  
          if (buildData.isTranslationBuild()) {
              list.add(DocBookUtilities.buildListItem(
                      "Number of Topics that haven't been pushed for Translation: " + notPushedTranslatedTopics.size()));
              list.add(DocBookUtilities.buildListItem("Number of Topics that haven't been Translated: " + untranslatedTopics.size()));
              list.add(DocBookUtilities.buildListItem(
                      "Number of Topics that have incomplete Translations: " + incompleteTranslatedTopics.size()));
              list.add(DocBookUtilities.buildListItem("Number of Topics that have fuzzy Translations: " + fuzzyTranslatedTopics.size()));
              list.add(DocBookUtilities.buildListItem(
                      "Number of Topics that haven't been Translated but are using previous revisions: " + oldUntranslatedTopics.size()));
              list.add(DocBookUtilities.buildListItem(
                      "Number of Topics that have been Translated using a previous revision: " + oldTranslatedTopics.size()));
          }
  
          reportChapter += DocBookUtilities.wrapListItems(list, "Build Statistics");
  
          // Add a link to show the zanata statistics
          if (buildData.isTranslationBuild()) {
              reportChapter += generateAllTopicZanataUrl(buildData);
          }
  
          final boolean showEditorLinks = buildData.getBuildOptions().getInsertEditorLinks();
  
          // Create the Report Tables
          reportChapter += ReportUtilities.buildReportTable(noContentTopics, "Topics that have no Content", showEditorLinks, zanataDetails);
  
          reportChapter += ReportUtilities.buildReportTable(invalidContentTopics, "Topics that have Invalid XML Content", showEditorLinks,
                  zanataDetails);
  
          reportChapter += ReportUtilities.buildReportTable(invalidInjectionTopics, "Topics that have Invalid Injection points in the XML",
                  showEditorLinks, zanataDetails);
  
          reportChapter += ReportUtilities.buildReportTable(invalidImageTopics, "Topics that have Invalid Image references in the XML",
                  showEditorLinks, zanataDetails);
  
          if (buildData.isTranslationBuild()) {
              reportChapter += ReportUtilities.buildReportTable(notPushedTranslatedTopics, "Topics that haven't been pushed for Translation",
                      showEditorLinks, zanataDetails);
  
              reportChapter += ReportUtilities.buildReportTable(untranslatedTopics, "Topics that haven't been Translated", showEditorLinks,
                      zanataDetails);
  
              reportChapter += ReportUtilities.buildReportTable(incompleteTranslatedTopics, "Topics that have Incomplete Translations",
                      showEditorLinks, zanataDetails);
  
              reportChapter += ReportUtilities.buildReportTable(fuzzyTranslatedTopics, "Topics that have fuzzy Translations", showEditorLinks,
                      zanataDetails);
  
              reportChapter += ReportUtilities.buildReportTable(oldUntranslatedTopics,
                      "Topics that haven't been Translated but are using previous revisions", showEditorLinks, zanataDetails);
  
              reportChapter += ReportUtilities.buildReportTable(oldTranslatedTopics,
                      "Topics that have been Translated using a previous revision", showEditorLinks, zanataDetails);
          }
  
          if (contentSpec.getBookType() == BookType.ARTICLE || contentSpec.getBookType() == BookType.ARTICLE_DRAFT) {
              return DocBookBuildUtilities.addDocBookPreamble(buildData.getDocBookVersion(),
                      DocBookUtilities.buildSection(reportChapter, "Status Report"), "section", buildData.getEntityFileName());
          } else {
              return DocBookBuildUtilities.addDocBookPreamble(buildData.getDocBookVersion(),
                      DocBookUtilities.buildChapter(reportChapter, "Status Report"), "chapter", buildData.getEntityFileName());
          }
      }