Class NotificationService

  • All Implemented Interfaces:
    INotificationService

    public final class NotificationService
    extends Object
    implements INotificationService
    The NotificationService provides a way to dispatch (publish) notifications to zero or more subscribers. Architecturally, the NotificationService is similar to IEventService but the objectives and logic of notification processing vary enough to warrant implementations specific to notifications.
    Since:
    1.3.0
    Author:
    Steve Springett
    • Method Detail

      • publish

        public void publish​(Notification notification)
        Publishes Notification. Published notifications will get dispatched to all subscribers in the order in which they subscribed. Subscribers are informed asynchronously one after the next.
        Specified by:
        publish in interface INotificationService
        Parameters:
        notification - A Notification to publish
        Since:
        1.3.0
      • subscribe

        public void subscribe​(Class<? extends Notification> notificationClass,
                              Subscription subscription)
        Subscribes to a Notification. Subscribes are automatically notified of all notifications for which they are subscribed.
        Specified by:
        subscribe in interface INotificationService
        Parameters:
        notificationClass - The notification class to subscribe to
        subscription - The Subscription (containing the subscriber) that gets informed
        Since:
        1.3.0
      • subscribe

        public void subscribe​(Subscription subscription)
        Subscribes to a Notification. Subscribes are automatically notified of all notifications for which they are subscribed.
        Specified by:
        subscribe in interface INotificationService
        Parameters:
        subscription - The Subscription (containing the subscriber) that gets informed
        Since:
        1.3.0
      • unsubscribe

        public void unsubscribe​(Subscription subscription)
        Unsubscribes a subscriber. All notifications the subscriber has subscribed to will be unsubscribed. Once unsubscribed, the subscriber will no longer be informed of published notifications.
        Specified by:
        unsubscribe in interface INotificationService
        Parameters:
        subscription - The Subscription to unsubscribe.
        Since:
        1.3.0
      • hasSubscriptions

        public boolean hasSubscriptions​(Notification notification)
        Determines if the specified notification is able to be processed by the NotificationService. If a subscriber exists for the notification, this method will return true, otherwise false.
        Specified by:
        hasSubscriptions in interface INotificationService
        Parameters:
        notification - the notification to query if subscribers exist
        Returns:
        true if the notification has subscribers, false if not
        Since:
        1.3.0
      • shutdown

        public void shutdown()
        Shuts down the executioner. Once shut down, future work will not be performed. This should only be called prior to the application being shut down.
        Specified by:
        shutdown in interface INotificationService
        Since:
        1.3.0