Package gnu.mail.providers.imap
Class IMAPStore
- java.lang.Object
-
- javax.mail.Service
-
- javax.mail.Store
-
- gnu.mail.providers.imap.IMAPStore
-
public class IMAPStore extends Store
The storage class implementing the IMAP4rev1 mail protocol.- Author:
- Chris Burdess
-
-
Field Summary
Fields Modifier and Type Field Description protected org.jpackage.mail.inet.imap.IMAPConnectionconnectionThe connection to the IMAP server.protected IMAPFolderrootFolder representing the root namespace of the IMAP connection.protected IMAPFolderselectedThe currently selected folder.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Closes the connection.protected org.jpackage.mail.inet.imap.IMAPConnectiongetConnection()Returns the IMAP connection used by this store.FoldergetDefaultFolder()Returns the root folder.FoldergetFolder(java.lang.String name)Returns the folder with the specified name.FoldergetFolder(URLName urlname)Returns the folder whose name is the file part of the specified URLName.Folder[]getPersonalNamespaces()Returns a list of folders representing personal namespaces.org.jpackage.mail.inet.imap.QuotagetQuota(java.lang.String root)Returns the quota for the specified quota root.Folder[]getSharedNamespaces()Returns a list of folders representing shared namespaces.protected javax.net.ssl.TrustManagergetTrustManager()Returns a trust manager used for TLS negotiation.Folder[]getUserNamespaces()Returns a list of folders representing other users' namespaces.booleanisConnected()Uses a NOOP to ensure that the connection to the IMAP server is still valid.protected booleanisSelected(IMAPFolder folder)Indicates whether the specified folder is selected.protected voidprocessAlerts()Process any alerts supplied by the server.protected booleanprotocolConnect(java.lang.String host, int port, java.lang.String username, java.lang.String password)Connects to the IMAP server and authenticates with the specified parameters.voidsetQuota(java.lang.String root, org.jpackage.mail.inet.imap.Quota.Resource[] resources)Sets the quota resource set for the specified quota root.protected voidsetSelected(IMAPFolder folder)Sets the selected folder.-
Methods inherited from class javax.mail.Store
addFolderListener, addStoreListener, getUserNamespaces, notifyFolderListeners, notifyFolderRenamedListeners, notifyStoreListeners, removeFolderListener, removeStoreListener
-
Methods inherited from class javax.mail.Service
addConnectionListener, connect, connect, connect, connect, getURLName, notifyConnectionListeners, queueEvent, removeConnectionListener, setConnected, setURLName, toString
-
-
-
-
Field Detail
-
connection
protected org.jpackage.mail.inet.imap.IMAPConnection connection
The connection to the IMAP server.
-
root
protected IMAPFolder root
Folder representing the root namespace of the IMAP connection.
-
selected
protected IMAPFolder selected
The currently selected folder.
-
-
Method Detail
-
protocolConnect
protected boolean protocolConnect(java.lang.String host, int port, java.lang.String username, java.lang.String password) throws MessagingExceptionConnects to the IMAP server and authenticates with the specified parameters.- Overrides:
protocolConnectin classService- Parameters:
host- the name of the host to connect toport- the port to use (-1 for the default port)username- the usernamepassword- the password- Returns:
- true on success, false if authentication failed
- Throws:
AuthenticationFailedException- on authentication failureMessagingException- for non-authentication failures
-
getTrustManager
protected javax.net.ssl.TrustManager getTrustManager() throws MessagingExceptionReturns a trust manager used for TLS negotiation.- Throws:
MessagingException
-
close
public void close() throws MessagingExceptionCloses the connection.- Overrides:
closein classService- Throws:
MessagingException
-
getDefaultFolder
public Folder getDefaultFolder() throws MessagingException
Returns the root folder.- Specified by:
getDefaultFolderin classStore- Throws:
MessagingException
-
getFolder
public Folder getFolder(java.lang.String name) throws MessagingException
Returns the folder with the specified name.- Specified by:
getFolderin classStore- Parameters:
name- the folder name- Throws:
MessagingException
-
getFolder
public Folder getFolder(URLName urlname) throws MessagingException
Returns the folder whose name is the file part of the specified URLName.- Specified by:
getFolderin classStore- Parameters:
urlname- a URLName denoting a folder- Throws:
MessagingException
-
isConnected
public boolean isConnected()
Uses a NOOP to ensure that the connection to the IMAP server is still valid.- Overrides:
isConnectedin classService
-
getConnection
protected org.jpackage.mail.inet.imap.IMAPConnection getConnection() throws StoreClosedExceptionReturns the IMAP connection used by this store.- Throws:
StoreClosedException- if the store is not currently connected
-
isSelected
protected boolean isSelected(IMAPFolder folder)
Indicates whether the specified folder is selected.
-
setSelected
protected void setSelected(IMAPFolder folder)
Sets the selected folder.
-
processAlerts
protected void processAlerts()
Process any alerts supplied by the server.
-
getPersonalNamespaces
public Folder[] getPersonalNamespaces() throws MessagingException
Returns a list of folders representing personal namespaces. See RFC 2342 for details.- Overrides:
getPersonalNamespacesin classStore- Throws:
MessagingException
-
getUserNamespaces
public Folder[] getUserNamespaces() throws MessagingException
Returns a list of folders representing other users' namespaces. See RFC 2342 for details.- Throws:
MessagingException
-
getSharedNamespaces
public Folder[] getSharedNamespaces() throws MessagingException
Returns a list of folders representing shared namespaces. See RFC 2342 for details.- Overrides:
getSharedNamespacesin classStore- Throws:
MessagingException
-
getQuota
public org.jpackage.mail.inet.imap.Quota getQuota(java.lang.String root) throws MessagingExceptionReturns the quota for the specified quota root.- Parameters:
root- the quota root- Throws:
MessagingException
-
setQuota
public void setQuota(java.lang.String root, org.jpackage.mail.inet.imap.Quota.Resource[] resources) throws MessagingExceptionSets the quota resource set for the specified quota root.- Parameters:
root- the quota rootresources- the quota resources to set- Throws:
MessagingException
-
-