Interface WatcherService

All Known Implementing Classes:
DefaultWatcherService

@PublicApi public interface WatcherService
Watcher-related business logic interface.
Since:
v4.2
  • Method Details

    • isWatchingEnabled

      boolean isWatchingEnabled()
      Returns a boolean indicating whether watching is enabled in JIRA.
      Returns:
      a boolean indicating whether watching is enabled
    • hasViewWatcherListPermission

      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
    • getWatchers

      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
    • addWatcher

      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
    • addWatcherToAll

      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
    • addWatcherToAll

      WatcherService.BulkWatchResult addWatcherToAll(Collection<Issue> issues, ApplicationUser remoteUser, ApplicationUser watcher, Context taskContext) throws WatchingDisabledException
      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
    • removeWatcher

      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
    • removeWatcherFromAll

      WatcherService.BulkWatchResult removeWatcherFromAll(Collection<Issue> issues, ApplicationUser remoteUser, ApplicationUser watcher) throws WatchingDisabledException
      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
    • removeWatcherFromAll

      WatcherService.BulkWatchResult removeWatcherFromAll(Collection<Issue> issues, ApplicationUser remoteUser, ApplicationUser watcher, Context taskContext) throws WatchingDisabledException
      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
    • canWatchAll

      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.
    • canUnwatchAll

      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.