View Javadoc

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   * @author Marc Michele
18   *
19   */
20  public class EmailTemplate {
21  
22      /**
23       * Statischer Logger der Klasse EmailTemplate, zur Zeit gibt es Meldungen
24       * vom Type TRACE und DEBUG.
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 }// Ende class