public interface IMailFolderStorage
IMailFolderStorage
- Offers basic access methods to mail folder(s).Modifier and Type | Field and Description |
---|---|
static MailFolder[] |
EMPTY_PATH
The constant to return or represent an empty path.
|
Modifier and Type | Method and Description |
---|---|
void |
checkDefaultFolders()
Checks user's default folder as defined in user's mail settings and creates them if any is missing.
|
void |
clearFolder(java.lang.String fullName)
Deletes the content of the folder identified through given full name.
|
void |
clearFolder(java.lang.String fullName,
boolean hardDelete)
Deletes the content of the folder identified through given full name.
|
java.lang.String |
createFolder(MailFolderDescription toCreate)
Creates a new mail folder with attributes taken from given mail folder description
|
java.lang.String |
deleteFolder(java.lang.String fullName)
Deletes an existing mail folder identified through given full name.
|
java.lang.String |
deleteFolder(java.lang.String fullName,
boolean hardDelete)
Deletes an existing mail folder identified through given full name.
|
boolean |
exists(java.lang.String fullName)
Checks if a folder exists whose full name matches given
fullName |
java.lang.String |
getConfirmedHamFolder()
Gets the full name of default confirmed ham folder
|
java.lang.String |
getConfirmedSpamFolder()
Gets the full name of default confirmed spam folder
|
java.lang.String |
getDefaultFolderPrefix()
Gets the prefix (incl. separator character) for default folders.
|
java.lang.String |
getDraftsFolder()
Gets the full name of default drafts folder
|
MailFolder |
getFolder(java.lang.String fullName)
Gets the folder identified through given full name
|
Quota |
getMessageQuota(java.lang.String fullName)
Detects both quota limit and quota usage of MESSAGE resource on given mailbox folder's quota-root.
|
MailFolder[] |
getPath2DefaultFolder(java.lang.String fullName)
Gets the reverse path from the folder identified through given full name to parental default folder.
|
Quota[] |
getQuotas(java.lang.String fullName,
Quota.Type[] types)
Detects both quotas' limit and usage on given mailbox folder's quota-root for specified resource types.
|
MailFolder |
getRootFolder()
Gets the mailbox's root folder.
|
java.lang.String |
getSentFolder()
Gets the full name of default sent folder
|
java.lang.String |
getSpamFolder()
Gets the full name of default spam folder
|
Quota |
getStorageQuota(java.lang.String fullName)
Detects both quota limit and quota usage of STORAGE resource on given mailbox folder's quota-root.
|
MailFolder[] |
getSubfolders(java.lang.String parentFullName,
boolean all)
Gets the first level subfolders located below the folder whose fullName matches given parameter
parentFullName . |
java.lang.String |
getTrashFolder()
Gets the full name of default trash folder
|
java.lang.String |
moveFolder(java.lang.String fullName,
java.lang.String newFullName)
Moves the folder identified through given full name to the path specified through argument
newFullName . |
void |
releaseResources()
Releases all used resources when closing parental
MailAccess |
java.lang.String |
renameFolder(java.lang.String fullName,
java.lang.String newName)
Renames the folder identified through given full name to the specified new name.
|
java.lang.String |
updateFolder(java.lang.String fullName,
MailFolderDescription toUpdate)
Updates an existing mail folder identified through given full name.
|
static final MailFolder[] EMPTY_PATH
boolean exists(java.lang.String fullName) throws com.openexchange.exception.OXException
fullName
fullName
- The full nametrue
if folder exists in mailbox; otherwise false
com.openexchange.exception.OXException
- If existence cannot be checkedMailFolder getFolder(java.lang.String fullName) throws com.openexchange.exception.OXException
fullName
- The full nameMailFolder
com.openexchange.exception.OXException
- If either folder does not exist or could not be fetchedMailFolder[] getSubfolders(java.lang.String parentFullName, boolean all) throws com.openexchange.exception.OXException
parentFullName
.
If no subfolders exist below identified folder the constant EMPTY_PATH
should be returned.
parentFullName
- The parent full nameall
- Whether all or only subscribed subfolders shall be returned. If underlying mailing system does not support folder
subscription, this argument should always be treated as true
.MailFolder
representing the subfolderscom.openexchange.exception.OXException
- If either parent folder does not exist or its subfolders cannot be deliveredMailFolder getRootFolder() throws com.openexchange.exception.OXException
com.openexchange.exception.OXException
- If mailbox's default folder cannot be deliveredjava.lang.String getDefaultFolderPrefix() throws com.openexchange.exception.OXException
com.openexchange.exception.OXException
- If a mail error occursvoid checkDefaultFolders() throws com.openexchange.exception.OXException
See also createConfirmedSpam()
,
createConfirmedHam()
, and
unsubscribeSpamFolders()
.
com.openexchange.exception.OXException
- If user's default folder could not be checkedjava.lang.String createFolder(MailFolderDescription toCreate) throws com.openexchange.exception.OXException
toCreate
- The mail folder to createcom.openexchange.exception.OXException
- If creation failsjava.lang.String updateFolder(java.lang.String fullName, MailFolderDescription toUpdate) throws com.openexchange.exception.OXException
The currently known attributes that make sense being updated are:
MailFolderDescription.containsPermissions()
returns
true
MailFolderDescription.containsSubscribed()
returns true
MailFolderDescription
class to do so.
Note: If underlying mailing system does not support the corresponding capability, the update is treated as a no-op. For
example if both MailCapabilities.hasPermissions()
and MailCapabilities.hasSubscription()
indicate false
,
the associated update operations are not going to be performed.
fullName
- The full name of the mail folder to updatetoUpdate
- The mail folder to update containing only the modified fieldscom.openexchange.exception.OXException
- If either folder does not exist or cannot be updatedjava.lang.String moveFolder(java.lang.String fullName, java.lang.String newFullName) throws com.openexchange.exception.OXException
newFullName
. Thus a rename can
be implicitly performed.
E.g.:
my.path.to.folder -> my.newpath.to.folder
fullName
- The folder full namenewFullName
- The new full name to move tocom.openexchange.exception.OXException
- If either folder does not exist or cannot be movedjava.lang.String renameFolder(java.lang.String fullName, java.lang.String newName) throws com.openexchange.exception.OXException
E.g.:
my.path.to.folder -> my.path.to.newfolder
fullName
- The folder full namenewName
- The new namecom.openexchange.exception.OXException
- If either folder does not exist or cannot be renamedjava.lang.String deleteFolder(java.lang.String fullName) throws com.openexchange.exception.OXException
This is a convenience method that invokes deleteFolder(String, boolean)
with hardDelete
set to
false
.
fullName
- The full name of the mail folder to deletecom.openexchange.exception.OXException
- If either folder does not exist or cannot be deletedjava.lang.String deleteFolder(java.lang.String fullName, boolean hardDelete) throws com.openexchange.exception.OXException
If hardDelete
is not set and folder is not located below default trash folder it is backed up (including subfolder tree)
in default trash folder; otherwise it is deleted permanently.
While another backup folder with the same name already exists below default trash folder, an increasing serial number is appended to folder name until its name is unique inside default trash folder's subfolders. E.g.: If folder "DeleteMe" already exists below default trash folder, the next name would be "DeleteMe2". If again a folder "DeleteMe2" already exists below default trash folder, the next name would be "DeleteMe3", and so no.
If default trash folder cannot hold subfolders, the folder is either deleted permanently or an appropriate exception may be thrown.
fullName
- The full name of the mail folder to deletehardDelete
- Whether to delete permanently or to backup into trash foldercom.openexchange.exception.OXException
- If either folder does not exist or cannot be deletedvoid clearFolder(java.lang.String fullName) throws com.openexchange.exception.OXException
fullName
- The full name of the mail folder whose content should be clearedcom.openexchange.exception.OXException
- If either folder does not exist or its content cannot be clearedvoid clearFolder(java.lang.String fullName, boolean hardDelete) throws com.openexchange.exception.OXException
fullName
- The full name of the mail folder whose content should be clearedhardDelete
- Whether to delete permanently or to backup into trash foldercom.openexchange.exception.OXException
- If either folder does not exist or its content cannot be clearedMailFolder[] getPath2DefaultFolder(java.lang.String fullName) throws com.openexchange.exception.OXException
MailFolder
instances.fullName
- The folder full nameMailFolder
instances.com.openexchange.exception.OXException
- If either folder does not exist or path cannot be determinedQuota getStorageQuota(java.lang.String fullName) throws com.openexchange.exception.OXException
Note that the Quota.getLimit()
and Quota.getUsage()
is in 1024 octets.
fullName
- The folder full name (if null
"INBOX" is used)com.openexchange.exception.OXException
- If either folder does not exist or quota limit and/or quote usage cannot be determinedQuota getMessageQuota(java.lang.String fullName) throws com.openexchange.exception.OXException
fullName
- The folder full name (if null
"INBOX" is used)com.openexchange.exception.OXException
- If either folder does not exist or quota limit and/or quote usage cannot be determinedQuota[] getQuotas(java.lang.String fullName, Quota.Type[] types) throws com.openexchange.exception.OXException
If no quota restriction exists for a certain resource type, both quota usage and limit value carry constant Quota.UNLIMITED
to indicate no limitations on that resource type.
Note that the Quota.getLimit()
and Quota.getUsage()
returned for Quota.Type#STORAGE
quota is in 1024 octets.
fullName
- The folder full name (if null
"INBOX" is used)types
- The desired quota resource typescom.openexchange.exception.OXException
- If either folder does not exist or quota limit and/or quote usage cannot be determinedjava.lang.String getConfirmedHamFolder() throws com.openexchange.exception.OXException
com.openexchange.exception.OXException
- If confirmed ham folder's full name cannot be returnedjava.lang.String getConfirmedSpamFolder() throws com.openexchange.exception.OXException
com.openexchange.exception.OXException
- If confirmed spam folder's full name cannot be returnedjava.lang.String getDraftsFolder() throws com.openexchange.exception.OXException
com.openexchange.exception.OXException
- If draft folder's full name cannot be returnedjava.lang.String getSpamFolder() throws com.openexchange.exception.OXException
com.openexchange.exception.OXException
- If spam folder's full name cannot be returnedjava.lang.String getSentFolder() throws com.openexchange.exception.OXException
com.openexchange.exception.OXException
- If sent folder's full name cannot be returnedjava.lang.String getTrashFolder() throws com.openexchange.exception.OXException
com.openexchange.exception.OXException
- If trash folder's full name cannot be returnedvoid releaseResources() throws com.openexchange.exception.OXException
MailAccess
com.openexchange.exception.OXException
- If resources cannot be released