1 24 package org.riotfamily.riot.job.support; 25 26 import java.util.ArrayList ; 27 import java.util.Collection ; 28 import java.util.Iterator ; 29 import java.util.Locale ; 30 31 import org.riotfamily.riot.job.persistence.JobDao; 32 import org.riotfamily.riot.job.persistence.JobDetail; 33 import org.riotfamily.riot.workflow.status.StatusMessage; 34 import org.riotfamily.riot.workflow.status.StatusMonitor; 35 import org.springframework.context.MessageSource; 36 import org.springframework.context.MessageSourceAware; 37 38 public class PendingJobMonitor implements StatusMonitor, MessageSourceAware { 39 40 public static final String MESSAGE_KEY = "job.status"; 41 42 private JobDao dao; 43 44 private MessageSource messageSource; 45 46 public PendingJobMonitor(JobDao dao) { 47 this.dao = dao; 48 } 49 50 public void setMessageSource(MessageSource messageSource) { 51 this.messageSource = messageSource; 52 } 53 54 public Collection getMessages(Locale locale) { 55 Collection jobs = dao.getPendingJobDetails(); 56 if (jobs.isEmpty()) { 57 return null; 58 } 59 ArrayList messages = new ArrayList (); 60 Iterator it = jobs.iterator(); 61 while (it.hasNext()) { 62 JobDetail detail = (JobDetail) it.next(); 63 messages.add(new StatusMessage(messageSource.getMessage(MESSAGE_KEY, 64 new Object [] { detail.getName(), new Integer (detail.getState()) }, 65 locale), null)); 66 } 67 return messages; 68 } 69 70 } 71 | Popular Tags |