OSDN Git Service

CVS最新版の全ファイルを追加
[spring-ext/ozacc-mail.git] / src / java / com / ozacc / mail / mailet / MailetRunner.java
1 package com.ozacc.mail.mailet;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.Iterator;\r
5 import java.util.List;\r
6 \r
7 import com.ozacc.mail.fetch.FetchMailPro;\r
8 import com.ozacc.mail.fetch.ReceivedMail;\r
9 \r
10 /**\r
11  * メールの受信とMailetの起動を行うクラス。\r
12  * \r
13  * @since 1.2\r
14  * @author Tomohiro Otsuka\r
15  * @version $Id: MailetRunner.java,v 1.1.2.5 2005/04/19 14:51:55 otsuka Exp $\r
16  */\r
17 public class MailetRunner {\r
18 \r
19         private List mailetWrapperList;\r
20 \r
21         private FetchMailPro fetchMailPro;\r
22 \r
23         /**\r
24          * コンストラクタ。\r
25          */\r
26         public MailetRunner() {\r
27                 mailetWrapperList = new ArrayList();\r
28         }\r
29 \r
30         /**\r
31          * メール受信とMailetの起動を行います。\r
32          */\r
33         public void run() {\r
34                 fetchMailPro.connect();\r
35                 try {\r
36                         int count = fetchMailPro.getMailCount();\r
37                         for (int i = 1; i <= count; i++) {\r
38                                 ReceivedMail mail = fetchMailPro.getMail(i);\r
39                                 processMail(mail);\r
40                         }\r
41                 } finally {\r
42                         fetchMailPro.disconnect();\r
43                 }\r
44         }\r
45 \r
46         /**\r
47          * 指定された受信メールに対してMailetを適用します。\r
48          * \r
49          * @param mail MailetWrapperに渡す受信メール\r
50          */\r
51         private void processMail(ReceivedMail mail) {\r
52                 for (Iterator itr = mailetWrapperList.iterator(); itr.hasNext();) {\r
53                         MailetWrapper mailetWrapper = (MailetWrapper)itr.next();\r
54                         mailetWrapper.execute(mail);\r
55                 }\r
56         }\r
57 \r
58         /**\r
59          * メールの受信に使用するFetchMailProインターフェースの実装インスタンスをセットします。\r
60          * \r
61          * @param fetchMailPro FetchMailProインターフェースの実装インスタンス\r
62          */\r
63         public void setFetchMailPro(FetchMailPro fetchMailPro) {\r
64                 this.fetchMailPro = fetchMailPro;\r
65         }\r
66 \r
67         /**\r
68          * 実行するMailetのMailetWrapperリストをセットします。\r
69          * \r
70          * @param mailetWrapperList 実行するMailetのMailetWrapperリスト\r
71          */\r
72         public void setMailetWrapperList(List mailetWrapperList) {\r
73                 this.mailetWrapperList = mailetWrapperList;\r
74         }\r
75 }