Class AbstractNotificationEventListener<T extends BambooEvent>

java.lang.Object
com.atlassian.bamboo.notification.AbstractNotificationEventListener<T>
Type Parameters:
T - Event to which this listener would listen to.
All Implemented Interfaces:
BambooEventListener<T>, HibernateEventListener<T>
Direct Known Subclasses:
AfterXFailedNotificationListener, BuildCompletedNotificationListener, BuildErrorNotificationListener, BuildHungNotificationListener, BuildMissingCapableAgentNotificationListener, BuildQueueTimeoutNotificationListener, ChainCompletedNotificationListener, CommentNotificationListener

public abstract class AbstractNotificationEventListener<T extends BambooEvent> extends Object implements HibernateEventListener<T>
Base class for notification listeners
  • Field Details

  • Constructor Details

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

    • getHandledEventClasses

      public Set<Class<? extends T>> getHandledEventClasses()
      Description copied from interface: BambooEventListener
      List of specific event classes that this listener is interested in.
      Specified by:
      getHandledEventClasses in interface BambooEventListener<T extends BambooEvent>
      Returns:
      the specific event classes handled by this listener
    • 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(BambooEvent event)
      The event handler. After running some generic checks, the logic to handle the event is delegated to child classes that implement handleEvent(T, ImmutablePlan) method.
      Specified by:
      handleEvent in interface BambooEventListener<T extends BambooEvent>
      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
    • fetchResultSummaryIfRequiredByNotificationRules

      protected ResultsSummary fetchResultSummaryIfRequiredByNotificationRules(@NotNull @NotNull PlanResultKey planResultKey, @NotNull @NotNull Iterable<NotificationRule> notificationRules)
    • 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)