}
public static abstract class Iterator implements Mailbox.Iterator {
// FIXME: NNTP spec allows us to use longs (64-bit) here
+ // FIXME: NNTP spec requires that the minimum nntpNumber of a group must never, ever decrease (no, that's not a typo)
public int nntpNumber() { throw new MailException("not supported"); }
public int getFlags() { return 0; }
public void setFlags(int flags) { throw new MailException("not supported"); }
/**
* Message number according to IMAP semantics.
+ * - must range from 1..numMessagesInMailbox
* - no two messages in the same mailbox may have the same imapNumber
* - sorting by uid must yield the same order as sorting them by imapNumber
- * - imapNumber may only change if uidValidity changes
- * - if uidValidity changes, imapNumbers may change or be reused
+ * - imapNumber changes when messages with lower imapNumbers are deleted
*/
public abstract int imapNumber();
public int uidValidity() { return m.uidValidity(); }
}
- public static abstract class AclWrapper extends MailboxWrapper {
+ public static class AclWrapper extends MailboxWrapper {
private Mailbox m;
private Acl.Entry acl;
public AclWrapper(Mailbox m, Acl.Entry acl) { super(m); this.acl = acl; }