From 2eb539a065adf4c9dee6f0a105d68202bbedca8b Mon Sep 17 00:00:00 2001 From: adam Date: Sat, 1 Mar 2008 08:16:55 +0000 Subject: [PATCH] update naming in IMAP.java darcs-hash:20080301081655-5007d-24d432419ee65531208fa74d7639d4ffaba9f9ea.gz --- src/org/ibex/mail/IMAP.java | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/src/org/ibex/mail/IMAP.java b/src/org/ibex/mail/IMAP.java index fa4f437..1dab5ef 100644 --- a/src/org/ibex/mail/IMAP.java +++ b/src/org/ibex/mail/IMAP.java @@ -52,7 +52,7 @@ public class IMAP { public static interface Client { public void expunge(int uid); public void list(char separator, String mailbox, boolean lsub, boolean phantom); - public void fetch(int num, int flags, int size, Message m, int muid); // m may be null or incomplete + public void fetchResponse(int num, int flags, int size, Message m, int muid); // m may be null or incomplete } public static interface Server { @@ -206,9 +206,18 @@ public class IMAP { public void check() { } public void noop() { } public void logout() { } - public void close() { for(Mailbox.Iterator it=selected().iterator(Query.deleted()); it.next();) it.delete(); } + public void close() { + for(Mailbox.Iterator it=selected().iterator(Query.deleted()); it.next();) { + Log.error("imap", "deleting a message due to close(): " + it.cur().summary()); + it.delete(); + } + } public void expunge() { for(Mailbox.Iterator it = selected().iterator(Query.deleted());it.next();) expunge(it); } - public void expunge(Mailbox.Iterator it) { client.expunge(it.uid()); it.delete(); } + public void expunge(Mailbox.Iterator it) { + client.expunge(it.uid()); + Log.error("imap", "deleting a message due to expunge(): " + it.cur().summary()); + it.delete(); + } public void subscribe(String mailbox) { } public void unsubscribe(String mailbox) { } public int maxuid() { @@ -247,12 +256,13 @@ public class IMAP { else if (style == 0) it.setFlags(flags); else if (style == 1) it.setFlags(it.getFlags() | flags); //it.setFlag(Mailbox.Flag.RECENT, recent); - if (!silent) client.fetch(it.imapNumber(), it.getFlags(), -1, null, it.uid()); + if (!silent) client.fetchResponse(it.imapNumber(), it.getFlags(), -1, null, it.uid()); } } public void fetch(Query q, int spec, String[] headers, int start, int end, boolean uid) { for(Mailbox.Iterator it = selected().iterator(q); it.next(); ) { + // FIXME it would be great if we could avoid instantiating the entire message just because RFC822SIZE was requested Message message = ((spec & (BODYSTRUCTURE | RFC822 | RFC822TEXT | RFC822SIZE)) != 0) ? it.cur() @@ -261,7 +271,7 @@ public class IMAP { : null; if (message != null) Log.warn("spec", spec); long size = message == null ? 0 : message.getLength(); - client.fetch(it.imapNumber(), it.getFlags(), (int)size, message, it.uid()); + client.fetchResponse(it.imapNumber(), it.getFlags(), (int)size, message,it.uid()); it.setFlags(it.getFlags() & ~Mailbox.Flag.RECENT); } } @@ -334,10 +344,10 @@ public class IMAP { case EXPUNGE: selected(); api.expunge(); break; case UNSELECT: selected(); api.unselect(); selected = false; break; case CREATE: api.create(token().astring()); break; - case FETCH: selected(); lastuid = uid; fetch((uid - ? Query.uid(token().set(maxn(uid))) - : Query.imapNumber(token().set(maxn(uid)))), - lastfetch=token().lx(), 0, 0, 0, uid, 0); break; + case FETCH: selected(); lastuid = uid; _fetch((uid + ? Query.uid(token().set(maxn(uid))) + : Query.imapNumber(token().set(maxn(uid)))), + lastfetch=token().lx(), 0, 0, 0, uid, 0); break; case COPY: selected(); api.copy(uid ? Query.uid(token().set(maxn(uid))) : Query.imapNumber(token().set(maxn(uid))), token().astring()); break; @@ -422,7 +432,7 @@ public class IMAP { // Callbacks ////////////////////////////////////////////////////////////////////////////// public void expunge(int uid) { println("* " + uid + " EXPUNGE"); } - public void fetch(int n, int f, int size, Message m, int muid) { fetch(m, lastfetch, n, f, size, lastuid, muid); } + public void fetchResponse(int n, int f, int size, Message m, int muid) { _fetch(m, lastfetch, n, f, size, lastuid, muid); } public void list(char sep, String mb, boolean sub, boolean p) { println("* " + (sub?"LSUB":"LIST")+" ("+(p?"\\Noselect":"")+") \""+sep+"\" \""+mb+"\"");} @@ -434,7 +444,7 @@ public class IMAP { * - parse the fetch request in Token[] t and return a fetch spec * - emit a fetch reply for the parsed spec with respect to message m */ - private void fetch(Object o, Parser.Token[] t, int num, int flags, int size, boolean uid, int muid) { + private void _fetch(Object o, Parser.Token[] t, int num, int flags, int size, boolean uid, int muid) { Query q = o == null ? null : o instanceof Query ? (Query)o : null; Message m = o == null ? null : o instanceof Message ? (Message)o : null; boolean e = q == null; @@ -907,5 +917,4 @@ public class IMAP { public static final int PEEK=0x1, BODYSTRUCTURE=0x2, ENVELOPE=0x4, FLAGS=0x8, INTERNALDATE=0x10, FIELDS=0x800, FIELDSNOT=0x1000, RFC822=0x20, RFC822TEXT=0x40, RFC822SIZE=0x80, HEADERNOT=0x100, UID=0x200, HEADER=0x400; - } -- 1.7.10.4