+ public static class AclWrapper extends MailboxWrapper {
+ private Mailbox m;
+ private Acl.Entry acl;
+ public AclWrapper(Mailbox m, Acl.Entry acl) { super(m); this.acl = acl; }
+ public Mailbox.Iterator iterator(Query q) { if (acl.list) return new Mailbox.Iterator.AclWrapper(m.iterator(q), acl); else throw new Acl.PermissionDenied(); }
+ public Mailbox.Iterator iterator() { if (acl.list) return new Mailbox.Iterator.AclWrapper(m.iterator(), acl); else throw new Acl.PermissionDenied(); }
+ public void insert(Message message, int flags) { if (acl.insert) m.insert(message, flags); else throw new Acl.PermissionDenied(); }
+ public int uidValidity() { if (acl.list) return m.uidValidity(); else throw new Acl.PermissionDenied(); }
+ public void post(Message message) { if (acl.post) m.insert(message, Flag.RECENT); else throw new Acl.PermissionDenied(); }
+ public void move(Query q, Mailbox dest) { if (acl.list && acl.read && acl.delete) m.move(q, dest); else throw new Acl.PermissionDenied(); }
+ public void copy(Query q, Mailbox dest) { if (acl.list && acl.read) m.copy(q, dest); else throw new Acl.PermissionDenied(); }
+ public int count(Query q) { if (acl.list) return m.count(q); else throw new Acl.PermissionDenied(); }
+ public int uidNext() { if (acl.list) return m.uidNext(); else throw new Acl.PermissionDenied(); }
+ }