1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 package de.saly.javamail.mock2;
27
28 import java.util.HashMap;
29 import java.util.Map;
30
31 import javax.mail.Address;
32 import javax.mail.internet.AddressException;
33 import javax.mail.internet.InternetAddress;
34
35 public class MockMailbox {
36
37 private static final Map<Address, MockMailbox> mailboxes = new HashMap<Address, MockMailbox>();
38
39 public synchronized static MockMailbox get(final Address a) {
40 MockMailbox mb = mailboxes.get(a);
41 if (mb == null) {
42 mailboxes.put(a, mb = new MockMailbox(a));
43 }
44 return mb;
45 }
46
47 public static MockMailbox get(final String address) throws AddressException {
48 return get(new InternetAddress(address));
49 }
50
51 public static void resetAll() {
52
53 mailboxes.clear();
54
55 }
56
57 private final Address address;
58 private final MailboxFolder inbox;
59
60 private final MailboxFolder root = new MailboxFolder("", this, true);
61
62 private MockMailbox(final Address address) {
63 super();
64 this.address = address;
65 inbox = root.addSpecialSubFolder("INBOX");
66 }
67
68 private MockMailbox(final String address) throws AddressException {
69 this(new InternetAddress(address));
70 }
71
72
73
74
75 public Address getAddress() {
76 return address;
77 }
78
79 public MailboxFolder getInbox() {
80 return inbox;
81 }
82
83 public MailboxFolder getRoot() {
84 return root;
85 }
86
87 }