Interface Store

All Known Implementing Classes:
InMemoryStore

public interface Store
Represents the complete mail store for an IMAP server, providing access to and manipulation of all Mailboxes stored on this server.
Version:
$Revision: 109034 $
Author:
Darrell DeBoer <darrell@apache.org>
  • Method Details

    • getMailbox

      MailFolder getMailbox(String qualifiedMailboxName)
      Retrieves a mailbox based on a fully qualified name.
      Parameters:
      qualifiedMailboxName -
      Returns:
      The mailbox if present, or null if not.
    • getMailbox

      MailFolder getMailbox(MailFolder parent, String mailboxName)
      Looks up a child mailbox of the supplied parent with the name given.
      Parameters:
      parent - The parent mailbox
      mailboxName - The name of the child to lookup
      Returns:
      The child mailbox, or null if not found.
    • getChildren

      Collection getChildren(MailFolder parent)
      Parameters:
      parent - A mailbox from this store.
      Returns:
      A read-only collection of MailFolder instances, which are the children of the supplied parent.
    • createMailbox

      MailFolder createMailbox(MailFolder parent, String mailboxName, boolean selectable) throws FolderException
      Creates a mailbox under the supplied parent with the given name. If specified, the mailbox created will be made selectable (able to store messages).
      Parameters:
      parent - A mailbox from this store.
      mailboxName - The name of the mailbox to create.
      selectable - If true, the mailbox will be created to store messages.
      Returns:
      The created mailbox
      Throws:
      FolderException - If the mailbox couldn't be created.
    • setSelectable

      MailFolder setSelectable(MailFolder folder, boolean selectable)
      Tells the store to make the supplied mailbox selectable or not (able to store messages). The returned mailbox may be a new instance, and the supplied mailbox may no longer be valid.
      Parameters:
      folder - The mailbox to modify.
      selectable - Whether this mailbox should be able to store messages.
      Returns:
      The modified mailbox
    • deleteMailbox

      void deleteMailbox(MailFolder folder) throws FolderException
      Deletes the supplied mailbox from the store. To be deleted, mailboxes must be empty of messages, and not have any children.
      Parameters:
      folder - A mailbox from this store.
      Throws:
      FolderException - If the mailbox couldn't be deleted.
    • renameMailbox

      void renameMailbox(MailFolder existingFolder, String newName) throws FolderException
      Renames the mailbox with the new name.
      Parameters:
      existingFolder - A mailbox from this store.
      newName - The new name for the mailbox.
      Throws:
      FolderException - If the mailbox couldn't be renamed
    • listMailboxes

      Collection listMailboxes(String searchPattern) throws FolderException
      Lists all of the mailboxes in the store which have a name matching the supplied search pattern.
       Valid wildcards are:
                '*' - matches any number of characters, including the hierarchy delimiter
                '%' - matches any number of characters, but not the hierarchy delimiter
      Parameters:
      searchPattern - The pattern to match mailboxes
      Returns:
      A read-only collection of mailboxes which match this pattern
      Throws:
      FolderException - If the list operation failed