|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjavax.mail.Service
public abstract class Service
ストアやトランスポートといったメッセージングサービスに 共通の機能を含む abstract クラスです。
メッセージングサービスは Session
から作成され、
URLName
を使用して名前が付けられます。
サービスは使用する前に接続しなければなりません。
接続イベントが送信され、接続状態を反映します。
フィールドの概要 | |
---|---|
protected boolean |
debug
このサービスのデバッグフラグです。 |
protected Session |
session
このサービスが作成されたセッションです。 |
protected URLName |
url
このサービスの URLName です。 |
コンストラクタの概要 | |
---|---|
protected |
Service(Session session,
URLName urlname)
コンストラクタです。 |
メソッドの概要 | |
---|---|
void |
addConnectionListener(ConnectionListener l)
このサービス上に Connection イベントのリスナーを追加します。 |
void |
close()
このサービスを閉じ、接続を終了させます。 |
void |
connect()
パラメータを 1 つも受け取らない汎用的な接続メソッド。 |
void |
connect(String host,
int port,
String user,
String password)
特定のポートを指定可能である点を除き、 connect(host, user, password) と同じです。 |
void |
connect(String host,
String user,
String password)
指定されたアドレスに接続します。 |
protected void |
finalize()
キューがガベージコレクト可能になるように、イベントディスパッチャスレッドを停止します。 |
URLName |
getURLName()
このサービスを表す URLName を返します。 |
boolean |
isConnected()
サービスの接続状態を返します。 |
protected void |
notifyConnectionListeners(int type)
全ての ConnectionListener に通知します。 |
protected boolean |
protocolConnect(String host,
int port,
String user,
String password)
サービス実装はこのメソッドをオーバーライドし、 実際のプロトコル固有の接続を試行しなければなりません。 |
protected void |
queueEvent(MailEvent event,
Vector vector)
リスナーの event と vector を配信キューに追加します。 |
void |
removeConnectionListener(ConnectionListener l)
Connection イベントのリスナーを削除します。 |
protected void |
setConnected(boolean connected)
このサービスの接続状態を設定します。 |
protected void |
setURLName(URLName url)
このサービスを表す URLName を設定します。 |
String |
toString()
このサービスが URLName を持つ場合は、 getURLName.toString() を返します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
フィールドの詳細 |
---|
protected Session session
protected URLName url
URLName
です。
protected boolean debug
コンストラクタの詳細 |
---|
protected Service(Session session, URLName urlname)
session
- このサービスの Session オブジェクトurlname
- このサービスに使用される URLName オブジェクトメソッドの詳細 |
---|
public void connect() throws MessagingException
接続が正常終了すると、このサービス上の全ての ConnectionListener
に
"open" ConnectionEvent
が配信されます。
殆どのクライアントは単にこのメソッドを呼び出し、サービスに接続しなければなりません。
既に接続済みのサービスに接続するとエラーになります。
ここで提供される実装は、単に次の connect(String, String, String)
メソッドを null と共に呼び出すだけです。
AuthenticationFailedException
- 認証の障害の場合
MessagingException
- 他の障害の場合
IllegalStateException
- このサービスがすでに接続されている場合ConnectionEvent
public void connect(String host, String user, String password) throws MessagingException
接続が正常終了すると、このサービス上の全ての ConnectionListener
に
"open" な ConnectionEvent
が配信されます。
既に接続済みのサービスに接続するとエラーになります。
Service クラスにおける実装は、ホスト、ユーザ、及びパスワードのデフォルトをセッション、
このサービスの URLName
、及び提供されるパラメータから収集した後、
protocolConnect
メソッドを呼び出します。
protocolConnect
メソッドが false
を返す場合、
ユーザには不足情報の入力要求が表示され、protocolConnect
メソッドが再び呼び出されます。
サブクラスは protocolConnect
メソッドをオーバーライドしなければなりません。
又、サブクラスは getURLName
メソッドを実装するか、
このクラス中の実装を使用しなければなりません。
接続が成功すると、パスワード等、接続作成に使用された情報を含む
URLName と共に setURLName
メソッドが呼び出されます。
渡されるパスワードが null で、これがこのサービスについて最初に成功した接続の場合、
ユーザから収集されたユーザ名とパスワードは、今後他の Service オブジェクトインスタンスを
使用してこの同じサービスに接続試行した場合のデフォルトとして保存されます
(接続情報は通常、常に特定の Service オブジェクトインスタンス内に保存されます)。
パスワードは Session メソッド setPasswordAuthenticaiton
を使用して保存されます。
渡されるパスワードが null でない場合、アプリケーションがパスワードを明示的に管理しているという前提で、
そのパスワードは保存されません。
host
- 接続先のホストuser
- ユーザ名password
- ユーザのパスワード
AuthenticationFailedException
- 認証の障害の場合
MessagingException
- 他の障害の場合
IllegalStateException
- このサービスが既に接続されている場合ConnectionEvent
,
Session.setPasswordAuthentication(javax.mail.URLName, javax.mail.PasswordAuthentication)
public void connect(String host, int port, String user, String password) throws MessagingException
host
- 接続先のホストport
- 接続先のポート (-1 はデフォルトのポートを意味する)user
- ユーザ名password
- ユーザのパスワード
AuthenticationFailedException
- 認証の障害の場合
MessagingException
- 他の障害の場合
IllegalStateException
- このサービスが既に接続されている場合connect(java.lang.String, java.lang.String, java.lang.String)
,
ConnectionEvent
protected boolean protocolConnect(String host, int port, String user, String password) throws MessagingException
connect
メソッドのデフォルトの実装は、
必要に応じてこのメソッドを呼び出します。
認証の為にユーザ名またはパスワードが必要だが、
対応するパラメータが null の場合、protocolConnect
メソッドは false
を返さなければなりません。
connect
メソッドは必要に応じてユーザに入力を要求し、
不足した情報を供給します。
又、供給されたユーザ名又はパスワードの為に認証が失敗した場合、
このメソッドは false を返すことがあります。
認証の障害時に、このメソッドは AuthenticationFailedException をスローする事もあります。
この例外には、障害に関する詳細記述した String メッセージが含まれる事があります。
protocolConnect
メソッドは例外をスローし、
認証に関連しない障害を報告しなければなりません。
例として、無効なホスト名又はポート番号、認証処理中の接続切断、
サーバの停止等があります。
host
- 接続先のホスト名port
- 使用するポート (-1 はデフォルトポートの使用を意味する)user
- ログインするユーザ名password
- ユーザのパスワード
AuthenticationFailedException
- 認証の障害の場合
MessagingException
- 認証以外の障害の場合public boolean isConnected()
この実装は private の boolean フィールドを使用して、接続状態を格納します。 このメソッドはそのフィールドの値を返します。
サブクラスはこのメソッドをオーバーライドし、 全てのメッセージストアへの接続を確認します。
protected void setConnected(boolean connected)
connect
及び close
メソッドで、
サービス実装により自動的に設定されます。
サービスが自動的に切断された場合、サブクラスはこのメソッドを呼び出して、
状態を設定する必要があります。
このクラスにおける実装は、isConnected
メソッド
により返される privateフィールドを単に設定するだけです。
connected
- サービスが接続されている場合は true、接続されていない場合は falsepublic void close() throws MessagingException
この実装は setConnected(false)
を使用して、
このサービスの接続状態を false
に設定します。
その後、クローズの ConnectionEvent を全ての登録済み ConnectionListener に送信します。
実装固有の終了処理を行う為にこのメソッドをオーバーライドするサブクラスは、
最後の手順としてこのメソッドを呼び出し、イベント通知を確実にしなければなりません。
恐らく finally
節に super.close()
への呼び出しを含める事が考えられます。
MessagingException
- クローズ中のエラーの場合ConnectionEvent
public URLName getURLName()
サブクラスは、URLName が標準形式にのっとっていない場合、 このメソッドをオーバーライドしなければなりません。
Service クラスにおける実装は、パスワードとファイル情報を
取り除いた url
フィールド (通常はコピー) を返します。
URLName
protected void setURLName(URLName url)
url
フィールドを更新する為に使用されます。
サブクラスは、URL が標準形式にのっとっていない場合、
このメソッドをオーバーライドしなければなりません。
特に、URL が URLName
によりサポートされる全ての可能なフィールドを要求しない場合、
サブクラスはこのメソッドをオーバーライドしなければなりません。
その場合、新しい URLName
は、
削除された任意の不要なフィールドを使用して構築する必要があります。
Service クラスにおける実装は、単に url
フィールドを設定します。
URLName
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 にディスパッチします。 イベントのディスパッチは別個のスレッドで起こる為、デッドロック問題を防ぎます。
public String toString()
getURLName.toString()
を返します。
そうでない場合は、デフォルトの toString
を返します。
Object
内の toString
protected void queueEvent(MailEvent event, Vector vector)
protected void finalize() throws Throwable
Object
内の finalize
Throwable
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |