package foundation.send.mail; import foundation.data.entity.Entity; import foundation.json.IJSONWriter; public class MailAction { private String id; private String serverName; private String name; private String subject; private String fieldMailAddress; private String fieldTargetName; private String fieldTargetCode; private String fieldTargetId; private String templateName; private MailTemplate template; private MailServer server; public MailAction() { } public void load(Entity entity) { id = entity.getString("id"); serverName = entity.getString("server_name"); name = entity.getString("action_name"); subject = entity.getString("mail_subject"); templateName = entity.getString("template_name"); fieldMailAddress = entity.getString("field_mail_address"); fieldTargetId = entity.getString("field_target_id"); fieldTargetCode = entity.getString("field_target_code"); fieldTargetName = entity.getString("field_target_name"); template = new MailTemplate(templateName); } public String getId() { return id; } public String getServerName() { return serverName; } public String getName() { return name; } public String getSubject() { return subject; } public String getFieldMailAddress() { return fieldMailAddress; } public boolean isFromAccount() { if("business_email".equalsIgnoreCase(fieldMailAddress)) { return true; } return false; } public String getFieldTargetName() { return fieldTargetName; } public String getFieldTargetCode() { return fieldTargetCode; } public String getFieldTargetId() { return fieldTargetId; } public synchronized MailTemplate getTemplate() throws Exception { if (template.isDirty()) { template.load(); } return template; } public void setServer(MailServer server) { this.server = server; } public MailServer getServer() { return server; } public void writeJSONBody(IJSONWriter writer) { writer.write("name", name); writer.write("subject", subject); writer.write("field_target_name", fieldTargetName); writer.write("field_target_code", fieldTargetCode); writer.write("field_target_id", fieldTargetId); writer.write("template", templateName); } }