public class DefaultWatcherManager extends Object implements WatcherManager
Modifier and Type | Field and Description |
---|---|
static String |
ASSOCIATION_TYPE |
Constructor and Description |
---|
DefaultWatcherManager(UserAssociationStore userAssociationStore,
ApplicationProperties applicationProperties,
IssueIndexManager indexManager,
IssueFactory issueFactory,
com.atlassian.event.api.EventPublisher eventPublisher,
IssueManager issueManager,
UserManager userManager,
QueryDslAccessor queryDslAccessor) |
Modifier and Type | Method and Description |
---|---|
List<String> |
getCurrentWatcherUsernames(Issue issue)
Retrieve the list of usernames of users watching the given issue
|
int |
getWatcherCount(Issue issue)
Returns the number of users watching this issue.
|
List<ApplicationUser> |
getWatchers(Issue issue,
Locale userLocale)
Retrieve list of users that are currently watching this issue (including the current user).
|
protected com.google.common.cache.LoadingCache<Long,com.google.common.collect.ImmutableSet<String>> |
getWatchersCache() |
Collection<ApplicationUser> |
getWatchersUnsorted(Issue issue)
Retrieve list of users that are currently watching this issue (including the current user).
|
Collection<String> |
getWatcherUserKeys(Issue issue)
Retrieve list of users that are currently watching this issue (including the current user).
|
boolean |
isWatching(ApplicationUser user,
org.ofbiz.core.entity.GenericValue issue) |
boolean |
isWatching(ApplicationUser user,
Issue issue)
Determine whether the current user is already watching the issue or not
|
boolean |
isWatchingEnabled() |
void |
removeAllWatchesForUser(ApplicationUser user)
Remove all watches for a given user
|
Collection<Issue> |
startWatching(ApplicationUser user,
Collection<Issue> issues,
Context taskContext)
Enable watching of a list of issues for the user supplied.
|
Issue |
startWatching(ApplicationUser user,
Issue issue)
Enable watching of a particular issue for the user supplied.
|
Collection<Issue> |
stopWatching(ApplicationUser user,
Collection<Issue> issues,
Context taskContext)
Disable watching of a list of issues for the user supplied.
|
Issue |
stopWatching(ApplicationUser user,
Issue issue)
Disable watching of a particular issue for the user supplied.
|
public static final String ASSOCIATION_TYPE
public DefaultWatcherManager(UserAssociationStore userAssociationStore, ApplicationProperties applicationProperties, IssueIndexManager indexManager, IssueFactory issueFactory, com.atlassian.event.api.EventPublisher eventPublisher, IssueManager issueManager, UserManager userManager, QueryDslAccessor queryDslAccessor)
@Nonnull public Issue startWatching(@Nonnull ApplicationUser user, @Nonnull Issue issue)
WatcherManager
This means the user will receive updates for any modifications to the issue. Note, that this will not check if a user has the BROWSE_ISSUE permission. Notifications will however only be sent to users who have the appropriate permissions. Adding a permission check here would complicate updating permission schemes a lot, as it would have to update issue's watchers lists.
startWatching
in interface WatcherManager
user
- user that starts watching the given issueissue
- issue being watched@Nonnull public Collection<Issue> startWatching(@Nonnull ApplicationUser user, @Nonnull Collection<Issue> issues, @Nonnull Context taskContext)
WatcherManager
This means the user will receive updates for any modifications to the issues. Note, that this will not check if a user has the BROWSE_ISSUE permission. Notifications will however only be sent to users who have the appropriate permissions. Adding a permission check here would complicate updating permission schemes a lot, as it would have to update issues' watchers lists.
This bulk method is more performant than calling the single version multiple times, as it indexes the issues in bulk rather than one at a time.
startWatching
in interface WatcherManager
user
- user that starts watching the given issuesissues
- the list of issues to watchtaskContext
- a context through which progress can be reported back@Nonnull public Issue stopWatching(@Nonnull ApplicationUser user, @Nonnull Issue issue)
WatcherManager
stopWatching
in interface WatcherManager
user
- user that stops watching the given issueissue
- issue being watched@Nonnull public Collection<Issue> stopWatching(@Nonnull ApplicationUser user, @Nonnull Collection<Issue> issues, @Nonnull Context taskContext)
WatcherManager
This bulk method is more performant than calling the single version multiple times, as it indexes the issues in bulk rather than one at a time.
stopWatching
in interface WatcherManager
user
- user that stops watching the given issuesissues
- list of issues being watchedtaskContext
- a context through which progress can be reported backpublic List<String> getCurrentWatcherUsernames(@Nonnull Issue issue) throws DataAccessException
WatcherManager
getCurrentWatcherUsernames
in interface WatcherManager
issue
- issue being watchedDataAccessException
- if cannot retrieve watcherspublic boolean isWatchingEnabled()
isWatchingEnabled
in interface WatcherManager
public boolean isWatching(@Nullable ApplicationUser user, @Nonnull Issue issue)
WatcherManager
isWatching
in interface WatcherManager
user
- userissue
- issue being watchedpublic boolean isWatching(ApplicationUser user, org.ofbiz.core.entity.GenericValue issue)
public List<ApplicationUser> getWatchers(@Nonnull Issue issue, @Nonnull Locale userLocale)
WatcherManager
getWatchers
in interface WatcherManager
issue
- issue being watcheduserLocale
- the locale of the user making this call, this is used for sorting the list values.public Collection<ApplicationUser> getWatchersUnsorted(@Nonnull Issue issue)
WatcherManager
getWatchersUnsorted
in interface WatcherManager
issue
- issue being watchedpublic int getWatcherCount(@Nonnull Issue issue)
WatcherManager
getWatcherCount
in interface WatcherManager
issue
- issue being watchedpublic Collection<String> getWatcherUserKeys(@Nonnull Issue issue)
WatcherManager
getWatcherUserKeys
in interface WatcherManager
issue
- issue being watchedpublic void removeAllWatchesForUser(@Nonnull ApplicationUser user)
WatcherManager
removeAllWatchesForUser
in interface WatcherManager
user
- The user that has most probably been deletedCopyright © 2002-2019 Atlassian. All Rights Reserved.