public static ObjectSummary createObjectSummary(
      ObjectFactory objectFactory,
      URI baseUri,
      XWikiContext xwikiContext,
      Document doc,
      BaseObject xwikiObject,
      boolean useVersion,
      XWiki xwikiApi,
      Boolean withPrettyNames)
      throws XWikiException {
    ObjectSummary objectSummary = objectFactory.createObjectSummary();
    fillObjectSummary(
        objectSummary, objectFactory, baseUri, doc, xwikiObject, xwikiApi, withPrettyNames);

    Link objectLink =
        getObjectLink(objectFactory, baseUri, doc, xwikiObject, useVersion, Relations.OBJECT);
    objectSummary.getLinks().add(objectLink);

    String propertiesUri;

    if (useVersion) {
      propertiesUri =
          uri(
              baseUri,
              ObjectPropertiesAtPageVersionResource.class,
              doc.getWiki(),
              doc.getSpace(),
              doc.getName(),
              doc.getVersion(),
              xwikiObject.getClassName(),
              xwikiObject.getNumber());
    } else {
      propertiesUri =
          uri(
              baseUri,
              ObjectPropertiesResource.class,
              doc.getWiki(),
              doc.getSpace(),
              doc.getName(),
              xwikiObject.getClassName(),
              xwikiObject.getNumber());
    }

    Link propertyLink = objectFactory.createLink();
    propertyLink.setHref(propertiesUri);
    propertyLink.setRel(Relations.PROPERTIES);
    objectSummary.getLinks().add(propertyLink);

    return objectSummary;
  }