In my previous post, I showed you how to add secondary
type to a cmis object. CMIS provides a way to remove the secondary properties
assigned to an object.
From the above image, you can observe that the document ‘emptyDocument.txt’
has two secondary types associated with it.
a.
abc:secondaryType
b.
abc:confidentialDocs
Below statements are used to remove the secondary type ‘abc:confidentialDocs’.
/* Get current secondary types
*/
List<String>
secondaryTypes =
cmisObject.getPropertyValue(PropertyIds.SECONDARY_OBJECT_TYPE_IDS);
if (secondaryTypes == null) {
System.out.println("No
secondary types associated to this object");
return;
}
Map<String, Object>
properties = new HashMap<String, Object>();
/* Remove the new secondary
type */
secondaryTypes.remove("abc:confidentialDocs");
properties.put(PropertyIds.SECONDARY_OBJECT_TYPE_IDS,
secondaryTypes);
/* update properties */
cmisObject.updateProperties(properties);
Find the below working application.
TestCmis.java
package com.sample.util; import java.io.IOException; 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.Document; 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.PropertyIds; import org.apache.chemistry.opencmis.commons.SessionParameter; 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"; 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); } private static void printDocument(CmisObject cmisObject) { System.out.println("***********************************************"); System.out.println("contact us : " + cmisObject.getPropertyValue("abc:contactUs")); System.out.println("Help : " + cmisObject.getPropertyValue("abc:help")); System.out.println("confidentialValue : " + cmisObject.getPropertyValue("abc:confidentialLevel")); List<String> secondaryTypes = cmisObject.getPropertyValue(PropertyIds.SECONDARY_OBJECT_TYPE_IDS); System.out.println("Secondary types are"); for (String secondaryType : secondaryTypes) { System.out.println(secondaryType); } } public static void main(String args[]) throws IOException { Session session = getSession(); CmisObject cmisObject = session.getObjectByPath("/emptyDocument.txt"); System.out.println("Before removing secondary type 'abc:confidentialDocs'"); printDocument(cmisObject); /* Get current secondary types */ List<String> secondaryTypes = cmisObject.getPropertyValue(PropertyIds.SECONDARY_OBJECT_TYPE_IDS); if (secondaryTypes == null) { System.out.println("No secondary types associated to this object"); return; } Map<String, Object> properties = new HashMap<String, Object>(); /* Remove the new secondary type */ secondaryTypes.remove("abc:confidentialDocs"); properties.put(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, secondaryTypes); /* update properties */ cmisObject.updateProperties(properties); System.out.println("\nAfter removing secondary type 'abc:confidentialDocs'"); printDocument((Document) cmisObject); } }
Output
Before removing secondary type 'abc:confidentialDocs' *********************************************** contact us : https://self-learning-java-tutorial.blogspot.com Help : Java Tutorial blogspot confidentialValue : 5 Secondary types are abc:secondaryType abc:confidentialDocs After removing secondary type 'abc:confidentialDocs' *********************************************** contact us : https://self-learning-java-tutorial.blogspot.com Help : Java Tutorial blogspot confidentialValue : null Secondary types are abc:secondaryType
As you see the output, the secondary type
‘abc:confidentialDocs’ is removed for the cmis object. You can observe the same
in below workbench image.
No comments:
Post a Comment