org.alfresco.repo.imap
Class AbstractImapFolder

java.lang.Object
  extended by org.alfresco.repo.imap.AbstractImapFolder
All Implemented Interfaces:
com.icegreen.greenmail.store.MailFolder
Direct Known Subclasses:
AlfrescoImapFolder

public abstract class AbstractImapFolder
extends java.lang.Object
implements com.icegreen.greenmail.store.MailFolder

Implementation of greenmail MailFolder. It represents an Alfresco content folder and handles appendMessage, copyMessage, expunge (delete), getMessages, getMessage and so requests.


Nested Class Summary
protected  class AbstractImapFolder.CommandCallback
           
 
Field Summary
protected static int MAX_RETRIES
           
protected  ServiceRegistry serviceRegistry
           
 
Constructor Summary
AbstractImapFolder(ServiceRegistry serviceRegistry)
           
 
Method Summary
 void addListener(com.icegreen.greenmail.store.FolderListener listener)
          Adds FolderListener to the folder.
 long appendMessage(javax.mail.internet.MimeMessage message, javax.mail.Flags flags, java.util.Date internalDate)
          Appends message to the folder.
protected abstract  long appendMessageInternal(javax.mail.internet.MimeMessage message, javax.mail.Flags flags, java.util.Date internalDate)
           
protected  void checkParameter(java.lang.Object parameter, java.lang.String name)
          Method that checks mandatory parameter.
 void copyMessage(long uid, com.icegreen.greenmail.store.MailFolder toFolder)
          Copies message with the given UID to the specified MailFolder.
protected abstract  void copyMessageInternal(long uid, com.icegreen.greenmail.store.MailFolder toFolder)
           
 void deleteAllMessages()
          Marks all messages in the folder as deleted using Flags.Flag#DELETED flag.
protected abstract  void deleteAllMessagesInternal()
           
 void expunge()
          Deletes messages marked with Flags.Flag#DELETED.
protected abstract  void expungeInternal()
           
 com.icegreen.greenmail.store.SimpleStoredMessage getMessage(long uid)
          Returns message by its UID.
protected abstract  com.icegreen.greenmail.store.SimpleStoredMessage getMessageInternal(long uid)
           
 java.util.List getMessages()
          Returns list of all messages in the folder.
 java.util.List getMessages(com.icegreen.greenmail.foedus.util.MsgRangeFilter msgRangeFilter)
          Returns list of messages by filter.
protected abstract  java.util.List getMessagesInternal()
           
protected abstract  java.util.List getMessagesInternal(com.icegreen.greenmail.foedus.util.MsgRangeFilter msgRangeFilter)
           
 java.util.List getNonDeletedMessages()
          Returns the list of messages that have no Flags.Flag#DELETED flag set for current user.
protected abstract  java.util.List getNonDeletedMessagesInternal()
           
protected abstract  boolean isReadOnly()
           
protected  void notifyFlagUpdate(int msn, javax.mail.Flags flags, java.lang.Long uidNotification, com.icegreen.greenmail.store.FolderListener silentListener)
           
 void removeListener(com.icegreen.greenmail.store.FolderListener listener)
          Removes FolderListener from the folder.
 void replaceFlags(javax.mail.Flags flags, long uid, com.icegreen.greenmail.store.FolderListener silentListener, boolean addUid)
          Replaces flags for the message with the given UID.
protected abstract  void replaceFlagsInternal(javax.mail.Flags flags, long uid, com.icegreen.greenmail.store.FolderListener silentListener, boolean addUid)
           
 long[] search(javax.mail.search.SearchTerm searchTerm)
          Simply returns UIDs of all messages in the folder.
 void setFlags(javax.mail.Flags flags, boolean value, long uid, com.icegreen.greenmail.store.FolderListener silentListener, boolean addUid)
          Sets flags for the message with the given UID.
protected abstract  void setFlagsInternal(javax.mail.Flags flags, boolean value, long uid, com.icegreen.greenmail.store.FolderListener silentListener, boolean addUid)
           
 void signalDeletion()
          Method is called before the deletion of the folder.
 void store(javax.mail.internet.MimeMessage message)
          Not supported.
 void store(com.icegreen.greenmail.mail.MovingMessage mail)
          Not supported.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.icegreen.greenmail.store.MailFolder
getFirstUnseen, getFullName, getMessageCount, getMessageUids, getMsn, getName, getPermanentFlags, getRecentCount, getUidNext, getUidValidity, getUnseenCount, isMarked, isSelectable
 

Field Detail

serviceRegistry

protected ServiceRegistry serviceRegistry

MAX_RETRIES

protected static int MAX_RETRIES
Constructor Detail

AbstractImapFolder

public AbstractImapFolder(ServiceRegistry serviceRegistry)
Method Detail

checkParameter

protected void checkParameter(java.lang.Object parameter,
                              java.lang.String name)
Method that checks mandatory parameter.

Parameters:
The - parameter instance to check.
The - name of the parameter.

appendMessage

public long appendMessage(javax.mail.internet.MimeMessage message,
                          javax.mail.Flags flags,
                          java.util.Date internalDate)
                   throws com.icegreen.greenmail.store.FolderException
Appends message to the folder.

Specified by:
appendMessage in interface com.icegreen.greenmail.store.MailFolder
Parameters:
message - - message.
flags - - message flags.
internalDate - - not used. Current date used instead.
Returns:
Throws:
com.icegreen.greenmail.store.FolderException

copyMessage

public void copyMessage(long uid,
                        com.icegreen.greenmail.store.MailFolder toFolder)
                 throws com.icegreen.greenmail.store.FolderException
Copies message with the given UID to the specified MailFolder.

Specified by:
copyMessage in interface com.icegreen.greenmail.store.MailFolder
Parameters:
uid - - UID of the message
toFolder - - reference to the destination folder.
Throws:
com.icegreen.greenmail.store.FolderException

deleteAllMessages

public void deleteAllMessages()
                       throws com.icegreen.greenmail.store.FolderException
Marks all messages in the folder as deleted using Flags.Flag#DELETED flag.

Specified by:
deleteAllMessages in interface com.icegreen.greenmail.store.MailFolder
Throws:
com.icegreen.greenmail.store.FolderException

expunge

public void expunge()
             throws com.icegreen.greenmail.store.FolderException
Deletes messages marked with Flags.Flag#DELETED. Note that this message deletes all messages with this flag.

Specified by:
expunge in interface com.icegreen.greenmail.store.MailFolder
Throws:
com.icegreen.greenmail.store.FolderException

getMessage

public com.icegreen.greenmail.store.SimpleStoredMessage getMessage(long uid)
Returns message by its UID.

Specified by:
getMessage in interface com.icegreen.greenmail.store.MailFolder
Parameters:
uid - - UID of the message.
Returns:
message.

getMessages

public java.util.List getMessages()
Returns list of all messages in the folder.

Specified by:
getMessages in interface com.icegreen.greenmail.store.MailFolder
Returns:
list of SimpleStoredMessage objects.

getMessages

public java.util.List getMessages(com.icegreen.greenmail.foedus.util.MsgRangeFilter msgRangeFilter)
Returns list of messages by filter.

Specified by:
getMessages in interface com.icegreen.greenmail.store.MailFolder
Parameters:
msgRangeFilter - - MsgRangeFilter object representing filter.
Returns:
list of filtered messages.

getNonDeletedMessages

public java.util.List getNonDeletedMessages()
Returns the list of messages that have no Flags.Flag#DELETED flag set for current user.

Specified by:
getNonDeletedMessages in interface com.icegreen.greenmail.store.MailFolder
Returns:
the list of non-deleted messages.

replaceFlags

public void replaceFlags(javax.mail.Flags flags,
                         long uid,
                         com.icegreen.greenmail.store.FolderListener silentListener,
                         boolean addUid)
                  throws com.icegreen.greenmail.store.FolderException
Replaces flags for the message with the given UID. If addUid is set to true FolderListener objects defined for this folder will be notified. silentListener can be provided - this listener wouldn't be notified.

Specified by:
replaceFlags in interface com.icegreen.greenmail.store.MailFolder
Parameters:
flags - - new flags.
uid - - message UID.
silentListener - - listener that shouldn't be notified.
addUid - - defines whether or not listeners be notified.
Throws:
com.icegreen.greenmail.store.FolderException

search

public long[] search(javax.mail.search.SearchTerm searchTerm)
Simply returns UIDs of all messages in the folder.

Specified by:
search in interface com.icegreen.greenmail.store.MailFolder
Parameters:
searchTerm - - not used
Returns:
UIDs of the messages

setFlags

public void setFlags(javax.mail.Flags flags,
                     boolean value,
                     long uid,
                     com.icegreen.greenmail.store.FolderListener silentListener,
                     boolean addUid)
              throws com.icegreen.greenmail.store.FolderException
Sets flags for the message with the given UID. If addUid is set to true FolderListener objects defined for this folder will be notified. silentListener can be provided - this listener wouldn't be notified.

Specified by:
setFlags in interface com.icegreen.greenmail.store.MailFolder
Parameters:
flags - - new flags.
value - - flags value.
uid - - message UID.
silentListener - - listener that shouldn't be notified.
addUid - - defines whether or not listeners be notified.
Throws:
com.icegreen.greenmail.store.FolderException

store

public void store(com.icegreen.greenmail.mail.MovingMessage mail)
           throws java.lang.Exception
Not supported. Added to implement MailFolder.store(MovingMessage).

Specified by:
store in interface com.icegreen.greenmail.store.MailFolder
Throws:
java.lang.Exception

store

public void store(javax.mail.internet.MimeMessage message)
           throws java.lang.Exception
Not supported. Added to implement MailFolder.store(MimeMessage).

Specified by:
store in interface com.icegreen.greenmail.store.MailFolder
Throws:
java.lang.Exception

addListener

public void addListener(com.icegreen.greenmail.store.FolderListener listener)
Adds FolderListener to the folder.

Specified by:
addListener in interface com.icegreen.greenmail.store.MailFolder
Parameters:
listener - - new listener.

removeListener

public void removeListener(com.icegreen.greenmail.store.FolderListener listener)
Removes FolderListener from the folder.

Specified by:
removeListener in interface com.icegreen.greenmail.store.MailFolder
Parameters:
listener - - Listener to remove.

signalDeletion

public void signalDeletion()
Method is called before the deletion of the folder. Notifies FolderListener objects with FolderListener.mailboxDeleted() method calls.

Specified by:
signalDeletion in interface com.icegreen.greenmail.store.MailFolder

notifyFlagUpdate

protected void notifyFlagUpdate(int msn,
                                javax.mail.Flags flags,
                                java.lang.Long uidNotification,
                                com.icegreen.greenmail.store.FolderListener silentListener)

isReadOnly

protected abstract boolean isReadOnly()

appendMessageInternal

protected abstract long appendMessageInternal(javax.mail.internet.MimeMessage message,
                                              javax.mail.Flags flags,
                                              java.util.Date internalDate)
                                       throws java.lang.Exception
Throws:
java.lang.Exception

copyMessageInternal

protected abstract void copyMessageInternal(long uid,
                                            com.icegreen.greenmail.store.MailFolder toFolder)
                                     throws java.lang.Exception
Throws:
java.lang.Exception

deleteAllMessagesInternal

protected abstract void deleteAllMessagesInternal()
                                           throws java.lang.Exception
Throws:
java.lang.Exception

expungeInternal

protected abstract void expungeInternal()
                                 throws java.lang.Exception
Throws:
java.lang.Exception

getMessageInternal

protected abstract com.icegreen.greenmail.store.SimpleStoredMessage getMessageInternal(long uid)
                                                                                throws java.lang.Exception
Throws:
java.lang.Exception

getMessagesInternal

protected abstract java.util.List getMessagesInternal()

getMessagesInternal

protected abstract java.util.List getMessagesInternal(com.icegreen.greenmail.foedus.util.MsgRangeFilter msgRangeFilter)

getNonDeletedMessagesInternal

protected abstract java.util.List getNonDeletedMessagesInternal()

replaceFlagsInternal

protected abstract void replaceFlagsInternal(javax.mail.Flags flags,
                                             long uid,
                                             com.icegreen.greenmail.store.FolderListener silentListener,
                                             boolean addUid)
                                      throws java.lang.Exception
Throws:
java.lang.Exception

setFlagsInternal

protected abstract void setFlagsInternal(javax.mail.Flags flags,
                                         boolean value,
                                         long uid,
                                         com.icegreen.greenmail.store.FolderListener silentListener,
                                         boolean addUid)
                                  throws java.lang.Exception
Throws:
java.lang.Exception


Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.