View Javadoc

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.ReceivedMail;
8   
9   /***
10   * MailetインスタンスとMatcherインスタンスのリストを持つMailetの実行単位となるクラス。
11   * 
12   * @since 1.2
13   * @author Tomohiro Otsuka
14   * @version $Id: MailetWrapper.java,v 1.1.2.2 2005/01/23 06:47:01 otsuka Exp $
15   */
16  public class MailetWrapper {
17  
18  	private Mailet mailet;
19  
20  	private List matcherList;
21  
22  	/***
23  	 * コンストラクタ。
24  	 */
25  	public MailetWrapper() {
26  		matcherList = new ArrayList();
27  	}
28  
29  	/***
30  	 * コンストラクタ。
31  	 * 
32  	 * @param mailet Mailetインスタンス
33  	 * @param matcherList Matcherインスタンスのリスト
34  	 */
35  	public MailetWrapper(Mailet mailet, List matcherList) {
36  		this();
37  		this.mailet = mailet;
38  		this.matcherList = matcherList;
39  	}
40  
41  	/***
42  	 * リストされているMatcherの条件をクリアしたMailetを実行します。
43  	 * 
44  	 * @param mail 受信メール
45  	 */
46  	public void execute(ReceivedMail mail) {
47  		for (Iterator itr = matcherList.iterator(); itr.hasNext();) {
48  			Matcher m = (Matcher)itr.next();
49  			if (!m.match(mail)) {
50  				return;
51  			}
52  		}
53  		mailet.service(mail);
54  	}
55  
56  	/***
57  	 * Mailetインスタンスを返します。
58  	 * 
59  	 * @return Mailetインスタンス
60  	 */
61  	public Mailet getMailet() {
62  		return mailet;
63  	}
64  
65  	/***
66  	 * Mailetインスタンスをセットします。
67  	 * 
68  	 * @param mailet Mailetインスタンス
69  	 */
70  	public void setMailet(Mailet mailet) {
71  		this.mailet = mailet;
72  	}
73  
74  	/***
75  	 * Matcherインスタンスのリストを返します。
76  	 * 
77  	 * @return Matcherインスタンスのリスト
78  	 */
79  	public List getMatcherList() {
80  		return matcherList;
81  	}
82  
83  	/***
84  	 * Matcherインスタンスのリストをセットします。
85  	 * 
86  	 * @param matcherList Matcherインスタンスのリスト
87  	 */
88  	public void setMatcherList(List matcherList) {
89  		this.matcherList = matcherList;
90  	}
91  }