@Override public boolean isEventSkipped(WatchListEvent event) { // We exclude watchlist jobs from notifications since they are modified each time they are // fired, // producing useless noise. Collection<String> possibleIntervals = store.getIntervals(); return possibleIntervals.contains(event.getFullName()); }
@Override public boolean isEventMatching(WatchListEvent event, String subscriber) { boolean isWatched = false; try { // The subscriber's watched users, since each event can be a composite event. Collection<String> watchedUsers = store.getWatchedElements(subscriber, WatchedElementType.USER); isWatched |= store.isWatched(event.getWiki(), subscriber, WatchedElementType.WIKI); isWatched |= store.isWatched(event.getPrefixedSpace(), subscriber, WatchedElementType.SPACE); isWatched |= store.isWatched(event.getPrefixedFullName(), subscriber, WatchedElementType.DOCUMENT); isWatched |= CollectionUtils.intersection(watchedUsers, event.getAuthors()).size() > 0; } catch (Exception e) { logger.error( "Failed to determine if an event for the document [{}] is interesting to [{}]", event.getDocumentReference(), subscriber, e); } return isWatched; }