Interface NotificationManager

  • All Known Implementing Classes:
    NotificationManagerImpl

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

      • 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
      • 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.
      • getDeploymentNotificationTypes

        List<NotificationType> getDeploymentNotificationTypes()
        Returns:
        a list of all enabled NotificationType plugin modules which have the "deployment" 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.
      • 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:
        HHH-2801
      • 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