Spec-Zone .ru
спецификации, руководства, описания, API
|
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЕЙМЫ НИКАКИЕ ФРЕЙМЫ | ||||||||
СВОДКА: ВЛОЖЕННЫЙ | ПОЛЕ | CONSTR | МЕТОД | ДЕТАЛЬ: ПОЛЕ | CONSTR | МЕТОД |
java.lang.Object javax.mail.Folder
public abstract class Folder
Папкой является абстрактный class, который представляет папку для почтовых сообщений. Подклассы реализуют протокол определенные Папки.
Папки могут содержать сообщения, другие Папки, или оба, таким образом обеспечивая древовидную иерархию базировались в папке значения по умолчанию Хранилища. (Отметьте, что некоторые реализации Папки, возможно, не позволяют оба сообщения и другие Папки в той же самой Папке).
Интерпретация имен папок является зависящей от реализации. Разные уровни иерархии в полном имени папки разделяются друг от друга символом-разделителем иерархии.
Нечувствительное к регистру полное имя папки (то есть, полное имя относительно папки значения по умолчанию для Хранилища) ЯЩИК ДЛЯ ПРИЕМА СООБЩЕНИЙ резервируется, чтобы означать "основную папку для этого пользователя на этом сервере". Не все Хранилища обеспечат папку ЯЩИКА ДЛЯ ПРИЕМА СООБЩЕНИЙ, и не все пользователи будет иметь папку ЯЩИКА ДЛЯ ПРИЕМА СООБЩЕНИЙ всегда. ЯЩИК ДЛЯ ПРИЕМА СООБЩЕНИЙ имени резервируется, чтобы обратиться к этой папке, когда это существует в Хранилищах, которые обеспечивают это.
Объект Папки, полученный из Хранилища, не должен фактически существовать в хранилище бэкэнда. exists
метод тестирует, существует ли папка или нет. create
метод создает Папку.
Папка находится первоначально в закрытом состоянии. Определенные методы допустимы в этом состоянии; документация для тех методов отмечает это. Папка открывается, вызывая ее 'открытый' метод. Все методы Folder, кроме open
, delete
и renameTo
, допустимы в этом состоянии.
Единственный способ получить Папку, вызывая getFolder
метод на Хранилище, Папке, или Сеансе, или вызывая list
или listSubscribed
методы на Папке. Объекты папки, возвращенные вышеупомянутыми методами, не кэшируются Хранилищем. Таким образом, вызов getFolder
метод с тем же самым именем папки многократно возвратит отличные объекты Папки. Аналогично для list
и listSubscribed
методы.
Объекты сообщения в пределах Папки кэшируются Папкой. Таким образом, вызов getMessage(msgno)
на том же самом номере сообщения многократно возвратит тот же самый объект сообщения, пока вычеркивание не делается на этой Папке.
Объекты сообщения от Папки только допустимы, в то время как Папка открыта и не должна быть получена доступ после того, как Папка закрывается, даже если Папка впоследствии вновь открывается. Вместо этого новые объекты сообщения должны быть выбраны от Папки после того, как Папка вновь открывается.
Отметьте, что номер сообщения сообщения может измениться в пределах сеанса, если содержание Папки вычеркивается, используя вычеркивать метод. Клиенты, которые используют номера сообщения в качестве ссылок на сообщения, должны знать об этом и должны быть подготовлены иметь дело с ситуацией (вероятно, спугивая существующие ссылки номера сообщения и перезагружая их). Из-за этой сложности для клиентов лучше использовать объекты сообщения в качестве ссылок на сообщения, а не номеров сообщения. Вычеркнутые объекты сообщения все еще должны быть сокращены, но на другие объекты сообщения в той папке не влияет вычеркивание.
Полевая Сводка | |
---|---|
static int |
HOLDS_FOLDERS
Эта папка может содержать другие папки |
static int |
HOLDS_MESSAGES
Эта папка может содержать сообщения |
protected int |
режим
Открытый режим этой папки. |
static int |
READ_ONLY
Папка только для чтения. |
static int |
READ_WRITE
Состояние и содержание этой папки могут быть изменены. |
protected Store |
хранилище
Родительское хранилище. |
Сводка конструктора | |
---|---|
protected |
Folder(Store store)
Конструктор, который берет объект Хранилища. |
Сводка метода | |
---|---|
void |
addConnectionListener(ConnectionListener l)
Добавьте слушателя для событий Connection на этой Папке. |
void |
addFolderListener(FolderListener l)
Добавьте слушателя для событий Folder на этой Папке. |
void |
addMessageChangedListener(MessageChangedListener l)
Добавьте слушателя для событий MessageChanged на этой Папке. |
void |
addMessageCountListener(MessageCountListener l)
Добавьте слушателя для событий MessageCount на этой Папке. |
abstract void |
appendMessages(Message[] msgs)
Добавьте данные сообщения к этой папке. |
abstract void |
close(boolean expunge)
Закройте эту Папку. |
void |
copyMessages(Message[] msgs, Folder folder)
Скопируйте указанные сообщения с этой Папки в другую Папку. |
abstract boolean |
create(int type)
Создайте эту папку на Хранилище. |
abstract boolean |
delete(boolean recurse)
Удалите эту Папку. |
abstract boolean |
exists()
Тесты, если эта папка физически существует на Хранилище. |
abstract Message[] |
expunge()
Вычеркните (постоянно удаляют), сообщения, отмеченные УДАЛЕННЫЙ. |
void |
fetch(Message[] msgs, FetchProfile fp)
Выберите с упреждением элементы, определенные в FetchProfile для данных сообщений. |
protected void |
finalize()
|
int |
getDeletedMessageCount()
Получите число удаленных сообщений в этой Папке. |
abstract Folder |
getFolder(java.lang.String name)
Возвратите соответствие объекта Папки имени. |
abstract java.lang.String |
getFullName()
Возвращает полное имя этой Папки. |
abstract Message |
getMessage(int msgnum)
Получите соответствие объекта сообщения данному номеру сообщения. |
abstract int |
getMessageCount()
Получите общее количество сообщений в этой Папке. |
Сообщение[] |
getMessages()
Получите все объекты сообщения от этой Папки. |
Сообщение[] |
getMessages(int[] msgnums)
Получите объекты сообщения для номеров сообщения, определенных в массиве. |
Сообщение[] |
getMessages(int start, int end)
Получите объекты сообщения для номеров сообщения в пределах от запуска через конец, оба запускаются и заканчиваются включительно. |
int |
getMode()
Возвратите открытый режим этой папки. |
abstract java.lang.String |
getName()
Возвращает имя этой Папки. |
int |
getNewMessageCount()
Получите число новых сообщений в этой Папке. |
abstract Folder |
getParent()
Возвращает родительскую папку этой папки. |
abstract Flags |
getPermanentFlags()
Поддерживайте постоянные флаги этой Папкой. |
abstract char |
getSeparator()
Возвратите символ-разделитель, который разделяет путь этой Папки от имен непосредственных подпапок. |
Хранилище |
getStore()
Возвращает Хранилище, которому принадлежит этот объект Папки. |
abstract int |
getType()
Возвращает тип этой Папки, то есть, может ли эта папка содержать сообщения или подпапки или обоих. |
int |
getUnreadMessageCount()
Получите общее количество непрочитанных сообщений в этой Папке. |
URLName |
getURLName()
Возвратите URLName, представляющий эту папку. |
abstract boolean |
hasNewMessages()
Возвращает true, если у этой Папки есть новые сообщения с прошлого раза, когда эта индикация была сброшена. |
abstract boolean |
isOpen()
Указывает, является ли эта Папка в 'открытом' состоянии. |
boolean |
isSubscribed()
Возвращает true, если эта Папка подписывается. |
Папка[] |
list()
Метод удобства, который возвращает список папок под этой Папкой. |
abstract Folder[] |
list(java.lang.String pattern)
Возвращает список Папок, принадлежащих пространству имен этой Папки, которые соответствуют указанный образец. |
Папка[] |
listSubscribed()
Метод удобства, который возвращает список подписанных папок под этой Папкой. |
Папка[] |
listSubscribed(java.lang.String pattern)
Возвращает список подписанных Папок, принадлежащих пространству имен этой Папки, которые соответствуют указанный образец. |
protected void |
notifyConnectionListeners(int type)
Уведомьте весь ConnectionListeners. |
protected void |
notifyFolderListeners(int type)
Уведомьте весь FolderListeners, зарегистрированный относительно этой Папки и Хранилища этой папки. |
protected void |
notifyFolderRenamedListeners(Folder folder)
Уведомьте весь FolderListeners, зарегистрированный относительно этой Папки и Хранилища этой папки о переименовании этой папки. |
protected void |
notifyMessageAddedListeners(Message[] msgs)
Уведомьте весь MessageCountListeners о добавлении сообщений в эту папку. |
protected void |
notifyMessageChangedListeners(int type, Message msg)
Уведомьте весь MessageChangedListeners. |
protected void |
notifyMessageRemovedListeners(boolean removed, Message[] msgs)
Уведомьте весь MessageCountListeners об удалении сообщений от этой Папки. |
abstract void |
open(int mode)
Откройте эту Папку. |
void |
removeConnectionListener(ConnectionListener l)
Удалите слушателя события Connection. |
void |
removeFolderListener(FolderListener l)
Удалите слушателя события Folder. |
void |
removeMessageChangedListener(MessageChangedListener l)
Удалите слушателя MessageChanged. |
void |
removeMessageCountListener(MessageCountListener l)
Удалите слушателя MessageCount. |
abstract boolean |
renameTo(Folder f)
Переименуйте эту Папку. |
Сообщение[] |
search(SearchTerm term)
Ищите эту Папку сообщения, соответствующие указанный критерий поиска. |
Сообщение[] |
search(SearchTerm term, Message[] msgs)
Ищите данный массив сообщений для тех, которые соответствуют указанный критерий поиска. |
void |
setFlags(int[] msgnums, Flags flag, boolean value)
Установите указанные флаги на сообщениях, номера сообщения которых находятся в массиве. |
void |
setFlags(int start, int end, Flags flag, boolean value)
Установите указанные флаги на сообщениях, пронумерованных от запуска до конца, оба запускаются и заканчиваются включительно. |
void |
setFlags(Message[] msgs, Flags flag, boolean value)
Установите указанные флаги на сообщениях, определенных в массиве. |
void |
setSubscribed(boolean subscribe)
Подпишите или отпишите эту Папку. |
java.lang.String |
toString()
переопределите значение по умолчанию toString (), оно возвратит Строку из Folder.getFullName () или если это будет нулем, то оно будет использовать значение по умолчанию toString () поведение. |
Методы, наследованные от class java.lang. Объект |
---|
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Полевая Деталь |
---|
protected Store store
protected int mode
Folder.READ_ONLY
, Folder.READ_WRITE
, или-1, если не известный.
public static final int HOLDS_MESSAGES
public static final int HOLDS_FOLDERS
public static final int READ_ONLY
public static final int READ_WRITE
Деталь конструктора |
---|
protected Folder(Store store)
store
- Хранилище, которое содержит эту папкуДеталь метода |
---|
public abstract java.lang.String getName()
Этот метод может быть вызван на закрытую Папку.
public abstract java.lang.String getFullName()
Этот метод может быть вызван на закрытую Папку.
public URLName getURLName() throws MessagingException
MessagingException
URLName
public Store getStore()
public abstract Folder getParent() throws MessagingException
Отметьте, что, так как объекты Папки не кэшируются, вызывая этот метод возвращает новый отличный объект Папки.
MessagingException
public abstract boolean exists() throws MessagingException
MessagingException
- обычно, если соединение с сервером теряется.create(int)
public abstract Folder[] list(java.lang.String pattern) throws MessagingException
"%"
, который соответствует любой символ кроме разделителей иерархии, и "*"
, который соответствует любой символ. Как пример, учитывая иерархию папок:
Personal/ Finance/ Stocks Bonus StockOptions Jokes
list("*")
на "Персональном" возвратит целую иерархию. list("%")
на "Персональном" возвратит "Финансы" и "Шутки". list("Jokes")
на "Персональном" возвратит "Шутки".list("Stock*")
на "Финансах" возвратит "Запасы" и "StockOptions". Объекты папки не кэшируются Хранилищем, таким образом вызывая этот метод на тот же самый образец многократно возвратит это много отличных объектов Папки.
Этот метод может быть вызван на закрытую Папку.
pattern
- образец соответствия FolderNotFoundException
- если эта папка не существует. MessagingException
listSubscribed(java.lang.String)
public Folder[] listSubscribed(java.lang.String pattern) throws MessagingException
list
. (Реализация по умолчанию, обеспеченная здесь, делает только это). Образец может содержать подстановочные знаки что касается list
. Отметьте, что на данном уровне иерархии папок определенная папка не может быть подписана, но папки под той папкой в иерархии папок могут быть подписаны. Чтобы позволить обходить иерархию папок, такие отписанные папки могут быть возвращены, указывая, что папка ниже в иерархии подписывается. isSubscribed
метод на папке скажет, подписывается ли какая-либо определенная папка фактически.
Объекты папки не кэшируются Хранилищем, таким образом вызывая этот метод на тот же самый образец многократно возвратит это много отличных объектов Папки.
Этот метод может быть вызван на закрытую Папку.
pattern
- образец соответствия FolderNotFoundException
- если эта папка не существует. MessagingException
list(java.lang.String)
public Folder[] list() throws MessagingException
list(String pattern)
метод с "%"
как образец соответствия. Этот метод может быть вызван на закрытую Папку.
FolderNotFoundException
- если эта папка не существует. MessagingException
list(java.lang.String)
public Folder[] listSubscribed() throws MessagingException
listSubscribed(String pattern)
метод с "%"
как образец соответствия. Этот метод может быть вызван на закрытую Папку.
FolderNotFoundException
- если эта папка не существует. MessagingException
listSubscribed(java.lang.String)
public abstract char getSeparator() throws MessagingException
FolderNotFoundException
- если реализация требует, чтобы папка существовала, но это не делает MessagingException
public abstract int getType() throws MessagingException
FolderNotFoundException
- если эта папка не существует. MessagingException
HOLDS_FOLDERS
, HOLDS_MESSAGES
public abstract boolean create(int type) throws MessagingException
Если создание успешно, СОЗДАВАЕМЫЙ FolderEvent поставляют любому FolderListeners, зарегистрированному на этой Папке и этом Хранилище.
type
- Тип этой папки. MessagingException
HOLDS_FOLDERS
, HOLDS_MESSAGES
, FolderEvent
public boolean isSubscribed()
Этот метод может быть вызван на закрытую Папку.
Реализация по умолчанию, обеспеченная здесь только, возвращает true.
public void setSubscribed(boolean subscribe) throws MessagingException
Этот метод может быть вызван на закрытую Папку.
Реализация, обеспеченная здесь только, бросает MethodNotSupportedException.
subscribe
- истина, чтобы подписаться, ложь, чтобы отписаться FolderNotFoundException
- если эта папка не существует. MethodNotSupportedException
- если это хранилище не поддерживает подписку MessagingException
public abstract boolean hasNewMessages() throws MessagingException
RECENT
флаг устанавливается. Отметьте, что это не инкрементная проверка на новую почту, то есть, она не может использоваться, чтобы определить, прибыли ли какие-либо новые сообщения с прошлого раза был вызван этот метод. Чтобы реализовать инкрементные проверки, Папка должна быть открыта.
Этот метод может быть вызван на закрытую Папку, которая может содержать сообщения.
FolderNotFoundException
- если эта папка не существует. MessagingException
public abstract Folder getFolder(java.lang.String name) throws MessagingException
exists()
метод на Папке указывает, существует ли он действительно на Хранилище. В некоторых Хранилищах имя может быть абсолютным путем, если оно запускается с разделителя иерархии. Иначе, это интерпретируется относительно этой Папки.
Объекты папки не кэшируются Хранилищем, таким образом вызывая этот метод на то же самое имя многократно возвратит это много отличных объектов Папки.
Этот метод может быть вызван на закрытую Папку.
name
- имя Папки MessagingException
public abstract boolean delete(boolean recurse) throws MessagingException
recurse
отметьте средства управления, влияет ли удаление на подпапки или нет. Если это правда, все подпапки удаляются, тогда эта сама папка удаляется. Если ложь, поведение зависит от типа папки и разрабатывается ниже:
Если папка содержит подпапки есть 3 возможных вариантов, которые реализация свободна сделать:
FolderNotFoundException
- если эта папка не существует IllegalStateException
- если эта папка не находится в закрытом состоянии. MessagingException
FolderEvent
public abstract boolean renameTo(Folder f) throws MessagingException
Если переименовывание успешно, ПЕРЕИМЕНОВАННЫЙ FolderEvent поставляют FolderListeners, зарегистрированному на этой папке и ее содержании Хранилища.
f
- папка, представляющая новое имя для этой Папки FolderNotFoundException
- если эта папка не существует IllegalStateException
- если эта папка не находится в закрытом состоянии. MessagingException
FolderEvent
public abstract void open(int mode) throws MessagingException
Если эта папка открывается успешно, ОТКРЫТЫЙ ConnectionEvent поставляют любому ConnectionListeners, зарегистрированному на этой Папке.
Эффект открытия многократных соединений с той же самой папкой на Хранилище specifc является зависящим от реализации. Некоторые реализации позволяют многократным читателям, но только одному писателю. Другие позволяют многократным писателям так же как читателям.
mode
- откройте Папку READ_ONLY или READ_WRITE FolderNotFoundException
- если эта папка не существует. IllegalStateException
- если эта папка не находится в закрытом состоянии. MessagingException
READ_ONLY
, READ_WRITE
, getType()
, ConnectionEvent
public abstract void close(boolean expunge) throws MessagingException
ЗАКРЫТЫЙ ConnectionEvent поставляют любому ConnectionListeners, зарегистрированному на этой Папке. Отметьте, что папка закрывается, даже если этот метод завершается неправильно, бросая MessagingException.
expunge
- вычеркивает все удаленные сообщения, если этот флаг является истиной IllegalStateException
- если эта папка не открывается MessagingException
ConnectionEvent
public abstract boolean isOpen()
public int getMode()
Folder.READ_ONLY
, Folder.READ_WRITE
, или-1, если открытый режим не известен (обычно только потому, что более старое Folder
провайдер не был обновлен, чтобы использовать этот новый метод).
IllegalStateException
- если эта папка не открываетсяpublic abstract Flags getPermanentFlags()
Специальный флаг Flags.Flag.USER
указывает, что эта Папка поддерживает произвольные определяемые пользователем флаги.
Поддерживаемые постоянные флаги для папки, возможно, не доступны, пока папка не открывается.
public abstract int getMessageCount() throws MessagingException
Этот метод может быть вызван на закрытую папку. Однако, отметьте, что для некоторых реализаций папки, получая полное количество сообщения может быть дорогая работа, включающая фактически открытие папки. В таких случаях провайдер может хотеть не поддерживать эту функциональность в закрытом состоянии, когда этот метод должен возвратиться-1.
Клиенты, вызывающие этот метод на закрытую папку, должны знать, что это - потенциально дорогая работа. Клиенты должны также быть подготовлены обработать возвращаемое значение-1 в этом случае.
FolderNotFoundException
- если эта папка не существует. MessagingException
public int getNewMessageCount() throws MessagingException
Этот метод может быть вызван на закрытую папку. Однако, отметьте, что для некоторых реализаций папки, получая новое количество сообщения может быть дорогая работа, включающая фактически открытие папки. В таких случаях провайдер может хотеть не поддерживать эту функциональность в закрытом состоянии, когда этот метод должен возвратиться-1.
Клиенты, вызывающие этот метод на закрытую папку, должны знать, что это - потенциально дорогая работа. Клиенты должны также быть подготовлены обработать возвращаемое значение-1 в этом случае.
Эта реализация возвращается-1, если эта папка закрывается. Еще эта реализация получает каждое сообщение в использовании папки getMessage(int)
и проверки, ли RECENT
флаг устанавливается. Общее количество сообщений, у которых есть этот набор флага, возвращается.
FolderNotFoundException
- если эта папка не существует. MessagingException
public int getUnreadMessageCount() throws MessagingException
Этот метод может быть вызван на закрытую папку. Однако, отметьте, что для некоторых реализаций папки, получая непрочитанное количество сообщения может быть дорогая работа, включающая фактически открытие папки. В таких случаях провайдер может хотеть не поддерживать эту функциональность в закрытом состоянии, когда этот метод должен возвратиться-1.
Клиенты, вызывающие этот метод на закрытую папку, должны знать, что это - потенциально дорогая работа. Клиенты должны также быть подготовлены обработать возвращаемое значение-1 в этом случае.
Эта реализация возвращается-1, если эта папка закрывается. Еще эта реализация получает каждое сообщение в использовании папки getMessage(int)
и проверки, ли SEEN
флаг устанавливается. Общее количество сообщений, у которых нет этого набора флага, возвращается.
FolderNotFoundException
- если эта папка не существует. MessagingException
public int getDeletedMessageCount() throws MessagingException
Этот метод может быть вызван на закрытую папку. Однако, отметьте, что для некоторых реализаций папки, получая удаленное количество сообщения может быть дорогая работа, включающая фактически открытие папки. В таких случаях провайдер может хотеть не поддерживать эту функциональность в закрытом состоянии, когда этот метод должен возвратиться-1.
Клиенты, вызывающие этот метод на закрытую папку, должны знать, что это - потенциально дорогая работа. Клиенты должны также быть подготовлены обработать возвращаемое значение-1 в этом случае.
Эта реализация возвращается-1, если эта папка закрывается. Еще эта реализация получает каждое сообщение в использовании папки getMessage(int)
и проверки, ли DELETED
флаг устанавливается. Общее количество сообщений, у которых есть этот набор флага, возвращается.
FolderNotFoundException
- если эта папка не существует. MessagingException
public abstract Message getMessage(int msgnum) throws MessagingException
Объекты сообщения являются легкими ссылками на фактическое сообщение, которое заполняется по требованию. Следовательно реализации Папки, как ожидают, обеспечат легкие объекты сообщения.
В отличие от объектов Папки, повторенные звонки getMessage с тем же самым номером сообщения возвратят тот же самый объект сообщения, пока никакие сообщения в этой папке не были вычеркнуты.
Так как номера сообщения могут измениться в пределах сеанса, если папка вычеркивается, клиентам советуют не использовать номера сообщения в качестве ссылок на сообщения. Используйте объекты сообщения вместо этого.
msgnum
- номер сообщения FolderNotFoundException
- если эта папка не существует. IllegalStateException
- если эта папка не открывается java.lang.IndexOutOfBoundsException
- если номер сообщения испытывает недостаток диапазона. MessagingException
getMessageCount()
, fetch(javax.mail.Message[], javax.mail.FetchProfile)
public Message[] getMessages(int start, int end) throws MessagingException
Объекты сообщения являются легкими ссылками на фактическое сообщение, которое заполняется по требованию. Следовательно реализации Папки, как ожидают, обеспечат легкие объекты сообщения.
Эти getMessage использования реализации (индексируют), чтобы получить необходимые объекты сообщения. Отметьте, что возвращенный массив должен содержать (end-start+1)
Объекты сообщения.
start
- число первого сообщенияend
- число последнего сообщения FolderNotFoundException
- если эта папка не существует. IllegalStateException
- если эта папка не открывается. java.lang.IndexOutOfBoundsException
- если запуск или номера сообщения конца испытывают недостаток диапазона. MessagingException
fetch(javax.mail.Message[], javax.mail.FetchProfile)
public Message[] getMessages(int[] msgnums) throws MessagingException
Объекты сообщения являются легкими ссылками на фактическое сообщение, которое заполняется по требованию. Следовательно реализации Папки, как ожидают, обеспечат легкие объекты сообщения.
Эти getMessage использования реализации (индексируют), чтобы получить необходимые объекты сообщения. Отметьте, что возвращенный массив должен содержать msgnums.length
Объекты сообщения
msgnums
- массив номеров сообщения FolderNotFoundException
- если эта папка не существует. IllegalStateException
- если эта папка не открывается. java.lang.IndexOutOfBoundsException
- если какой-либо номер сообщения в данном массиве испытывает недостаток диапазона. MessagingException
fetch(javax.mail.Message[], javax.mail.FetchProfile)
public Message[] getMessages() throws MessagingException
Эта реализация вызывает getMessageCount()
получить текущее количество сообщения и затем использует getMessage()
получить объекты сообщения от 1 до количества сообщения.
FolderNotFoundException
- если эта папка не существует. IllegalStateException
- если эта папка не открывается. MessagingException
fetch(javax.mail.Message[], javax.mail.FetchProfile)
public abstract void appendMessages(Message[] msgs) throws MessagingException
Реализации папки не должны прервать эту работу, если сообщение в данном массиве сообщения, оказывается, вычеркнутое сообщение.
msgs
- массив сообщений, которые будут добавлены FolderNotFoundException
- если эта папка не существует. MessagingException
- если добавление отказавшего.public void fetch(Message[] msgs, FetchProfile fp) throws MessagingException
Клиенты используют этот метод, чтобы указать, что указанные элементы необходимы в массе для данного диапазона сообщения. Реализации, как ожидают, получат эти элементы для данного диапазона сообщения эффективным способом. Отметьте, что этот метод является только подсказкой к реализации, чтобы выбрать требуемые элементы с упреждением.
Примером является клиент, заполняющий его окно представления заголовка Предметом, От и заголовками X-почтовой-программы для всех сообщений в папке.
Message[] msgs = folder.getMessages(); FetchProfile fp = new FetchProfile(); fp.add(FetchProfile.Item.ENVELOPE); fp.add("X-mailer"); folder.fetch(msgs, fp); for (int i = 0; i < folder.getMessageCount(); i++) { display(msg[i].getFrom()); display(msg[i].getSubject()); display(msg[i].getHeader("X-mailer")); }
The implementation provided here just returns without doing anything useful. Providers wanting to provide a real implementation for this method should override this method.
msgs
- fetch items for these messagesfp
- the FetchProfile
IllegalStateException
- if this folder is not opened
MessagingException.
MessagingException
public void setFlags(Message[] msgs, Flags flag, boolean value) throws MessagingException
Note that the specified Message objects must
belong to this folder. Certain Folder implementations can
optimize the operation of setting Flags for a group of messages,
so clients might want to use this method, rather than invoking
Message.setFlags
for each Message.
This implementation degenerates to invoking setFlags()
on each Message object. Specific Folder implementations that can
optimize this case should do so.
Also, an implementation must not abort the operation if a Message
in the array turns out to be an expunged Message.
msgs
- the array of message objectsflag
- Flags object containing the flags to be setvalue
- set the flags to this boolean value
IllegalStateException
- if this folder is not opened
or if it has been opened READ_ONLY.
MessagingException
Message#setFlags
,
MessageChangedEvent
public void setFlags(int start, int end, Flags flag, boolean value) throws MessagingException
Certain Folder implementations can
optimize the operation of setting Flags for a group of messages,
so clients might want to use this method, rather than invoking
Message.setFlags
for each Message.
The default implementation uses getMessage(int)
to
get each Message
object and then invokes
setFlags
on that object to set the flags.
Specific Folder implementations that can optimize this case should do so.
Also, an implementation must not abort the operation if a message
number refers to an expunged message.
start
- the number of the first messageend
- the number of the last messageflag
- Flags object containing the flags to be setvalue
- set the flags to this boolean value
IllegalStateException
- if this folder is not opened
or if it has been opened READ_ONLY.
java.lang.IndexOutOfBoundsException
- if the start or end
message numbers are out of range.
MessagingException
Message#setFlags
,
MessageChangedEvent
public void setFlags(int[] msgnums, Flags flag, boolean value) throws MessagingException
Certain Folder implementations can
optimize the operation of setting Flags for a group of messages,
so clients might want to use this method, rather than invoking
Message.setFlags
for each Message.
The default implementation uses getMessage(int)
to
get each Message
object and then invokes
setFlags
on that object to set the flags.
Specific Folder implementations that can optimize this case should do so.
Also, an implementation must not abort the operation if a message
number refers to an expunged message.
msgnums
- the array of message numbersflag
- Flags object containing the flags to be setvalue
- set the flags to this boolean value
IllegalStateException
- if this folder is not opened
or if it has been opened READ_ONLY.
java.lang.IndexOutOfBoundsException
- if any message number
in the given array is out of range.
MessagingException
Message#setFlags
,
MessageChangedEvent
public void copyMessages(Message[] msgs, Folder folder) throws MessagingException
Note that the specified Message objects must belong to this folder. Folder implementations might be able to optimize this method by doing server-side copies.
This implementation just invokes appendMessages()
on the destination folder to append the given Messages. Specific
folder implementations that support server-side copies should
do so, if the destination folder's Store is the same as this
folder's Store.
Also, an implementation must not abort the operation if a
Message in the array turns out to be an expunged Message.
msgs
- the array of message objectsfolder
- the folder to copy the messages to
FolderNotFoundException
- if the destination
folder does not exist.
IllegalStateException
- if this folder is not opened.
MessagingException
appendMessages(javax.mail.Message[])
public abstract Message[] expunge() throws MessagingException
getMessageNumber
method
on each of these message objects returns that Message's original
(that is, prior to the expunge) sequence number. A MessageCountEvent
containing the expunged messages is delivered to any
MessageCountListeners registered on the folder. Expunge causes the renumbering of Message objects subsequent to the expunged messages. Clients that use message numbers as references to messages should be aware of this and should be prepared to deal with the situation (probably by flushing out existing message number caches and reloading them). Because of this complexity, it is better for clients to use Message objects as references to messages, rather than message numbers. Any expunged Messages objects still have to be pruned, but other Messages in that folder are not affected by the expunge.
After a message is expunged, only the isExpunged
and
getMessageNumber
methods are still valid on the
corresponding Message object; other methods may throw
MessageRemovedException
FolderNotFoundException
- if this folder does not
exist
IllegalStateException
- if this folder is not opened.
MessagingException
Message#isExpunged
,
MessageCountEvent
public Message[] search(SearchTerm term) throws MessagingException
This implementation invokes
search(term, getMessages())
, to apply the search
over all the messages in this folder. Providers that can implement
server-side searching might want to override this method to provide
a more efficient implementation.
term
- the search criterion
SearchException
- if the search
term is too complex for the implementation to handle.
FolderNotFoundException
- if this folder does
not exist.
IllegalStateException
- if this folder is not opened.
MessagingException
SearchTerm
public Message[] search(SearchTerm term, Message[] msgs) throws MessagingException
Note that the specified Message objects must belong to this folder.
This implementation iterates through the given array of messages,
and applies the search criterion on each message by calling
its match()
method with the given term. The
messages that succeed in the match are returned. Providers
that can implement server-side searching might want to override
this method to provide a more efficient implementation. If the
search term is too complex or contains user-defined terms that
cannot be executed on the server, providers may elect to either
throw a SearchException or degenerate to client-side searching by
calling super.search()
to invoke this implementation.
term
- the search criterionmsgs
- the messages to be searched
SearchException
- if the search
term is too complex for the implementation to handle.
IllegalStateException
- if this folder is not opened
MessagingException
SearchTerm
public void addConnectionListener(ConnectionListener l)
The implementation provided here adds this listener to an internal list of ConnectionListeners.
l
- the Listener for Connection eventsConnectionEvent
public void removeConnectionListener(ConnectionListener l)
The implementation provided here removes this listener from the internal list of ConnectionListeners.
l
- the listeneraddConnectionListener(javax.mail.event.ConnectionListener)
protected void notifyConnectionListeners(int type)
The provided implementation queues the event into an internal event queue. An event dispatcher thread dequeues events from the queue and dispatches them to the registered ConnectionListeners. Note that the event dispatching occurs in a separate thread, thus avoiding potential deadlock problems.
type
- the ConnectionEvent typeConnectionEvent
public void addFolderListener(FolderListener l)
The implementation provided here adds this listener to an internal list of FolderListeners.
l
- the Listener for Folder eventsFolderEvent
public void removeFolderListener(FolderListener l)
The implementation provided here removes this listener from the internal list of FolderListeners.
l
- the listeneraddFolderListener(javax.mail.event.FolderListener)
protected void notifyFolderListeners(int type)
The implementation provided here queues the event into
an internal event queue. An event dispatcher thread dequeues
events from the queue and dispatches them to the
FolderListeners registered on this folder. The implementation
also invokes notifyFolderListeners
on this folder's
Store to notify any FolderListeners registered on the store.
type
- type of FolderEventnotifyFolderRenamedListeners(javax.mail.Folder)
protected void notifyFolderRenamedListeners(Folder folder)
The implementation provided here queues the event into
an internal event queue. An event dispatcher thread dequeues
events from the queue and dispatches them to the
FolderListeners registered on this folder. The implementation
also invokes notifyFolderRenamedListeners
on this
folder's Store to notify any FolderListeners registered on the store.
folder
- Folder representing the new name.notifyFolderListeners(int)
public void addMessageCountListener(MessageCountListener l)
The implementation provided here adds this listener to an internal list of MessageCountListeners.
l
- the Listener for MessageCount eventsMessageCountEvent
public void removeMessageCountListener(MessageCountListener l)
The implementation provided here removes this listener from the internal list of MessageCountListeners.
l
- the listeneraddMessageCountListener(javax.mail.event.MessageCountListener)
protected void notifyMessageAddedListeners(Message[] msgs)
The provided implementation queues the event into an internal event queue. An event dispatcher thread dequeues events from the queue and dispatches them to the registered MessageCountListeners. Note that the event dispatching occurs in a separate thread, thus avoiding potential deadlock problems.
protected void notifyMessageRemovedListeners(boolean removed, Message[] msgs)
The provided implementation queues the event into an internal event queue. An event dispatcher thread dequeues events from the queue and dispatches them to the registered MessageCountListeners. Note that the event dispatching occurs in a separate thread, thus avoiding potential deadlock problems.
public void addMessageChangedListener(MessageChangedListener l)
The implementation provided here adds this listener to an internal list of MessageChangedListeners.
l
- the Listener for MessageChanged eventsMessageChangedEvent
public void removeMessageChangedListener(MessageChangedListener l)
The implementation provided here removes this listener from the internal list of MessageChangedListeners.
l
- the listeneraddMessageChangedListener(javax.mail.event.MessageChangedListener)
protected void notifyMessageChangedListeners(int type, Message msg)
The provided implementation queues the event into an internal event queue. An event dispatcher thread dequeues events from the queue and dispatches them to registered MessageChangedListeners. Note that the event dispatching occurs in a separate thread, thus avoiding potential deadlock problems.
protected void finalize() throws java.lang.Throwable
finalize
in class java.lang.Object
java.lang.Throwable
public java.lang.String toString()
toString
in class java.lang.Object
|
|||||||||
ПРЕДЫДУЩИЙ КЛАСС СЛЕДУЮЩИЙ КЛАСС | ФРЕЙМЫ НИКАКИЕ ФРЕЙМЫ | ||||||||
SUMMARY: NESTED | ПОЛЕ | CONSTR | МЕТОД | DETAIL: ПОЛЕ | CONSTR | МЕТОД |
Copyright © 2009-2011, Oracle Corporation and/or its affiliates. All Rights Reserved. Use is subject to
Generated on 10-February-2011 12:41