package pl.net.bluesoft.rnd.pt.ext.bpmnotifications.service;
import pl.net.bluesoft.rnd.util.i18n.I18NSource;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* Bpm notification service
*
* @author Maciej Pawlak
*
*/
public interface BpmNotificationService
{
/** Create and add notification with given parameter to queue. It will be send in the next scheduler run */
void addNotificationToSend(String profileName, String sender, String recipient, String subject, String body, boolean sendAsHtml, String ... attachments)
throws Exception;
String findTemplate(String templateName);
String processTemplate(String templateName, Map<String, Object> data);
void registerTemplateArgumentProvider(TemplateArgumentProvider provider);
void unregisterTemplateArgumentProvider(TemplateArgumentProvider provider);
Collection<TemplateArgumentProvider> getTemplateArgumentProviders();
List<TemplateArgumentDescription> getDefaultArgumentDescriptions(I18NSource i18NSource);
List<NotificationHistoryEntry> getNotificationHistoryEntries();
void invalidateCache();
}