Every document has a content stream associated with it,
it is a binary stream. openCMIS provides following method to perform CRUD
operations on content streams.
a. Setting
the content stream for the document
b. Getitng
the content stream of the document
c. Append
content stream to the document
d. Delete
content stream of the document
Not all the repositories allow you to set, delete the
content stream. RepositoryCapabilities interface provides
'getContentStreamUpdatesCapability' method to check whether repository supports
content stream updates or not.
Example
CapabilityContentStreamUpdates
capabilityContentStreamUpdates =
session.getRepositoryInfo().getCapabilities().getContentStreamUpdatesCapability();
Following are the valid values of
CapabilityContentStreamUpdates.
Value
|
Description
|
none
|
The content stream may never be updated.
|
anytime
|
The content stream may be updated any time.
|
pwconly
|
The content stream may be updated only when checked
out.
|
Below snippet is used to check the level of content
stream support by the repository.
CapabilityContentStreamUpdates
capabilityContentStreamUpdates =
session.getRepositoryInfo().getCapabilities().getContentStreamUpdatesCapability();
if
(capabilityContentStreamUpdates == null) {
System.out.println("Repository
do not provide this value");
}
else if (CapabilityContentStreamUpdates.NONE == capabilityContentStreamUpdates)
{
System.out.println("Content
stream may never be updated.");
}
else if (CapabilityContentStreamUpdates.ANYTIME ==
capabilityContentStreamUpdates) {
System.out.println("Content
stream can be updated any time.");
}
else if (CapabilityContentStreamUpdates.PWCONLY ==
capabilityContentStreamUpdates) {
System.out.println("Content
stream is updated only when the document is checked out. PWC stands for Private
Working Copy.");
}
else {
System.out.println("It
is not implemented as per the CMIS Specification");
}
Following is the complete working application.
TestCmis.java
package com.sample.util; import java.io.IOException; import java.util.HashMap; import java.util.Map; 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; import org.apache.chemistry.opencmis.commons.enums.CapabilityContentStreamUpdates; public class TestCmis { private static String serverURL = "http://localhost:8080/chemistry-opencmis-server-inmemory-1.1.0/browser"; private static String repositoryId = "A1"; private 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 main(String args[]) throws IOException { Session session = getSession(); CapabilityContentStreamUpdates capabilityContentStreamUpdates = session.getRepositoryInfo().getCapabilities().getContentStreamUpdatesCapability(); if (capabilityContentStreamUpdates == null) { System.out.println("Repository do not provide this value"); } else if (CapabilityContentStreamUpdates.NONE == capabilityContentStreamUpdates) { System.out.println("Content stream may never be updated."); } else if (CapabilityContentStreamUpdates.ANYTIME == capabilityContentStreamUpdates) { System.out.println("Content stream can be updated any time."); } else if (CapabilityContentStreamUpdates.PWCONLY == capabilityContentStreamUpdates) { System.out.println("Content stream is updated only when the document is checked out. PWC stands for Private Working Copy."); } else { System.out.println("It is not implemented as per the CMIS Specification"); } } }
Output
Content stream can be updated any time.
No comments:
Post a Comment