From: adam Date: Sun, 13 Jun 2004 04:18:14 +0000 (+0000) Subject: more cleanup X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=3bb3725cc8cd583b54936dd098081b13d7ff6e4c;p=org.ibex.mail.git more cleanup darcs-hash:20040613041814-5007d-ec89b818f10644093f6bb531da0b4325775083dd.gz --- diff --git a/src/org/ibex/mail/Query.java b/src/org/ibex/mail/Query.java index 4037b4b..5369f55 100644 --- a/src/org/ibex/mail/Query.java +++ b/src/org/ibex/mail/Query.java @@ -37,6 +37,7 @@ public class Query { public static Query draft() { return new Query(DRAFT, null, 0, 0, 0, null, null, null, null, null); } public static Query answered() { return new Query(ANSWERED, null, 0, 0, 0, null, null, null, null, null); } public static Query recent() { return new Query(RECENT, null, 0, 0, 0, null, null, null, null, null); } + public static Query set(boolean uid, int[] set) { return uid ? uid(set) : num(set); } private Query(int type, Query[] q,int min,int max, int flags, String key, String text, Date earliest, Date latest, int[] set) { this.type = type; this.q = q; this.min = min; this.max = max; this.flags = flags; this.key = key; this.text = text; diff --git a/src/org/ibex/mail/protocol/IMAP.java b/src/org/ibex/mail/protocol/IMAP.java index 1963ce2..21e937a 100644 --- a/src/org/ibex/mail/protocol/IMAP.java +++ b/src/org/ibex/mail/protocol/IMAP.java @@ -72,7 +72,7 @@ public class IMAP extends MessageProtocol { return m; } - // FIXME: not accurate when a wildcard and subsequent non-wildcards both match a single component + // FEATURE: not accurate when a wildcard and subsequent non-wildcards both match a single component public HashSet lsub(String start, String ref, HashSet reply) { return list(start, ref, reply); } public HashSet list(String start, String ref, HashSet reply) { if (reply == null) reply = new HashSet(); @@ -124,30 +124,17 @@ public class IMAP extends MessageProtocol { public void expunge(Mailbox.Iterator it) { star(it.uid() + " EXPUNGE"); it.delete(); } public void subscribe(String mailbox) { } public void unsubscribe(String mailbox) { } + public int seen(String mailbox) { return getMailbox(mailbox, false).count(Query.seen()); } + public int recent(String mailbox) { return getMailbox(mailbox, false).count(Query.recent()); } + public int count(String mailbox) { return getMailbox(mailbox, false).count(Query.all()); } + public int uidNext(String mailbox) { return getMailbox(mailbox, false).uidNext(); } + public int uidValidity(String mailbox) { return getMailbox(mailbox, false).uidValidity(); } public void rename(Mailbox from, String to) { if (from.equals(inbox)) from.copy(Query.all(), getMailbox(to, true)); else if (to.equalsIgnoreCase("inbox")) { from.copy(Query.all(), getMailbox(to, true)); from.destroy(); } else from.rename(to); } - // FIXME lift out unparsing - public void status(Mailbox m, Token[] attrs) { - int seen = 0, recent = 0, messages = 0; - for(Mailbox.Iterator it = m.iterator(); it.next(); ) { if (!it.seen()) seen++; if (it.recent()) recent++; messages++; } - String response = ""; - for(int i=0; i