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