1 package com.ozacc.mail.spring; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; 5 import java.util.List; 6 7 import org.quartz.JobExecutionContext; 8 import org.quartz.JobExecutionException; 9 import org.springframework.scheduling.quartz.QuartzJobBean; 10 11 import com.ozacc.mail.fetch.FetchMailPro; 12 import com.ozacc.mail.fetch.ReceivedMail; 13 import com.ozacc.mail.mailet.MailetWrapper; 14 15 /*** 16 * 17 * @author Tomohiro Otsuka 18 * @version $Id: MailetRunnerJob.java,v 1.1.2.2 2005/01/18 07:22:20 otsuka Exp $ 19 */ 20 public class MailetRunnerJob extends QuartzJobBean { 21 22 private List mailetWrapperList; 23 24 private FetchMailPro fetchMailPro; 25 26 /*** 27 * コンストラクタ。 28 */ 29 public MailetRunnerJob() { 30 mailetWrapperList = new ArrayList(); 31 } 32 33 /*** 34 * @see org.springframework.scheduling.quartz.QuartzJobBean#executeInternal(org.quartz.JobExecutionContext) 35 */ 36 protected void executeInternal(JobExecutionContext context) throws JobExecutionException { 37 fetchMailPro.connect(); 38 try { 39 int count = fetchMailPro.getMailCount(); 40 for (int i = 1; i <= count; i++) { 41 ReceivedMail mail = fetchMailPro.getMail(i); 42 processMail(mail); 43 } 44 } finally { 45 if (fetchMailPro.isConnected()) { 46 fetchMailPro.disconnect(); 47 } 48 } 49 } 50 51 /*** 52 * 指定された受信メールに対してMailetを適用します。 53 * 54 * @param mail MailetUnitに渡す受信メール 55 */ 56 private void processMail(ReceivedMail mail) { 57 for (Iterator itr = mailetWrapperList.iterator(); itr.hasNext();) { 58 MailetWrapper mailetUnit = (MailetWrapper)itr.next(); 59 mailetUnit.execute(mail); 60 } 61 } 62 63 /*** 64 * @param fetchMailPro The fetchMailPro to set. 65 */ 66 public void setFetchMailPro(FetchMailPro fetchMailPro) { 67 this.fetchMailPro = fetchMailPro; 68 } 69 70 /*** 71 * @param mailetWrapperList The mailetWrapperList to set. 72 */ 73 public void setMailetWrapperList(List mailetWrapperList) { 74 this.mailetWrapperList = mailetWrapperList; 75 } 76 77 }