import java.text.*;
/** abstract superclass for mailboxes, which store messages along with their flags */
-public abstract class Mailbox extends JS.Obj implements Target {
+public abstract class Mailbox extends MailboxTree implements Target {
public JS get(JS key) throws JSExn {
return slash(JSU.toString(key), true);
public abstract int uidNext();
public abstract void rename(String newName); /* FIXME: IMAP semantics require creating parent dirs */
public abstract void destroy(boolean recursive);
- public abstract Mailbox slash(String name, boolean create);
- public abstract String[] children();
+ public Mailbox getMailbox() { return this; }
// Thunks ////////////////////////////////////////////////////////////////////////////
public int count(Query q) { int count = 0; for(Mailbox.Iterator it = iterator(q); it.next();) count++; return count; }
public void rename(String newName) { throw new MailException("not supported"); }
public void destroy(boolean recursive) { throw new MailException("not supported"); }
- public Mailbox slash(String name, boolean create) { return null; }
+ public MailboxTree slash(String name, boolean create) { return null; }
public String[] children() { return new String[] { }; }
public void post(Message message) { insert(message, Flag.RECENT); }
public void move(Query q, Mailbox dest) {
public int uidNext() { return m.uidNext(); }
public void rename(String newName) { m.rename(newName); }
public void destroy(boolean recursive) { m.destroy(recursive); }
- public Mailbox slash(String name, boolean create) { return m.slash(name, create); }
+ public MailboxTree slash(String name, boolean create) { return m.slash(name, create); }
public String[] children() { return m.children(); }
public Mailbox.Iterator iterator() { return m.iterator(); }
public int uidValidity() { return m.uidValidity(); }