]> WPIA git - gigi.git/blob - util-testing/club/wpia/gigi/email/DelegateMailProvider.java
fix: ResultSet.getDate is often wrong as it fetches day-precision times
[gigi.git] / util-testing / club / wpia / gigi / email / DelegateMailProvider.java
1 package club.wpia.gigi.email;
2
3 import java.io.IOException;
4 import java.security.Key;
5 import java.security.cert.Certificate;
6 import java.util.Properties;
7
8 import club.wpia.gigi.email.EmailProvider;
9
10 public abstract class DelegateMailProvider extends EmailProvider {
11
12     private EmailProvider target;
13
14     public DelegateMailProvider(Properties props, String name) {
15         try {
16             if (name != null) {
17                 Class<?> c = Class.forName(name);
18                 target = (EmailProvider) c.getDeclaredConstructor(Properties.class).newInstance(props);
19             }
20         } catch (ReflectiveOperationException e) {
21             e.printStackTrace();
22         }
23     }
24
25     public EmailProvider getTarget() {
26         return target;
27     }
28
29     @Override
30     public void sendMail(String to, String subject, String message, String replyto, String toname, String fromname, String errorsto, boolean extra) throws IOException {
31         if (target != null) {
32             target.sendMail(to, subject, message, replyto, toname, fromname, errorsto, extra);
33         }
34     }
35
36     @Override
37     public String checkEmailServer(int forUid, String address) throws IOException {
38         if (target != null) {
39             return target.checkEmailServer(forUid, address);
40         }
41         return OK;
42     }
43
44     @Override
45     protected void init(Certificate c, Key k) {
46         super.init(c, k);
47         if (target != null) {
48             target.init(c, k);
49         }
50     }
51 }