if (checkedOut == null) {
throw new CmisRuntimeException("Checked Out list is null!");
}
ObjectInfo folderInfo = null;
if (folderId != null) {
folderInfo = service.getObjectInfo(repositoryId, folderId);
if (folderInfo == null) {
throw new CmisRuntimeException("Folder Object Info is missing!");
}
} else {
folderInfo = new ObjectInfoImpl();
GregorianCalendar now = new GregorianCalendar();
((ObjectInfoImpl) folderInfo).setId("uri:x-checkedout");
((ObjectInfoImpl) folderInfo).setName("Checked Out");
((ObjectInfoImpl) folderInfo).setCreatedBy("");
((ObjectInfoImpl) folderInfo).setCreationDate(now);
((ObjectInfoImpl) folderInfo).setLastModificationDate(now);
((ObjectInfoImpl) folderInfo).setHasParent(false);
((ObjectInfoImpl) folderInfo).setSupportsDescendants(false);
((ObjectInfoImpl) folderInfo).setSupportsFolderTree(false);
}
// set headers
response.setStatus(HttpServletResponse.SC_OK);
response.setContentType(Constants.MEDIATYPE_FEED);
// write XML
AtomFeed feed = new AtomFeed();
feed.startDocument(response.getOutputStream());
feed.startFeed(true);
// write basic Atom feed elements
feed.writeFeedElements(folderInfo.getId(), folderInfo.getCreatedBy(), folderInfo.getName(),
folderInfo.getLastModificationDate(), null, checkedOut.getNumItems());
// write links
UrlBuilder baseUrl = compileBaseUrl(request, repositoryId);
feed.writeServiceLink(baseUrl.toString(), repositoryId);
feed.writeSelfLink(compileUrl(baseUrl, RESOURCE_CHECKEDOUT, folderInfo.getId()), null);
UrlBuilder pagingUrl = new UrlBuilder(compileUrlBuilder(baseUrl, RESOURCE_CHECKEDOUT, folderInfo.getId()));
pagingUrl.addParameter(Constants.PARAM_FILTER, filter);
pagingUrl.addParameter(Constants.PARAM_ORDER_BY, orderBy);
pagingUrl.addParameter(Constants.PARAM_ALLOWABLE_ACTIONS, includeAllowableActions);
pagingUrl.addParameter(Constants.PARAM_RELATIONSHIPS, includeRelationships);
pagingUrl.addParameter(Constants.PARAM_RENDITION_FILTER, renditionFilter);