@Override public void deleteAllMessages() { folder.deleteAllMessages(); }
/** * @see ImapHostManager#deleteMailbox */ @Override public void deleteMailbox(GreenMailUser user, String mailboxName) throws FolderException, AuthorizationException { MailFolder toDelete = getFolder(user, mailboxName, true); if (store.getChildren(toDelete).isEmpty()) { toDelete.deleteAllMessages(); toDelete.signalDeletion(); store.deleteMailbox(toDelete); } else { if (toDelete.isSelectable()) { toDelete.deleteAllMessages(); store.setSelectable(toDelete, false); } else { throw new FolderException("Can't delete a non-selectable store with children."); } } }
@Override public void purgeEmailFromAllMailboxes() throws FolderException { ImapHostManager imaphost = getManagers().getImapHostManager(); InMemoryStore store = (InMemoryStore) imaphost.getStore(); Collection<MailFolder> mailboxes = store.listMailboxes("*"); for (MailFolder folder : mailboxes) { folder.deleteAllMessages(); } }
/** * @see ImapHostManager#renameMailbox */ @Override public void renameMailbox(GreenMailUser user, String oldMailboxName, String newMailboxName) throws FolderException, AuthorizationException { MailFolder existingFolder = getFolder(user, oldMailboxName, true); // TODO: check permissions. // Handle case where existing is INBOX // - just create new folder, move all messages, // and leave INBOX (with children) intact. String userInboxName = getQualifiedMailboxName(user, INBOX_NAME); if (userInboxName.equals(existingFolder.getFullName())) { MailFolder newBox = createMailbox(user, newMailboxName); long[] uids = existingFolder.getMessageUids(); for (long uid : uids) { existingFolder.copyMessage(uid, newBox); } existingFolder.deleteAllMessages(); return; } store.renameMailbox(existingFolder, newMailboxName); }