1 package com.ozacc.mail; 2 3 import java.io.File; 4 5 import org.apache.velocity.VelocityContext; 6 7 /*** 8 * Velocityと連携して動的にメールデータを生成し、そのデータからMailインスタンスを生成するインターフェース。 9 * 10 * @see com.ozacc.mail.impl.XMLVelocityMailBuilderImpl 11 * @see com.ozacc.mail.impl.JDomXMLMailBuilder 12 * 13 * @since 1.0 14 * @author Tomohiro Otsuka 15 * @version $Id: VelocityMailBuilder.java,v 1.4.2.3 2005/01/21 16:51:20 otsuka Exp $ 16 */ 17 public interface VelocityMailBuilder extends MailBuilder { 18 19 /*** 20 * 指定されたクラスパス上のファイルを読み込んでMailインスタンスを生成します。 21 * 指定されたVelocityContextを使って、XMLファイルの内容を動的に生成できます。 22 * 23 * @param classPath メール内容を記述したファイルのパス 24 * @param context VelocityContext 25 * @return 生成されたMailインスタンス 26 * @throws MailBuildException Mailインスタンスの生成に失敗した場合 27 */ 28 Mail buildMail(String classPath, VelocityContext context) throws MailBuildException; 29 30 /*** 31 * 指定されたファイルを読み込んでMailインスタンスを生成します。 32 * 指定されたVelocityContextを使って、XMLファイルの内容を動的に生成できます。 33 * 34 * @param file メール内容を記述したファイル 35 * @param context VelocityContext 36 * @return 生成されたMailインスタンス 37 * @throws MailBuildException Mailインスタンスの生成に失敗した場合 38 */ 39 Mail buildMail(File file, VelocityContext context) throws MailBuildException; 40 41 /*** 42 * メールデータキャッシュをクリアします。 43 * 44 * @since 1.1.2 45 */ 46 void clearCache(); 47 48 /*** 49 * VelocityContextとマージする前のメールデータをキャッシュするかどうかを設定します。 50 * デフォルトはキャッシュしない設定です。 51 * <p> 52 * キャッシュのキーは、<code>buildMail()</code>メソッド引数のメールデータファイルのクラスパス或いはファイルパスです。 53 * キャッシュに有効期限はありません。 54 * また、メールデータファイルの内容が途中で更新されても、キャッシュされているメールデータは更新されませんので注意してください。 55 * <p> 56 * <code>false</code>を指定してこのメソッドを呼ぶとメールデータキャッシュはクリアされます。 57 * 58 * @since 1.1.2 59 * @param cacheEnabled メールデータをキャッシュする場合は true 60 */ 61 void setCacheEnabled(boolean cacheEnabled); 62 63 /*** 64 * VelocityContextとマージする前のメールデータをキャッシュする設定かどうか判定します。 65 * 66 * @since 1.1.2 67 * @return メールデータをキャッシュする設定の場合は true 68 */ 69 boolean isCacheEnabled(); 70 71 }