use of org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectInFolderContainerImpl in project structr by structr.
the class CMISNavigationService method recursivelyCollectFolderTree.
// ----- private methods -----
private void recursivelyCollectFolderTree(final List<ObjectInFolderContainer> list, final Folder child, final int maxDepth, final int depth, final Boolean includeAllowableActions) throws FrameworkException {
if (depth > maxDepth) {
return;
}
final CMISObjectInFolderWrapper wrapper = new CMISObjectInFolderWrapper(includeAllowableActions);
final ObjectInFolderContainerImpl impl = new ObjectInFolderContainerImpl();
final List<ObjectInFolderContainer> childContainerList = new LinkedList<>();
final String pathSegment = child.getName();
impl.setObject(wrapper.wrapObjectData(wrapper.wrapGraphObject(child), pathSegment));
impl.setChildren(childContainerList);
// add wrapped object to current list
list.add(impl);
// fetch and sort children
final List<Folder> children = Iterables.toList(child.getFolders());
Collections.sort(children, new GraphObjectComparator(AbstractNode.name, false));
// descend into children
for (final Folder folderChild : children) {
recursivelyCollectFolderTree(childContainerList, folderChild, maxDepth, depth + 1, includeAllowableActions);
}
}
use of org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectInFolderContainerImpl in project structr by structr.
the class CMISNavigationService method recursivelyCollectDescendants.
private void recursivelyCollectDescendants(final List<ObjectInFolderContainer> list, final AbstractFile child, final int maxDepth, final int depth, final Boolean includeAllowableActions) throws FrameworkException {
if (depth > maxDepth) {
return;
}
final PropertyKey<Folder> parent = StructrApp.key(AbstractFile.class, "parent");
final PropertyKey<Boolean> hasParent = StructrApp.key(AbstractFile.class, "hasParent");
final PropertyKey<Boolean> isThumbnail = StructrApp.key(Image.class, "isThumbnail");
final CMISObjectInFolderWrapper wrapper = new CMISObjectInFolderWrapper(includeAllowableActions);
final ObjectInFolderContainerImpl impl = new ObjectInFolderContainerImpl();
final List<ObjectInFolderContainer> childContainerList = new LinkedList<>();
final String pathSegment = child.getName();
impl.setObject(wrapper.wrapObjectData(wrapper.wrapGraphObject(child), pathSegment));
impl.setChildren(childContainerList);
// add wrapped object to current list
list.add(impl);
if (child.getProperty(AbstractNode.type).equals("Folder")) {
final App app = StructrApp.getInstance();
// descend into children
for (final AbstractFile folderChild : app.nodeQuery(AbstractFile.class).sort(AbstractNode.name).and(parent, (Folder) child).and(isThumbnail, false).getAsList()) {
recursivelyCollectDescendants(childContainerList, folderChild, maxDepth, depth + 1, includeAllowableActions);
}
}
}
Aggregations