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 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.
- Author:
- Ivan Rybnikov
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.apache.commons.logging.Logprotected static intprotected ServiceRegistry -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddListener(com.icegreen.greenmail.store.FolderListener listener) AddsFolderListenerto the folder.longappendMessage(jakarta.mail.internet.MimeMessage message, jakarta.mail.Flags flags, Date internalDate) Appends message to the folder.protected abstract longappendMessageInternal(jakarta.mail.internet.MimeMessage message, jakarta.mail.Flags flags, Date internalDate) protected voidcheckParameter(Object parameter, 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) voidMarks all messages in the folder as deleted usingjavax.mail.Flags.Flag#DELETEDflag.protected abstract voidvoidexpunge()Deletes messages marked withjavax.mail.Flags.Flag#DELETED.voidexpunge(long uid) Deletes messages marked withjavax.mail.Flags.Flag#DELETED.protected abstract voidprotected 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) List<com.icegreen.greenmail.store.SimpleStoredMessage>Returns list of all messages in the folder.List<com.icegreen.greenmail.store.SimpleStoredMessage>getMessages(com.icegreen.greenmail.foedus.util.MsgRangeFilter msgRangeFilter) Returns list of messages by filter.protected abstract List<com.icegreen.greenmail.store.SimpleStoredMessage>protected abstract List<com.icegreen.greenmail.store.SimpleStoredMessage>getMessagesInternal(com.icegreen.greenmail.foedus.util.MsgRangeFilter msgRangeFilter) List<com.icegreen.greenmail.store.SimpleStoredMessage>Returns the list of messages that have nojavax.mail.Flags.Flag#DELETEDflag set for current user.protected abstract List<com.icegreen.greenmail.store.SimpleStoredMessage>protected abstract booleanprotected voidnotifyFlagUpdate(int msn, jakarta.mail.Flags flags, Long uidNotification, com.icegreen.greenmail.store.FolderListener silentListener) voidremoveListener(com.icegreen.greenmail.store.FolderListener listener) RemovesFolderListenerfrom the folder.voidreplaceFlags(jakarta.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(jakarta.mail.Flags flags, long uid, com.icegreen.greenmail.store.FolderListener silentListener, boolean addUid) long[]search(jakarta.mail.search.SearchTerm searchTerm) Searches the mailbox for messages that match the given searching criteriaprotected abstract long[]searchInternal(jakarta.mail.search.SearchTerm searchTerm) voidsetFlags(jakarta.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(jakarta.mail.Flags flags, boolean value, long uid, com.icegreen.greenmail.store.FolderListener silentListener, boolean addUid) voidMethod is called before the deletion of the folder.voidstore(com.icegreen.greenmail.mail.MovingMessage mail) Not supported.voidstore(jakarta.mail.internet.MimeMessage message) Not supported.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.icegreen.greenmail.store.MailFolder
getFirstUnseen, getFullName, getMessageCount, getMessageUids, getMsn, getName, getPermanentFlags, getRecentCount, getUidNext, getUidValidity, getUnseenCount, isMarked, isSelectable
-
Field Details
-
logger
protected org.apache.commons.logging.Log logger -
serviceRegistry
-
MAX_RETRIES
protected static int MAX_RETRIES
-
-
Constructor Details
-
AbstractImapFolder
-
-
Method Details
-
checkParameter
Method that checks mandatory parameter.- Parameters:
parameter- The parameter instance to check.name- The name of the parameter.
-
appendMessage
public long appendMessage(jakarta.mail.internet.MimeMessage message, jakarta.mail.Flags flags, Date internalDate) throws com.icegreen.greenmail.store.FolderException Appends 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.FolderException Copies 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 usingjavax.mail.Flags.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 withjavax.mail.Flags.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.FolderException Deletes messages marked withjavax.mail.Flags.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
Returns list of all messages in the folder.- Specified by:
getMessagesin interfacecom.icegreen.greenmail.store.MailFolder- Returns:
- list of
SimpleStoredMessageobjects.
-
getMessages
public 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
Returns the list of messages that have nojavax.mail.Flags.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(jakarta.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. 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(jakarta.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(jakarta.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. 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
Not supported. Added to implementMailFolder.store(MovingMessage).- Specified by:
storein interfacecom.icegreen.greenmail.store.MailFolder- Throws:
Exception
-
store
Not supported. Added to implementMailFolder.store(MimeMessage).- Specified by:
storein interfacecom.icegreen.greenmail.store.MailFolder- Throws:
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, jakarta.mail.Flags flags, Long uidNotification, com.icegreen.greenmail.store.FolderListener silentListener) -
isReadOnly
protected abstract boolean isReadOnly() -
appendMessageInternal
protected abstract long appendMessageInternal(jakarta.mail.internet.MimeMessage message, jakarta.mail.Flags flags, Date internalDate) throws Exception - Throws:
Exception
-
copyMessageInternal
protected abstract long copyMessageInternal(long uid, com.icegreen.greenmail.store.MailFolder toFolder) throws Exception - Throws:
Exception
-
deleteAllMessagesInternal
- Throws:
Exception
-
expungeInternal
- Throws:
Exception
-
expungeInternal
- Throws:
Exception
-
getMessageInternal
protected abstract com.icegreen.greenmail.store.SimpleStoredMessage getMessageInternal(long uid) throws Exception - Throws:
Exception
-
getMessagesInternal
-
getMessagesInternal
protected abstract List<com.icegreen.greenmail.store.SimpleStoredMessage> getMessagesInternal(com.icegreen.greenmail.foedus.util.MsgRangeFilter msgRangeFilter) -
getNonDeletedMessagesInternal
protected abstract List<com.icegreen.greenmail.store.SimpleStoredMessage> getNonDeletedMessagesInternal() -
replaceFlagsInternal
protected abstract void replaceFlagsInternal(jakarta.mail.Flags flags, long uid, com.icegreen.greenmail.store.FolderListener silentListener, boolean addUid) throws Exception - Throws:
Exception
-
searchInternal
protected abstract long[] searchInternal(jakarta.mail.search.SearchTerm searchTerm) -
setFlagsInternal
protected abstract void setFlagsInternal(jakarta.mail.Flags flags, boolean value, long uid, com.icegreen.greenmail.store.FolderListener silentListener, boolean addUid) throws Exception - Throws:
Exception
-