com.sun.mail.imap
Class IMAPStore

java.lang.Object
  |
  +--javax.mail.Service
        |
        +--javax.mail.Store
              |
              +--com.sun.mail.imap.IMAPStore
All Implemented Interfaces:
com.sun.mail.iap.ResponseHandler

public class IMAPStore
extends Store
implements com.sun.mail.iap.ResponseHandler

This class provides access to an IMAP message store.

Applications that need to make use of IMAP-specific features may cast a Store object to an IMAPStore object and use the methods on this class. The getQuota and setQuota methods support the IMAP QUOTA extension. Refer to RFC 2087 for more information.

See the com.sun.mail.imap package documentation for further information on the IMAP protocol provider.

WARNING: The APIs unique to this class should be considered EXPERIMENTAL. They may be changed in the future in ways that are incompatible with applications using the current APIs.


Constructor Summary
IMAPStore(Session session, URLName url)
          Constructor that takes a Session object and a URLName that represents a specific IMAP server.
 
Method Summary
 void close()
          Close this Store.
 Folder getDefaultFolder()
          Get the default folder, representing the root of this user's namespace.
 Folder getFolder(java.lang.String name)
          Get named folder.
 Folder getFolder(URLName url)
          Get named folder.
 Folder[] getPersonalNamespaces()
          Using the IMAP NAMESPACE command (RFC 2342), return a set of folders representing the Personal namespaces.
 Quota[] getQuota(java.lang.String root)
          Get the quotas for the named quota root.
 Folder[] getSharedNamespaces()
          Using the IMAP NAMESPACE command (RFC 2342), return a set of folders representing the Shared namespaces.
 Folder[] getUserNamespaces(java.lang.String user)
          Using the IMAP NAMESPACE command (RFC 2342), return a set of folders representing the User's namespaces.
 void handleResponse(com.sun.mail.iap.Response r)
          Response handler method.
 boolean isConnected()
          Check whether this store is connected.
 void setQuota(Quota quota)
          Set the quotas for the quota root specified in the quota argument.
 
Methods inherited from class javax.mail.Store
addFolderListener, addStoreListener, removeFolderListener, removeStoreListener
 
Methods inherited from class javax.mail.Service
addConnectionListener, connect, connect, connect, getURLName, removeConnectionListener, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IMAPStore

public IMAPStore(Session session,
                 URLName url)
Constructor that takes a Session object and a URLName that represents a specific IMAP server.
Method Detail

isConnected

public boolean isConnected()
Check whether this store is connected. Override superclass method, to actually ping our server connection.
Overrides:
isConnected in class Service

close

public void close()
           throws MessagingException
Close this Store.
Overrides:
close in class Service

getDefaultFolder

public Folder getDefaultFolder()
                        throws MessagingException
Get the default folder, representing the root of this user's namespace. Returns a closed DefaultFolder object.
Overrides:
getDefaultFolder in class Store

getFolder

public Folder getFolder(java.lang.String name)
                 throws MessagingException
Get named folder. Returns a new, closed IMAPFolder.
Overrides:
getFolder in class Store

getFolder

public Folder getFolder(URLName url)
                 throws MessagingException
Get named folder. Returns a new, closed IMAPFolder.
Overrides:
getFolder in class Store

getPersonalNamespaces

public Folder[] getPersonalNamespaces()
                               throws MessagingException
Using the IMAP NAMESPACE command (RFC 2342), return a set of folders representing the Personal namespaces.
Overrides:
getPersonalNamespaces in class Store

getUserNamespaces

public Folder[] getUserNamespaces(java.lang.String user)
                           throws MessagingException
Using the IMAP NAMESPACE command (RFC 2342), return a set of folders representing the User's namespaces.
Overrides:
getUserNamespaces in class Store

getSharedNamespaces

public Folder[] getSharedNamespaces()
                             throws MessagingException
Using the IMAP NAMESPACE command (RFC 2342), return a set of folders representing the Shared namespaces.
Overrides:
getSharedNamespaces in class Store

getQuota

public Quota[] getQuota(java.lang.String root)
                 throws MessagingException
Get the quotas for the named quota root. Quotas are controlled on the basis of a quota root, not (necessarily) a folder. The relationship between folders and quota roots depends on the IMAP server. Some servers might implement a single quota root for all folders owned by a user. Other servers might implement a separate quota root for each folder. A single folder can even have multiple quota roots, perhaps controlling quotas for different resources.
Parameters:
root - the name of the quota root
Returns:
array of Quota objects
Throws:
MessagingException - if the server doesn't support the QUOTA extension

setQuota

public void setQuota(Quota quota)
              throws MessagingException
Set the quotas for the quota root specified in the quota argument. Typically this will be one of the quota roots obtained from the getQuota method, but it need not be.
Parameters:
quota - the quota to set
Throws:
MessagingException - if the server doesn't support the QUOTA extension

handleResponse

public void handleResponse(com.sun.mail.iap.Response r)
Response handler method.
Specified by:
handleResponse in interface com.sun.mail.iap.ResponseHandler