public class DefaultWatcherService extends Object implements WatcherService
WatcherService.BulkWatchResult
Constructor and Description |
---|
DefaultWatcherService(ApplicationProperties applicationProperties,
I18nHelper.BeanFactory i18n,
PermissionManager permissionManager,
WatcherManager watcherManager,
UserManager userManager)
Creates a new DefaultWatcherService with the given dependencies.
|
Modifier and Type | Method and Description |
---|---|
ServiceOutcome<List<ApplicationUser>> |
addWatcher(Issue issue,
ApplicationUser remoteUser,
ApplicationUser watcher)
Adds a watcher to an issue's list of watchers, returning the updated list of watchers.
|
WatcherService.BulkWatchResult |
addWatcherToAll(Collection<Issue> issues,
ApplicationUser remoteUser,
ApplicationUser watcher)
Adds a watcher to all of the supplied issues.
|
WatcherService.BulkWatchResult |
addWatcherToAll(Collection<Issue> issues,
ApplicationUser remoteUser,
ApplicationUser watcher,
Context taskContext)
Adds a watcher to all of the supplied issues.
|
protected boolean |
canEditWatcherList(Issue issue,
ApplicationUser remoteUser)
Returns true iff the given User has permission to edit the watcher list of the issue.
|
boolean |
canUnwatchAll(Iterable<Issue> issues,
ApplicationUser remoteUser)
Whether the specified user can unwatch all the specified issues.
|
boolean |
canWatchAll(Iterable<Issue> issues,
ApplicationUser applicationUser)
Whether the specified user can watch all the specified issues.
|
protected void |
checkModifyWatchersPermission(Issue issue,
ApplicationUser remoteUser,
ApplicationUser watcher)
Ensures that the given remoteUser has permission to add or remove the given watcher to/from the issue.
|
protected <T extends ApplicationUser> |
convertUsers(Pair<Integer,List<String>> watchers,
com.google.common.base.Function<String,T> function)
Converts the usernames into User objects using the given function.
|
protected List<ApplicationUser> |
getCurrentWatchersFor(Issue issue)
Returns a List containing the users that are currently watching an issue.
|
ServiceOutcome<Pair<Integer,List<ApplicationUser>>> |
getWatchers(Issue issue,
ApplicationUser remoteUser)
Returns a the total number of watchers for a given issue in the first element of the returned Pair, and the list
of visible watchers in the second element of the Pair.
|
protected Pair<Integer,List<String>> |
getWatcherUsernames(Issue issue,
ApplicationUser remoteUser)
Returns a pair containing the watcher count and the watcher usernames for a given issue.
|
boolean |
hasViewWatcherListPermission(Issue issue,
ApplicationUser remoteUser)
Returns true iff the given User has permission to view the watcher list of the issue.
|
boolean |
isWatchingEnabled()
Returns true iff watching is enabled.
|
ServiceOutcome<List<ApplicationUser>> |
removeWatcher(Issue issue,
ApplicationUser remoteUser,
ApplicationUser watcher)
Removes a watcher from an issue's list of watchers, returning the updated list of watchers.
|
WatcherService.BulkWatchResult |
removeWatcherFromAll(Collection<Issue> issues,
ApplicationUser remoteUser,
ApplicationUser watcher)
Removes a watcher from all of the supplied issues.
|
WatcherService.BulkWatchResult |
removeWatcherFromAll(Collection<Issue> issues,
ApplicationUser remoteUser,
ApplicationUser watcher,
Context taskContext)
Removes a watcher from all of the supplied issues.
|
public DefaultWatcherService(ApplicationProperties applicationProperties, I18nHelper.BeanFactory i18n, PermissionManager permissionManager, WatcherManager watcherManager, UserManager userManager)
applicationProperties
- an ApplicationPropertiesi18n
- a I18nBeanpermissionManager
- a PermissionManagerwatcherManager
- a WatcherManageruserManager
- a UserManagerpublic ServiceOutcome<Pair<Integer,List<ApplicationUser>>> getWatchers(Issue issue, @Nullable ApplicationUser remoteUser) throws WatchingDisabledException
WatcherService
getWatchers
in interface WatcherService
issue
- the Issue to find watchers forremoteUser
- the calling UserWatchingDisabledException
- if watching is currently disabledpublic ServiceOutcome<List<ApplicationUser>> addWatcher(Issue issue, ApplicationUser remoteUser, ApplicationUser watcher) throws WatchingDisabledException
WatcherService
addWatcher
in interface WatcherService
issue
- the issue to updateremoteUser
- the remote user on behalf of which the operation is performedwatcher
- the watcher to addWatchingDisabledException
- if watching is currently disabledpublic WatcherService.BulkWatchResult addWatcherToAll(Collection<Issue> issues, ApplicationUser remoteUser, ApplicationUser watcher) throws WatchingDisabledException
WatcherService
If there is partial success, the issues which we can modify will be modified and the ones we cannot will be returned in a BulkWatchResult.
addWatcherToAll
in interface WatcherService
issues
- the list of issues to updateremoteUser
- the remote user on behalf of which the operation is performedwatcher
- the watcher to addWatchingDisabledException
- if watching is currently disabledpublic WatcherService.BulkWatchResult addWatcherToAll(Collection<Issue> issues, ApplicationUser remoteUser, ApplicationUser watcher, Context taskContext) throws WatchingDisabledException
WatcherService
If there is partial success, the issues which we can modify will be modified and the ones we cannot will be returned in a BulkWatchResult.
addWatcherToAll
in interface WatcherService
issues
- the list of issues to updateremoteUser
- the remote user on behalf of which the operation is performedwatcher
- the watcher to addtaskContext
- a context through which progress can be reported backWatchingDisabledException
- if watching is currently disabledpublic ServiceOutcome<List<ApplicationUser>> removeWatcher(Issue issue, ApplicationUser remoteUser, ApplicationUser watcher) throws WatchingDisabledException
WatcherService
removeWatcher
in interface WatcherService
issue
- the Issue to updateremoteUser
- a User indicating the user on behalf of whom this operation is being performedwatcher
- a User representing the User to remove from the watcher listWatchingDisabledException
- if watching is currently disabledpublic WatcherService.BulkWatchResult removeWatcherFromAll(Collection<Issue> issues, ApplicationUser remoteUser, ApplicationUser watcher) throws WatchingDisabledException
WatcherService
If there is partial success, the issues which we can modify will be modified and the ones we cannot will be returned in a BulkWatchResult.
removeWatcherFromAll
in interface WatcherService
issues
- the list of Issues to updateremoteUser
- an ApplicationUser indicating the user on behalf of whom this operation is being performedwatcher
- an ApplicationUser representing the user to remove from the watcher list for each issueWatchingDisabledException
- if watching is currently disabledpublic WatcherService.BulkWatchResult removeWatcherFromAll(Collection<Issue> issues, ApplicationUser remoteUser, ApplicationUser watcher, Context taskContext) throws WatchingDisabledException
WatcherService
If there is partial success, the issues which we can modify will be modified and the ones we cannot will be returned in a BulkWatchResult.
removeWatcherFromAll
in interface WatcherService
issues
- the list of Issues to updateremoteUser
- an ApplicationUser indicating the user on behalf of whom this operation is being performedwatcher
- an ApplicationUser representing the user to remove from the watcher list for each issuetaskContext
- a context through which progress can be reported backWatchingDisabledException
- if watching is currently disabledpublic boolean canWatchAll(Iterable<Issue> issues, ApplicationUser applicationUser)
WatcherService
canWatchAll
in interface WatcherService
issues
- The list of issues to checkapplicationUser
- The user to execute this check forpublic boolean canUnwatchAll(Iterable<Issue> issues, ApplicationUser remoteUser)
WatcherService
canUnwatchAll
in interface WatcherService
issues
- The list of issues to checkremoteUser
- The user to execute this check forpublic boolean isWatchingEnabled()
isWatchingEnabled
in interface WatcherService
public boolean hasViewWatcherListPermission(Issue issue, @Nullable ApplicationUser remoteUser)
hasViewWatcherListPermission
in interface WatcherService
issue
- an IssueremoteUser
- a Userprotected Pair<Integer,List<String>> getWatcherUsernames(Issue issue, ApplicationUser remoteUser) throws WatchingDisabledException
issue
- the IssueremoteUser
- the calling UserWatchingDisabledException
- if watching is disabledprotected List<ApplicationUser> getCurrentWatchersFor(Issue issue)
issue
- the Issue to get the watcher list forprotected boolean canEditWatcherList(Issue issue, @Nullable ApplicationUser remoteUser)
issue
- an IssueremoteUser
- a Userprotected <T extends ApplicationUser> Pair<Integer,List<T>> convertUsers(Pair<Integer,List<String>> watchers, com.google.common.base.Function<String,T> function)
watchers
- a Pair of watcher count and watcher usernamesfunction
- a Function used for conversionprotected void checkModifyWatchersPermission(Issue issue, ApplicationUser remoteUser, ApplicationUser watcher) throws com.atlassian.jira.bc.issue.watcher.DefaultWatcherService.PermissionException, WatchingDisabledException
issue
- an IssueremoteUser
- a User representing the callerwatcher
- a User representing the watcher to add or removePermissionException
- if the caller does not have permission to manage watchers, or cannot see the issueWatchingDisabledException
- if watching is disabledcom.atlassian.jira.bc.issue.watcher.DefaultWatcherService.PermissionException
Copyright © 2002-2018 Atlassian. All Rights Reserved.