com.sun.mail.pop3
クラス DefaultFolder

java.lang.Object
  上位を拡張 javax.mail.Folder
      上位を拡張 com.sun.mail.pop3.DefaultFolder

public final class DefaultFolder
extends Folder

POP3 の DefaultFolder です。 "INBOX" フォルダを含むだけです。


フィールドの概要
 
クラス javax.mail.Folder から継承されたフィールド
HOLDS_FOLDERS, HOLDS_MESSAGES, mode, READ_ONLY, READ_WRITE, store
 
メソッドの概要
 void appendMessages(Message[] msgs)
          指定された Messages をこのフォルダに追加します。
 void close(boolean expunge)
          この Folder を閉じます。
 boolean create(int type)
          このフォルダを Store 上に作成します。
 boolean delete(boolean recurse)
          この Folder を削除します。
 boolean exists()
          このフォルダが物理的に Store 上に存在するかどうかを検査します。
 Message[] expunge()
          DELETED のマークが付いている消去 (永続的な削除) メッセージです。
 Folder getFolder(String name)
          指定された名前に対応する Folder オブジェクトを返します。
 String getFullName()
          この Folder の完全な名前を返します。
protected  Folder getInbox()
           
 Message getMessage(int msgno)
          指定されたメッセージ番号に対応する Message オブジェクトを取得します。
 int getMessageCount()
          この Folder 中のメッセージの数を取得します。
 String getName()
          この Folder の名前を返します。
 Folder getParent()
          このフォルダの親フォルダを返します。
 Flags getPermanentFlags()
          この Folder がサポートする永続フラグを取得します。
 char getSeparator()
          この Folder のパス名をすぐ下のサブフォルダ名から分離する区切り文字を返します。
 int getType()
          この Folder の型、つまり、このフォルダがメッセージかサブフォルダ、 又はその両方を保持可能かどうかを返します。
 boolean hasNewMessages()
          この表示が最後にリセットされてから、この Folder に新規メッセージが存在する場合は true を返します。
 boolean isOpen()
          この Folder が 'open' 状態にあるかどうかを示します。
 Folder[] list(String pattern)
          指定されたパターンに一致するこの Folder の名前空間に属する Folder の一覧を返します。
 void open(int mode)
          この Folder を開きます。
 boolean renameTo(Folder f)
          この Folder の名前を変更します。
 
クラス javax.mail.Folder から継承されたメソッド
addConnectionListener, addFolderListener, addMessageChangedListener, addMessageCountListener, copyMessages, fetch, finalize, getDeletedMessageCount, getMessages, getMessages, getMessages, getMode, getNewMessageCount, getStore, getUnreadMessageCount, getURLName, isSubscribed, list, listSubscribed, listSubscribed, notifyConnectionListeners, notifyFolderListeners, notifyFolderRenamedListeners, notifyMessageAddedListeners, notifyMessageChangedListeners, notifyMessageRemovedListeners, removeConnectionListener, removeFolderListener, removeMessageChangedListener, removeMessageCountListener, search, search, setFlags, setFlags, setFlags, setSubscribed, toString
 
クラス java.lang.Object から継承されたメソッド
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

メソッドの詳細

getName

public String getName()
クラス Folder の記述:
この Folder の名前を返します。

このメソッドは閉じた Folder 上で呼び出すことができます。

定義:
クラス Folder 内の getName
戻り値:
Folder の名前

getFullName

public String getFullName()
クラス Folder の記述:
この Folder の完全な名前を返します。 フォルダがこの Store のルート階層の下にある場合、 返される名前はルートへの相対名になります。 そうでない場合は、階層区切り文字で始まる絶対名が返されます。

このメソッドは閉じた Folder 上で呼び出す事ができます。

定義:
クラス Folder 内の getFullName
戻り値:
Folder の完全な名前

getParent

public Folder getParent()
クラス Folder の記述:
このフォルダの親フォルダを返します。 このメソッドは閉じた Folder 上で呼び出す事ができます。 このフォルダがフォルダ階層の最上位にある場合、このメソッドは null を返します。

Folder オブジェクトはキャッシュされないので、このメソッドを呼び出すと、 新規の異なる Folder オブジェクトが返されます。

定義:
クラス Folder 内の getParent
戻り値:
親フォルダ

exists

public boolean exists()
クラス Folder の記述:
このフォルダが物理的に Store 上に存在するかどうかを検査します。 このメソッドは閉じた Folder 上で呼び出す事ができます。

定義:
クラス Folder 内の exists
戻り値:
フォルダが存在する場合は true、そうでない場合は false
関連項目:
Folder.create(int)

list

public Folder[] list(String pattern)
              throws MessagingException
クラス Folder の記述:
指定されたパターンに一致するこの Folder の名前空間に属する Folder の一覧を返します。 パターンは、階層区切り文字以外の任意の文字に一致するワイルドカード文字 "%"、 及び全ての文字に一致する "*" を含む事ができます。

フォルダ階層の例を以下に示します。

    Personal/
       Finance/
          Stocks
          Bonus
          StockOptions
       Jokes
 
"Personal" 上の list("*") は階層全体を返します。
"Personal" 上の list("%") は "Finance" と "Jokes" を返します。
"Personal" 上の list("Jokes") は "Jokes" を返します。
"Finance" 上の list("Stock*") は "Stocks" と "StockOptions" を返します。

Folder オブジェクトは Store によりキャッシュされないので、 同じパターンでこのメソッドを複数回呼び出すと、 多くの異なる Folder オブジェクトが返されます。

このメソッドは閉じた Folder 上で呼び出す事ができます。

定義:
クラス Folder 内の list
パラメータ:
pattern - 一致パターン
戻り値:
一致する Folder オブジェクトの配列。一致する Folder が存在しない場合は、空の配列を返します。
例外:
FolderNotFoundException - このフォルダが存在しない場合
MessagingException
関連項目:
Folder.listSubscribed(java.lang.String)

getSeparator

public char getSeparator()
クラス Folder の記述:
この Folder のパス名をすぐ下のサブフォルダ名から分離する区切り文字を返します。 このメソッドは閉じた Folder 上で呼び出す事ができます。

定義:
クラス Folder 内の getSeparator
戻り値:
階層区切り文字

getType

public int getType()
クラス Folder の記述:
この Folder の型、つまり、このフォルダがメッセージかサブフォルダ、 又はその両方を保持可能かどうかを返します。 返される値は、適切なビットが設定された整数ビットフィールドです。 このメソッドは閉じたフォルダ上で呼び出す事ができます。

定義:
クラス Folder 内の getType
戻り値:
適切なビットが設定された整数
関連項目:
Folder.HOLDS_FOLDERS, Folder.HOLDS_MESSAGES

create

public boolean create(int type)
               throws MessagingException
クラス Folder の記述:
このフォルダを Store 上に作成します。 このフォルダが作成されると、パスに含まれる存在しない全てのフォルダも作成されます。

作成が成功すると、この Folder とこの Store に登録されている 任意の FolderListener に CREATED FolderEvent が配信されます。

定義:
クラス Folder 内の create
パラメータ:
type - このフォルダの型
戻り値:
作成が成功する場合は true、そうでない場合は false
例外:
MessagingException
関連項目:
Folder.HOLDS_FOLDERS, Folder.HOLDS_MESSAGES, FolderEvent

hasNewMessages

public boolean hasNewMessages()
                       throws MessagingException
クラス Folder の記述:
この表示が最後にリセットされてから、この Folder に新規メッセージが存在する場合は true を返します。 この表示がいつ設定またはリセットされるかは、Folder の実装により異なります (IMAP の場合は、サーバに依存します)。 このメソッドを使用して、Folder を開かずに "新規メールをチェック" する軽量な操作を実装できます。 (例えば、メールボックス及びフラグを監視して新規メールをチェックするスレッド等) このメソッドは、Folder 中の任意のメッセージに RECENT フラグが 設定されているかどうかを示す必要があります。

これは新規メールのインクリメンタルチェックではありません。 つまり、このメソッドが最後に呼び出された時以降に、 新規メッセージが到着したかどうかを判定する為に使用する事はできません。 インクリメンタルチェックを実装するには、Folder を開く必要があります。

このメソッドは、Message を含む事ができる閉じた Folder 上で呼び出す事ができます。

定義:
クラス Folder 内の hasNewMessages
戻り値:
Store が新規の Message を含む場合は true
例外:
FolderNotFoundException - このフォルダが存在しない場合
MessagingException

getFolder

public Folder getFolder(String name)
                 throws MessagingException
クラス Folder の記述:
指定された名前に対応する Folder オブジェクトを返します。 このフォルダは、Store 内に物理的に存在する必要はありません。 Folder 上の exists() メソッドは、 フォルダが Store 上に実在するかどうかを示します。

一部の Store で、名前が階層区切り文字で始まる場合、絶対パスにする事ができます。 それ以外の場合、名前はこの Folder への相対名と解釈されます。

Folder オブジェクトは Store によりキャッシュされないので、 同じ名前でこのメソッドを複数回呼び出すと、 多くの異なる Folder オブジェクトが返されます。

このメソッドは閉じた Folder 上で呼び出す事ができます。

定義:
クラス Folder 内の getFolder
パラメータ:
name - Folder の名前
戻り値:
Folder オブジェクト
例外:
MessagingException

getInbox

protected Folder getInbox()
                   throws MessagingException
例外:
MessagingException

delete

public boolean delete(boolean recurse)
               throws MessagingException
クラス Folder の記述:
この Folder を削除します。 このメソッドは閉じた Folder 上でのみ成功します。

recurse フラグは、削除がサブフォルダに影響するかどうかを制御します。 true の場合、全てのサブフォルダが削除された後、このフォルダ自身が削除されます。 false の場合、動作はフォルダの型により異なります。 以下に詳しく述べます。

定義:
クラス Folder 内の delete
戻り値:
Folder が正常に削除された場合は true
例外:
FolderNotFoundException - このフォルダが存在しない場合
MessagingException
関連項目:
FolderEvent

renameTo

public boolean renameTo(Folder f)
                 throws MessagingException
クラス Folder の記述:
この Folder の名前を変更します。 このメソッドは閉じた Folder 上でのみ成功します。

名前の変更が成功すると、このフォルダとこのフォルダを含む Store に登録 されている FolderListener に RENAMED FolderEvent が配信されます。

定義:
クラス Folder 内の renameTo
パラメータ:
f - この Folder の新しい名前を表すフォルダ
戻り値:
Folder の名前が正常に変更された場合は true
例外:
FolderNotFoundException - このフォルダが存在しない場合
MessagingException
関連項目:
FolderEvent

open

public void open(int mode)
          throws MessagingException
クラス Folder の記述:
この Folder を開きます。このメソッドは、 Message を含む事が可能でかつ閉じている Folder 上でのみ有効です。

このフォルダが正常に開くと、この Folder 上に登録されている 全ての ConnectionListener に OPENED ConnectionEvent が配信されます。

特定の Store 上の同じフォルダへの接続を複数開く場合の効果は、実装により異なります。 一部の実装は複数の読み手を許可しますが、書き手はただ 1 人しか許可しません。 又別の実装は複数の読み手と書き手を許可します。

定義:
クラス Folder 内の open
パラメータ:
mode - Folder READ_ONLY または READ_WRITE を開く
例外:
FolderNotFoundException - このフォルダが存在しない場合
MessagingException
関連項目:
Folder.READ_ONLY, Folder.READ_WRITE, Folder.getType(), ConnectionEvent

close

public void close(boolean expunge)
           throws MessagingException
クラス Folder の記述:
この Folder を閉じます。このメソッドは開いた Folder 上でのみ有効です。

この Folder 上に登録されている全ての ConnectionListener に CLOSED ConnectionEvent が配信されます。 MessagingException のスローにより、このメソッドが異常終了した場合でもフォルダは閉じられます。

定義:
クラス Folder 内の close
パラメータ:
expunge - このフラグが true の場合、全ての削除メッセージを消去します。
例外:
MessagingException
関連項目:
ConnectionEvent

isOpen

public boolean isOpen()
クラス Folder の記述:
この Folder が 'open' 状態にあるかどうかを示します。

定義:
クラス Folder 内の isOpen
戻り値:
この Folder が 'open' 状態にある場合は true

getPermanentFlags

public Flags getPermanentFlags()
クラス Folder の記述:
この Folder がサポートする永続フラグを取得します。 サポートされる全てのフラグを含む Flags オブジェクトを返します。

特殊フラグ Flags.USER は、 この Folder が任意のユーザ定義フラグをサポートする事を示します。

フォルダのサポートされる永続フラグは、フォルダが開かれるまで使用できません。

定義:
クラス Folder 内の getPermanentFlags
戻り値:
永続フラグ、または不明の場合は null

getMessageCount

public int getMessageCount()
                    throws MessagingException
クラス Folder の記述:
この Folder 中のメッセージの数を取得します。

このメソッドは閉じたフォルダ上で呼び出す事ができます。 但し、一部のフォルダ実装では、メッセージ数の取得は、 実際のフォルダのオープンを含む負荷の大きい操作になる場合があります。 そうした場合、プロバイダは閉じた状態でのこの機能をサポートしない様に選択できます。 この場合、このメソッドは -1 を返す必要があります。

閉じたフォルダ上でこのメソッドを呼び出すクライアントは、 これが負荷の大きい操作になる可能性がある事に注意する必要があります。 この場合、クライアントは戻り値 -1 に対する処理も準備する必要があります。

定義:
クラス Folder 内の getMessageCount
戻り値:
メッセージの数。このメソッドが閉じたフォルダ上で呼び出された場合、 一部の実装では -1 が返されることがあります。
例外:
FolderNotFoundException - このフォルダが存在しない場合
MessagingException

getMessage

public Message getMessage(int msgno)
                   throws MessagingException
クラス Folder の記述:
指定されたメッセージ番号に対応する Message オブジェクトを取得します。 Message オブジェクトのメッセージ番号は、この Message の Folder 中の相対位置です。 メッセージには 1 からフォルダ中のメッセージの数迄の番号が割り当てられます。 特定の Message のメッセージ番号は、Folder 中の他のメッセージが削除され、 Folder が消去された場合、セッション中に変更になる事があります。

Message オブジェクトは、オンデマンドで満たされる実際のメッセージへの軽量な参照です。 従って、Folder 実装は軽量な Message オブジェクトを提供する必要があります。

Folder オブジェクトと異なり、同じメッセージ番号を使用して繰り返し getMessage を呼び出した場合、 このフォルダで消去されたメッセージがない限り、同じ Message オブジェクトが返されます。

フォルダが消去されると、セッション中にメッセージ番号が変更になる事がある為、 クライアントはメッセージへの参照としてメッセージ番号を使用するべきではありません。 代わりに Message オブジェクトを使用して下さい。

定義:
クラス Folder 内の getMessage
パラメータ:
msgno - メッセージ番号
戻り値:
Message オブジェクト
例外:
FolderNotFoundException - このフォルダが存在しない場合
MessagingException
関連項目:
Folder.getMessageCount(), Folder.fetch(javax.mail.Message[], javax.mail.FetchProfile)

appendMessages

public void appendMessages(Message[] msgs)
                    throws MessagingException
クラス Folder の記述:
指定された Messages をこのフォルダに追加します。 このメソッドは閉じた Folder 上で呼び出す事ができます。 メッセージがフォルダに到着した際、適切な MessageCountEvent が このフォルダに登録されている全ての MessageCountListener に配信されます。

指定されたメッセージ配列中の Message が消去された Message だと判明しても、 Folder 実装はこの操作を中止してはいけません。

定義:
クラス Folder 内の appendMessages
パラメータ:
msgs - 追加される Message の配列
例外:
FolderNotFoundException - このフォルダが存在しない場合
MessagingException - 追加が失敗した場合

expunge

public Message[] expunge()
                  throws MessagingException
クラス Folder の記述:
DELETED のマークが付いている消去 (永続的な削除) メッセージです。 消去されたメッセージオブジェクトを含む配列を返します。 これらの各メッセージオブジェクト上の getMessageNumber メソッドは、 Message の元 (つまり、消去前) のシーケンス番号を返します。 フォルダ上に登録されている全ての MessageCountListener に、 消去されたメッセージを含む MessageCountEvent が配信されます。

メッセージの消去により、消去メッセージ以降の Message オブジェクトの番号が再度割り当てられます。 メッセージへの参照としてメッセージ番号を使用するクライアントはこの点に注意しなければならず、 状況に対処する準備が必要になります (既存のメッセージ番号キャッシュを消去し、再度読込む)。 こうした複雑さから、クライアントはメッセージ番号でなく Message オブジェクトを使用してメッセージを参照する方が適切です。 消去される Message オブジェクトは依然として除去する必要がありますが、 フォルダ中の他の Message オブジェクトは消去による影響を受けません。

メッセージが削除された後、対応する Message オブジェクト上 では isExpunged 及び getMessageNumber メソッドのみが依然有効です。 その他のメソッドは MessageRemovedException をスローする場合があります。

定義:
クラス Folder 内の expunge
戻り値:
消去された Message オブジェクトの配列
例外:
FolderNotFoundException - このフォルダが存在しない場合
MessagingException
関連項目:
Message.isExpunged(), MessageCountEvent