org.kuali.rice.kcb.deliverer
Interface MessageDeliverer

All Known Subinterfaces:
BulkMessageDeliverer
All Known Implementing Classes:
AOLInstantMessageDeliverer, EmailMessageDeliverer, MockMessageDeliverer, SMSMessageDeliverer

public interface MessageDeliverer

This class represents the different types of Notification Delivery Types that the system can handle. For example, an instance of delivery type could be "ActionList" or "Email" or "SMS". Any deliverer implementation adhering to this interface can be plugged into the system and will be automatically available for use.

Author:
Kuali Rice Team (rice.collab@kuali.org)

Method Summary
 void deliver(MessageDelivery messageDelivery)
          This method is responsible for delivering the passed in messageDelivery record.
 void dismiss(MessageDelivery messageDelivery, String user, String cause)
          This method dismisses/removes the NotificationMessageDelivery so that it is no longer being presented to the user via this deliverer.
 String getDescription()
          This method returns the human readable description for this plugin.
 String getName()
          This method returns the human readable name of the plugin.
 LinkedHashMap<String,String> getPreferenceKeys()
          This method is responsible for returning a list of preference key names along with their corresponding labels that get rendered in the UI.
 String getTitle()
          This method returns the human readable Title of the plugin.
 void validatePreferenceValues(HashMap<String,String> prefs)
          This method is responsible for validating preference values when a person saves their preferences for the particular NotificationMessageDeliverer.
 

Method Detail

getPreferenceKeys

LinkedHashMap<String,String> getPreferenceKeys()
This method is responsible for returning a list of preference key names along with their corresponding labels that get rendered in the UI. For example, if you were creating a NotificationEmailDeliverer class, one of the key preferences that this method would return back would be "email_address" and the label would be "Email Address".

Returns:
LinkedHashMap

validatePreferenceValues

void validatePreferenceValues(HashMap<String,String> prefs)
                              throws ErrorList
This method is responsible for validating preference values when a person saves their preferences for the particular NotificationMessageDeliverer. For example, if "phoneNumber" is one of the preferences for an SMS deliverer, then this method would be responsible for validating the value entered by a particular user such that it was properly constructed with hyphens or not, etc. Errors would be constructed and added to the ErrorList instance and be thrown from the method if any occurred.

Throws:
ErrorList

getName

String getName()
This method returns the human readable name of the plugin. This name is the key for this message delivery type. It must be unique and not contain any spaces.

Returns:
String

getTitle

String getTitle()
This method returns the human readable Title of the plugin. This name is the string used for identifying the plugin in the UI. It may contain spaces characters.

Returns:
String

getDescription

String getDescription()
This method returns the human readable description for this plugin.

Returns:
String

deliver

void deliver(MessageDelivery messageDelivery)
             throws MessageDeliveryException
This method is responsible for delivering the passed in messageDelivery record.

Parameters:
messageDelivery - The messageDelivery to process
Throws:
MessageDeliveryException

dismiss

void dismiss(MessageDelivery messageDelivery,
             String user,
             String cause)
             throws MessageDismissalException
This method dismisses/removes the NotificationMessageDelivery so that it is no longer being presented to the user via this deliverer. Note, whether this action is meaningful is dependent on the deliverer implementation. If the deliverer cannot control the presentation of the message, then this method need not do anything.

Parameters:
messageDelivery - the messageDelivery to dismiss
the - user that caused the dismissal; in the case of end-user actions, this will most likely be the user to which the message was delivered (user recipient in the NotificationMessageDelivery object)
cause - the reason the message was dismissed
Throws:
MessageDismissalException


Copyright © 2005-2013 The Kuali Foundation. All Rights Reserved.