1 package de.tivsource.page.helper;
2
3 import java.io.IOException;
4 import java.io.InputStream;
5 import java.util.ArrayList;
6 import java.util.Iterator;
7
8 import javax.mail.internet.InternetAddress;
9
10 import org.apache.commons.digester.Digester;
11 import org.apache.logging.log4j.LogManager;
12 import org.apache.logging.log4j.Logger;
13 import org.xml.sax.SAXException;
14
15
16
17
18
19
20 public class EmailTemplate {
21
22
23
24
25
26 private static final Logger LOGGER = LogManager.getLogger(EmailTemplate.class);
27
28 private String subject;
29 private String body;
30 private String from;
31 private String html;
32
33 private ArrayList<String> to = new ArrayList<String>();
34 private ArrayList<String> cc = new ArrayList<String>();
35 private ArrayList<String> bcc = new ArrayList<String>();
36
37 public String getHtml() {
38 return html;
39 }
40
41 public void setHtml(String html) {
42 this.html = html;
43 }
44
45 public String getSubject() {
46 return subject;
47 }
48
49 public void setSubject(String subject) {
50 this.subject = subject;
51 }
52
53 public String getBody() {
54 return body;
55 }
56
57 public void setBody(String body) {
58 this.body = body;
59 }
60
61 public String getFrom() {
62 return from;
63 }
64
65 public void setFrom(String from) {
66 this.from = from;
67 }
68
69 public ArrayList<String> getTo() {
70 return to;
71 }
72
73 public void setTo(ArrayList<String> to) {
74 this.to = to;
75 }
76
77 public ArrayList<String> getCc() {
78 return cc;
79 }
80
81 public void setCc(ArrayList<String> cc) {
82 this.cc = cc;
83 }
84
85 public ArrayList<String> getBcc() {
86 return bcc;
87 }
88
89 public void setBcc(ArrayList<String> bcc) {
90 this.bcc = bcc;
91 }
92
93 public void addTo(String toSet) {
94 to.add(toSet);
95 }
96
97 public void addCc(String ccSet) {
98 cc.add(ccSet);
99 }
100
101 public void addBcc(String bccSet) {
102 bcc.add(bccSet);
103 }
104
105 public InternetAddress[] getToAddresses() {
106
107 InternetAddress[] summary = new InternetAddress[to.size()];
108
109 int counter = 0;
110 Iterator<String> toIt = to.iterator();
111
112 while (toIt.hasNext()) {
113 InternetAddress iaddress = new InternetAddress();
114 String next = toIt.next();
115 iaddress.setAddress(next);
116 summary[counter] = iaddress;
117 counter++;
118 }
119
120 return summary;
121 }
122
123 public InternetAddress[] getCcAddresses() {
124
125 InternetAddress[] summary = new InternetAddress[cc.size()];
126
127 int counter = 0;
128 Iterator<String> ccIt = cc.iterator();
129
130 while (ccIt.hasNext()) {
131 InternetAddress iaddress = new InternetAddress();
132 iaddress.setAddress(ccIt.next());
133 summary[counter] = iaddress;
134 counter++;
135 }
136
137 return summary;
138 }
139
140 public InternetAddress[] getBccAddresses() {
141 InternetAddress[] summary = new InternetAddress[bcc.size()];
142
143 int counter = 0;
144 Iterator<String> bccIt = bcc.iterator();
145
146 while (bccIt.hasNext()) {
147 InternetAddress iaddress = new InternetAddress();
148 iaddress.setAddress(bccIt.next());
149 summary[counter] = iaddress;
150 counter++;
151 }
152
153 return summary;
154 }
155
156 public static Object getEmailTemplate(InputStream aStream) {
157 LOGGER.info("getEmailTemplate(InputStream aStream) aufgerufen");
158 Digester digester = new Digester();
159 digester.setValidating(false);
160 digester.setUseContextClassLoader(true);
161 LOGGER.info("Digester gesetzt 0");
162
163 digester.addObjectCreate("email", EmailTemplate.class);
164
165 digester.addBeanPropertySetter("email/subject", "subject");
166 digester.addBeanPropertySetter("email/body", "body");
167 digester.addBeanPropertySetter("email/from", "from");
168 digester.addBeanPropertySetter("email/html", "html");
169 digester.addCallMethod("email/to", "addTo", 0);
170 digester.addCallMethod("email/cc", "addCc", 0);
171 digester.addCallMethod("email/bcc", "addBcc", 0);
172 LOGGER.info("Digester gesetzt 1");
173 try {
174 LOGGER.info(aStream.available());
175 return digester.parse(aStream);
176 } catch (IOException e) {
177 LOGGER.info("Error: IOException");
178 e.printStackTrace();
179 return null;
180 } catch (SAXException e) {
181 LOGGER.info("Error: SAXException");
182 e.printStackTrace();
183 return null;
184 }
185 }
186 }