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
    Modifier and Type
    Class
    Description
    protected class 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected org.apache.commons.logging.Log
     
    protected static int
     
    protected ServiceRegistry
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addListener(com.icegreen.greenmail.store.FolderListener listener)
    Adds FolderListener to the folder.
    long
    appendMessage(jakarta.mail.internet.MimeMessage message, jakarta.mail.Flags flags, Date internalDate)
    Appends message to the folder.
    protected abstract long
    appendMessageInternal(jakarta.mail.internet.MimeMessage message, jakarta.mail.Flags flags, Date internalDate)
     
    protected void
    checkParameter(Object parameter, String name)
    Method that checks mandatory parameter.
    long
    copyMessage(long uid, com.icegreen.greenmail.store.MailFolder toFolder)
    Copies message with the given UID to the specified MailFolder.
    protected abstract long
    copyMessageInternal(long uid, com.icegreen.greenmail.store.MailFolder toFolder)
     
    void
    Marks all messages in the folder as deleted using javax.mail.Flags.Flag#DELETED flag.
    protected abstract void
     
    void
    Deletes messages marked with javax.mail.Flags.Flag#DELETED.
    void
    expunge(long uid)
    Deletes messages marked with javax.mail.Flags.Flag#DELETED.
    protected abstract void
     
    protected abstract void
    expungeInternal(long uid)
     
    com.icegreen.greenmail.store.SimpleStoredMessage
    getMessage(long uid)
    Returns message by its UID.
    protected abstract com.icegreen.greenmail.store.SimpleStoredMessage
     
    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 no javax.mail.Flags.Flag#DELETED flag set for current user.
    protected abstract List<com.icegreen.greenmail.store.SimpleStoredMessage>
     
    protected abstract boolean
     
    protected void
    notifyFlagUpdate(int msn, jakarta.mail.Flags flags, Long uidNotification, com.icegreen.greenmail.store.FolderListener silentListener)
     
    void
    removeListener(com.icegreen.greenmail.store.FolderListener listener)
    Removes FolderListener from the folder.
    void
    replaceFlags(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 void
    replaceFlagsInternal(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 criteria
    protected abstract long[]
    searchInternal(jakarta.mail.search.SearchTerm searchTerm)
     
    void
    setFlags(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 void
    setFlagsInternal(jakarta.mail.Flags flags, boolean value, long uid, com.icegreen.greenmail.store.FolderListener silentListener, boolean addUid)
     
    void
    Method is called before the deletion of the folder.
    void
    store(com.icegreen.greenmail.mail.MovingMessage mail)
    Not supported.
    void
    store(jakarta.mail.internet.MimeMessage message)
    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 Details

    • logger

      protected org.apache.commons.logging.Log logger
    • serviceRegistry

      protected ServiceRegistry serviceRegistry
    • MAX_RETRIES

      protected static int MAX_RETRIES
  • Constructor Details

    • AbstractImapFolder

      public AbstractImapFolder(ServiceRegistry serviceRegistry)
  • Method Details

    • checkParameter

      protected void checkParameter(Object parameter, String name)
      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:
      appendMessage in interface com.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 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 javax.mail.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 javax.mail.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
    • expunge

      public void expunge(long uid) throws com.icegreen.greenmail.store.FolderException
      Deletes messages marked with javax.mail.Flags.Flag#DELETED. Note that this message deletes the messages with current uid
      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 List<com.icegreen.greenmail.store.SimpleStoredMessage> 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 List<com.icegreen.greenmail.store.SimpleStoredMessage> 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 List<com.icegreen.greenmail.store.SimpleStoredMessage> getNonDeletedMessages()
      Returns the list of messages that have no javax.mail.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(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. 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(jakarta.mail.search.SearchTerm searchTerm)
      Searches the mailbox for messages that match the given searching criteria
      Specified by:
      search in interface com.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. 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 Exception
      Not supported. Added to implement MailFolder.store(MovingMessage).
      Specified by:
      store in interface com.icegreen.greenmail.store.MailFolder
      Throws:
      Exception
    • store

      public void store(jakarta.mail.internet.MimeMessage message) throws Exception
      Not supported. Added to implement MailFolder.store(MimeMessage).
      Specified by:
      store in interface com.icegreen.greenmail.store.MailFolder
      Throws:
      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, 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

      protected abstract void deleteAllMessagesInternal() throws Exception
      Throws:
      Exception
    • expungeInternal

      protected abstract void expungeInternal() throws Exception
      Throws:
      Exception
    • expungeInternal

      protected abstract void expungeInternal(long uid) throws Exception
      Throws:
      Exception
    • getMessageInternal

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

      protected abstract List<com.icegreen.greenmail.store.SimpleStoredMessage> 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