package edu.asu.spring.quadriga.email; import java.util.HashMap; import java.util.Map; import org.apache.velocity.exception.ParseErrorException; import org.apache.velocity.exception.ResourceNotFoundException; import edu.asu.spring.quadriga.domain.IUser; import edu.asu.spring.quadriga.domain.workbench.IProject; import edu.asu.spring.quadriga.domain.workspace.IWorkSpace; import edu.asu.spring.quadriga.exceptions.QuadrigaNotificationException; /** * The purpose of this interface is to manage all the outgoing mails in the * system. * * @author Ram Kumar Kumaresan */ public interface IEmailNotificationManager { /** * Send an account deactivation email to the user. * * @param user * The user object whose account is deactivated. Email field in * the user object will be used to send the email. * @param adminid * The username of the admin who deactivated the account of the * user. */ public void sendAccountDeactivationEmail(IUser user, String adminid); /** * Send an account activation email to the user. * * @param user * The user object whose account is activated. Email field in the * user object will be used to send the email. * @param adminid * The username of the admin who approved the account of the * user. */ public void sendAccountActivationEmail(IUser user, String adminid); /** * Send a notifcation to the admin saying that a new account request has * been placed. * * @param admin * The user object of the admin to whom the notification is to be * sent. Email field in the user object will be used to send the * email. * @param userid * The username of the user who placed a new account request. */ public void sendNewAccountRequestPlacementEmail(IUser admin, String userid); /** * Send an email to the project owner when a new workspace has been added to * the project. * * @param project * The project object to which the new workspace was added. Email * field of the project owner will be used to send the email. * @param workspace * The workspace object which was added to the project. */ public void sendNewWorkspaceAddedToProject(IProject project, IWorkSpace workspace); void sendAccountCreatedEmail(String name, String username, String adminName, String adminEmail) throws QuadrigaNotificationException; void sendAccountProcessedEmail(IUser user, boolean approved) throws QuadrigaNotificationException; }