package edu.asu.spring.quadriga.service; import java.util.List; import edu.asu.spring.quadriga.domain.ICollaborator; import edu.asu.spring.quadriga.domain.IUser; import edu.asu.spring.quadriga.dto.CollaboratorDTO; import edu.asu.spring.quadriga.exceptions.QuadrigaException; import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException; public interface ICollaboratorManager { public abstract void updateCollaborators(String dtoId, String collabUser, String collaboratorRole, String username) throws QuadrigaStorageException; public abstract void deleteCollaborators(String collaboratorListAsString, String dtoId) throws QuadrigaStorageException; /** * Adds a new collaborator to an object. For each role for the user, there will be an extra * {@link CollaboratorDTO}. * @param collaboratorName Username of collaborator * @param collabRoleList Comma-separated list of roles for the new collaborator. * @param dtoId Id of the object the collaborator should be added to. * @param userAddingCollaborator Username of user who adds the collaborator. * @throws QuadrigaStorageException */ public abstract void addCollaborator(String collaboratorName, String collabRoleList, String dtoId, String userAddingCollaborator) throws QuadrigaStorageException; public abstract void addCollaborator(ICollaborator collaborator, String dtoId, String loggedInUser) throws QuadrigaStorageException; public abstract void transferOwnership(String dtoId, String oldOwner, String newOwner, String collabRole) throws QuadrigaException; public abstract List<IUser> getUsersNotCollaborating(String dtoId); }