|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjavax.mail.Folder
public abstract class Folder
Folder は、メールメッセージのフォルダを表す抽象クラスです。 サブクラスはプロトコル別の Folder を実装します。
Folder は Message、他の Folder 又はそれらの両方を含む事ができる為、 Store のデフォルトフォルダをルートとするツリー状の階層を提供します (一部の Folder 実装には、 同じ Folder 中の Message と他の Folder を許可しない物があります)。
フォルダ名の解釈は実装により異なります。 フォルダの完全名中の各階層レベルは、それぞれ階層区切り文字で分割されます。
大文字と小文字を区別しない完全フォルダ名 (つまり、 Store のデフォルトフォルダに対する完全名) INBOX は、 "このサーバ上のこのユーザの為の主フォルダ" を意味する為に予約されています。 全ての Store が INBOX フォルダを提供するわけではなく、 全てのユーザが常に INBOX フォルダを持つわけでもありません。 この機能を提供する Store 内にこのフォルダが存在する場合に、 それを指すために INBOX という名前が予約されています。
Store から取得される Folder オブジェクトは、バックエンドストアに実在する必要はありません。
exists()
メソッドはフォルダが存在するかどうかを検査します。
create()
メソッドは Folder を作成します。
Folder は最初閉じた状態にあります。一部のメソッドは、この状態の時に有効です。
そうしたメソッドの説明にはこの事が記述されています。
Folder はその 'open' メソッドを呼び出す事により開かれます。
この状態では、open()
、delete()
、
及び renameTo()
を除く全ての Folder メソッドが有効です。
Folder を取得する方法は、Store 又は Folder 上で getFolder()
メソッドを呼び出すか、
Folder 上で list()
又は listSubscribed()
メソッドを呼び出すしかありません。
これらのメソッドにより返される Folder オブジェクトは、Store によりキャッシュされません。
その為、getFolder(folder_name)
を同じ folder_name で複数回呼び出すと、
異なった Folder オブジェクトが返されます。
list()
及び listSubscribed()
についても同様です。
Folder 内の Message オブジェクトは、Folder によりキャッシュされます。
その為、同じメッセージ番号上で getMessage(msgno)
を複数回呼び出すと、
同じ Message オブジェクトが返されます。これはこの Folder 上で消去が行われるまで変わりません。
Message のメッセージ番号は、包含する Folder が消去メソッドにより消去されると、 セッション内で変更になる場合があります。 メッセージへの参照としてメッセージ番号を使用するクライアントはこの点に注意しなければならず、 状況に対処する準備が必要になります (恐らく既存のメッセージ番号参照を消し、再度読み込む事による)。 こうした複雑さから、クライアントはメッセージ番号でなく、 Message オブジェクトを使用してメッセージを参照するほうが適切です。 消去される Message オブジェクトは依然として除去する必要がありますが、 そのフォルダ中の他の Message オブジェクトは消去による影響を受けません。
フィールドの概要 | |
---|---|
static int |
HOLDS_FOLDERS
このフォルダは他のフォルダを含む事ができます。 |
static int |
HOLDS_MESSAGES
このフォルダはメッセージを含む事ができます。 |
protected int |
mode
このフォルダのオープンモードです。 |
static int |
READ_ONLY
Folder は読み取り専用です。 |
static int |
READ_WRITE
このフォルダの状態と内容は変更する事ができます。 |
protected Store |
store
親ストアです。 |
コンストラクタの概要 | |
---|---|
protected |
Folder(Store store)
Store オブジェクトを使用するコンストラクタです。 |
メソッドの概要 | |
---|---|
void |
addConnectionListener(ConnectionListener l)
この Folder に Connection イベントのリスナーを追加します。 |
void |
addFolderListener(FolderListener l)
この Folder に Folder イベントのリスナーを追加します。 |
void |
addMessageChangedListener(MessageChangedListener l)
この Folder に MessageChanged イベントのリスナーを追加します。 |
void |
addMessageCountListener(MessageCountListener l)
この Folder に MessageCount イベントのリスナーを追加します。 |
abstract void |
appendMessages(Message[] msgs)
指定された Messages をこのフォルダに追加します。 |
abstract void |
close(boolean expunge)
この Folder を閉じます。 |
void |
copyMessages(Message[] msgs,
Folder folder)
この Folder から指定された Message を別の Folder にコピーします。 |
abstract boolean |
create(int type)
このフォルダを Store 上に作成します。 |
abstract boolean |
delete(boolean recurse)
この Folder を削除します。 |
abstract boolean |
exists()
このフォルダが物理的に Store 上に存在するかどうかを検査します。 |
abstract Message[] |
expunge()
DELETED のマークが付いている消去 (永続的な削除) メッセージです。 |
void |
fetch(Message[] msgs,
FetchProfile fp)
指定された Message の FetchProfile に指定された項目を先読みします。 |
protected void |
finalize()
|
int |
getDeletedMessageCount()
この Folder 中の削除済みメッセージの数を取得します。 |
abstract Folder |
getFolder(String name)
指定された名前に対応する Folder オブジェクトを返します。 |
abstract String |
getFullName()
この Folder の完全な名前を返します。 |
abstract Message |
getMessage(int msgnum)
指定されたメッセージ番号に対応する Message オブジェクトを取得します。 |
abstract int |
getMessageCount()
この Folder 中のメッセージの数を取得します。 |
Message[] |
getMessages()
この Folder から全ての Message オブジェクトを取得します。 |
Message[] |
getMessages(int[] msgnums)
配列で指定されたメッセージ番号の Message オブジェクトを取得します。 |
Message[] |
getMessages(int start,
int end)
メッセージ番号が start から end 迄の範囲 (start と end を含む) にある Message オブジェクトを取得します。 |
int |
getMode()
このフォルダのオープンモードを返します。 |
abstract String |
getName()
この Folder の名前を返します。 |
int |
getNewMessageCount()
この Folder 中の新規メッセージの数を取得します。 |
abstract Folder |
getParent()
このフォルダの親フォルダを返します。 |
abstract Flags |
getPermanentFlags()
この Folder がサポートする永続フラグを取得します。 |
abstract char |
getSeparator()
この Folder のパス名をすぐ下のサブフォルダ名から分離する区切り文字を返します。 |
Store |
getStore()
この Folder オブジェクトを所有する Store を返します。 |
abstract int |
getType()
この Folder の型、つまり、このフォルダがメッセージかサブフォルダ、 又はその両方を保持可能かどうかを返します。 |
int |
getUnreadMessageCount()
この Folder 中の未読メッセージの数を取得します。 |
URLName |
getURLName()
このフォルダを表す URLName を返します。 |
abstract boolean |
hasNewMessages()
この表示が最後にリセットされてから、この Folder に新規メッセージが存在する場合は true を返します。 |
abstract boolean |
isOpen()
この Folder が 'open' 状態にあるかどうかを示します。 |
boolean |
isSubscribed()
この Folder がサブスクライブされる場合に true を返します。 |
Folder[] |
list()
この Folder の下にあるフォルダの一覧を返す簡易メソッド。 |
abstract Folder[] |
list(String pattern)
指定されたパターンに一致するこの Folder の名前空間に属する Folder の一覧を返します。 |
Folder[] |
listSubscribed()
この Folder の下にあるサブスクライブされたフォルダの一覧を返す簡易メソッド。 |
Folder[] |
listSubscribed(String pattern)
指定されたパターンに一致するこの Folder の名前空間に 属するサブスクライブされた Folder の一覧を返します。 |
protected void |
notifyConnectionListeners(int type)
すべての ConnectionListener に通知します。 |
protected void |
notifyFolderListeners(int type)
この Folder とこのフォルダの Store 上に登録されている全ての FolderListener に通知します。 |
protected void |
notifyFolderRenamedListeners(Folder folder)
この Folder とこのフォルダの Store 上に登録されている全ての FolderListener に、 このフォルダの名前変更について通知します。 |
protected void |
notifyMessageAddedListeners(Message[] msgs)
全ての MessageCountListener に、このフォルダへのメッセージ追加を通知します。 |
protected void |
notifyMessageChangedListeners(int type,
Message msg)
全ての MessageChangedListener に通知します。 |
protected void |
notifyMessageRemovedListeners(boolean removed,
Message[] msgs)
全ての MessageCountListener に、このフォルダからのメッセージ削除を通知します。 |
abstract void |
open(int mode)
この Folder を開きます。 |
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)
この Folder の名前を変更します。 |
Message[] |
search(SearchTerm term)
指定された検索基準に一致するメッセージについてこの Folder を検索します。 |
Message[] |
search(SearchTerm term,
Message[] msgs)
指定された検索基準に一致するメッセージについて、 指定されたメッセージ配列を検索します。 |
void |
setFlags(int[] msgnums,
Flags flag,
boolean value)
メッセージ番号が配列中に存在するメッセージ上に指定されたフラグを設定します。 |
void |
setFlags(int start,
int end,
Flags flag,
boolean value)
指定されたフラグを、start から end まで (start と end の両方を含む) の番号のメッセージ上に設定します。 |
void |
setFlags(Message[] msgs,
Flags flag,
boolean value)
配列中に指定されたメッセージ上に指定されたフラグを設定します。 |
void |
setSubscribed(boolean subscribe)
この Folder をサブスクライブ又はサブスクライブ解除します。 |
String |
toString()
デフォルトの toString() をオーバーライドします。 |
クラス java.lang.Object から継承されたメソッド |
---|
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
- このフォルダを保持する Storeメソッドの詳細 |
---|
public abstract String getName()
このメソッドは閉じた Folder 上で呼び出すことができます。
public abstract String getFullName()
このメソッドは閉じた Folder 上で呼び出す事ができます。
public final URLName getURLName() throws MessagingException
MessagingException
URLName
public final Store getStore()
public abstract Folder getParent() throws MessagingException
Folder オブジェクトはキャッシュされないので、このメソッドを呼び出すと、 新規の異なる Folder オブジェクトが返されます。
MessagingException
public abstract boolean exists() throws MessagingException
MessagingException
- 一般にサーバへの接続が失われた場合create(int)
public abstract Folder[] list(String pattern) throws MessagingException
"%"
、
及び全ての文字に一致する "*"
を含む事ができます。フォルダ階層の例を以下に示します。
Personal/ Finance/ Stocks Bonus StockOptions Jokes"Personal" 上の
list("*")
は階層全体を返します。list("%")
は "Finance" と "Jokes" を返します。list("Jokes")
は "Jokes" を返します。list("Stock*")
は "Stocks" と "StockOptions" を返します。Folder オブジェクトは Store によりキャッシュされないので、 同じパターンでこのメソッドを複数回呼び出すと、 多くの異なる Folder オブジェクトが返されます。
このメソッドは閉じた Folder 上で呼び出す事ができます。
pattern
- 一致パターン
FolderNotFoundException
- このフォルダが存在しない場合
MessagingException
listSubscribed(java.lang.String)
public Folder[] listSubscribed(String pattern) throws MessagingException
list
を呼び出しその結果を返す必要があります。
(ここで提供されるデフォルトの実装はこれを行う)
パターンは list
に関するワイルドカードを含む事ができます。
Note that, at a given level of the folder hierarchy, a particular
folder may not be subscribed, but folders underneath that folder
in the folder hierarchy may be subscribed. In order to allow
walking the folder hierarchy, such unsubscribed folders may be
returned, indicating that a folder lower in the hierarchy is
subscribed. The isSubscribed
method on a folder will
tell whether any particular folder is actually subscribed.
Folder オブジェクトは Store によりキャッシュされないので、 同じパターンでこのメソッドを複数回呼び出すと、 多くの異なる Folder オブジェクトが返されます。
このメソッドは閉じた Folder 上で呼び出す事ができます。
pattern
- 一致パターン
FolderNotFoundException
- このフォルダが存在しない場合
MessagingException
list(java.lang.String)
public final Folder[] list() throws MessagingException
"%"
を使用して、
list(String pattern)
メソッドを呼び出すだけです。
このメソッドは閉じた Folder 上で呼び出す事ができます。
FolderNotFoundException
- このフォルダが存在しない場合
MessagingException
list(java.lang.String)
public final Folder[] listSubscribed() throws MessagingException
"%"
を使用して、
listSubscribed(String pattern)
メソッドを呼び出すだけです。
このメソッドは閉じた Folder 上で呼び出す事ができます。
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
作成が成功すると、この Folder とこの Store に登録されている 任意の FolderListener に CREATED FolderEvent が配信されます。
type
- このフォルダの型
MessagingException
HOLDS_FOLDERS
,
HOLDS_MESSAGES
,
FolderEvent
public boolean isSubscribed()
このメソッドは閉じた Folder 上で呼び出す事ができます。
ここで提供されるデフォルトの実装は true を返すだけです。
public void setSubscribed(boolean subscribe) throws MessagingException
このメソッドは閉じた Folder 上で呼び出す事ができます。
ここで提供される実装は MethodNotSupportedException をスローするだけです。
subscribe
- true to subscribe, false to unsubscribe
FolderNotFoundException
- このフォルダが存在しない場合
MethodNotSupportedException
- このストアがサブスクリプションをサポートしない場合
MessagingException
public abstract boolean hasNewMessages() throws MessagingException
RECENT
フラグが
設定されているかどうかを示す必要があります。これは新規メールのインクリメンタルチェックではありません。 つまり、このメソッドが最後に呼び出された時以降に、 新規メッセージが到着したかどうかを判定する為に使用する事はできません。 インクリメンタルチェックを実装するには、Folder を開く必要があります。
このメソッドは、Message を含む事ができる閉じた Folder 上で呼び出す事ができます。
FolderNotFoundException
- このフォルダが存在しない場合
MessagingException
public abstract Folder getFolder(String name) throws MessagingException
exists()
メソッドは、
フォルダが Store 上に実在するかどうかを示します。一部の Store で、名前が階層区切り文字で始まる場合、絶対パスにする事ができます。 それ以外の場合、名前はこの Folder への相対名と解釈されます。
Folder オブジェクトは Store によりキャッシュされないので、 同じ名前でこのメソッドを複数回呼び出すと、 多くの異なる Folder オブジェクトが返されます。
このメソッドは閉じた Folder 上で呼び出す事ができます。
name
- Folder の名前
MessagingException
public abstract boolean delete(boolean recurse) throws MessagingException
recurse
フラグは、削除がサブフォルダに影響するかどうかを制御します。
true の場合、全てのサブフォルダが削除された後、このフォルダ自身が削除されます。
false の場合、動作はフォルダの型により異なります。
以下に詳しく述べます。
フォルダがサブフォルダを含む場合、実装には以下の 3 つの選択肢があります:
FolderNotFoundException
- このフォルダが存在しない場合
IllegalStateException
- このフォルダが閉じた状態にない場合
MessagingException
FolderEvent
public abstract boolean renameTo(Folder f) throws MessagingException
名前の変更が成功すると、このフォルダとこのフォルダを含む Store に登録 されている FolderListener に RENAMED FolderEvent が配信されます。
f
- この Folder の新しい名前を表すフォルダ
FolderNotFoundException
- このフォルダが存在しない場合
IllegalStateException
- このフォルダが閉じた状態にない場合
MessagingException
FolderEvent
public abstract void open(int mode) throws MessagingException
このフォルダが正常に開くと、この Folder 上に登録されている 全ての ConnectionListener に OPENED ConnectionEvent が配信されます。
特定の Store 上の同じフォルダへの接続を複数開く場合の効果は、実装により異なります。 一部の実装は複数の読み手を許可しますが、書き手はただ 1 人しか許可しません。 又別の実装は複数の読み手と書き手を許可します。
mode
- Folder READ_ONLY または READ_WRITE を開く
FolderNotFoundException
- このフォルダが存在しない場合
IllegalStateException
- このフォルダが閉じた状態にない場合
MessagingException
READ_ONLY
,
READ_WRITE
,
getType()
,
ConnectionEvent
public abstract void close(boolean expunge) throws MessagingException
この Folder 上に登録されている全ての ConnectionListener に CLOSED ConnectionEvent が配信されます。 MessagingException のスローにより、このメソッドが異常終了した場合でもフォルダは閉じられます。
expunge
- このフラグが true の場合、全ての削除メッセージを消去します。
IllegalStateException
- このフォルダが開かれていない場合
MessagingException
ConnectionEvent
public abstract boolean isOpen()
public final int getMode()
Folder.READ_ONLY
、Folder.READ_WRITE
、
又はオープンモードが不明な場合は -1 を返します (通常、
古い Folder
プロバイダがこの新しいメソッドを使用できる様に更新されていないだけの理由による)。
IllegalStateException
- このフォルダが開かれていない場合public abstract Flags getPermanentFlags()
特殊フラグ Flags.USER
は、
この Folder が任意のユーザ定義フラグをサポートする事を示します。
フォルダのサポートされる永続フラグは、フォルダが開かれるまで使用できません。
public abstract int getMessageCount() throws MessagingException
このメソッドは閉じたフォルダ上で呼び出す事ができます。 但し、一部のフォルダ実装では、メッセージ数の取得は、 実際のフォルダのオープンを含む負荷の大きい操作になる場合があります。 そうした場合、プロバイダは閉じた状態でのこの機能をサポートしない様に選択できます。 この場合、このメソッドは -1 を返す必要があります。
閉じたフォルダ上でこのメソッドを呼び出すクライアントは、 これが負荷の大きい操作になる可能性がある事に注意する必要があります。 この場合、クライアントは戻り値 -1 に対する処理も準備する必要があります。
FolderNotFoundException
- このフォルダが存在しない場合
MessagingException
public int getNewMessageCount() throws MessagingException
このメソッドは閉じたフォルダ上で呼び出す事ができます。 但し、一部のフォルダ実装について、新規メッセージ数の取得は、 実際のフォルダのオープンを含む負荷の大きい操作になる場合があります。 そうした場合、プロバイダは閉じた状態でのこの機能をサポートしない様に選択できます。 この場合、このメソッドは -1 を返す必要があります。
閉じたフォルダ上でこのメソッドを呼び出すクライアントは、 これが負荷の大きい操作になる可能性がある事に注意する必要があります。 この場合、クライアントは戻り値 -1 に対する処理も準備する必要があります。
このフォルダが閉じている場合、この実装は -1 を返します。そうでない場合、
この実装は getMessage(int)
を使用してフォルダ中の各 Message を取得し、
RECENT
フラグが設定されているかどうかをチェックします。
このフラグが設定されているメッセージの数が返されます。
FolderNotFoundException
- このフォルダが存在しない場合
MessagingException
public int getUnreadMessageCount() throws MessagingException
このメソッドは閉じたフォルダ上で呼び出す事ができます。 但し、一部のフォルダ実装について、未読メッセージ数の取得は、 実際のフォルダのオープンを含む負荷の大きい操作になる場合があります。 そうした場合、プロバイダは閉じた状態でのこの機能をサポートしない様に選択できます。 この場合、このメソッドは -1 を返す必要があります。
閉じたフォルダ上でこのメソッドを呼び出すクライアントは、 これが負荷の大きい操作になる可能性がある事に注意する必要があります。 この場合、クライアントは戻り値 -1 に対する処理も準備する必要があります。
このフォルダが閉じている場合、この実装は -1 を返します。
そうでない場合、この実装は getMessage(int)
を使用してフォルダ中の各 Message を取得し、
SEEN
フラグが設定されているかどうかをチェックします。
このフラグが設定されていないメッセージの数が返されます。
FolderNotFoundException
- このフォルダが存在しない場合
MessagingException
public int getDeletedMessageCount() throws MessagingException
このメソッドは閉じたフォルダ上で呼び出す事ができます。 但し、一部のフォルダ実装について、削除済みメッセージ数の取得は、 実際のフォルダのオープンを含む負荷の大きい操作になる場合があります。 そうした場合、プロバイダは閉じた状態でのこの機能をサポートしない様に選択できます。 この場合、このメソッドは -1 を返す必要があります。
閉じたフォルダ上でこのメソッドを呼び出すクライアントは、 これが負荷の大きい操作になる可能性がある事に注意する必要があります。 この場合、クライアントは戻り値 -1 に対する処理も準備する必要があります。
このフォルダが閉じている場合、この実装は -1 を返します。
そうでない場合、この実装は getMessage(int)
を使用してフォルダ中の各 Message を取得し、
DELETED
フラグが設定されているかどうかをチェックします。
FolderNotFoundException
- このフォルダが存在しない場合
MessagingException
public abstract Message getMessage(int msgnum) throws MessagingException
Message オブジェクトは、オンデマンドで満たされる実際のメッセージへの軽量な参照です。 従って、Folder 実装は軽量な Message オブジェクトを提供する必要があります。
Folder オブジェクトと異なり、同じメッセージ番号を使用して繰り返し getMessage を呼び出した場合、 このフォルダで消去されたメッセージがない限り、同じ Message オブジェクトが返されます。
フォルダが消去されると、セッション中にメッセージ番号が変更になる事がある為、 クライアントはメッセージへの参照としてメッセージ番号を使用するべきではありません。 代わりに Message オブジェクトを使用して下さい。
msgnum
- メッセージ番号
FolderNotFoundException
- このフォルダが存在しない場合
IllegalStateException
- このフォルダが開かれていない場合
IndexOutOfBoundsException
- メッセージ番号が範囲外の場合
MessagingException
getMessageCount()
,
fetch(javax.mail.Message[], javax.mail.FetchProfile)
public Message[] getMessages(int start, int end) throws MessagingException
Message オブジェクトは、オンデマンドで満たされる実際のメッセージへの軽量な参照です。 従って、Folder 実装は軽量な Message オブジェクトを提供する必要があります。
この実装は getMessage(index) を使用して、必要な Message オブジェクトを取得します。
返される配列は (end - start + 1)
Message オブジェクトを含みます。
start
- 最初のメッセージの番号end
- 最後のメッセージの番号
FolderNotFoundException
- このフォルダが存在しない場合
IllegalStateException
- このフォルダが開かれていない場合
IndexOutOfBoundsException
- start 又は end のメッセージ番号が範囲外の場合
MessagingException
fetch(javax.mail.Message[], javax.mail.FetchProfile)
public Message[] getMessages(int[] msgnums) throws MessagingException
Message オブジェクトは、オンデマンドで満たされる実際のメッセージへの軽量な参照です。 従って、Folder 実装は軽量な Message オブジェクトを提供する必要があります。
この実装は getMessage(index) を使用して、必要な Message オブジェクトを取得します。
返される配列は msgnums.length
Message オブジェクトを含みます。
msgnums
- メッセージ番号の配列
FolderNotFoundException
- このフォルダが存在しない場合
IllegalStateException
- このフォルダが開かれていない場合
IndexOutOfBoundsException
- 指定された配列中のいずれかのメッセージ番号が範囲外の場合
MessagingException
fetch(javax.mail.Message[], javax.mail.FetchProfile)
public Message[] getMessages() throws MessagingException
この実装は getMessageCount()
を呼び出して現在のメッセージカウントを取得した後、
getMessage()
を使用して Message オブジェクトを 1 からメッセージ数まで取得します。
FolderNotFoundException
- このフォルダが存在しない場合
IllegalStateException
- このフォルダが開かれていない場合
MessagingException
fetch(javax.mail.Message[], javax.mail.FetchProfile)
public abstract void appendMessages(Message[] msgs) throws MessagingException
指定されたメッセージ配列中の Message が消去された Message だと判明しても、 Folder 実装はこの操作を中止してはいけません。
msgs
- 追加される Message の配列
FolderNotFoundException
- このフォルダが存在しない場合
MessagingException
- 追加が失敗した場合public void fetch(Message[] msgs, FetchProfile fp) throws MessagingException
クライアントはこのメソッドを使用して、指定された 項目全体が指定されたメッセージ範囲で必要になる事を示します。 実装は、指定されたメッセージ範囲のこれらの項目を効率的な方法で取得する必要があります。 このメソッドは、該当項目を先読みする実装に関するヒントに過ぎません。
例として、ヘッダビューウィンドウに、フォルダ中の全てのメッセージに対する Subject、 From、および X-mailer ヘッダを入力するクライアントを示します。
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")); }
ここで提供される実装は、単に戻るだけです。 このメソッドを現実に実装するプロバイダは、このメソッドをオーバーライドする必要があります。
msgs
- これらのメッセージのフェッチ項目fp
- FetchProfile
IllegalStateException
- このフォルダが開かれていない場合
MessagingException.
MessagingException
public void setFlags(Message[] msgs, Flags flag, boolean value) throws MessagingException
指定された Message オブジェクトは、このフォルダに属している必要があります。
Folder 実装によっては、メッセージのグループに対する Flags の設定操作を最適化している場合があるので、
クライアントは各 Message について Message.setFlags
を呼び出すのではなく、
このメソッドを使用するとよいでしょう。
この実装は、単に各 Message オブジェクト上で setFlags()
を呼び出すだけです。
この操作を最適化できるような特定の Folder 実装では、最適化すべきです。
又、配列中の Message が消去された Message であると判明した場合、実装は操作を中止してはいけません。
msgs
- メッセージオブジェクトの配列flag
- 設定されるフラグを含む Flags オブジェクトvalue
- フラグにこのブール値を設定する
IllegalStateException
- このフォルダが開かれていない場合、又は READ_ONLY で開かれている場合
MessagingException
Message.setFlags(javax.mail.Flags, boolean)
,
MessageChangedEvent
public void setFlags(int start, int end, Flags flag, boolean value) throws MessagingException
Folder 実装によっては、メッセージのグループについて Flags の設定操作を最適化している場合があるので、
クライアントは各 Message に対して Message.setFlags
を
呼び出すよりもこのメソッドを使用するとよいでしょう。
デフォルトの実装は getMessage(int)
を使用して
各 Message
オブジェクトを取得した後、
そのオブジェクト上で setFlags
を呼び出してフラグを設定します。
この操作を最適化できる様な特定の Folder 実装では、最適化すべきです。
又、メッセージ番号が消去されたメッセージを参照する場合でも、
実装は操作を中止してはいけません。
start
- 最初のメッセージの番号end
- 最後のメッセージの番号flag
- 設定されるフラグを含む Flags オブジェクトvalue
- フラグにこのブール値を設定する
IllegalStateException
- このフォルダが開かれていない場合、又は READ_ONLY で開かれている場合
IndexOutOfBoundsException
- start 又は end のメッセージ番号が範囲外の場合
MessagingException
Message.setFlags(javax.mail.Flags, boolean)
,
MessageChangedEvent
public void setFlags(int[] msgnums, Flags flag, boolean value) throws MessagingException
Folder 実装によっては、メッセージのグループについて Flags の設定操作を
最適化している場合があるので、クライアントは各 Message に
対して Message.setFlags
を呼び出すよりもこのメソッドを使用するとよいでしょう。
デフォルトの実装は getMessage(int)
を使用して
各 Message
オブジェクトを取得した後、
そのオブジェクト上で setFlags
を呼び出してフラグを設定します。
この操作を最適化できる様な特定の Folder 実装では、最適化すべきです。
又、メッセージ番号が消去されたメッセージを参照する場合でも、
実装は操作を中止してはいけません。
msgnums
- メッセージ番号の配列flag
- 設定されるフラグを含む Flags オブジェクトvalue
- フラグにこのブール値を設定する
IllegalStateException
- このフォルダが開かれていない場合、又は READ_ONLY で開かれている場合
IndexOutOfBoundsException
- 指定された配列中の何れかのメッセージ番号が範囲外の場合
MessagingException
Message.setFlags(javax.mail.Flags, boolean)
,
MessageChangedEvent
public void copyMessages(Message[] msgs, Folder folder) throws MessagingException
指定された Message オブジェクトは、このフォルダに属している必要があります。 Folder 実装によっては、サーバ内コピーを行う事により、このメソッドを最適化できます。
この実装は単にコピー先フォルダ上で appendMessages()
を呼び出し、
指定された Message を追加します。コピー先フォルダの Store がこのフォルダの Store と同じ場合、
サーバ内コピーをサポートできる様な特定の Folder 実装では、その様な最適化を行うべきです。
又、配列中の Message が消去された Message と判明した場合でも、実装は操作を中止してはいけません。
msgs
- メッセージオブジェクトの配列folder
- メッセージのコピー先フォルダ
FolderNotFoundException
- コピー先フォルダが存在しない場合
IllegalStateException
- このフォルダが開かれていない場合
MessagingException
appendMessages(javax.mail.Message[])
public abstract Message[] expunge() throws MessagingException
getMessageNumber
メソッドは、
Message の元 (つまり、消去前) のシーケンス番号を返します。
フォルダ上に登録されている全ての MessageCountListener に、
消去されたメッセージを含む MessageCountEvent が配信されます。メッセージの消去により、消去メッセージ以降の Message オブジェクトの番号が再度割り当てられます。 メッセージへの参照としてメッセージ番号を使用するクライアントはこの点に注意しなければならず、 状況に対処する準備が必要になります (既存のメッセージ番号キャッシュを消去し、再度読込む)。 こうした複雑さから、クライアントはメッセージ番号でなく Message オブジェクトを使用してメッセージを参照する方が適切です。 消去される Message オブジェクトは依然として除去する必要がありますが、 フォルダ中の他の Message オブジェクトは消去による影響を受けません。
メッセージが削除された後、対応する Message オブジェクト上
では isExpunged
及び getMessageNumber
メソッドのみが依然有効です。
その他のメソッドは MessageRemovedException
をスローする場合があります。
FolderNotFoundException
- このフォルダが存在しない場合
IllegalStateException
- このフォルダが開かれていない場合
MessagingException
Message.isExpunged()
,
MessageCountEvent
public Message[] search(SearchTerm term) throws MessagingException
この実装は search(term, getMessages())
を呼び出し、
このフォルダ中の全てのメッセージについて検索を適用します。
サーバ側の検索を実装可能なプロバイダは、このメソッドを
オーバーライドしてより効率的な実装を提供するとよいでしょう。
term
- 検索基準
SearchException
- 検索条件が複雑すぎて実装が処理できない場合
FolderNotFoundException
- このフォルダが存在しない場合
IllegalStateException
- このフォルダが開かれていない場合
MessagingException
SearchTerm
public Message[] search(SearchTerm term, Message[] msgs) throws MessagingException
指定された Message オブジェクトは、このフォルダに属している必要があります。
この実装は指定されたメッセージの配列の要素それぞれに対し、
指定された条件で match()
メソッドを呼び出す事により、
各メッセージに検索基準を適用します。一致に成功したメッセージが返されます。
サーバ側の検索を実装可能なプロバイダは、このメソッドをオーバーライドし、
より効率的な実装を提供するとよいでしょう。
検索条件が複雑すぎるか、サーバ側で実行できないユーザ定義条件を含む場合、
プロバイダは SearchException をスローするか、
又は super.search()
を呼び出す事でこの実装を呼び出して、
(最適化されていない) クライアント側での検索に任せる事が可能です。
term
- 検索基準msgs
- 検索されるメッセージ
SearchException
- 検索条件が複雑すぎて実装が処理できない場合
IllegalStateException
- このフォルダが開かれていない場合
MessagingException
SearchTerm
public void addConnectionListener(ConnectionListener l)
ここで提供される実装は、このリスナーを内部の ConnectionListener リストに追加します。
l
- Connection イベントの ListenerConnectionEvent
public void removeConnectionListener(ConnectionListener l)
ここで提供される実装は、このリスナーを内部の ConnectionListener リストから削除します。
l
- リスナーaddConnectionListener(javax.mail.event.ConnectionListener)
protected void notifyConnectionListeners(int type)
提供される実装は、イベントを内部イベントキューに入れます。 イベントディスパッチャスレッドはキューからイベントを出し、 登録された ConnectionListener にディスパッチします。 イベントディスパッチは別個のスレッドで起こる為、デッドロック問題を防ぎます。
type
- ConnectionEvent の型ConnectionEvent
public void addFolderListener(FolderListener l)
ここで提供される実装は、このリスナーを内部の FolderListener リストに追加します。
l
- Folder イベントの ListenerFolderEvent
public void removeFolderListener(FolderListener l)
ここで提供される実装は、このリスナーを内部の FolderListener リストから削除します。
l
- リスナーaddFolderListener(javax.mail.event.FolderListener)
protected void notifyFolderListeners(int type)
ここで提供される実装は、イベントを内部イベントキューに入れます。
イベントディスパッチャスレッドはイベントをキューから出し、
このフォルダ上に登録されている FolderListener にディスパッチします。
又、実装はこのフォルダの Store 上で notifyFolderListeners
を呼び出し、
ストア上に登録されているすべての FolderListener に通知します。
type
- FolderEvent の型notifyFolderRenamedListeners(javax.mail.Folder)
protected void notifyFolderRenamedListeners(Folder folder)
ここで提供される実装は、イベントを内部イベントキューに入れます。
イベントディスパッチャスレッドはイベントをキューから出し、
このフォルダ上に登録されている FolderListener にディスパッチします。
又、実装はこのフォルダの Store 上で notifyFolderRenamedListeners
を呼び出し、
ストア上に登録されている全ての FolderListener に通知します。
folder
- 新しい名前を表すフォルダnotifyFolderListeners(int)
public void addMessageCountListener(MessageCountListener l)
ここで提供される実装は、このリスナーを内部の MessageCountListener リストに追加します。
l
- MessageCount イベントの ListenerMessageCountEvent
public void removeMessageCountListener(MessageCountListener l)
ここで提供される実装は、このリスナーを内部の MessageCountListener リストから削除します。
l
- リスナーaddMessageCountListener(javax.mail.event.MessageCountListener)
protected void notifyMessageAddedListeners(Message[] msgs)
提供される実装は、イベントを内部イベントキューに入れます。 イベントディスパッチャスレッドはキューからイベントを出し、 登録された MessageCountListener にディスパッチします。 イベントディスパッチは別個のスレッドで起こる為、デッドロック問題を防ぎます。
protected void notifyMessageRemovedListeners(boolean removed, Message[] msgs)
提供される実装は、イベントを内部イベントキューに入れます。 イベントディスパッチャスレッドはキューからイベントを出し、 登録された MessageCountListener にディスパッチします。 イベントディスパッチは別個のスレッドで起こる為、デッドロック問題を防ぎます。
public void addMessageChangedListener(MessageChangedListener l)
ここで提供される実装は、このリスナーを内部の MessageChangedListener リストに追加します。
l
- MessageChanged イベントの ListenerMessageChangedEvent
public void removeMessageChangedListener(MessageChangedListener l)
ここで提供される実装は、このリスナーを内部の MessageChangedListener リストから削除します。
l
- リスナーaddMessageChangedListener(javax.mail.event.MessageChangedListener)
protected void notifyMessageChangedListeners(int type, Message msg)
提供される実装は、イベントを内部イベントキューに入れます。 イベントディスパッチャスレッドはキューからイベントを出し、 登録された MessageChangedListener にディスパッチします。 イベントディスパッチは別個のスレッドで起こる為、デッドロック問題を防ぎます。
protected void finalize() throws Throwable
Object
内の finalize
Throwable
public final String toString()
Object
内の toString
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |