Methods Summary |
---|
public static com.sun.mail.imap.protocol.UIDSet[] | createUIDSets(long[] msgs)
Vector v = new Vector();
int i,j;
for (i=0; i < msgs.length; i++) {
UIDSet ms = new UIDSet();
ms.start = msgs[i];
// Look for contiguous elements
for (j=i+1; j < msgs.length; j++) {
if (msgs[j] != msgs[j-1] +1)
break;
}
ms.end = msgs[j-1];
v.addElement(ms);
i = j-1; // i gets incremented @ top of the loop
}
UIDSet[] msgsets = new UIDSet[v.size()];
v.copyInto(msgsets);
return msgsets;
|
public long | size()Count the total number of elements in a UIDSet
return end - start + 1;
|
public static long | size(com.sun.mail.imap.protocol.UIDSet[] msgsets)
long count = 0;
if (msgsets == null) // Null msgset
return 0;
for (int i=0; i < msgsets.length; i++)
count += msgsets[i].size();
return count;
|
public static java.lang.String | toString(com.sun.mail.imap.protocol.UIDSet[] msgsets)Convert an array of UIDSets into an IMAP sequence range
if (msgsets == null || msgsets.length == 0) // Empty msgset
return null;
int i = 0; // msgset index
StringBuffer s = new StringBuffer();
int size = msgsets.length;
long start, end;
for (;;) {
start = msgsets[i].start;
end = msgsets[i].end;
if (end > start)
s.append(start).append(':").append(end);
else // end == start means only one element
s.append(start);
i++; // Next UIDSet
if (i >= size) // No more UIDSets
break;
else
s.append(',");
}
return s.toString();
|