public static CmisAllowableActionsType convert(AllowableActions allowableActions, CmisVersion cmisVersion) {
if (allowableActions == null) {
return null;
}
CmisAllowableActionsType result = new CmisAllowableActionsType();
if (allowableActions.getAllowableActions() != null) {
Set<Action> set = allowableActions.getAllowableActions();
result.setCanAddObjectToFolder(set.contains(Action.CAN_ADD_OBJECT_TO_FOLDER));
result.setCanApplyACL(set.contains(Action.CAN_APPLY_ACL));
result.setCanApplyPolicy(set.contains(Action.CAN_APPLY_POLICY));
result.setCanCancelCheckOut(set.contains(Action.CAN_CANCEL_CHECK_OUT));
result.setCanCheckIn(set.contains(Action.CAN_CHECK_IN));
result.setCanCheckOut(set.contains(Action.CAN_CHECK_OUT));
result.setCanCreateDocument(set.contains(Action.CAN_CREATE_DOCUMENT));
result.setCanCreateFolder(set.contains(Action.CAN_CREATE_FOLDER));
result.setCanCreateRelationship(set.contains(Action.CAN_CREATE_RELATIONSHIP));
if (set.contains(Action.CAN_CREATE_ITEM) && cmisVersion == CmisVersion.CMIS_1_0) {
LOG.warn("Receiver only understands CMIS 1.0 but the Allowable Actions contain the canCreateItem action. "
+ "The canCreateItem action has been removed from the Allowable Actions.");
} else {
result.setCanCreateItem(set.contains(Action.CAN_CREATE_ITEM));
}
result.setCanDeleteContentStream(set.contains(Action.CAN_DELETE_CONTENT_STREAM));
result.setCanDeleteObject(set.contains(Action.CAN_DELETE_OBJECT));
result.setCanDeleteTree(set.contains(Action.CAN_DELETE_TREE));
result.setCanGetACL(set.contains(Action.CAN_GET_ACL));
result.setCanGetAllVersions(set.contains(Action.CAN_GET_ALL_VERSIONS));
result.setCanGetAppliedPolicies(set.contains(Action.CAN_GET_APPLIED_POLICIES));
result.setCanGetChildren(set.contains(Action.CAN_GET_CHILDREN));
result.setCanGetContentStream(set.contains(Action.CAN_GET_CONTENT_STREAM));
result.setCanGetDescendants(set.contains(Action.CAN_GET_DESCENDANTS));
result.setCanGetFolderParent(set.contains(Action.CAN_GET_FOLDER_PARENT));
result.setCanGetFolderTree(set.contains(Action.CAN_GET_FOLDER_TREE));
result.setCanGetObjectParents(set.contains(Action.CAN_GET_OBJECT_PARENTS));
result.setCanGetObjectRelationships(set.contains(Action.CAN_GET_OBJECT_RELATIONSHIPS));
result.setCanGetProperties(set.contains(Action.CAN_GET_PROPERTIES));
result.setCanGetRenditions(set.contains(Action.CAN_GET_RENDITIONS));
result.setCanMoveObject(set.contains(Action.CAN_MOVE_OBJECT));
result.setCanRemoveObjectFromFolder(set.contains(Action.CAN_REMOVE_OBJECT_FROM_FOLDER));
result.setCanRemovePolicy(set.contains(Action.CAN_REMOVE_POLICY));
result.setCanSetContentStream(set.contains(Action.CAN_SET_CONTENT_STREAM));
result.setCanUpdateProperties(set.contains(Action.CAN_UPDATE_PROPERTIES));
}
// handle extensions
convertExtension(allowableActions, result);