]> WPIA git - gigi.git/blob - util-testing/org/cacert/gigi/email/DelegateMailProvider.java
upd: make email sender address fixed.
[gigi.git] / util-testing / org / cacert / gigi / email / DelegateMailProvider.java
1 package org.cacert.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 public abstract class DelegateMailProvider extends EmailProvider {
9
10     private EmailProvider target;
11
12     public DelegateMailProvider(Properties props, String name) {
13         try {
14             if (name != null) {
15                 Class<?> c = Class.forName(name);
16                 target = (EmailProvider) c.getDeclaredConstructor(Properties.class).newInstance(props);
17             }
18         } catch (ReflectiveOperationException e) {
19             e.printStackTrace();
20         }
21     }
22
23     public EmailProvider getTarget() {
24         return target;
25     }
26
27     @Override
28     public void sendMail(String to, String subject, String message, String replyto, String toname, String fromname, String errorsto, boolean extra) throws IOException {
29         if (target != null) {
30             target.sendMail(to, subject, message, replyto, toname, fromname, errorsto, extra);
31         }
32     }
33
34     @Override
35     public String checkEmailServer(int forUid, String address) throws IOException {
36         if (target != null) {
37             return target.checkEmailServer(forUid, address);
38         }
39         return OK;
40     }
41
42     @Override
43     protected void init(Certificate c, Key k) {
44         super.init(c, k);
45         if (target != null) {
46             target.init(c, k);
47         }
48     }
49 }