4. Service Modules4.1 Class Diagram Image Removed Image Added
4.2 Class Descriptions.4.2.1 EmailCentralService EmailService InterfaceThis is the interface that defines the methods available for the other web applications to utilize when they are required to send out emails to a single or a list of recipients. The service includes the following methods: - public void sendBulkEmail(EmailModel emailModel, String summaryReportTemplate, boolean defaultSort)
- public void sendBulkEmailWithTemplate(EmailModel emailModel, String velocityTemplate, Map context, String summaryReportTemplate, boolean defaultSort)
- public Map<String, Integer> sendBulkEmailWithCounts(EmailModel emailModel)
- public Map<String, Object> generateEmailPreviewWithTemplate(EmailModel emailModel, String type, String velocityTemplate, Map context)
- public Map<String, Object> generateSummaryReportPreview(EmailModel emailModel)
- public void sendEmailWithAttachments(EmailModel emailModel, List<File> attachments)
- public void sendEmailWithTemplateAndAttachments(EmailModel emailModel, String velocityTemplate, Map context, List<File> attachments)
- public void sendEmailWithAttachmentsFromDataSource(EmailModel emailModel, List<File> attachments, boolean useApplicationConfig)
- public void newEmail(String velocityTemplate, Map context, String to, String from, String subject, boolean html)
Wiki Markup | <span style="color: #000091">public</span> <span style="color: #910091">void</span> public void newEmail(String velocityTemplate, Map context, String\[\] tos, String from, String subject, boolean html)- public void newEmail(String velocityTemplate, Map context, String to, String subject, boolean html)
Wiki Markup | <span style="color: #000091">public</span> <span style="color: #910091">void</span> public void newEmail(String velocityTemplate, Map context, String\[\] tos, String subject, boolean html)- public void newEmail(String body, String to, String subject, boolean html)
Wiki Markup |
---|
<span style="color: #000091">public</span> <span style="color: #910091">void</span> newEmail(String from, String\[\] to, String subject, String body, String\[\] cc, String\[\] bcc, String\[\] rr) |
- public void newEmail(String from, List<EmailPerson) to, String subject, String body, String[] cc, String[] bcc, String[] rr, String velocityTemplate)
- public void newEmail(String body, String[] tos, String from, String subject, String[] cc, String[] bcc, boolean html, List<File> attachments)
- public void newEmail(String body, String from, String[] tos, String subject, String[] cc, String[] bcc, boolean html, List<DataSource> attachments, boolean overrideFromAddress)
- public void newEmail(String from, String[] to, String subject, String body, String[] cc, String[] bcc, String[] rr)
- public List getMessageQueue()
- public void batchSend()
- public boolean validateEmailAddress(String emailAddress)
- public List getMessageQueue()
- public List<String Object> getMessageQueueStatistics(Date fromDate, Date thruDate, String emailFrom, String emailTo, String statuspublic List getMessageQueue()
- public void batchSend()
- public void delete()
- public boolean validateEmailAddress(String emailAddress)
4.2.3 EmailCentralService EmailService ImplementationThis is the implementation class for the EmailCentralService. It contains an EmailService object (in csf common-legacy module) to perform its tasks.. 4.2.3.1 sendBulkEmail Wiki Markup | This method obtains an EmailModelDomain Object. It will then process the data and call the newEmail method to send save the email and
the summary report to report for the intended recipients. The call to the newEmail method should be configured with the following parameters:
\\
newEmail(String from, String\[\] to, String subject, String body, String\[\] cc, String\[\] bcc, String\[\] rr);
The following attributes in the EmailModel Object will affect the generation of email:
- a list of email addresses of the recipients specified in the "To" field <required>
- a list of email addresses of the recipients specified in the "cc" field <optional>
- a list of email addresses of the recipients specified in the "Bcc" field <optional>
- a list of email addresses of the recipients speicified in the "Report Recipient" field <optional>
- email subject<optional>
- email text <required>
4.2.3.2 sendBulkEmailWithTemplate This method obtains an EmailModel Object, a velocity template name and a map that contains the values for the variables in the template. It will use the velocity template and the map to generate the text for the email. Then, it will call the sendBulkEmail method to sendcreate and save the email message and the summary report to report for intended recipients. 4.2.3.3 sendBulkEmailWithCounts This method obtains an EmailModel Object. It will call the sendBulkEmail method to send the to create and save the email message and the summary report to intended recipients. Then, it will call the BatchSend to send out the email and return the counts of successful and failed delivery. 4.2.3.4 generateEmailPreviewWithTemplate This method obtains an EmailModel Object, a string to specify the type of preview, a velocity template name, and a Map that contains the values for the variables within the velocity template. It will use the velocity template and the map to generate the text for the email. Then, it will updated the email test tect to the email model object and put the updated object into the returned Map. If a summary report preview is required, it will call the generateSummaryReportPreview method to add the attributes necessary to generate the summary report preview to the returned map. 4.2.3.5 generateSummaryReportPreview This private method adds the objects/attributes necessary to create a preview of the summary report. The objects to be added are as follows: - A String that contains the content of the summary report
4.2.3.6 sendEmailWithAttachments This method accepts an EmailModel object and a list of attachments. It will then call newEmail method to create and save the message(s) in database. 4.2.3.7 sendEmailWithTemplateAndAttachments This method accepts an EmailModel object, a velocity template name, a map of replaced values, and a list of File objects (attachments). It will then merge the velocity template with the replace values. Afterwards, it will call sendEmailWithAttachments to create and save the message(s) in database. 4.2.3.8 sendEmailWithAttachmentsFromDataSource This method accepts an EmailModel object and a list of DataSource objects(attachments) and a boolean to signal the system to use the from address in the applicationConfiguration or not. It will then call newEmail method to create and save the message(s) in databaseThese sets of methods are the same public methods available in the EmailService in the CSF common-legacy module. 4.2.3.7 prepare9 newEmailThese 3 sets of methods are static the same public methods available in the EmailService in the CSF common-legacy module. 4.2.3.10 sendReportRecipientEmail 4.2.3.8 getMessageQueue11 createReportRecipientContentThis method is a public method migrated over from the EmailServiceImpl in common-legacy module. 4.2.3.9 batchSend12 saveMessageThis is a private method that are is a public method migrated over from the EmailServiceImpl in common-legacy modulecalled within the EmailServiceImpl to save the email message (just text and with a list of File objects as attachments) in database tables. 4.2.3.13 saveMessageWithAttachmentAsDataSource
This is a private method that is called within the EmailServiceImpl to save the email message with a list of DataSource objects as attachments in database tables. 4.2.3.14 updateDataToEmailEvent This is a private method that are is called within the EmailServiceImpl to update the data to the EmailEvent table. 4.2.3.15 updateApplicationConfigurationParametersToEmailEvent This is a protected method that are is called within the EmailServiceImpl to update the data to the EmailEvent object according to properties configured by the application . 4.2.3.10 createReportRecipientContent16 updateMessageContentThis is a private method is a public method migrated over from the EmailServiceImpl in common-legacy modulethat are is called within the EmailServiceImpl by various prepare method to update the MimeMessage object with data from the database. 4.2.3.17 createMimeMessagePreparatorForEmailWithCcBccAttachments This is a private method that are is called within the EmailServiceImpl to create a MimeMessage preparator instance for email message with an attachments from the EmailEvent object retrieved from database. 4.2.3.18 createMimeMessagePreparatorForEmail This is a private method that are is called within the EmailServiceImpl to create a MimeMessage preparator instance for email message without an attachments from the EmailEvent data retrieved from the database. 4.2.3.19 prepare The 4 prepare methods are static public methods that are available to create the MimeMessage object for each email message. 4.2.3.11 createMessage20 batchSendThis method is a public method migrated over from the EmailServiceImpl in common-legacy module. 4.2.3.12 sendMessage21 sendMessageThis is a private method that is called within the EmailServiceImpl to send the email message via the email server.
4.2.3.22 getMessageQueue This method is a public method These methods are public methods that are migrated over from the EmailServiceImpl in common-legacy module. 4.2.3.13 23 getMessageQueueStatisticsThis method is a public method that will retrieve statistics from the database based on criteria including from date, thru date, email from, email to, and status 4.2.3.24 validateEmailAddress This method takes an input of email address in String and validate if the email address is valid. If the email address is valid, it will return true. If not, it will return false. The input email address is validated according to the following conditions: - The system will create a new InternetAddress object using the input email address and then invoke the validate method of the InternetAddress object to verify it is a real email address
4.2.3.25 delete This method deletes records from the email event and email attachment tables, based on a configurable parameter: email.in.system.days, If not specify, the email for an application will be deleted in 5 days by dafault. 4.2.3.26 getTemplatePath This method returns the path where the velocity template locates. 4.2.3.27 getFileSeparator This method takes returns the file separator string for the system EmailService is running on.
4.2.3.28 isTomcatServer This method checks if the system running the EmailService is a tomcat server. It will return a Boolean. This method takes will verify if the pass in parameter is in the correct format. 4.2.3.30 getMimeType This method returns the MimeType of the file 4.2.3.31 handleException This is a private method that prints out the exception message and stack trace to log. 4.2.3.32 nonNullizeArray An utility method to replace the null with an empty array if a method passed a null String array as a Cc or Bcc list |