if (folderTree == null) {
throw new CmisRuntimeException("Folder tree is null!");
}
ObjectInfo folderInfo = service.getObjectInfo(repositoryId, folderId);
if (folderInfo == null) {
throw new CmisRuntimeException("Folder Object Info is missing!");
}
// 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, null);
// write links
UrlBuilder baseUrl = compileBaseUrl(request, repositoryId);
feed.writeServiceLink(baseUrl.toString(), repositoryId);
feed.writeSelfLink(compileUrl(baseUrl, RESOURCE_DESCENDANTS, folderInfo.getId()), null);
feed.writeViaLink(compileUrl(baseUrl, RESOURCE_ENTRY, folderInfo.getId()));
feed.writeDownLink(compileUrl(baseUrl, RESOURCE_CHILDREN, folderInfo.getId()), Constants.MEDIATYPE_FEED);
if (folderInfo.supportsDescendants()) {
feed.writeDownLink(compileUrl(baseUrl, RESOURCE_DESCENDANTS, folderInfo.getId()),
Constants.MEDIATYPE_DESCENDANTS);
}
if (folderInfo.hasParent()) {
feed.writeUpLink(compileUrl(baseUrl, RESOURCE_PARENTS, folderInfo.getId()), Constants.MEDIATYPE_FEED);
}
// write entries
AtomEntry entry = new AtomEntry(feed.getWriter());
for (ObjectInFolderContainer container : folderTree) {