1 24 package org.riotfamily.riot.workflow.notification; 25 26 import java.util.Locale ; 27 28 import org.riotfamily.common.util.FormatUtils; 29 import org.springframework.context.MessageSource; 30 import org.springframework.context.MessageSourceAware; 31 32 public class NotificationPublisher implements MessageSourceAware { 33 34 public static final String DEFAULT_CATEGORY = "system"; 35 36 private NotificationFactory notificationFactory; 37 38 private NotificationDao notificationDao; 39 40 private MessageSource messageSource; 41 42 public NotificationPublisher(NotificationFactory notificationFactory, 43 NotificationDao notificationDao) { 44 45 this.notificationFactory = notificationFactory; 46 this.notificationDao = notificationDao; 47 } 48 49 public void setMessageSource(MessageSource messageSource) { 50 this.messageSource = messageSource; 51 } 52 53 public void publishNotification(String message) { 54 publishNotification(message, null); 55 } 56 57 public void publishNotification(String messageKey, Object [] args, 58 String category) { 59 60 String message = messageSource.getMessage(messageKey, 61 FormatUtils.htmlEscapeArgs(args), Locale.getDefault()); 62 63 publishNotification(message, category); 64 } 65 66 public void publishNotification(String message, String category) { 67 if (category == null) { 68 category = DEFAULT_CATEGORY; 69 } 70 Notification notification = notificationFactory.createNotification( 71 message, category); 72 73 notificationDao.saveNotification(notification); 74 } 75 76 } 77 | Popular Tags |