All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nablarch.common.mail.TemplateMailContext Maven / Gradle / Ivy

The newest version!
package nablarch.common.mail;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

import nablarch.core.util.annotation.Published;

/**
 * 定型メール送信要求を表すクラス。
 * 
 * @author Shinsuke Yoshio
 */
public class TemplateMailContext extends MailContext {

    /** テンプレートID */
    private String templateId;

    /** 言語 */
    private String lang;

    /** テンプレートとマージする変数 */
    private final Map variables = new HashMap();

    /**
     * {@link TemplateMailContext}のインスタンスを生成する。
     */
    @Published
    public TemplateMailContext() {
        super();
    }

    /**
     * テンプレートIDを取得する。
     * 
     * @return テンプレートID
     */
    @Published(tag = "architect")
    public String getTemplateId() {
        return templateId;
    }

    /**
     * テンプレートIDを設定する。
     * 
     * @param templateId テンプレートID
     */
    @Published
    public void setTemplateId(String templateId) {
        this.templateId = templateId;
    }

    /**
     * 言語を取得する。
     * 
     * @return 言語
     */
    @Published(tag = "architect")
    public String getLang() {
        return lang;
    }

    /**
     * 言語を設定する。
     * 
     * @param lang 言語
     */
    @Published
    public void setLang(String lang) {
        this.lang = lang;
    }

    /**
     * プレースホルダのキーと置換文字列のマップを取得する。
     * 
     * @return プレースホルダと置換文字列のマップ
     * @deprecated 当メソッドは5u13より前から存在する定型メール機能のためにある。
     *               当メソッドの仕様を満たしつつより柔軟な機能をもつ{@link #getVariables()}が追加されたので今後はそちらを使用すること。
     */
    @Published(tag = "architect")
    @Deprecated
    public Map getReplaceKeyValue() {
        Map replaceKeyValue = new HashMap();
        for (Entry entry : variables.entrySet()) {
            String key = entry.getKey();
            Object value = entry.getValue();
            if (value instanceof String) {
                replaceKeyValue.put(key, (String) value);
            } else if (value == null) {
                replaceKeyValue.put(key, null);
            } else {
                replaceKeyValue.put(key, value.toString());
            }
        }
        return replaceKeyValue;
    }

    /**
     * テンプレートとマージする変数を取得する。
     * 
     * @return テンプレートとマージする変数
     */
    @Published(tag = "architect")
    public Map getVariables() {
        return Collections.unmodifiableMap(variables);
    }

    /**
     * メールテンプレート中のプレースホルダのキーと置換文字列を追加する。
     * 

* プレースホルダは、指定した{@code key}をもとに{@code value}で置換される。
* プレースホルダの記述形式は、{キー名} と記載する。
* プレースホルダがあるにも関わらず置換文字列が渡されない場合は、変換されずメールが送信される。
* ただし、テンプレートエンジンを使用したメール送信処理ではプレースホルダがあるにも関わらず * 置換文字列が渡されない場合の動作はテンプレートエンジンの仕様に準ずる。 * * @param key プレースホルダのキー * @param value 置換文字列(null不可) * @deprecated 当メソッドは5u13より前から存在する定型メール機能のためにある。 * 当メソッドの仕様を満たしつつより柔軟な機能をもつ{@link #setVariable(String, Object)}が追加されたので今後はそちらを使用すること。 */ @Published @Deprecated public void setReplaceKeyValue(String key, String value) { this.variables.put(key, value); } /** * テンプレートとマージする変数を追加する。 * * @param name 変数名 * @param value 値 */ @Published public void setVariable(String name, Object value) { this.variables.put(name, value); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy