From: adam Date: Mon, 16 Aug 2004 02:01:27 +0000 (+0000) Subject: make exception-throwing optional in IMAP mailbox() X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=f03cbdca6f0b14637024502334b45f5daeb024e2;p=org.ibex.mail.git make exception-throwing optional in IMAP mailbox() darcs-hash:20040816020127-5007d-32ed988363b6cbab840a8338e36c400b8e1cad76.gz --- diff --git a/src/org/ibex/mail/protocol/IMAP.java b/src/org/ibex/mail/protocol/IMAP.java index 1c9b5c6..4ec0fb1 100644 --- a/src/org/ibex/mail/protocol/IMAP.java +++ b/src/org/ibex/mail/protocol/IMAP.java @@ -98,11 +98,15 @@ public class IMAP { public MailboxWrapper(Login auth, Client c) { this.auth=auth; this.client=c;} - private Mailbox mailbox(String name, boolean create) { + 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; Mailbox m = root; for(StringTokenizer st = new StringTokenizer(name, sep + ""); st.hasMoreTokens();) - if ((m = m.slash(st.nextToken(), create)) == null) throw new Server.No("no such mailbox " + name); + if ((m = m.slash(st.nextToken(), create)) == null) { + if (throwexn) throw new Server.No("no such mailbox " + name); + return null; + } return m; } @@ -158,7 +162,7 @@ public class IMAP { public void unselect() { selected = null; } public void delete(String m0) { delete(mailbox(m0,false)); } public void delete(Mailbox m) { if (!m.equals(inbox)) m.destroy(false); else throw new Bad("can't delete inbox"); } - public void create(String m) { mailbox(m, true); } + public void create(String m) { mailbox(m, true, false); } public void append(String m,int f,Date a,String b) { try { mailbox(m,false).add(new Message(new Stream(b), new Message.Envelope(null,null,a)),f|Mailbox.Flag.RECENT); } catch (Message.Malformed e) { throw new No(e.getMessage()); } }