OSDN Git Service

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