Package org.alfresco.repo.imap
Class AbstractImapFolder
- java.lang.Object
-
- 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.MailFolderImplementation of greenmail MailFolder. It represents an Alfresco content folder and handles appendMessage, copyMessage, expunge (delete), getMessages, getMessage and so requests.- Author:
- Ivan Rybnikov
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classAbstractImapFolder.CommandCallback<T>
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.commons.logging.Logloggerprotected static intMAX_RETRIESprotected ServiceRegistryserviceRegistry
-
Constructor Summary
Constructors Constructor Description AbstractImapFolder(ServiceRegistry serviceRegistry)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddListener(com.icegreen.greenmail.store.FolderListener listener)AddsFolderListenerto the folder.longappendMessage(javax.mail.internet.MimeMessage message, javax.mail.Flags flags, java.util.Date internalDate)Appends message to the folder.protected abstract longappendMessageInternal(javax.mail.internet.MimeMessage message, javax.mail.Flags flags, java.util.Date internalDate)protected voidcheckParameter(java.lang.Object parameter, java.lang.String name)Method that checks mandatory parameter.longcopyMessage(long uid, com.icegreen.greenmail.store.MailFolder toFolder)Copies message with the given UID to the specifiedMailFolder.protected abstract longcopyMessageInternal(long uid, com.icegreen.greenmail.store.MailFolder toFolder)voiddeleteAllMessages()Marks all messages in the folder as deleted usingFlags.Flag.DELETEDflag.protected abstract voiddeleteAllMessagesInternal()voidexpunge()Deletes messages marked withFlags.Flag.DELETED.voidexpunge(long uid)Deletes messages marked withFlags.Flag.DELETED.protected abstract voidexpungeInternal()protected abstract voidexpungeInternal(long uid)com.icegreen.greenmail.store.SimpleStoredMessagegetMessage(long uid)Returns message by its UID.protected abstract com.icegreen.greenmail.store.SimpleStoredMessagegetMessageInternal(long uid)java.util.List<com.icegreen.greenmail.store.SimpleStoredMessage>getMessages()Returns list of all messages in the folder.java.util.List<com.icegreen.greenmail.store.SimpleStoredMessage>getMessages(com.icegreen.greenmail.foedus.util.MsgRangeFilter msgRangeFilter)Returns list of messages by filter.protected abstract java.util.List<com.icegreen.greenmail.store.SimpleStoredMessage>getMessagesInternal()protected abstract java.util.List<com.icegreen.greenmail.store.SimpleStoredMessage>getMessagesInternal(com.icegreen.greenmail.foedus.util.MsgRangeFilter msgRangeFilter)java.util.List<com.icegreen.greenmail.store.SimpleStoredMessage>getNonDeletedMessages()Returns the list of messages that have noFlags.Flag.DELETEDflag set for current user.protected abstract java.util.List<com.icegreen.greenmail.store.SimpleStoredMessage>getNonDeletedMessagesInternal()protected abstract booleanisReadOnly()protected voidnotifyFlagUpdate(int msn, javax.mail.Flags flags, java.lang.Long uidNotification, com.icegreen.greenmail.store.FolderListener silentListener)voidremoveListener(com.icegreen.greenmail.store.FolderListener listener)RemovesFolderListenerfrom the folder.voidreplaceFlags(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 voidreplaceFlagsInternal(javax.mail.Flags flags, long uid, com.icegreen.greenmail.store.FolderListener silentListener, boolean addUid)long[]search(javax.mail.search.SearchTerm searchTerm)Searches the mailbox for messages that match the given searching criteriaprotected abstract long[]searchInternal(javax.mail.search.SearchTerm searchTerm)voidsetFlags(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 voidsetFlagsInternal(javax.mail.Flags flags, boolean value, long uid, com.icegreen.greenmail.store.FolderListener silentListener, boolean addUid)voidsignalDeletion()Method is called before the deletion of the folder.voidstore(com.icegreen.greenmail.mail.MovingMessage mail)Not supported.voidstore(javax.mail.internet.MimeMessage message)Not supported.
-
-
-
Field Detail
-
logger
protected org.apache.commons.logging.Log logger
-
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:
parameter- The parameter instance to check.name- 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.FolderExceptionAppends message to the folder.- Specified by:
appendMessagein interfacecom.icegreen.greenmail.store.MailFolder- Parameters:
message- - message.flags- - message flags.internalDate- - not used. Current date used instead.- Returns:
- long
- Throws:
com.icegreen.greenmail.store.FolderException
-
copyMessage
public long copyMessage(long uid, com.icegreen.greenmail.store.MailFolder toFolder) throws com.icegreen.greenmail.store.FolderExceptionCopies message with the given UID to the specifiedMailFolder.- Specified by:
copyMessagein interfacecom.icegreen.greenmail.store.MailFolder- Parameters:
uid- - UID of the messagetoFolder- - reference to the destination folder.- Throws:
com.icegreen.greenmail.store.FolderException
-
deleteAllMessages
public void deleteAllMessages() throws com.icegreen.greenmail.store.FolderExceptionMarks all messages in the folder as deleted usingFlags.Flag.DELETEDflag.- Specified by:
deleteAllMessagesin interfacecom.icegreen.greenmail.store.MailFolder- Throws:
com.icegreen.greenmail.store.FolderException
-
expunge
public void expunge() throws com.icegreen.greenmail.store.FolderExceptionDeletes messages marked withFlags.Flag.DELETED. Note that this message deletes all messages with this flag.- Specified by:
expungein interfacecom.icegreen.greenmail.store.MailFolder- Throws:
com.icegreen.greenmail.store.FolderException
-
expunge
public void expunge(long uid) throws com.icegreen.greenmail.store.FolderExceptionDeletes messages marked withFlags.Flag.DELETED. Note that this message deletes the messages with current uid- Specified by:
expungein interfacecom.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:
getMessagein interfacecom.icegreen.greenmail.store.MailFolder- Parameters:
uid- - UID of the message.- Returns:
- message.
-
getMessages
public java.util.List<com.icegreen.greenmail.store.SimpleStoredMessage> getMessages()
Returns list of all messages in the folder.- Specified by:
getMessagesin interfacecom.icegreen.greenmail.store.MailFolder- Returns:
- list of
SimpleStoredMessageobjects.
-
getMessages
public java.util.List<com.icegreen.greenmail.store.SimpleStoredMessage> getMessages(com.icegreen.greenmail.foedus.util.MsgRangeFilter msgRangeFilter)
Returns list of messages by filter.- Specified by:
getMessagesin interfacecom.icegreen.greenmail.store.MailFolder- Parameters:
msgRangeFilter- -MsgRangeFilterobject representing filter.- Returns:
- list of filtered messages.
-
getNonDeletedMessages
public java.util.List<com.icegreen.greenmail.store.SimpleStoredMessage> getNonDeletedMessages()
Returns the list of messages that have noFlags.Flag.DELETEDflag set for current user.- Specified by:
getNonDeletedMessagesin interfacecom.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.FolderExceptionReplaces flags for the message with the given UID. IfaddUidis set totrueFolderListenerobjects defined for this folder will be notified.silentListenercan be provided - this listener wouldn't be notified.- Specified by:
replaceFlagsin interfacecom.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)
Searches the mailbox for messages that match the given searching criteria- Specified by:
searchin interfacecom.icegreen.greenmail.store.MailFolder- Parameters:
searchTerm- - search term that contains search criteria.- 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.FolderExceptionSets flags for the message with the given UID. IfaddUidis set totrueFolderListenerobjects defined for this folder will be notified.silentListenercan be provided - this listener wouldn't be notified.- Specified by:
setFlagsin interfacecom.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.ExceptionNot supported. Added to implementMailFolder.store(MovingMessage).- Specified by:
storein interfacecom.icegreen.greenmail.store.MailFolder- Throws:
java.lang.Exception
-
store
public void store(javax.mail.internet.MimeMessage message) throws java.lang.ExceptionNot supported. Added to implementMailFolder.store(MimeMessage).- Specified by:
storein interfacecom.icegreen.greenmail.store.MailFolder- Throws:
java.lang.Exception
-
addListener
public void addListener(com.icegreen.greenmail.store.FolderListener listener)
AddsFolderListenerto the folder.- Specified by:
addListenerin interfacecom.icegreen.greenmail.store.MailFolder- Parameters:
listener- - new listener.
-
removeListener
public void removeListener(com.icegreen.greenmail.store.FolderListener listener)
RemovesFolderListenerfrom the folder.- Specified by:
removeListenerin interfacecom.icegreen.greenmail.store.MailFolder- Parameters:
listener- - Listener to remove.
-
signalDeletion
public void signalDeletion()
Method is called before the deletion of the folder. NotifiesFolderListenerobjects withFolderListener.mailboxDeleted()method calls.- Specified by:
signalDeletionin interfacecom.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 long 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
-
expungeInternal
protected abstract void expungeInternal(long uid) 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<com.icegreen.greenmail.store.SimpleStoredMessage> getMessagesInternal()
-
getMessagesInternal
protected abstract java.util.List<com.icegreen.greenmail.store.SimpleStoredMessage> getMessagesInternal(com.icegreen.greenmail.foedus.util.MsgRangeFilter msgRangeFilter)
-
getNonDeletedMessagesInternal
protected abstract java.util.List<com.icegreen.greenmail.store.SimpleStoredMessage> 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
-
searchInternal
protected abstract long[] searchInternal(javax.mail.search.SearchTerm searchTerm)
-
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
-
-