1 16 package com.blandware.atleap.service.core.impl; 17 18 import com.blandware.atleap.common.util.PartialCollection; 19 import com.blandware.atleap.common.util.QueryInfo; 20 import com.blandware.atleap.model.core.MailTemplate; 21 import com.blandware.atleap.persistence.core.MailTemplateDAO; 22 import com.blandware.atleap.service.core.MailTemplateManager; 23 24 import java.util.Iterator ; 25 import java.util.List ; 26 import java.util.Map ; 27 import java.util.Set ; 28 29 38 public class MailTemplateManagerImpl extends BaseManagerImpl implements MailTemplateManager { 39 40 43 protected MailTemplateDAO mailTemplateDAO; 44 45 48 protected Map mailTemplates; 49 50 53 public MailTemplateManagerImpl() { 54 } 55 56 61 public void setMailTemplateDAO(MailTemplateDAO mailTemplateDAO) { 62 this.mailTemplateDAO = mailTemplateDAO; 63 } 64 65 71 public void setMailTemplates(Map mailTemplates) { 72 this.mailTemplates = mailTemplates; 73 } 74 75 78 public void initialize() { 79 Set templateIdentifiers = mailTemplates.keySet(); 80 81 List existentTemplates = mailTemplateDAO.listMailTemplates(null).asList(); 83 for ( Iterator i = existentTemplates.iterator(); i.hasNext(); ) { 84 MailTemplate template = (MailTemplate) i.next(); 85 if ( !templateIdentifiers.contains(template.getIdentifier()) ) { 86 mailTemplateDAO.deleteMailTemplate(template); 87 } 88 } 89 90 for ( Iterator i = templateIdentifiers.iterator(); i.hasNext(); ) { 92 String identifier = (String ) i.next(); 93 MailTemplate template = mailTemplateDAO.findMailTemplateByIdentifier(identifier); 94 if ( template == null ) { 95 template = new MailTemplate(); 96 template.setIdentifier(identifier); 97 mailTemplateDAO.createMailTemplate(template); 98 } 99 } 100 101 if (log.isInfoEnabled()) { 102 log.info("Mail templates initialized"); 103 } 104 } 105 106 109 public MailTemplate retrieveMailTemplate(Long templateId) { 110 MailTemplate template = mailTemplateDAO.retrieveMailTemplate(templateId); 111 if ( template != null ) { 112 List availableVariables = (List ) mailTemplates.get(template.getIdentifier()); 113 if ( availableVariables != null ) { 114 template.setAvailableVariables(availableVariables); 115 } 116 } 117 return template; 118 } 119 120 123 public void updateMailTemplate(MailTemplate mailTemplate, Map linkedObjects) { 124 mailTemplateDAO.removeFromCache(mailTemplate); 126 127 if ( log.isDebugEnabled() ) { 128 log.debug("Updating mail template with ID '" + mailTemplate.getId() + "'..."); 129 } 130 131 mailTemplateDAO.updateMailTemplate(mailTemplate, linkedObjects); 132 133 if ( log.isDebugEnabled() ) { 134 log.debug("Mail template has been updated successfully"); 135 } 136 } 137 138 141 public PartialCollection listMailTemplates(QueryInfo queryInfo) { 142 return mailTemplateDAO.listMailTemplates(queryInfo); 143 } 144 145 148 public MailTemplate findMailTemplateByIdentifier(String templateIdentifier) { 149 return mailTemplateDAO.findMailTemplateByIdentifier(templateIdentifier); 150 } 151 } 152 | Popular Tags |