1 package pt.digitalis.dif.utils.mail;
2
3 import java.util.Properties;
4
5 import pt.digitalis.dif.ioc.DIFIoCRegistry;
6 import pt.digitalis.utils.config.ConfigurationsPreferencesImpl;
7 import pt.digitalis.utils.config.IConfigurations;
8 import pt.digitalis.utils.config.annotations.ConfigDefault;
9 import pt.digitalis.utils.config.annotations.ConfigID;
10 import pt.digitalis.utils.config.annotations.ConfigIgnore;
11 import pt.digitalis.utils.config.annotations.ConfigSectionID;
12
13
14
15
16
17 @ConfigID(MailConfiguration.CONFIG_ID)
18 @ConfigSectionID(MailConfiguration.CONFIG_SECTION_ID)
19 public class MailConfiguration implements IMailConfiguration {
20
21
22 public static final String CONFIG_ID = "Digi Utils";
23
24
25 public static final String CONFIG_SECTION_ID = "mail";
26
27
28 private static MailConfiguration instance = null;
29
30
31
32
33 @ConfigIgnore
34 public static IMailConfiguration getInstance()
35 {
36 if (instance == null)
37 {
38 instance = new ConfigurationsPreferencesImpl().readConfiguration(MailConfiguration.class);
39 instance.setOriginalConfs(instance.getConfigurations().readConfiguration(CONFIG_ID, CONFIG_SECTION_ID));
40 }
41 return instance;
42 }
43
44
45 private IConfigurations configurations;
46
47
48 private String debugEnabled;
49
50
51 private String defaultFromAddress;
52
53
54 private String encoding;
55
56
57 private int gapBetweenMails;
58
59
60 private int limitMaxEmails;
61
62
63 private int limitTimeInterval;
64
65
66 private String mailServer;
67
68
69 private String mailServerPassword;
70
71
72 private int mailServerPort;
73
74
75 private String mailServerUsername;
76
77
78 private Properties originalConfs = null;
79
80
81 private Boolean useSSL;
82
83
84
85
86 public MailConfiguration()
87 {
88
89 }
90
91
92
93
94
95
96 @ConfigIgnore
97 public IConfigurations getConfigurations()
98 {
99
100 if (configurations == null)
101 configurations = DIFIoCRegistry.getRegistry().getImplementation(IConfigurations.class);
102
103 return configurations;
104 }
105
106
107
108
109
110
111 @ConfigDefault("false")
112 public String getDebugEnabled()
113 {
114 return debugEnabled;
115 }
116
117
118
119
120
121
122 @ConfigDefault("no-reply@company.com")
123 public String getDefaultFromAddress()
124 {
125 return defaultFromAddress;
126 }
127
128
129
130
131
132
133 @ConfigDefault("ISO-8859-1")
134 public String getEncoding()
135 {
136 return encoding;
137 }
138
139
140
141
142
143
144 @ConfigDefault("0")
145 public int getGapBetweenMails()
146 {
147 return gapBetweenMails;
148 }
149
150
151
152
153
154
155 @ConfigDefault("0")
156 public int getLimitMaxEmails()
157 {
158 return limitMaxEmails;
159 }
160
161
162
163
164
165
166 @ConfigDefault("0")
167 public int getLimitTimeInterval()
168 {
169 return limitTimeInterval;
170 }
171
172
173
174
175
176
177 @ConfigDefault("domino.digitalis.pt")
178 public String getMailServer()
179 {
180 return mailServer;
181 }
182
183
184
185
186
187
188 public String getMailServerPassword()
189 {
190 return mailServerPassword;
191 }
192
193
194
195
196
197
198 public int getMailServerPort()
199 {
200 return mailServerPort;
201 }
202
203
204
205
206
207
208 public String getMailServerUsername()
209 {
210 return mailServerUsername;
211 }
212
213
214
215
216
217
218 @ConfigIgnore
219 public Properties getOriginalConfs()
220 {
221 return originalConfs;
222 }
223
224
225
226
227
228
229 @ConfigDefault("false")
230 public Boolean getUseSSL()
231 {
232 return useSSL;
233 }
234
235
236
237
238
239
240
241 public void setConfigurations(IConfigurations configurations)
242 {
243 this.configurations = configurations;
244 }
245
246
247
248
249
250
251
252 public void setDebugEnabled(String debugEnabled)
253 {
254 this.debugEnabled = debugEnabled;
255 }
256
257
258
259
260
261
262
263 public void setDefaultFromAddress(String defaultFromAddress)
264 {
265 this.defaultFromAddress = defaultFromAddress;
266 }
267
268
269
270
271
272
273
274 public void setEncoding(String enconding)
275 {
276 this.encoding = enconding;
277 }
278
279
280
281
282
283
284
285 public void setGapBetweenMails(int gapBetweenMails)
286 {
287 this.gapBetweenMails = gapBetweenMails;
288 }
289
290
291
292
293
294
295
296 public void setLimitMaxEmails(int limitMaxEmails)
297 {
298 this.limitMaxEmails = limitMaxEmails;
299 }
300
301
302
303
304
305
306
307 public void setLimitTimeInterval(int limitTimeInterval)
308 {
309 this.limitTimeInterval = limitTimeInterval;
310 }
311
312
313
314
315
316
317
318 public void setMailServer(String mailServer)
319 {
320 this.mailServer = mailServer;
321 }
322
323
324
325
326
327
328
329 public void setMailServerPassword(String mailServerPassword)
330 {
331 this.mailServerPassword = mailServerPassword;
332 }
333
334
335
336
337
338
339
340 public void setMailServerPort(int mailServerPort)
341 {
342 this.mailServerPort = mailServerPort;
343 }
344
345
346
347
348
349
350
351 public void setMailServerUsername(String mailServerUsername)
352 {
353 this.mailServerUsername = mailServerUsername;
354 }
355
356
357
358
359
360
361
362 public void setOriginalConfs(Properties originalConfs)
363 {
364 this.originalConfs = originalConfs;
365 }
366
367
368
369
370
371
372
373 public void setUseSSL(Boolean useSSL)
374 {
375 this.useSSL = useSSL;
376 }
377
378
379
380
381
382
383 public void writeConfiguration() throws Exception
384 {
385 this.getConfigurations().writeConfiguration(this);
386
387 }
388 }