javax.mail
クラス Store

java.lang.Object
  上位を拡張 javax.mail.Service
      上位を拡張 javax.mail.Store
直系の既知のサブクラス:
IMAPStore, POP3Store

public abstract class Store
extends Service

メッセージの格納と取得の為に、メッセージストアとその アクセスプロトコルをモデル化する abstract クラスです。 サブクラスは実際の実装を提供します。

StoreService クラスを拡張します。 ストアの命名、ストアへの接続、接続イベントのリスニングの為の 多数の共通メソッドを提供します。

関連項目:
Service, ConnectionEvent, StoreEvent

フィールドの概要
 
クラス javax.mail.Service から継承されたフィールド
debug, session, url
 
コンストラクタの概要
protected Store(Session session, URLName urlname)
          コンストラクタです。
 
メソッドの概要
 void addFolderListener(FolderListener l)
          Folder イベントのリスナーを、この Store から取得された任意の Folder オブジェクトに追加します。
 void addStoreListener(StoreListener l)
          StoreEvents のリスナーを、この Store 上に追加します。
abstract  Folder getDefaultFolder()
          Store によりユーザに提示されるデフォルトの名前空間の 'root' を表す Folder オブジェクトを返します。
abstract  Folder getFolder(String name)
          指定された名前に対応する Folder オブジェクトを返します。
abstract  Folder getFolder(URLName url)
          指定された URLName に対応する、閉じた Folder オブジェクトを返します。
 Folder[] getPersonalNamespaces()
          現在のユーザの個人的な名前空間を表す一連のフォルダを返します。
 Folder[] getSharedNamespaces()
          共有される名前空間を表す一連のフォルダを返します。
 Folder[] getUserNamespaces(String user)
          user の名前空間を表す一連のフォルダを返します。
protected  void notifyFolderListeners(int type, Folder folder)
          全ての FolderListener に通知します。
protected  void notifyFolderRenamedListeners(Folder oldF, Folder newF)
          フォルダの名前変更について、全ての FolderListener に通知します。
protected  void notifyStoreListeners(int type, String message)
          全ての StoreListener に通知します。
 void removeFolderListener(FolderListener l)
          Folder イベントのリスナーを削除します。
 void removeStoreListener(StoreListener l)
          Store イベントのリスナーを削除します。
 
クラス javax.mail.Service から継承されたメソッド
addConnectionListener, close, connect, connect, connect, connect, finalize, getURLName, isConnected, notifyConnectionListeners, protocolConnect, queueEvent, removeConnectionListener, setConnected, setURLName, toString
 
クラス java.lang.Object から継承されたメソッド
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

Store

protected Store(Session session,
                URLName urlname)
コンストラクタです。

パラメータ:
session - この Store の Session オブジェクト
urlname - この Store に使用される URLName オブジェクト
メソッドの詳細

getDefaultFolder

public abstract Folder getDefaultFolder()
                                 throws MessagingException
Store によりユーザに提示されるデフォルトの名前空間の 'root' を表す Folder オブジェクトを返します。

戻り値:
ルート Folder
例外:
IllegalStateException - この Store が接続されていない場合
MessagingException

getFolder

public abstract Folder getFolder(String name)
                          throws MessagingException
指定された名前に対応する Folder オブジェクトを返します。 Store 上に該当する名前のフォルダが物理的に存在しない場合でも、Folder オブジェクトが返されます。 フォルダオブジェクト上の exists() メソッドは、このフォルダが実在するかどうかを示します。

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

パラメータ:
name - Folder の名前。 一部の Store において、名前が階層区切り文字で始まる場合、絶対パスとなることがあります。 そうでない場合は、名前はこの名前空間の 'ルート' への相対名と解釈されます。
戻り値:
Folder オブジェクト
例外:
IllegalStateException - この Store が接続されていない場合
MessagingException
関連項目:
Folder.exists(), Folder.create(int)

getFolder

public abstract Folder getFolder(URLName url)
                          throws MessagingException
指定された URLName に対応する、閉じた Folder オブジェクトを返します。 指定された URLName 中に指定されたストアは、この Store オブジェクトを参照する必要があります。

このメソッドの実装は、URLName 上で getFile() メソッドを使用して 実際のフォルダの名前を取得し、その名前を使用してフォルダを作成する事ができます。

パラメータ:
url - フォルダを示す URLName
戻り値:
Folder オブジェクト
例外:
IllegalStateException - この Store が接続されていない場合
MessagingException
関連項目:
URLName

getPersonalNamespaces

public Folder[] getPersonalNamespaces()
                               throws MessagingException
現在のユーザの個人的な名前空間を表す一連のフォルダを返します。 個人名前空間は、認証されたユーザの個人的な範囲内にあると見なされる一連の名前です。 一般に、認証されたユーザだけが、個人名前空間内のメールフォルダへアクセスできます。 ユーザの INBOX が存在する場合、それはユーザの個人名前空間内に表示されている必要があります。 一般的には、各 Store 中の各ユーザについて、個人名前空間は 1 つだけ存在します。

この実装は、getDefaultFolder メソッドの戻り値を含む単一エントリを持つ配列を返します。 サブクラスはこのメソッドをオーバーライドし、適切な情報を返す必要があります。

戻り値:
Folder オブジェクトの配列
例外:
IllegalStateException - この Store が接続されていない場合
MessagingException
導入されたバージョン:
JavaMail 1.2

getUserNamespaces

public Folder[] getUserNamespaces(String user)
                           throws MessagingException
user の名前空間を表す一連のフォルダを返します。 返される名前空間は、そのユーザの個人名前空間を表します。 他のユーザの名前空間にあるメールフォルダにアクセスする為には、 現在認証されているユーザは、明示的にアクセス権を付与される必要があります。 例えば、マネージャが秘書にメールフォルダのアクセス権を与えるのは一般的です。

この実装は空の配列を返します。 サブクラスはこのメソッドをオーバーライドし、適切な情報を返す必要があります。

戻り値:
Folder オブジェクトの配列
例外:
IllegalStateException - この Store が接続されていない場合
MessagingException
導入されたバージョン:
JavaMail 1.2

getSharedNamespaces

public Folder[] getSharedNamespaces()
                             throws MessagingException
共有される名前空間を表す一連のフォルダを返します。 共有名前空間は、複数のユーザ間で共有される事が意図され、 ユーザの個人名前空間内に存在しないメールフォルダで構成される名前空間です。

この実装は空の配列を返します。 サブクラスはこのメソッドをオーバーライドし、適切な情報を返す必要があります。

戻り値:
Folder オブジェクトの配列
例外:
IllegalStateException - この Store が接続されていない場合
MessagingException
導入されたバージョン:
JavaMail 1.2

addStoreListener

public void addStoreListener(StoreListener l)
StoreEvents のリスナーを、この Store 上に追加します。

ここで提供されるデフォルトの実装は、このリスナーを内部の StoreListener リストに追加します。

パラメータ:
l - Store イベントの Listener
関連項目:
StoreEvent

removeStoreListener

public void removeStoreListener(StoreListener l)
Store イベントのリスナーを削除します。

ここで提供されるデフォルトの実装は、このリスナーを内部の StoreListener リストから削除します。

パラメータ:
l - リスナー
関連項目:
addStoreListener(javax.mail.event.StoreListener)

notifyStoreListeners

protected void notifyStoreListeners(int type,
                                    String message)
全ての StoreListener に通知します。 Store 実装はこのメソッドを使用して、StoreEvent をブロードキャストする必要があります。

提供されるデフォルトの実装は、イベントを内部イベントキューに入れます。 イベントディスパッチャスレッドはキューからイベントを出し、 登録された StoreListener にディスパッチします。 イベントのディスパッチは別個のスレッドで起こる為、デッドロック問題を防ぎます。


addFolderListener

public void addFolderListener(FolderListener l)
Folder イベントのリスナーを、この Store から取得された任意の Folder オブジェクトに追加します。 FolderEvents は、影響を受ける Folder 上の FolderListener と、 包含する Store 上の FolderListener に配信されます。

ここで提供されるデフォルトの実装は、このリスナーを内部の FolderListener リストに追加します。

パラメータ:
l - Folder イベントの Listener
関連項目:
FolderEvent

removeFolderListener

public void removeFolderListener(FolderListener l)
Folder イベントのリスナーを削除します。

ここで提供されるデフォルトの実装は、このリスナーを内部の FolderListener リストから削除します。

パラメータ:
l - リスナー
関連項目:
addFolderListener(javax.mail.event.FolderListener)

notifyFolderListeners

protected void notifyFolderListeners(int type,
                                     Folder folder)
全ての FolderListener に通知します。 Store 実装はこのメソッドを使用して、Folder イベントをブロードキャストする必要があります。

提供されるデフォルトの実装は、イベントを内部イベントキューに入れます。 イベントディスパッチャスレッドはキューからイベントを出し、 登録された FolderListener にディスパッチします。 イベントのディスパッチは別個のスレッドで起こる為、デッドロック問題を防ぎます。

パラメータ:
type - FolderEvent の型
folder - 影響を受ける Folder
関連項目:
notifyFolderRenamedListeners(javax.mail.Folder, javax.mail.Folder)

notifyFolderRenamedListeners

protected void notifyFolderRenamedListeners(Folder oldF,
                                            Folder newF)
フォルダの名前変更について、全ての FolderListener に通知します。 Store 実装はこのメソッドを使用し、フォルダの名前変更を 示す Folder イベントをブロードキャストする必要があります。

提供されるデフォルトの実装は、イベントを内部イベントキューに入れます。 イベントディスパッチャスレッドはキューからイベントを出し、 登録された FolderListener にディスパッチします。 イベントのディスパッチは別個のスレッドで起こる為、デッドロック問題を防ぎます。

パラメータ:
oldF - 名前変更されるフォルダ
newF - 新しい名前を表すフォルダ
導入されたバージョン:
JavaMail 1.1