OSDN Git Service

Resolved some SonarLint warnings
[spring-ext/ozacc-mail.git] / src / main / java / com / ozacc / mail / VelocityMailBuilder.java
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 }