|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface EventContext
コンテキストに指定されたオブジェクトが変更されたときにトリガされるイベントの通知を受け取る、リスナーの登録/登録解除に関するメソッドを含みます。
あるサービスが既存のターゲットに対する配信登録のみをサポートする場合、存在しないターゲットを登録しようとすると、可能なかぎり早い時点で NameNotFoundException がスローされます。スローされるタイミングは addNamingListener() を呼び出す時点が理想的ですが、それが可能ではない場合は、リスナーは NamingExceptionEvent 経由で例外を受け取ります。
また、既存のターゲットしか登録しないサービスプロバイダでは、リスナーが登録したターゲットが名前空間から削除されると、NamingExceptionEvent (NameNotFoundException を含む) からリスナーに通知されます。
アプリケーションではメソッド targetMustExist() を使用して、存在しないターゲットの登録を EventContext がサポートしているかを確認することができます。
たとえば、リスナーが次の登録を行なったとします。
そのあとにオブジェクト名「x/y」が削除されると、対応する NamingEvent (evt) には次のコードを含める必要があります。NamespaceChangeListener listener = ...; src.addNamingListener("x", SUBTREE_SCOPE, listener);
evt.getEventContext() == src evt.getOldBinding().getName().equals("x/y")
さらに、リスナーの登録/登録解除は EventContext インスタンスを使って行われ、名前空間の対応オブジェクトを用いません。プログラムの一部でリスナーを削除する場合、addNamingListener() を起動した EventContext インスタンスの参照を保存します (リスナーに対して参照を保存し、あとで削除するために必要になります)。登録解除を行うために、lookup() を実行し、EventContext の別のインスタンスを取得することはできません。
フィールドの概要 | |
---|---|
static int |
OBJECT_SCOPE
ターゲットに指定されたオブジェクトに関するイベントを通知するかどうかを指定する定数です。 |
static int |
ONELEVEL_SCOPE
ターゲットに指定されたコンテキストのオブジェクトに関するイベントを通知するかどうかを指定する定数です。 |
static int |
SUBTREE_SCOPE
ターゲットに指定されたオブジェクトのサブツリーにあるオブジェクトに関するイベントを、通知するかどうかを指定する定数です。 |
インタフェース javax.naming.Context から継承されたフィールド |
---|
APPLET, AUTHORITATIVE, BATCHSIZE, DNS_URL, INITIAL_CONTEXT_FACTORY, LANGUAGE, OBJECT_FACTORIES, PROVIDER_URL, REFERRAL, SECURITY_AUTHENTICATION, SECURITY_CREDENTIALS, SECURITY_PRINCIPAL, SECURITY_PROTOCOL, STATE_FACTORIES, URL_PKG_PREFIXES |
メソッドの概要 | |
---|---|
void |
addNamingListener(Name target,
int scope,
NamingListener l)
リスナーを追加して、ターゲットおよびスコープで特定オブジェクトの変更時にトリガされた、名前付きイベントを受け取れるようにします。 |
void |
addNamingListener(String target,
int scope,
NamingListener l)
リスナーを追加して、文字列のターゲット名およびスコープで特定したオブジェクトの変更時に、トリガされた名前付きイベントを受け取れるようにします。 |
void |
removeNamingListener(NamingListener l)
リスナーを削除して、この EventContext でトリガされたネーミングイベントを受け取れないようにします。 |
boolean |
targetMustExist()
存在しないターゲットで、リスナーが配信処理を登録できるかどうか判定します。 |
インタフェース javax.naming.Context から継承されたメソッド |
---|
addToEnvironment, bind, bind, close, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, getEnvironment, getNameInNamespace, getNameParser, getNameParser, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind |
フィールドの詳細 |
---|
static final int OBJECT_SCOPE
この定数の値は 0 です。
static final int ONELEVEL_SCOPE
この定数の値は 1 です。
static final int SUBTREE_SCOPE
この定数の値は 2 です。
メソッドの詳細 |
---|
void addNamingListener(Name target, int scope, NamingListener l) throws NamingException
target がコンテキストを指定する必要があるのは、scope が ONELEVEL_SCOPE である場合のみです。scope が OBJECT_SCOPE または SUBTREE_SCOPE のいずれかの場合、target は非コンテキストを指定することができます。たとえば、target がコンテキストかどうかが事前にわからない場合に、呼び出し側が target をルートとするサブツリー (存在しない場合もある) を登録するときは、SUBTREE_SCOPE を使用して非コンテキストを指定します。
リスナーがイベントの通知を受け取ると、addNamingListener() が実行されていないスレッドでリスナーが起動されます。複数のスレッドが同じ EventContext に同時にアクセスしている場合は注意が必要です。スレッド問題の詳細は、「パッケージの説明」を参照してください。
target
- このコンテキストに関連して解決される null 以外の名前scope
- OBJECT_SCOPE、ONELEVEL_SCOPE、または SUBTREE_SCOPE のいずれか 1 つl
- null 以外のリスナー
NamingException
- リスナー追加時に問題が発生した場合removeNamingListener(javax.naming.event.NamingListener)
void addNamingListener(String target, int scope, NamingListener l) throws NamingException
target
- このコンテキストに関連して解決される、オブジェクトの null 以外の文字列名scope
- OBJECT_SCOPE、ONELEVEL_SCOPE、または SUBTREE_SCOPE のいずれか 1 つl
- null 以外のリスナー
NamingException
- リスナー追加時に問題が発生した場合removeNamingListener(javax.naming.event.NamingListener)
void removeNamingListener(NamingListener l) throws NamingException
l
- null 以外のリスナー
NamingException
- リスナーを削除したときに問題が発生した場合addNamingListener(javax.naming.Name, int, javax.naming.event.NamingListener)
boolean targetMustExist() throws NamingException
NamingException
- このコンテキスト動作が判定できない場合
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。