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