rename SqliteJdbcMailbox -> SqliteMailbox
[org.ibex.mail.git] / src / org / ibex / mail / Mailbox.java
index 59c8268..046bd12 100644 (file)
@@ -56,6 +56,7 @@ public abstract class Mailbox extends JS.Obj implements Target {
         }
         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"); }
@@ -76,10 +77,10 @@ public abstract class Mailbox extends JS.Obj implements Target {
 
         /**
          *  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();
 
@@ -169,7 +170,7 @@ public abstract class Mailbox extends JS.Obj implements Target {
         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; }