1 package com.atlassian.mail;
2
3 import com.atlassian.mail.server.MailServerManager;
4
5 import java.util.ArrayList;
6 import java.util.EnumSet;
7 import java.util.List;
8
9
10
11
12
13
14
15 public enum MailProtocol
16 {
17 SMTP("smtp", "25", MailServerManager.SERVER_TYPES[1]),
18 SECURE_SMTP("smtps", "465", MailServerManager.SERVER_TYPES[1]),
19 POP("pop3", "110", MailServerManager.SERVER_TYPES[0]),
20 SECURE_POP("pop3s", "995", MailServerManager.SERVER_TYPES[0]),
21 IMAP("imap", "143", MailServerManager.SERVER_TYPES[0]),
22 SECURE_IMAP("imaps", "993", MailServerManager.SERVER_TYPES[0]);
23
24 private final String protocol;
25 private final String defaultPort;
26 private final String mailServerType;
27
28 MailProtocol(String protocol, String defaultPort, String serverType)
29 {
30 this.protocol = protocol;
31 this.defaultPort = defaultPort;
32 this.mailServerType = serverType;
33 }
34
35 public String getProtocol()
36 {
37 return protocol;
38 }
39
40 public String getDefaultPort()
41 {
42 return defaultPort;
43 }
44
45 public String getMailServerType()
46 {
47 return mailServerType;
48 }
49
50 public static MailProtocol getMailProtocol(String protocol) {
51 MailProtocol mailProtocol = null;
52 for (final MailProtocol element: EnumSet.allOf(MailProtocol.class))
53 {
54 if(element.getProtocol().equals(protocol)) {
55 mailProtocol = element;
56 break;
57 }
58 }
59 return mailProtocol;
60 }
61
62 public static MailProtocol[] getMailProtocolsForServerType(String serverType)
63 {
64 final List<MailProtocol> mailProtocols = new ArrayList<MailProtocol>();
65 for (final MailProtocol element: EnumSet.allOf(MailProtocol.class))
66 {
67 if(element.getMailServerType().equals(serverType)) {
68 mailProtocols.add(element);
69 }
70 }
71 return mailProtocols.toArray(new MailProtocol[mailProtocols.size()]);
72 }
73 }