Interface NotificationHandler

All Superinterfaces:
org.springframework.core.Ordered
All Known Implementing Classes:
DefaultNotificationHandler, PersistenceMessageNotificationHandler

public interface NotificationHandler extends org.springframework.core.Ordered
Notify the system about a state change for a NotificationStateAware entity.
Author:
Jeff Fischer
  • Method Details

    • handle

      @NonNull NotificationHandlerResponse handle(@NonNull NotificationStateRepository repo, @NonNull NotificationStateAware notifiable, @NonNull String messageType)
      Notify the system in some way about the state change for the notifiable param.

      If the message is successfully sent and the NotificationState is successfully updated as acked, then afterSuccessfulAcknowledgement(Object, NotificationStateAware, NotificationStateRepository) will be called.

      Parameters:
      repo - The repository responsible for making the state change.
      notifiable - The Trackable entity that experienced the state change.
      messageType - The type of the message. Generally compared against the message type supported by this handler. For example, DefaultNotificationHandler#messageType.
      Returns:
      Whether or not the call was handled and if the handler processing chain should continue
    • afterSuccessfulAcknowledgement

      default void afterSuccessfulAcknowledgement(@NonNull Object nativeId, @NonNull NotificationStateAware notificationStateAware, @NonNull NotificationStateRepository repository)
      A hook point intended to allow implementations to perform some behavior after a message has been successfully sent and the NotificationState has been marked as acknowledged.

      Should not directly mutate the given notificationStateAware instance.

      By default, it does nothing.

      Parameters:
      nativeId - the native id of the notificationStateAware entity
      notificationStateAware - the containing entity of the notification state for which a message was successfully sent
      repository - the repository corresponding to the notificationStateAware entity
    • getChannelModifier

      default String getChannelModifier()
      Retrieve any modifier for the channel associated with this handler. Detection of the modifier is based on any BindingModificationAware beans registered with the Spring. Will return an empty string if a modifier is not detected.
      Returns:
      Any modifier detected in the configuration for the Spring Cloud Stream channel destination
    • getOrder

      default int getOrder()
      Specified by:
      getOrder in interface org.springframework.core.Ordered