Collaborations are used to share folders between users or groups. They also define what permissions a user has for a folder.
- Add a Collaboration
- Edit a Collaboration
- Remove a Collaboration
- Get a Collaboration's Information
- Get the Collaborations on a Folder
- Get the Collaborations on a File
- Get Pending Collaborations
- Accept or Decline a Pending Collaboration
A collaboration can be added for an existing user or group with
collaborate(BoxCollaborator collaborator, BoxCollaboration.Role role). The
role parameter determines what permissions the collaborator will have on the
folder.
BoxCollaborator user = new BoxUser(api, "user-id")
BoxFolder folder = new BoxFolder(api, "folder-id");
folder.collaborate(user, BoxCollaboration.Role.EDITOR);You can also add a collaboration by providing an email address with
collaborate(String emailAddress, BoxCollaboration.Role role).
If the recipient doesn't have a Box account, they will be asked create one.
BoxFolder folder = new BoxFile(api, "id");
folder.collaborate("gcurtis@box.com", BoxCollaboration.Role.EDITOR);A collaboration can be edited by creating a new
BoxCollaboration.Info object or updating an existing
one, and then passing it to updateInfo(BoxCollaboration.Info fieldsToUpdate)
BoxCollaboration collaboration = new BoxCollaboration(api, "id");
BoxCollaboration.Info info = collaboration.new Info();
info.setStatus(BoxCollaboration.Status.ACCEPTED);
collaboration.updateInfo(info);A collaboration can be removed by calling delete().
BoxCollaboration collaboration = new BoxCollaboration(api, "id");
collaboration.delete();Calling getInfo() on a collaboration returns a snapshot of the
collaboration's info.
BoxCollaboration collaboration = new BoxCollaboration(api, "id");
BoxCollaboration.Info info = collaboration.getInfo();You can also choose to retrieve only specific fields of the collaboration by calling
getInfo(String... fields) with a list of field names.
BoxCollaboration collaboration = new BoxCollaboration(api, "id");
BoxCollaboration.Info info = collaboration.getInfo(BoxCollaboration.ALL_FIELDS);You can get all of the collaborations on a folder by calling
getCollaborations() on the folder.
BoxFolder folder = new BoxFolder(api, "id");
Collection<BoxCollaboration.Info> collaborations = folder.getCollaborations();You can get an iterator over all of the collaborations on a file by calling
BoxFile#getAllFileCollaborations(String... fields)
on the file.
BoxFile file = new BoxFile(api, "id");
Iterable<BoxCollaboration.Info> collaborations = file.getAllFileCollaborations();A collection of all the user's pending collaborations can be retrieved with
getPendingCollaborations(BoxAPIConnection api).
Collection<BoxCollaboration.Info> pendingCollaborations =
BoxCollaboration.getPendingCollaborations(api);To accept or decline a pending collaboration, update the info of the pending collaboration object with the desired status.
// Accept all pending collaborations
Collection<BoxCollaboration.Info> pendingCollaborations = BoxCollaboration.getPendingCollaborations(api);
for (BoxCollaboration.Info collabInfo : pendingCollaborations) {
collabInfo.setStatus(BoxCollaboration.Status.ACCEPTED);
collabInfo.getResource().updateInfo(collabInfo);
}