Package net.fortuna.mstor.connector.mbox
Class MetaFolder
- java.lang.Object
-
- net.fortuna.mstor.connector.AbstractFolderDelegate<T>
-
- net.fortuna.mstor.connector.mbox.AbstractMetaFolder<MetaMessage>
-
- net.fortuna.mstor.connector.mbox.MetaFolder
-
- All Implemented Interfaces:
FolderDelegate<MetaMessage>
public class MetaFolder extends AbstractMetaFolder<MetaMessage>
A JDOM-based implementation of a meta folder.
-
-
Field Summary
Fields Modifier and Type Field Description static StringFILE_EXTENSION
-
Constructor Summary
Constructors Constructor Description MetaFolder(FolderDelegate<MessageDelegate> delegate)Constructs a new meta folder instance.MetaFolder(org.jdom.Namespace namespace, FolderDelegate<MessageDelegate> delegate)Constructs a new meta folder instance with the specified namespace.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected MetaMessagecreateMessage(int messageNumber)protected StringgetFileExtension()MetaFoldergetFolder(String name)Returns a child folder delegate with the specified name.longgetLastUid()Retrieves the last allocated message UID for the folder.MetaMessagegetMessage(int messageNumber)Returns message delegate corresponding to the specified message id.MetaFoldergetParent()longgetUidValidity()Returns the UID validity associated with the metadata.MetaFolder[]list(String pattern)Returns a list of child folder delegates matching the specified pattern.protected MetaMessage[]removeMessages(javax.mail.Message[] messages)voidsave()protected voidsetLastUid(long uid)-
Methods inherited from class net.fortuna.mstor.connector.mbox.AbstractMetaFolder
appendMessages, close, create, delete, exists, expunge, getDelegate, getFile, getFolderName, getFullName, getLastModified, getMessageAsStream, getMessageCount, getSeparator, getType, newUidValidity, open, renameTo
-
Methods inherited from class net.fortuna.mstor.connector.AbstractFolderDelegate
allocateUid, getDeletedMessageCount
-
-
-
-
Field Detail
-
FILE_EXTENSION
public static final String FILE_EXTENSION
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
MetaFolder
public MetaFolder(FolderDelegate<MessageDelegate> delegate)
Constructs a new meta folder instance.- Parameters:
file- the meta folder file
-
MetaFolder
public MetaFolder(org.jdom.Namespace namespace, FolderDelegate<MessageDelegate> delegate)Constructs a new meta folder instance with the specified namespace.- Parameters:
file- the meta folder filenamespace- the namespace for the metadata
-
-
Method Detail
-
getParent
public MetaFolder getParent()
- Returns:
- the parent folder delegate of this delegate.
-
getFolder
public MetaFolder getFolder(String name) throws javax.mail.MessagingException
Returns a child folder delegate with the specified name.- Parameters:
name- a folder name- Returns:
- the folder delegate with the specified name, or null if the folder doesn't exist
- Throws:
javax.mail.MessagingException- where an unexpected error occurs retrieving the folder
-
list
public MetaFolder[] list(String pattern)
Returns a list of child folder delegates matching the specified pattern.- Parameters:
pattern- a pattern to match folders against- Returns:
- a list of folder delegates
-
getMessage
public final MetaMessage getMessage(int messageNumber) throws DelegateException
Returns message delegate corresponding to the specified message id. If no delegate exists a new Message delegate is created.- Parameters:
messageNumber- the message number of the message to retrieve- Returns:
- the message with the specified message number, or null if the messages doesn't exist
- Throws:
DelegateException- where an error occurs retrieving the message
-
createMessage
protected final MetaMessage createMessage(int messageNumber)
- Specified by:
createMessagein classAbstractFolderDelegate<MetaMessage>- Parameters:
messageNumber- the message number to associate with the new message- Returns:
- a new message delegate instance
-
removeMessages
protected MetaMessage[] removeMessages(javax.mail.Message[] messages)
- Specified by:
removeMessagesin classAbstractMetaFolder<MetaMessage>
-
getLastUid
public final long getLastUid()
Retrieves the last allocated message UID for the folder.- Returns:
- the latest UID for the folder
-
getUidValidity
public final long getUidValidity() throws UnsupportedOperationException, javax.mail.MessagingExceptionReturns the UID validity associated with the metadata. If no UID validity exist a new value is initialised.- Returns:
- a long representation of the UID validity
- Throws:
UnsupportedOperationException- if this method is not supported by the folder implementationjavax.mail.MessagingException- if an error occurs retrieving the validity value
-
setLastUid
protected final void setLastUid(long uid) throws DelegateException- Specified by:
setLastUidin classAbstractFolderDelegate<MetaMessage>- Parameters:
uid- the latest UID for the folder- Throws:
DelegateException- where an error occurs updating the latest UID
-
getFileExtension
protected String getFileExtension()
- Specified by:
getFileExtensionin classAbstractMetaFolder<MetaMessage>- Returns:
-
save
public final void save() throws DelegateException- Specified by:
savein classAbstractMetaFolder<MetaMessage>- Throws:
DelegateException
-
-