com.openexchange.mail.dataobjects
Class ReadOnlyMailFolder

java.lang.Object
  extended by com.openexchange.mail.dataobjects.MailFolder
      extended by com.openexchange.mail.dataobjects.ReadOnlyMailFolder
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable

public class ReadOnlyMailFolder
extends MailFolder
implements java.io.Serializable

ReadOnlyMailFolder - a data container object for a mail folder

Author:
Thorben Betten
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class com.openexchange.mail.dataobjects.MailFolder
MailFolder.DefaultFolderType
 
Field Summary
 
Fields inherited from class com.openexchange.mail.dataobjects.MailFolder
DEFAULT_FOLDER_ID, DEFAULT_FOLDER_NAME
 
Constructor Summary
ReadOnlyMailFolder(MailFolder delegate)
          Initializes a new ReadOnlyMailFolder
 
Method Summary
 void addPermission(MailPermission permission)
          Adds a permission.
 void addPermissions(java.util.Collection<? extends MailPermission> permissions)
          Adds a collection of permissions.
 void addPermissions(MailPermission[] permissions)
          Adds an array of permissions.
 boolean containsDefaultFolder()
          Checks if default-folder flag was set through setDefaultFolder(boolean).
 boolean containsDeletedMessageCount()
          Checks if the number of messages was set through setDeletedMessageCount(int).
 boolean containsExists()
          Checks if folder existence status was set through setExists(boolean).
 boolean containsFullname()
          Checks if fullname is set through MailFolder.setFullname(String).
 boolean containsHoldsFolders()
          Checks if the holds-folder flag was set through setHoldsFolders(boolean).
 boolean containsHoldsMessages()
          Checks if he holds-messages flag was set through setHoldsMessages(boolean).
 boolean containsMessageCount()
          Checks if number of messages was set through setMessageCount(int).
 boolean containsName()
          Checks if name was set through setName(String).
 boolean containsNewMessageCount()
          Checks if the number of new messages was set through setNewMessageCount(int).
 boolean containsOwnPermission()
          Checks if own permission was set through setOwnPermission(MailPermission).
 boolean containsParentFullname()
          Checks if parent fullname was set through setParentFullname(String).
 boolean containsPermissions()
          Checks if permissions were set through MailFolder.addPermission(MailPermission), MailFolder.addPermissions(Collection), or MailFolder.addPermissions(MailPermission[]).
 boolean containsRootFolder()
          Checks if root-folder flag was set through setRootFolder(boolean).
 boolean containsSeparator()
          Checks if seperator character was set through setSeparator(char).
 boolean containsSubfolders()
          Checks if has-subfolders flag was set through setSubfolders(boolean).
 boolean containsSubscribed()
          Checks if subscribed status was set through setSubscribed(boolean).
 boolean containsSubscribedSubfolders()
          Checks if the has-subscribed-subfolders flag was set through setSubscribedSubfolders(boolean).
 boolean containsSupportsUserFlags()
          Checks if the supports-user-flags flag was set through MailFolder.setSupportsUserFlags(boolean).
 boolean containsUnreadMessageCount()
          Checks if the number of unread messages was set through setUnreadMessageCount(int).
 boolean exists()
          Checks if this folder exists.
 int getDeletedMessageCount()
          Gets the number of messages marked for deletion in this folder
 java.lang.String getFullname()
          Gets the fullname.
 int getMessageCount()
          Gets the number of messages.
 java.lang.String getName()
          Gets the name.
 int getNewMessageCount()
          Gets the number of new messages (since last time this folder was accessed).
 MailPermission getOwnPermission()
          Gets the permission for currently logged-in user accessing this folder The returned permission should reflect user's permission regardless if mailing system supports permissions or not.
 java.lang.String getParentFullname()
          Gets the parent fullname.
 MailPermission[] getPermissions()
           
 char getSeparator()
          Gets the separator character.
 int getUnreadMessageCount()
          Gets the number of unread messages.
 boolean hasSubfolders()
          Checks if this mail folder has subfolders.
 boolean hasSubscribedSubfolders()
          Checks if this mail folder has subscribed subfolders.
 boolean isDefaultFolder()
          Checks if this folder denotes a default folder (Drafts, Sent, Trash, etc.)
 boolean isHoldsFolders()
          Checks if this folder is able to hold folders.
 boolean isHoldsMessages()
          Checks if this folder is able to hold messages.
 boolean isRootFolder()
          Checks if this folder denotes the root folder
 boolean isSubscribed()
          Returns whether the denoted mail folder is subscribed or not.
 boolean isSupportsUserFlags()
          Checks if this folder supports user flags.
 void removeDefaultFolder()
          Removes the default folder flag.
 void removeDeletedMessageCount()
          Removes the number of messages marked for deletion in this folder.
 void removeExists()
          Removes exists status.
 void removeFullname()
          Removes the fullname.
 void removeHoldsFolders()
          Removes the holds-folders flag
 void removeHoldsMessages()
          Removes the holds-messages flag
 void removeMessageCount()
          Removes the message-count.
 void removeName()
          Removes the name.
 void removeNewMessageCount()
          Removes the new-message-count.
 void removeOwnPermission()
          Removes the own permission.
 void removeParentFullname()
          Removes the parent fullname.
 void removePermissions()
          Removes the permissions.
 void removeRootFolder()
          Removes the root folder flag.
 void removeSeparator()
          Removes the separator character.
 void removeSubfolders()
          Removes the has-subfolders flag.
 void removeSubscribed()
          Removes the subscription status.
 void removeSubscribedSubfolders()
          Removes has-subscribed-subfolders flag.
 void removeSupportsUserFlags()
          Removes the supports-user-flags flag.
 void removeUnreadMessageCount()
          Removes the unread-message-count.
 void setDefaultFolder(boolean defaultFolder)
          Sets the default folder flag.
 void setDeletedMessageCount(int deletedMessageCount)
          Sets the number of messages marked for deletion in this folder.
 void setExists(boolean exists)
          Sets the exists status.
 void setFullname(java.lang.String fullname)
          Sets this mail folder's fullname.
 void setHoldsFolders(boolean holdsFolders)
          Sets if this folder holds folders.
 void setHoldsMessages(boolean holdsMessages)
          Sets if this folder holds messages.
 void setMessageCount(int messageCount)
          Sets the number of messages.
 void setName(java.lang.String name)
          Sets this mail folder's name.
 void setNewMessageCount(int newMessageCount)
          Sets the number of new messages.
 void setOwnPermission(MailPermission ownPermission)
          Sets own permission.
 void setParentFullname(java.lang.String parentFullname)
          Sets the parent fullname.
 void setRootFolder(boolean rootFolder)
          Sets the root folder flag.
 void setSeparator(char separator)
          Sets the separator character.
 void setSubfolders(boolean hasSubfolders)
          Sets if this mail folder has subfolders.
 void setSubscribed(boolean subscribed)
          Sets the subscription status for this mail folder.
 void setSubscribedSubfolders(boolean hasSubscribedSubfolders)
          Sets if this mail folder has subscribed subfolders.
 void setSupportsUserFlags(boolean supportsUserFlags)
          Sets the supports-user-flags flag.
 void setUnreadMessageCount(int unreadMessageCount)
          Sets the number of unread messages.
 
Methods inherited from class com.openexchange.mail.dataobjects.MailFolder
clone, containsDefaultFolderType, containsShared, getDefaultFolderType, isConfirmedHam, isConfirmedSpam, isDrafts, isInbox, isSent, isShared, isSpam, isTrash, removeDefaultFolderType, removeShared, setDefaultFolderType, setShared, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ReadOnlyMailFolder

public ReadOnlyMailFolder(MailFolder delegate)
Initializes a new ReadOnlyMailFolder

Method Detail

getFullname

public java.lang.String getFullname()
Description copied from class: MailFolder
Gets the fullname.

Overrides:
getFullname in class MailFolder
Returns:
The fullname (MailFolder.DEFAULT_FOLDER_ID if this mail folder denotes the root folder)

containsFullname

public boolean containsFullname()
Description copied from class: MailFolder
Checks if fullname is set through MailFolder.setFullname(String).

Overrides:
containsFullname in class MailFolder
Returns:
true if fullname is set; otherwise false

removeFullname

public void removeFullname()
Description copied from class: MailFolder
Removes the fullname.

Overrides:
removeFullname in class MailFolder

setFullname

public void setFullname(java.lang.String fullname)
Description copied from class: MailFolder
Sets this mail folder's fullname.

If this mail folder denotes the root folder, MailFolder.DEFAULT_FOLDER_ID is supposed to be set as fullname.

Overrides:
setFullname in class MailFolder
Parameters:
fullname - the fullname to set

hasSubfolders

public boolean hasSubfolders()
Checks if this mail folder has subfolders.

Overrides:
hasSubfolders in class MailFolder
Returns:
true if this mail folder has subfolders; otherwise false

containsSubfolders

public boolean containsSubfolders()
Checks if has-subfolders flag was set through setSubfolders(boolean).

Overrides:
containsSubfolders in class MailFolder
Returns:
true if has-subfolders flag is set; otherwise false

removeSubfolders

public void removeSubfolders()
Removes the has-subfolders flag.

Overrides:
removeSubfolders in class MailFolder

setSubfolders

public void setSubfolders(boolean hasSubfolders)
Sets if this mail folder has subfolders.

Overrides:
setSubfolders in class MailFolder
Parameters:
hasSubfolders - the has-subfolders flag to set

hasSubscribedSubfolders

public boolean hasSubscribedSubfolders()
Checks if this mail folder has subscribed subfolders.

Overrides:
hasSubscribedSubfolders in class MailFolder
Returns:
true if this mail folder has subscribed subfolders; otherwise false

containsSubscribedSubfolders

public boolean containsSubscribedSubfolders()
Checks if the has-subscribed-subfolders flag was set through setSubscribedSubfolders(boolean).

Overrides:
containsSubscribedSubfolders in class MailFolder
Returns:
true if the has-subscribed-subfolders flag was set; otherwise false

removeSubscribedSubfolders

public void removeSubscribedSubfolders()
Removes has-subscribed-subfolders flag.

Overrides:
removeSubscribedSubfolders in class MailFolder

setSubscribedSubfolders

public void setSubscribedSubfolders(boolean hasSubscribedSubfolders)
Sets if this mail folder has subscribed subfolders.

Overrides:
setSubscribedSubfolders in class MailFolder
Parameters:
hasSubscribedSubfolders - the has-subscribed-subfolders flag to set

getName

public java.lang.String getName()
Gets the name.

Overrides:
getName in class MailFolder
Returns:
The name

containsName

public boolean containsName()
Checks if name was set through setName(String).

Overrides:
containsName in class MailFolder
Returns:
true if name is set; otherwise false

removeName

public void removeName()
Removes the name.

Overrides:
removeName in class MailFolder

setName

public void setName(java.lang.String name)
Sets this mail folder's name.

If this mail folder denotes the root folder, MailFolder.DEFAULT_FOLDER_NAME is supposed to be set as name.

Overrides:
setName in class MailFolder
Parameters:
name - the name to set

isSubscribed

public boolean isSubscribed()
Returns whether the denoted mail folder is subscribed or not.

If mailing system does not support subscription, true is supposed to be returned.

Overrides:
isSubscribed in class MailFolder
Returns:
Whether the denoted mail folder is subscribed or not

containsSubscribed

public boolean containsSubscribed()
Checks if subscribed status was set through setSubscribed(boolean).

Overrides:
containsSubscribed in class MailFolder
Returns:
true if subscribed is set; otherwise false

removeSubscribed

public void removeSubscribed()
Removes the subscription status.

Overrides:
removeSubscribed in class MailFolder

setSubscribed

public void setSubscribed(boolean subscribed)
Sets the subscription status for this mail folder.

If mailing system does not support subscription, true is supposed to be set as subscription status.

Overrides:
setSubscribed in class MailFolder
Parameters:
subscribed - the subscription status to set

getDeletedMessageCount

public int getDeletedMessageCount()
Gets the number of messages marked for deletion in this folder

Overrides:
getDeletedMessageCount in class MailFolder
Returns:
The number of messages marked for deletion in this folder or -1 if this mail folder does not hold messages
See Also:
isHoldsMessages()

containsDeletedMessageCount

public boolean containsDeletedMessageCount()
Checks if the number of messages was set through setDeletedMessageCount(int).

Overrides:
containsDeletedMessageCount in class MailFolder
Returns:
true if deletedMessageCount is set; otherwise false

removeDeletedMessageCount

public void removeDeletedMessageCount()
Removes the number of messages marked for deletion in this folder.

Overrides:
removeDeletedMessageCount in class MailFolder

setDeletedMessageCount

public void setDeletedMessageCount(int deletedMessageCount)
Sets the number of messages marked for deletion in this folder.

Overrides:
setDeletedMessageCount in class MailFolder
Parameters:
deletedMessageCount - The number of messages marked for deletion or -1 if this mail folder does not hold messages

exists

public boolean exists()
Checks if this folder exists.

Overrides:
exists in class MailFolder
Returns:
true if folder exists in mailbox; otherwise false

containsExists

public boolean containsExists()
Checks if folder existence status was set through setExists(boolean).

Overrides:
containsExists in class MailFolder
Returns:
true if exists status is set; otherwise false

removeExists

public void removeExists()
Removes exists status.

Overrides:
removeExists in class MailFolder

setExists

public void setExists(boolean exists)
Sets the exists status.

Overrides:
setExists in class MailFolder
Parameters:
exists - true if folder exists in mailbox; otherwise false

getMessageCount

public int getMessageCount()
Gets the number of messages.

Overrides:
getMessageCount in class MailFolder
Returns:
The number of messages or -1 if this mail folder does not hold messages
See Also:
isHoldsMessages()

containsMessageCount

public boolean containsMessageCount()
Checks if number of messages was set through setMessageCount(int).

Overrides:
containsMessageCount in class MailFolder
Returns:
true if messageCount is set; otherwise false

removeMessageCount

public void removeMessageCount()
Removes the message-count.

Overrides:
removeMessageCount in class MailFolder

setMessageCount

public void setMessageCount(int messageCount)
Sets the number of messages.

Overrides:
setMessageCount in class MailFolder
Parameters:
messageCount - The number of messages or -1 if this mail folder does not hold messages

getNewMessageCount

public int getNewMessageCount()
Gets the number of new messages (since last time this folder was accessed).

Overrides:
getNewMessageCount in class MailFolder
Returns:
The number of new messages or -1 if this mail folder does not hold messages.
See Also:
isHoldsMessages()

containsNewMessageCount

public boolean containsNewMessageCount()
Checks if the number of new messages was set through setNewMessageCount(int).

Overrides:
containsNewMessageCount in class MailFolder
Returns:
true if newMessageCount is set; otherwise false

removeNewMessageCount

public void removeNewMessageCount()
Removes the new-message-count.

Overrides:
removeNewMessageCount in class MailFolder

setNewMessageCount

public void setNewMessageCount(int newMessageCount)
Sets the number of new messages.

Overrides:
setNewMessageCount in class MailFolder
Parameters:
newMessageCount - The number of new messages or -1 if this mail folder does not hold messages

getUnreadMessageCount

public int getUnreadMessageCount()
Gets the number of unread messages.

Overrides:
getUnreadMessageCount in class MailFolder
Returns:
The number of unread messages or -1 if this mail folder does not hold messages
See Also:
isHoldsMessages()

containsUnreadMessageCount

public boolean containsUnreadMessageCount()
Checks if the number of unread messages was set through setUnreadMessageCount(int).

Overrides:
containsUnreadMessageCount in class MailFolder
Returns:
true if unreadMessageCount is set; otherwise false

removeUnreadMessageCount

public void removeUnreadMessageCount()
Removes the unread-message-count.

Overrides:
removeUnreadMessageCount in class MailFolder

setUnreadMessageCount

public void setUnreadMessageCount(int unreadMessageCount)
Sets the number of unread messages.

Overrides:
setUnreadMessageCount in class MailFolder
Parameters:
unreadMessageCount - The number of unread messages or -1 if this mail folder does not hold messages

getSeparator

public char getSeparator()
Gets the separator character.

Overrides:
getSeparator in class MailFolder
Returns:
The separator character.
See Also:
MailConfig#getDefaultSeparator()

containsSeparator

public boolean containsSeparator()
Checks if seperator character was set through setSeparator(char).

Overrides:
containsSeparator in class MailFolder
Returns:
true if separator is set; otherwise false

removeSeparator

public void removeSeparator()
Removes the separator character.

Overrides:
removeSeparator in class MailFolder

setSeparator

public void setSeparator(char separator)
Sets the separator character.

If mailing system does not support a separator character, MailConfig#getDefaultSeparator() should to be used.

Overrides:
setSeparator in class MailFolder
Parameters:
separator - the separator to set

getParentFullname

public java.lang.String getParentFullname()
Gets the parent fullname.

Overrides:
getParentFullname in class MailFolder
Returns:
The parent fullname or null if this mail folder denotes the root folder

containsParentFullname

public boolean containsParentFullname()
Checks if parent fullname was set through setParentFullname(String).

Overrides:
containsParentFullname in class MailFolder
Returns:
true if parentFullname is set; otherwise false

removeParentFullname

public void removeParentFullname()
Removes the parent fullname.

Overrides:
removeParentFullname in class MailFolder

setParentFullname

public void setParentFullname(java.lang.String parentFullname)
Sets the parent fullname.

If this mail folder denotes the root folder, null is supposed to be set.

Overrides:
setParentFullname in class MailFolder
Parameters:
parentFullname - the parent fullname to set

isHoldsMessages

public boolean isHoldsMessages()
Checks if this folder is able to hold messages.

Overrides:
isHoldsMessages in class MailFolder
Returns:
true if this folder is able to hold messages; otherwise false

containsHoldsMessages

public boolean containsHoldsMessages()
Checks if he holds-messages flag was set through setHoldsMessages(boolean).

Overrides:
containsHoldsMessages in class MailFolder
Returns:
true if the holds-messages flag is set; otherwise false

removeHoldsMessages

public void removeHoldsMessages()
Removes the holds-messages flag

Overrides:
removeHoldsMessages in class MailFolder

setHoldsMessages

public void setHoldsMessages(boolean holdsMessages)
Sets if this folder holds messages.

Overrides:
setHoldsMessages in class MailFolder
Parameters:
holdsMessages - true if folder holds messages; otherwise false

isHoldsFolders

public boolean isHoldsFolders()
Checks if this folder is able to hold folders.

Overrides:
isHoldsFolders in class MailFolder
Returns:
true if this folder is able to hold folders; otherwise false

containsHoldsFolders

public boolean containsHoldsFolders()
Checks if the holds-folder flag was set through setHoldsFolders(boolean).

Overrides:
containsHoldsFolders in class MailFolder
Returns:
true if this folder has the holds-folder flag set; otherwise false

removeHoldsFolders

public void removeHoldsFolders()
Removes the holds-folders flag

Overrides:
removeHoldsFolders in class MailFolder

setHoldsFolders

public void setHoldsFolders(boolean holdsFolders)
Sets if this folder holds folders.

Overrides:
setHoldsFolders in class MailFolder
Parameters:
holdsFolders - true if folder holds folders; otherwise false

getOwnPermission

public MailPermission getOwnPermission()
Gets the permission for currently logged-in user accessing this folder

The returned permission should reflect user's permission regardless if mailing system supports permissions or not. An instance of DefaultMailPermission is supposed to be returned on missing permissions support except for the root folder. The root folder should indicate no object permissions in any case, but the folder permission varies if mailing system allows subfolder creation below root folder or not. The returned permission must reflect the allowed behavior.

Overrides:
getOwnPermission in class MailFolder
Returns:
The own permission

containsOwnPermission

public boolean containsOwnPermission()
Checks if own permission was set through setOwnPermission(MailPermission).

Overrides:
containsOwnPermission in class MailFolder
Returns:
true if own permission is set; otherwise false

removeOwnPermission

public void removeOwnPermission()
Removes the own permission.

Overrides:
removeOwnPermission in class MailFolder

setOwnPermission

public void setOwnPermission(MailPermission ownPermission)
Sets own permission.

Apply an instance of DefaultMailPermission if mailing system does not support permissions, except if this mail folder denotes the root folder, then apply altered instance of DefaultMailPermission with no object permissions but properly reflects folder permission as described in getOwnPermission().

Overrides:
setOwnPermission in class MailFolder
Parameters:
ownPermission - the own permission to set

isRootFolder

public boolean isRootFolder()
Checks if this folder denotes the root folder

Overrides:
isRootFolder in class MailFolder
Returns:
true if this folder denotes the root folder; otherwise false

containsRootFolder

public boolean containsRootFolder()
Checks if root-folder flag was set through setRootFolder(boolean).

Overrides:
containsRootFolder in class MailFolder
Returns:
true if root-folder flag is set; otherwise false

removeRootFolder

public void removeRootFolder()
Removes the root folder flag.

Overrides:
removeRootFolder in class MailFolder

setRootFolder

public void setRootFolder(boolean rootFolder)
Sets the root folder flag.

Overrides:
setRootFolder in class MailFolder
Parameters:
rootFolder - the root folder flag to set

isDefaultFolder

public boolean isDefaultFolder()
Checks if this folder denotes a default folder (Drafts, Sent, Trash, etc.)

Overrides:
isDefaultFolder in class MailFolder
Returns:
true if this folder denotes a default folder; otherwise false

containsDefaultFolder

public boolean containsDefaultFolder()
Checks if default-folder flag was set through setDefaultFolder(boolean).

Overrides:
containsDefaultFolder in class MailFolder
Returns:
true if default-folder flag is set; otherwise false

removeDefaultFolder

public void removeDefaultFolder()
Description copied from class: MailFolder
Removes the default folder flag.

Overrides:
removeDefaultFolder in class MailFolder

setDefaultFolder

public void setDefaultFolder(boolean defaultFolder)
Description copied from class: MailFolder
Sets the default folder flag.

Overrides:
setDefaultFolder in class MailFolder
Parameters:
defaultFolder - the default folder flag to set

addPermission

public void addPermission(MailPermission permission)
Description copied from class: MailFolder
Adds a permission.

Overrides:
addPermission in class MailFolder
Parameters:
permission - The permission to add

addPermissions

public void addPermissions(MailPermission[] permissions)
Description copied from class: MailFolder
Adds an array of permissions.

Overrides:
addPermissions in class MailFolder
Parameters:
permissions - The array of permissions to add

addPermissions

public void addPermissions(java.util.Collection<? extends MailPermission> permissions)
Description copied from class: MailFolder
Adds a collection of permissions.

Overrides:
addPermissions in class MailFolder
Parameters:
permissions - The collection of permissions to add

containsPermissions

public boolean containsPermissions()
Description copied from class: MailFolder
Checks if permissions were set through MailFolder.addPermission(MailPermission), MailFolder.addPermissions(Collection), or MailFolder.addPermissions(MailPermission[]).

Overrides:
containsPermissions in class MailFolder
Returns:
true if permissions are set; otherwise false

removePermissions

public void removePermissions()
Description copied from class: MailFolder
Removes the permissions.

Overrides:
removePermissions in class MailFolder

getPermissions

public MailPermission[] getPermissions()
Overrides:
getPermissions in class MailFolder
Returns:
the permissions as array of MailPermission

isSupportsUserFlags

public boolean isSupportsUserFlags()
Description copied from class: MailFolder
Checks if this folder supports user flags.

Overrides:
isSupportsUserFlags in class MailFolder
Returns:
true if this folder supports user flags; otherwise false

containsSupportsUserFlags

public boolean containsSupportsUserFlags()
Description copied from class: MailFolder
Checks if the supports-user-flags flag was set through MailFolder.setSupportsUserFlags(boolean).

Overrides:
containsSupportsUserFlags in class MailFolder
Returns:
true if supportsUserFlags is set; otherwise false

removeSupportsUserFlags

public void removeSupportsUserFlags()
Description copied from class: MailFolder
Removes the supports-user-flags flag.

Overrides:
removeSupportsUserFlags in class MailFolder

setSupportsUserFlags

public void setSupportsUserFlags(boolean supportsUserFlags)
Description copied from class: MailFolder
Sets the supports-user-flags flag.

Overrides:
setSupportsUserFlags in class MailFolder
Parameters:
supportsUserFlags - the supports-user-flags flag to set