@PublicApi public interface

WatcherService

com.atlassian.jira.bc.issue.watcher.WatcherService
Known Indirect Subclasses

@PublicApi

This interface is designed for plugins to consume (call its methods).

Clients of @PublicApi can expect that programs compiled against a given version will remain binary compatible with later versions of the @PublicApi as per each product's API policy as long as the client does not implement/extend @PublicApi interfaces or classes (refer to each product's API policy for the exact guarantee---usually binary compatibility is guaranteed at least across minor versions).

Note: since @PublicApi interfaces and classes are not designed to be implemented or extended by clients, we may perform certain types of binary-incompatible changes to these classes and interfaces, but these will not affect well-behaved clients that do not extend/implement these types (in general, only classes and interfaces annotated with @PublicSpi are safe to extend/implement).

Class Overview

Watcher-related business logic interface.

Summary

Nested Classes
class WatcherService.BulkWatchResult Used to return the result of a Bulk Watch or Bulk Unwatch operation. 
Public Methods
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.
boolean canUnwatchAll(Iterable<Issue> issues, ApplicationUser applicationUser)
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.
ServiceOutcome<Pair<IntegerList<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.
boolean hasViewWatcherListPermission(Issue issue, ApplicationUser remoteUser)
Returns a boolean indicating whether the given user is authorised to view an issue's watcher list.
boolean isWatchingEnabled()
Returns a boolean indicating whether watching is enabled in JIRA.
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 Methods

public 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.

Parameters
issue the issue to update
remoteUser the remote user on behalf of which the operation is performed
watcher the watcher to add
Returns
  • a ServiceOutcome containing a list of User
Throws
WatchingDisabledException if watching is currently disabled

public WatcherService.BulkWatchResult addWatcherToAll (Collection<Issue> issues, ApplicationUser remoteUser, ApplicationUser watcher)

Adds a watcher to all of the supplied issues.

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.

Parameters
issues the list of issues to update
remoteUser the remote user on behalf of which the operation is performed
watcher the watcher to add
Returns
  • a BulkWatchResult containing the issues that could not be modified
Throws
WatchingDisabledException if watching is currently disabled

public WatcherService.BulkWatchResult addWatcherToAll (Collection<Issue> issues, ApplicationUser remoteUser, ApplicationUser watcher, Context taskContext)

Adds a watcher to all of the supplied issues.

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.

Parameters
issues the list of issues to update
remoteUser the remote user on behalf of which the operation is performed
watcher the watcher to add
taskContext a context through which progress can be reported back
Returns
  • a BulkWatchResult containing the issues that could not be modified
Throws
WatchingDisabledException if watching is currently disabled

public boolean canUnwatchAll (Iterable<Issue> issues, ApplicationUser applicationUser)

Whether the specified user can unwatch all the specified issues.

Parameters
issues The list of issues to check
applicationUser The user to execute this check for
Returns
  • true; if the specified user can unwatch all the specified issues; otherwise, false is returned.

public boolean canWatchAll (Iterable<Issue> issues, ApplicationUser applicationUser)

Whether the specified user can watch all the specified issues.

Parameters
issues The list of issues to check
applicationUser The user to execute this check for
Returns
  • true; if the specified user can watch all the specified issues; otherwise, false is returned.

public ServiceOutcome<Pair<IntegerList<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. Note that if the remote user does not have permission to view the list of watchers, it is possible for the number of elements in the returned user list to be less than the returned number of watchers.

Parameters
issue the Issue to find watchers for
remoteUser the calling User
Returns
  • a ServiceOutcome containing the total number of watchers, and a list of visible watchers
Throws
WatchingDisabledException if watching is currently disabled

public boolean hasViewWatcherListPermission (Issue issue, ApplicationUser remoteUser)

Returns a boolean indicating whether the given user is authorised to view an issue's watcher list.

Parameters
issue an Issue
remoteUser a User
Returns
  • a boolean indicating whether the user is authorised to view the watcher list

public boolean isWatchingEnabled ()

Returns a boolean indicating whether watching is enabled in JIRA.

Returns
  • a boolean indicating whether watching is enabled

public 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.

Parameters
issue the Issue to update
remoteUser a User indicating the user on behalf of whom this operation is being performed
watcher a User representing the User to remove from the watcher list
Returns
  • a ServiceOutcome containing a list of User
Throws
WatchingDisabledException if watching is currently disabled

public WatcherService.BulkWatchResult removeWatcherFromAll (Collection<Issue> issues, ApplicationUser remoteUser, ApplicationUser watcher)

Removes a watcher from all of the supplied issues.

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.

Parameters
issues the list of Issues to update
remoteUser an ApplicationUser indicating the user on behalf of whom this operation is being performed
watcher an ApplicationUser representing the user to remove from the watcher list for each issue
Returns
  • a BulkWatchResult containing the issues that could not be modified
Throws
WatchingDisabledException if watching is currently disabled

public WatcherService.BulkWatchResult removeWatcherFromAll (Collection<Issue> issues, ApplicationUser remoteUser, ApplicationUser watcher, Context taskContext)

Removes a watcher from all of the supplied issues.

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.

Parameters
issues the list of Issues to update
remoteUser an ApplicationUser indicating the user on behalf of whom this operation is being performed
watcher an ApplicationUser representing the user to remove from the watcher list for each issue
taskContext a context through which progress can be reported back
Returns
  • a BulkWatchResult containing the issues that could not be modified
Throws
WatchingDisabledException if watching is currently disabled