RepositoryCapabilities interface provides
'isGetDescendantsSupported' to check whether an application can able to
enumerate the descendants of a folder via the getDescendants service
Following application prints complte folder hierarchy, if
repository supports isGetDescendantsSupported.
TestCmis.java
package com.sample.util; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.chemistry.opencmis.client.api.FileableCmisObject; import org.apache.chemistry.opencmis.client.api.Folder; import org.apache.chemistry.opencmis.client.api.Session; import org.apache.chemistry.opencmis.client.api.SessionFactory; import org.apache.chemistry.opencmis.client.api.Tree; import org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl; import org.apache.chemistry.opencmis.commons.SessionParameter; import org.apache.chemistry.opencmis.commons.data.RepositoryInfo; import org.apache.chemistry.opencmis.commons.enums.BindingType; public class TestCmis { private static String serverURL = "http://localhost:8080/chemistry-opencmis-server-inmemory-1.1.0/browser"; private static String repositoryId = "A1"; public static Session getSession() { Map<String, String> parameters = new HashMap<>(); parameters.put(SessionParameter.BINDING_TYPE, BindingType.BROWSER.value()); parameters.put(SessionParameter.USER, ""); parameters.put(SessionParameter.PASSWORD, ""); parameters.put(SessionParameter.REPOSITORY_ID, repositoryId); parameters.put(SessionParameter.BROWSER_URL, serverURL); SessionFactory sessionFactory = SessionFactoryImpl.newInstance(); return sessionFactory.createSession(parameters); } public static void printHierarchy(List<Tree<FileableCmisObject>> objects, String space) { for (Tree<FileableCmisObject> obj : objects) { FileableCmisObject fileableObj = obj.getItem(); System.out.println(space + fileableObj.getName()); printHierarchy(obj.getChildren(), " " + space); } } public static void main(String args[]) { Session session = getSession(); RepositoryInfo repoInfo = session.getRepositoryInfo(); boolean isGetDescendantsSupported = repoInfo.getCapabilities().isGetDescendantsSupported(); if (!isGetDescendantsSupported) { System.out.println("Repository do not support descendants"); return; } Folder rootFolder = session.getRootFolder(); List<Tree<FileableCmisObject>> fileableCmisObjects = rootFolder.getDescendants(-1); System.out.println(rootFolder.getName()); printHierarchy(fileableCmisObjects, " "); } }
Sample Output
RootFolder My_Document-0-0 My_Document-0-1 My_Document-0-2 My_Folder-0-0 My_Document-1-0 My_Document-1-1 My_Document-1-2 My_Folder-1-0 My_Document-2-0 My_Document-2-1 My_Document-2-2 My_Folder-2-0 My_Folder-2-1 My_Folder-1-1 My_Document-2-0 My_Document-2-1 My_Document-2-2 My_Folder-2-0 My_Folder-2-1 My_Folder-0-1 My_Document-1-0 My_Document-1-1 My_Document-1-2 My_Folder-1-0 My_Document-2-0 My_Document-2-1 My_Document-2-2 My_Folder-2-0 My_Folder-2-1 My_Folder-1-1 My_Document-2-0 My_Document-2-1 My_Document-2-2 My_Folder-2-0 My_Folder-2-1
No comments:
Post a Comment