1
2
3
4
5
6
7
8
9
10
11
12
13 package org.abstracthorizon.mercury.maildir.uid;
14
15 import javax.mail.Folder;
16 import javax.mail.MessagingException;
17 import javax.mail.internet.MimeMessage;
18
19 import org.abstracthorizon.mercury.maildir.util.MessageWrapper;
20
21
22
23
24
25
26
27 public class UIDMessageWrapper extends
28
29
30
31
32
33
34
35
36 protected UIDMessageWrapper(Folder folder, UIDMaildirMessage message, int msgnum) throws MessagingException {
37 super(folder, message, msgnum);
38 }
39
40
41
42
43
44 public MimeMessage getMessage() {
45 return message;
46 }
47
48
49
50
51
52
53
54
55 public UID getUID() throws MessagingException {
56 if (message == null) {
57 throw new IllegalStateException("Supplied message is empty");
58 }
59 if (message instanceof UIDMaildirMessage) {
60 return ((UIDMaildirMessage)message).getUID();
61 }
62 throw new IllegalStateException("Supplied message is not UIDMessage");
63 }
64
65
66
67
68
69
70
71 public boolean equals(Object o) {
72 if (o instanceof UIDMessageWrapper) {
73 try {
74 long u1 = getUID().getUID();
75 long u2 = ((UIDMessageWrapper)o).getUID().getUID();
76 if ((u1 == u2) && (getFolder().getFullName().equals(((UIDMessageWrapper)o).getFolder().getFullName()))) {
77 return true;
78 }
79 } catch (MessagingException ignore) {
80 }
81 }
82 return false;
83 }
84
85
86
87
88
89
90
91 public int compareTo(UIDMessage o) {
92 if (o instanceof UIDMessage) {
93 try {
94 long u1 = getUID().getUID();
95 long u2 = o.getUID().getUID();
96 if (u1 == u2) {
97 return 0;
98 } else if (u1 < u2) {
99 return -1;
100 } else {
101 return 1;
102 }
103 } catch (MessagingException ignore) {
104 }
105 }
106 return -1;
107 }
108 }