A folder in CMIS is just like a folder in file system, it
is a collection of file-able objects. Every CMIS repository supplies root
folder if with its RepositoryInfo object, this is the starting point to
navigate across the folder tree.
Points to remember
a.
Every folder object has unique id associated
with it.
b.
Every folder other than root folder has
unique parent associated with them
Is Folder object
versionable?
No
Is Folder object have
content stream associated with it?
No, a folder object do not have content stream associated
with it.
Is folder object
versionable?
No, a folder object is not versionable.
If you have the session instance, you can get the root
folder by using following snippet.
Folder rootFolder = session.getRootFolder();
Following application travers through entire root folder
hierarchy.
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.CmisObject; import org.apache.chemistry.opencmis.client.api.Folder; import org.apache.chemistry.opencmis.client.api.ItemIterable; import org.apache.chemistry.opencmis.client.api.Repository; import org.apache.chemistry.opencmis.client.api.Session; import org.apache.chemistry.opencmis.client.api.SessionFactory; import org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl; import org.apache.chemistry.opencmis.commons.SessionParameter; import org.apache.chemistry.opencmis.commons.enums.BindingType; public class TestCmis { public static List<Repository> getRepositories(String serverURL) { 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.BROWSER_URL, serverURL); SessionFactory sessionFactory = SessionFactoryImpl.newInstance(); List<Repository> repositories = sessionFactory.getRepositories(parameters); return repositories; } public static void printFolder(Folder folder, String tab) { System.out.println(tab + folder.getName()); ItemIterable<CmisObject> cmisObjects = folder.getChildren(); for (CmisObject cmisObject : cmisObjects) { if (cmisObject instanceof Folder) { printFolder((Folder) cmisObject, tab + " "); } System.out.println(" " + tab + cmisObject.getName()); } } public static void main(String args[]) { String serverURL = "http://localhost:8080/chemistry-opencmis-server-inmemory-1.1.0/browser"; List<Repository> repositories = getRepositories(serverURL); for (Repository repository : repositories) { Session session = repository.createSession(); Folder rootFolder = session.getRootFolder(); printFolder(rootFolder, ""); } } }
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-0 My_Folder-2-1 My_Folder-2-1 My_Folder-1-0 My_Folder-1-1 My_Document-2-0 My_Document-2-1 My_Document-2-2 My_Folder-2-0 My_Folder-2-0 My_Folder-2-1 My_Folder-2-1 My_Folder-1-1 My_Folder-0-0 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-0 My_Folder-2-1 My_Folder-2-1 My_Folder-1-0 My_Folder-1-1 My_Document-2-0 My_Document-2-1 My_Document-2-2 My_Folder-2-0 My_Folder-2-0 My_Folder-2-1 My_Folder-2-1 My_Folder-1-1 My_Folder-0-1
No comments:
Post a Comment