org.abstracthorizon.mercury.maildir.uid
Class UIDMaildirFolder

java.lang.Object
  extended by javax.mail.Folder
      extended by org.abstracthorizon.mercury.maildir.MaildirFolder
          extended by org.abstracthorizon.mercury.maildir.uid.UIDMaildirFolder
All Implemented Interfaces:
javax.mail.UIDFolder

public class UIDMaildirFolder
extends MaildirFolder
implements javax.mail.UIDFolder

This class implements UID maildir folder.

Author:
Daniel Sendula

Nested Class Summary
 
Nested classes/interfaces inherited from interface javax.mail.UIDFolder
javax.mail.UIDFolder.FetchProfileItem
 
Field Summary
protected  Map<UID,UIDMessageWrapper> uids
          Map that maps uids to messages
 
Fields inherited from class org.abstracthorizon.mercury.maildir.MaildirFolder
cacheArray, folderData, map, messages, opened, store
 
Fields inherited from class javax.mail.Folder
HOLDS_FOLDERS, HOLDS_MESSAGES, mode, READ_ONLY, READ_WRITE
 
Fields inherited from interface javax.mail.UIDFolder
LASTUID
 
Constructor Summary
protected UIDMaildirFolder(UIDMaildirStore store, MaildirFolderData folderData)
          Constructor.
 
Method Summary
protected  MessageWrapper addMessage(javax.mail.internet.MimeMessage msg, int num)
          Adds message to folder's internal storage.
 void appendMessages(javax.mail.Message[] messages)
          Appends messages to this folder.
 void close(boolean expunge)
          This implementation releases uids map and calls superclass' close method.
 javax.mail.Message getMessageByUID(long uid)
          This method obtains message by given uid number.
 javax.mail.Message[] getMessagesByUID(long[] uids)
          This method obtains message by given uid numbers.
 javax.mail.Message[] getMessagesByUID(long start, long end)
          This method obtains message from given uid range.
 long getUID(javax.mail.Message message)
          Thid method obtains uid from the given message
 long getUIDValidity()
          Returns UID validity for the folder
 void open(int mode)
          This implementation creates uids map and calls super class' open method.
protected  MessageWrapper removeMessage(javax.mail.internet.MimeMessage msg)
          This medhod removes message.
 
Methods inherited from class org.abstracthorizon.mercury.maildir.MaildirFolder
addMessages, create, delete, exists, expunge, getFolder, getFolderData, getFolderMessages, getFullName, getMaildirStore, getMessage, getMessageCount, getMessages, getName, getNewMessageCount, getParent, getPermanentFlags, getSeparator, getType, hasMessage, hasNewMessages, isOpen, list, notifyMessageAddedListeners, notifyMessageChangedListeners, notifyMessageRemovedListeners, removeMessages, renameTo, setFolderMessages
 
Methods inherited from class javax.mail.Folder
addConnectionListener, addFolderListener, addMessageChangedListener, addMessageCountListener, copyMessages, fetch, finalize, getDeletedMessageCount, getMessages, getMessages, getMode, getStore, getUnreadMessageCount, getURLName, isSubscribed, list, listSubscribed, listSubscribed, notifyConnectionListeners, notifyFolderListeners, notifyFolderRenamedListeners, removeConnectionListener, removeFolderListener, removeMessageChangedListener, removeMessageCountListener, search, search, setFlags, setFlags, setFlags, setSubscribed, toString
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

uids

protected Map<UID,UIDMessageWrapper> uids
Map that maps uids to messages

Constructor Detail

UIDMaildirFolder

protected UIDMaildirFolder(UIDMaildirStore store,
                           MaildirFolderData folderData)
Constructor.

Parameters:
store - store
folderData - folder data
Method Detail

open

public void open(int mode)
          throws javax.mail.MessagingException
This implementation creates uids map and calls super class' open method.

Overrides:
open in class MaildirFolder
Parameters:
mode - mode
Throws:
javax.mail.MessagingException

close

public void close(boolean expunge)
           throws javax.mail.MessagingException
This implementation releases uids map and calls superclass' close method.

Overrides:
close in class MaildirFolder
Parameters:
expunge -
Throws:
javax.mail.MessagingException

appendMessages

public void appendMessages(javax.mail.Message[] messages)
                    throws javax.mail.MessagingException
Appends messages to this folder.

Overrides:
appendMessages in class MaildirFolder
Parameters:
messages - messages to be appended.
Throws:
javax.mail.MessagingException

addMessage

protected MessageWrapper addMessage(javax.mail.internet.MimeMessage msg,
                                    int num)
                             throws javax.mail.MessagingException
Adds message to folder's internal storage. This method wraps message as well.

Overrides:
addMessage in class MaildirFolder
Parameters:
msg - folder data message
num - message number
Returns:
wrapped message
Throws:
javax.mail.MessagingException

removeMessage

protected MessageWrapper removeMessage(javax.mail.internet.MimeMessage msg)
                                throws javax.mail.MessagingException
This medhod removes message. Argument could be folder's message or folder data's message.

Overrides:
removeMessage in class MaildirFolder
Parameters:
msg - message to be removed
Returns:
wrapped message that is removed
Throws:
javax.mail.MessagingException

getMessageByUID

public javax.mail.Message getMessageByUID(long uid)
                                   throws javax.mail.MessagingException
This method obtains message by given uid number.

Specified by:
getMessageByUID in interface javax.mail.UIDFolder
Parameters:
uid - uid number
Returns:
message
Throws:
javax.mail.MessagingException

getMessagesByUID

public javax.mail.Message[] getMessagesByUID(long[] uids)
                                      throws javax.mail.MessagingException
This method obtains message by given uid numbers.

Specified by:
getMessagesByUID in interface javax.mail.UIDFolder
Parameters:
uids - uid numbers array
Returns:
messages
Throws:
javax.mail.MessagingException

getMessagesByUID

public javax.mail.Message[] getMessagesByUID(long start,
                                             long end)
                                      throws javax.mail.MessagingException
This method obtains message from given uid range.

Specified by:
getMessagesByUID in interface javax.mail.UIDFolder
Parameters:
start - start uid
end - end uid
Returns:
messages
Throws:
javax.mail.MessagingException

getUID

public long getUID(javax.mail.Message message)
            throws javax.mail.MessagingException
Thid method obtains uid from the given message

Specified by:
getUID in interface javax.mail.UIDFolder
Parameters:
message - message
Returns:
uid
Throws:
javax.mail.MessagingException

getUIDValidity

public long getUIDValidity()
Returns UID validity for the folder

Specified by:
getUIDValidity in interface javax.mail.UIDFolder
Returns:
UID validity for the folder


Copyright © 2005-2009 Abstract Horizon. All Rights Reserved.