mirror of
https://github.com/moparisthebest/k-9
synced 2024-11-14 05:25:07 -05:00
96 lines
3.0 KiB
Java
96 lines
3.0 KiB
Java
|
package com.fsck.k9.mail;
|
||
|
|
||
|
|
||
|
public abstract class Folder {
|
||
|
public enum OpenMode {
|
||
|
READ_WRITE, READ_ONLY,
|
||
|
}
|
||
|
|
||
|
public enum FolderType {
|
||
|
HOLDS_FOLDERS, HOLDS_MESSAGES,
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Forces an open of the MailProvider. If the provider is already open this
|
||
|
* function returns without doing anything.
|
||
|
*
|
||
|
* @param mode READ_ONLY or READ_WRITE
|
||
|
*/
|
||
|
public abstract void open(OpenMode mode) throws MessagingException;
|
||
|
|
||
|
/**
|
||
|
* Forces a close of the MailProvider. Any further access will attempt to
|
||
|
* reopen the MailProvider.
|
||
|
*
|
||
|
* @param expunge If true all deleted messages will be expunged.
|
||
|
*/
|
||
|
public abstract void close(boolean expunge) throws MessagingException;
|
||
|
|
||
|
/**
|
||
|
* @return True if further commands are not expected to have to open the
|
||
|
* connection.
|
||
|
*/
|
||
|
public abstract boolean isOpen();
|
||
|
|
||
|
/**
|
||
|
* Get the mode the folder was opened with. This may be different than the mode the open
|
||
|
* was requested with.
|
||
|
* @return
|
||
|
*/
|
||
|
public abstract OpenMode getMode() throws MessagingException;
|
||
|
|
||
|
public abstract boolean create(FolderType type) throws MessagingException;
|
||
|
|
||
|
public abstract boolean exists() throws MessagingException;
|
||
|
|
||
|
/**
|
||
|
* @return A count of the messages in the selected folder.
|
||
|
*/
|
||
|
public abstract int getMessageCount() throws MessagingException;
|
||
|
|
||
|
public abstract int getUnreadMessageCount() throws MessagingException;
|
||
|
|
||
|
public abstract Message getMessage(String uid) throws MessagingException;
|
||
|
|
||
|
public abstract Message[] getMessages(int start, int end, MessageRetrievalListener listener)
|
||
|
throws MessagingException;
|
||
|
|
||
|
/**
|
||
|
* Fetches the given list of messages. The specified listener is notified as
|
||
|
* each fetch completes. Messages are downloaded as (as) lightweight (as
|
||
|
* possible) objects to be filled in with later requests. In most cases this
|
||
|
* means that only the UID is downloaded.
|
||
|
*
|
||
|
* @param uids
|
||
|
* @param listener
|
||
|
*/
|
||
|
public abstract Message[] getMessages(MessageRetrievalListener listener)
|
||
|
throws MessagingException;
|
||
|
|
||
|
public abstract Message[] getMessages(String[] uids, MessageRetrievalListener listener)
|
||
|
throws MessagingException;
|
||
|
|
||
|
public abstract void appendMessages(Message[] messages) throws MessagingException;
|
||
|
|
||
|
public abstract void copyMessages(Message[] msgs, Folder folder) throws MessagingException;
|
||
|
|
||
|
public abstract void setFlags(Message[] messages, Flag[] flags, boolean value)
|
||
|
throws MessagingException;
|
||
|
|
||
|
public abstract Message[] expunge() throws MessagingException;
|
||
|
|
||
|
public abstract void fetch(Message[] messages, FetchProfile fp,
|
||
|
MessageRetrievalListener listener) throws MessagingException;
|
||
|
|
||
|
public abstract void delete(boolean recurse) throws MessagingException;
|
||
|
|
||
|
public abstract String getName();
|
||
|
|
||
|
public abstract Flag[] getPermanentFlags() throws MessagingException;
|
||
|
|
||
|
@Override
|
||
|
public String toString() {
|
||
|
return getName();
|
||
|
}
|
||
|
}
|