rename MailboxTree -> MailTree
[org.ibex.mail.git] / src / org / ibex / mail / IMAP.java
index dc3b8f3..a111429 100644 (file)
@@ -102,7 +102,7 @@ public class IMAP {
 
         Mailbox inbox = null;
         Mailbox selected = null;
-        MailboxTree root = null;
+        MailTree root = null;
         Mailbox selected() { if (selected == null) throw new Bad("no mailbox selected"); return selected; }
         final Login auth;
         final Client client;
@@ -115,12 +115,12 @@ public class IMAP {
         private Mailbox mailbox(String name, boolean create) { return mailbox(name, create, true); }
         private Mailbox mailbox(String name, boolean create, boolean throwexn) {
             if (name.equalsIgnoreCase("inbox")) return inbox;
-            MailboxTree mt =  mailboxTree(name, create, throwexn);
+            MailTree mt =  mailboxTree(name, create, throwexn);
             return mt==null ? null : mt.getMailbox();
         }
-        private MailboxTree mailboxTree(String name, boolean create) { return mailboxTree(name, create, true); }
-        private MailboxTree mailboxTree(String name, boolean create, boolean throwexn) {
-            MailboxTree m = root;
+        private MailTree mailboxTree(String name, boolean create) { return mailboxTree(name, create, true); }
+        private MailTree mailboxTree(String name, boolean create, boolean throwexn) {
+            MailTree m = root;
             for(StringTokenizer st = new StringTokenizer(name, sep + ""); st.hasMoreTokens();)
                 if ((m = m.slash(st.nextToken(), create)) == null) {
                     if (throwexn) throw new Server.No("no such mailbox " + name);
@@ -144,7 +144,7 @@ public class IMAP {
             for(int i=0; i<children.length; i++) {
                 String s = children[i], pre = ref, kid = start + (start.length() > 0 ? sep+"" : "") + s;                
                 if (mailbox(kid, false) == null) continue;
-                MailboxTree phant = mailboxTree(kid, false, false);
+                MailTree phant = mailboxTree(kid, false, false);
                 if (phant != null) {
                     boolean phantom = phant.getMailbox()==null;
                     while(true) {
@@ -183,11 +183,16 @@ public class IMAP {
         public void unselect() { selected = null; }
 
         public void delete(String m0) { mailboxTree(dirname(m0),false).rmdir(basename(m0)); }
+
         public void rename(String from0, String to) {
             Mailbox from = mailbox(from0, false);
             if (from.equals(inbox))                { from.copy(Query.all(), mailbox(to, true)); }
             else if (to.equalsIgnoreCase("inbox")) { from.copy(Query.all(), mailbox(to, true)); delete(from0); }
-            else mailboxTree(dirname(from0), false).rename(dirname(from0), mailboxTree(dirname(to), false), basename(to));
+            else mailboxTree(dirname(from0), false)
+                     .rename(dirname(from0),
+                             mailboxTree(dirname(to),
+                                         true /* required by IMAP */),
+                             basename(to));
         }
 
         public void create(String m) { mailbox(m, true, false); }
@@ -260,7 +265,7 @@ public class IMAP {
     public static class Listener implements Client {
         String selectedName = null;
         Mailbox inbox = null;
-        MailboxTree root = null;
+        MailTree root = null;
         Server api;
         Parser parser = null;
         Connection conn = null;
@@ -284,7 +289,7 @@ public class IMAP {
             } else {
                 Account account = (Account)ret;
                 ((MailboxWrapper)api).root = root = account.getMailbox(IMAP.class);
-                MailboxTree ibt = root.slash("INBOX", false);
+                MailTree ibt = root.slash("INBOX", false);
                 Mailbox ib = ibt==null ? null : ibt.getMailbox();
                 ((MailboxWrapper)api).inbox = inbox = ib;
             }