public static HistorySummary createHistorySummary(
      ObjectFactory objectFactory,
      URI baseUri,
      String wikiName,
      String spaceName,
      String pageName,
      String language,
      Version version,
      String modifier,
      Date modified,
      String comment,
      XWiki xwikiApi,
      Boolean withPrettyNames) {
    HistorySummary historySummary = objectFactory.createHistorySummary();

    String pageId = Utils.getPageId(wikiName, spaceName, pageName);

    historySummary.setPageId(pageId);
    historySummary.setWiki(wikiName);
    historySummary.setSpace(spaceName);
    historySummary.setName(pageName);
    historySummary.setVersion(version.toString());
    historySummary.setMajorVersion(version.at(0));
    historySummary.setMinorVersion(version.at(1));
    historySummary.setComment(comment);
    historySummary.setModifier(modifier);
    if (withPrettyNames) {
      historySummary.setModifierName(xwikiApi.getUserName(modifier, false));
    }

    historySummary.setLanguage(language);

    Calendar calendar = Calendar.getInstance();
    calendar.setTime(modified);
    historySummary.setModified(calendar);

    if (language == null) {
      String pageUri =
          uri(baseUri, PageVersionResource.class, wikiName, spaceName, pageName, version);
      Link pageLink = objectFactory.createLink();
      pageLink.setHref(pageUri);
      pageLink.setRel(Relations.PAGE);
      historySummary.getLinks().add(pageLink);
    } else {
      String pageUri =
          uri(
              baseUri,
              PageTranslationVersionResource.class,
              wikiName,
              spaceName,
              pageName,
              language,
              version);
      Link pageLink = objectFactory.createLink();
      pageLink.setHref(pageUri);
      pageLink.setRel(Relations.PAGE);
      historySummary.getLinks().add(pageLink);
    }

    return historySummary;
  }