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 String
FILE_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 MetaMessage
createMessage(int messageNumber)
protected String
getFileExtension()
MetaFolder
getFolder(String name)
Returns a child folder delegate with the specified name.long
getLastUid()
Retrieves the last allocated message UID for the folder.MetaMessage
getMessage(int messageNumber)
Returns message delegate corresponding to the specified message id.MetaFolder
getParent()
long
getUidValidity()
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)
void
save()
protected void
setLastUid(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:
createMessage
in 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:
removeMessages
in 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.MessagingException
Returns 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:
setLastUid
in 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:
getFileExtension
in classAbstractMetaFolder<MetaMessage>
- Returns:
-
save
public final void save() throws DelegateException
- Specified by:
save
in classAbstractMetaFolder<MetaMessage>
- Throws:
DelegateException
-
-