/* * Copyright 2002-2007 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springmodules.email; import java.util.Map; import java.util.Locale; /** * A general interface for sending {@link Email emails}. * * @author Uri Boness */ public interface EmailDispatcher { /** * Sends the given email * * @param email The email to be sent */ void send(Email email); /** * Sends the email identified by the given name. * * @param emailName The name of the email. */ void send(String emailName); /** * Sends the email identified by the given name and locale. * * @param email The name of the email. * @param locale The locale of the email. */ void send(String email, Locale locale); /** * Sends the email identified by the given name. This method enables dynamic email generation based on a given model. * * @param emailName The name of the email. * @param model The model based on which the email will be generated/resolved. */ void send(String emailName, Map model); /** * Sends the email identified by the given name and locale. This method enables dynamic email generation based on * the given model. * * @param emailName The name of the email. * @param model The model by which the email will be generated. * @param locale The locale of the email. */ void send(String emailName, Map model, Locale locale); /** * Sends the email identified by the given name. This method enables dynamic email generation based on a given model. * The given email preparator enables to customize and prepare the email before sending. A typical use * of the preparator is to attach runtime generated resources (e.g. reports, invoices, images, etc...). * * @param emailName The name of the email * @param model The model by which the email will be created. * @param emailPreparator The preparator that will prepare and customize the email before sending. */ void send(String emailName, Map model, EmailPreparator emailPreparator); /** * Sends the emaild identified by the given name and locale. The method enables dynamic email generation based on the * given model. The given email preparator can be used to customize the email prior to its dispatch. A typical use * of the preparator is to attach runtime generated resources (e.g reports, invoices, images, etc...). * * @param emailName The name of the email. * @param model The model by which the email will be generated. * @param locale The locale of the email. * @param emailPreparator The email preparator to enable runtime email customization. */ void send(String emailName, Map model, Locale locale, EmailPreparator emailPreparator); }