Interface NotificationManager

All Known Implementing Classes:
NotificationManagerImpl

public interface NotificationManager
Provide methods to manage notifications.
  • Method Details

    • createNotificationRule

      NotificationRule createNotificationRule(String conditionKey, String conditionData, String recipientString, String recipientType)
      Create notification rule and provide required managers.
      Parameters:
      conditionKey - - key representation of the notification type
      conditionData - - any data the notification type requires
      recipientString - - data the recipient type requires (e.g user or group name)
      recipientType - - key representing the type of recipient
      Returns:
      a newly created notification rule
    • createNotificationRule

      @NotNull @NotNull NotificationRule createNotificationRule(@NotNull @NotNull Class<? extends NotificationType> notificationTypeClass, @Nullable @Nullable String conditionData, @NotNull @NotNull Class<? extends NotificationRecipient> recipientTypeClass, @Nullable @Nullable String recipientString)
      Creates a new NotificationRule from the NotificationType and NotificationRecipient specificed.
      Parameters:
      notificationTypeClass - NotificationType
      conditionData - - any data the notification type requires
      recipientTypeClass - NotificationRecipient
      recipientString - - data the recipient type requires (e.g user or group name)
      Returns:
      a newly created notification rule
    • createNotificationRuleFromAction

      NotificationRule createNotificationRuleFromAction(String notificationTypeKey, String notificationRecipientType, Map<String,String[]> actionParameters) throws IllegalArgumentException
      Creates a notification rule based on the keys and params passed in from the action
      Parameters:
      notificationTypeKey - - the plugin key for the notification type selected
      notificationRecipientType - - the plugin key for the notification recipient type selected
      actionParameters - - the action params.
      Returns:
      a new notification rule
      Throws:
      IllegalArgumentException - if either of the keys provided is invalid
    • getNotificationRules

      @NotNull @NotNull Set<NotificationRule> getNotificationRules(@Nullable @Nullable ImmutablePlan plan)
      Extract notification rules for a plan.
      Parameters:
      plan - to get notifications for
      Returns:
      a set of notification rules belonging to the given plan.
    • cloneNotificationSet

      NotificationSet cloneNotificationSet(NotificationSet oldSet)
      Clone notification set and rules for use when cloning Plan
      Parameters:
      oldSet - - the notification set to clone
      Returns:
      a new notification set containing the same notifications as in the original set.
    • getAllNotificationTypes

      List<NotificationType> getAllNotificationTypes()
      Returns:
      a list of all enabled NotificationType plugin modules regardless of scope.
    • getSystemNotificationTypes

      List<NotificationType> getSystemNotificationTypes()
      Returns:
      a list of all enabled NotificationType plugin modules which have the "system" scope
    • getDeploymentNotificationTypes

      List<NotificationType> getDeploymentNotificationTypes()
      Returns:
      a list of all enabled NotificationType plugin modules which have the "deployment" scope
    • getPlanNotificationTypes

      List<NotificationType> getPlanNotificationTypes()
      Returns:
      a list of all enabled NotificationType plugin modules which have the "plan" scope
    • getChainNotificationTypes

      List<NotificationType> getChainNotificationTypes()
      Return notification types marked explicitly as "chain" notification in plugin xml description
      Returns:
      a list of all enabled NotificationType plugin modules which have the "chain" scope
    • getNotificationTypeFromKey

      @Nullable @Nullable NotificationType getNotificationTypeFromKey(String key)
      Retrieve a specific NotificationType plugin module based on the given key.
      Parameters:
      key - of the notification type
      Returns:
      a specific NotificationType plugin module based on the given key.
    • getAllNotificationRecipients

      List<NotificationRecipient> getAllNotificationRecipients()
      Returns:
      a list of all enabled NotificationRecipient plugin modules
    • getNotificationRecipientFromKey

      @Nullable @Nullable NotificationRecipient getNotificationRecipientFromKey(String notificationRecipientKey)
      Parameters:
      notificationRecipientKey - representing the NotificationRecipient required
      Returns:
      a specific NotificationRecipient plugin module based on the given key.
    • getNotificationRecipient

      @Nullable @Nullable NotificationRecipient getNotificationRecipient(NotificationRule rule)
      Instantiate and populate notification recipient from a rule.
      Since:
      5.15
    • getNotificationType

      @Nullable @Nullable NotificationType getNotificationType(NotificationRule rule)
      Instantiate and populate notification type from a rule.
      Since:
      5.15
    • saveNotificationSet

      void saveNotificationSet(NotificationSet nSet)
      Saves a notification set without requiring a build.
      Parameters:
      nSet - the notification set to save
    • getNotificationRulesForUser

      @NotNull @NotNull List<UsersNotification> getNotificationRulesForUser(@NotNull @NotNull BambooUser user)
      Retrieves all notification rules associated with a given user searches for notification rules: * assigned to the user * assigned to a group the user belongs to * assigned to the user's email or user's im address * assigned to watchers of a build the user has marked as their favourite
      Parameters:
      user - BambooUser to look up notifications for
      Returns:
      all notification rules associated with a given user following the above rules
    • isRecipientUserBase

      boolean isRecipientUserBase(NotificationRule notificationRule)
      Determines whether or not a notification rule recipient evaluates to a bamboo user and therefore comply with the users notification preference.
      Parameters:
      notificationRule - to check
      Returns:
      true if the recipient evaluates to a user
    • replaceNotificationRule

      void replaceNotificationRule(@NotNull @NotNull NotificationSet notificationSet, long existingNotificationId, @NotNull @NotNull NotificationRule newNotificationRule)
      Replaces a notification rule with the new definition. This method should always be preferred when replacing an existing rule instead of operating on the NotificationSet manually. Reason: as of current Hibernate, queries which modify collections (such as NotificationSet) are batched and executed in a specific order. In particular, inserts are executed before deletes. Due to constraints on the NotificationRule class/table this may lead to database constraint violations, resulting in unsuccessful updates and exceptions.
      Parameters:
      notificationSet - notification set on which the operation should be executed
      existingNotificationId - id of the existing notification rule
      newNotificationRule - new notification rule to replace the existing one
      See Also:
    • saveSystemNotificationRule

      void saveSystemNotificationRule(@NotNull @NotNull NotificationRule notificationRule)
      Do not use this method. Use SystemNotificationService.saveSystemNotificationRule(); Save an individual system notification rule.
      Parameters:
      notificationRule - to be added
    • getNotificationRuleById

      @Nullable @Nullable NotificationRule getNotificationRuleById(long notificationId)
      Get a specific notification rule
      Parameters:
      notificationId - of the notification to get.
      Returns:
      the notification rule with the given ID, or null if one doesn't eixst
    • createOrGetSystemNotificationSet

      @NotNull @NotNull NotificationSet createOrGetSystemNotificationSet()
      Get the system notification set for this bamboo and if one doesn't exist create it!
      Returns:
    • getNotificationSetById

      @Nullable @Nullable NotificationSet getNotificationSetById(long notificationSetId)
      Get a specific notification set
      Parameters:
      notificationSetId - of the notification set to get.
      Returns:
      the notification set with the given ID, or null if one doesn't exist