Class AbstractNotificationEventListener<T extends com.atlassian.event.Event>

    • Constructor Detail

      • AbstractNotificationEventListener

        protected AbstractNotificationEventListener​(Class<T> eventClass,
                                                    Set<Class<? extends NotificationType>> notificationTypeFilter)
        Parameters:
        eventClass - Class of event this listener would listen to
        notificationTypeFilter - Set of notification types this listener is interested in
    • Method Detail

      • getHandledEventClasses

        public Class<? extends com.atlassian.event.Event>[] getHandledEventClasses()
        Specified by:
        getHandledEventClasses in interface com.atlassian.event.EventListener
        Specified by:
        getHandledEventClasses in interface HibernateEventListener
      • getNotificationRules

        protected Iterable<NotificationRule> getNotificationRules​(@NotNull
                                                                  @NotNull ImmutablePlan plan,
                                                                  @NotNull
                                                                  T event)
        Return notification rules effective for a given plan and event. List of notification rules from a plan is filtered by list of classes in notificationTypeFilter and by call to NotificationType#isNotificationRequired(Event).
        Parameters:
        plan - Plan which notification rules list will be filtered
        event - Event which is being handled. It is passed to NotificationType#isNotificationRequired method to filter out notification rules
        Returns:
        Notification rules effective for a given plan and event
      • getSystemNotificationRules

        protected Iterable<NotificationRule> getSystemNotificationRules​(@NotNull
                                                                        T event)
        Return system notification rules effective for a given event. List of system notification rules is filtered by list of classes in notificationTypeFilter and by call to NotificationType#isNotificationRequired(Event).
        Parameters:
        event - Event which is being handled. It is passed to NotificationType#isNotificationRequired method to filter out notification rules
        Returns:
        System notification rules effective for a given event
      • filterNotificationRules

        protected Iterable<NotificationRule> filterNotificationRules​(@NotNull
                                                                     @NotNull Iterable<NotificationRule> iterable,
                                                                     @NotNull
                                                                     T event)
        Filter passed Iterable by list of classes in notificationTypeFilter and by call to NotificationType#isNotificationRequired(Event).
        Parameters:
        iterable - Input iterable
        event - Event which is being handled. It is passed to NotificationType#isNotificationRequired method to filter out notification rules
        Returns:
        Filtered Iterable
      • handleEvent

        public abstract void handleEvent​(@NotNull
                                         T event,
                                         @NotNull
                                         @NotNull ImmutablePlan plan)
        Notification event listeners must implement this method to handle incoming events.
        Parameters:
        event - event to be handled (narrowed to effective class of event being handled)
        plan - plan which is related to event being handled
      • handleEvent

        public void handleEvent​(com.atlassian.event.Event event)
        Implementation of HibernateEventListener#handleEvent
        Specified by:
        handleEvent in interface com.atlassian.event.EventListener
        Specified by:
        handleEvent in interface HibernateEventListener
        Parameters:
        event - Event to be handled
      • getPlan

        @Nullable
        protected @Nullable ImmutablePlan getPlan​(@NotNull
                                                  T event)
        Try to retrieve plan using data in the event.
        Parameters:
        event - Event being handled
        Returns:
        Plan object referred by the event
      • setNotificationDispatcher

        public void setNotificationDispatcher​(NotificationDispatcher notificationDispatcher)
      • setNotificationManager

        public void setNotificationManager​(NotificationManager notificationManager)
      • setCachedPlanManager

        public void setCachedPlanManager​(CachedPlanManager cachedPlanManager)
      • setSystemNotificationService

        public void setSystemNotificationService​(SystemNotificationService systemNotificationService)
      • setResultsSummaryManager

        public void setResultsSummaryManager​(ResultsSummaryManager resultsSummaryManager)