- すべての実装されたインタフェース:
Serializable
NamingEvent
の状態は
- イベント・ソース: このイベントを起動した
EventContext
。 - イベントのタイプ。
- 新しいバインディング: 変更後のオブジェクト情報。
- 古いバインディング: 変更前のオブジェクト情報。
- 変更情報: このイベントをトリガーした変更についての情報。通常はサービス・プロバイダ特有の情報、またはサーバー特有の情報。
イベント・ソースは常に、リスナーが登録したEventContext
instanceと同じであることに注意してください。 さらに、NamingEvent
内のバインディングの名前は、常にそのインスタンスと相対的です。 たとえば、リスナーが次の登録を行なったとします。
"x/y"という名前のオブジェクトがその後削除されると、対応するNamespaceChangeListener listener = ...; src.addNamingListener("x", SUBTREE_SCOPE, listener);
NamingEvent
(evt
)に次のものが含まれている必要があります:
複数のスレッドが同じevt.getEventContext() == src evt.getOldBinding().getName().equals("x/y")
EventContext
に同時にアクセスする場合は注意が必要です。 スレッドの問題の詳細は、「パッケージの説明」を参照してください。 - 導入されたバージョン:
- 1.3
- 関連項目:
-
フィールドのサマリー
修飾子と型フィールド説明protected Object
このイベントを生成した変更情報を含みます。protected Binding
変更後のオブジェクト情報を含みます。static final int
新しいオブジェクトが追加されたことを示すネーミング・イベント・タイプ。static final int
オブジェクトが変更されたことを示すネーミング・イベント・タイプ。static final int
オブジェクトが削除されたことを示すネーミング・イベント・タイプ。static final int
オブジェクトの名前が変更になったことを示すネーミング・イベント・タイプ。protected Binding
変更前のオブジェクト情報を含みます。protected int
このイベントのタイプを含みます。クラス java.util.EventObjectで宣言されたフィールド
source
-
コンストラクタのサマリー
コンストラクタ説明NamingEvent
(EventContext source, int type, Binding newBd, Binding oldBd, Object changeInfo) NamingEvent
のインスタンスを構築します。 -
メソッドのサマリー
修飾子と型メソッド説明void
dispatch
(NamingListener listener) このイベントで最適なリスナー・メソッドを呼び出します。このイベントの変更情報を取得します。このイベントをトリガーしたイベント・ソースを検出します。変更後のオブジェクトのバインディングを取得します。変更前のオブジェクトのバインディングを取得します。int
getType()
このイベントのタイプを返します。クラス java.util.EventObjectで宣言されたメソッド
getSource, toString
-
フィールド詳細
-
OBJECT_ADDED
public static final int OBJECT_ADDED新しいオブジェクトが追加されたことを示すネーミング・イベント・タイプ。 この定数の値は0
です。- 関連項目:
-
OBJECT_REMOVED
public static final int OBJECT_REMOVEDオブジェクトが削除されたことを示すネーミング・イベント・タイプ。 この定数の値は1
です。- 関連項目:
-
OBJECT_RENAMED
public static final int OBJECT_RENAMEDオブジェクトの名前が変更になったことを示すネーミング・イベント・タイプ。 一部のサービスでは、論理的な名前変更操作1つに対して、複数イベントをトリガーすることがあるので注意してください。 たとえば、新しい名前のバインディングを追加し、古いバインディングを削除することによって、名前変更操作が実装される場合があります。リスナーが登録されているスコープの古い名前または新しい名前が外にある場合、
NamingEvent
の古い/新しいバインディングはnullである可能性があります。名前空間ツリーの内部ノードが名前変更された場合は、リスナーの範囲内である最上位ノードを使用して、名前変更イベントを生成する必要があります。 サポート範囲はプロバイダ固有となります。 たとえば、内部ノードを変更すると、名前変更通知がすべての下位ノードに対して生成されます。対応するプロバイダの設定にかかわらず、これらの通知はリスナーに強制的に伝達されます。
この定数の値は
2
です。- 関連項目:
-
OBJECT_CHANGED
public static final int OBJECT_CHANGEDオブジェクトが変更されたことを示すネーミング・イベント・タイプ。 これには、オブジェクトの属性やオブジェクトそのものの変更もあります。 一部のサービスでは1つの修正に対して複数のイベントをトリガーすることがありますので注意してください。 たとえば、古いバインディングを削除してから、名前が同じでオブジェクトの異なる新しいバインディングを追加すると、修正が実装される場合があります。この定数の値は
3
です。- 関連項目:
-
changeInfo
protected Object changeInfoこのイベントを生成した変更情報を含みます。 -
type
protected int typeこのイベントのタイプを含みます。- 関連項目:
-
oldBinding
protected Binding oldBinding変更前のオブジェクト情報を含みます。 -
newBinding
protected Binding newBinding変更後のオブジェクト情報を含みます。
-
-
コンストラクタの詳細
-
NamingEvent
public NamingEvent(EventContext source, int type, Binding newBd, Binding oldBd, Object changeInfo) NamingEvent
のインスタンスを構築します。newBd
およびoldBd
の名前は、イベント・ソースsource
に対して相対的に解決されます。OBJECT_ADDED
イベント・タイプの場合、newBd
はnullにできません。OBJECT_REMOVED
イベント・タイプの場合、oldBd
はnullにできません。OBJECT_CHANGED
イベント・タイプの場合、newBd
およびoldBd
はnullにできません。OBJECT_RENAMED
イベント・タイプの場合、新規または古いバインディングがリスナーが登録されているスコープ外にある場合、newBd
またはoldBd
のいずれかがnullになることがあります。- パラメータ:
source
- このイベントをトリガーしたnull以外のコンテキスト。type
- イベントのタイプ。newBd
- 変更前にnullの可能性があるバインディング。 メソッドの説明を参照。oldBd
- 変更後にnullの可能性があるバインディング。 メソッドの説明を参照。changeInfo
- 変更情報を含む、nullの可能性のあるオブジェクト。- 関連項目:
-
-
メソッドの詳細
-
getType
public int getType()このイベントのタイプを返します。- 戻り値:
- このイベントのタイプ。
- 関連項目:
-
getEventContext
public EventContext getEventContext()このイベントをトリガーしたイベント・ソースを検出します。 これにより、EventObject.getSource()
と同じオブジェクトが返されます。このメソッドの結果を使用してイベント・ソースにアクセスする場合(たとえば、オブジェクトを参照したり、その属性を取得する場合)、
Context
の実装がスレッド・セーフな(EventContext
はContext
のサブインタフェースです)であることが保証されないため、ロックする必要があります。 スレッドの問題の詳細は、「パッケージの説明」を参照してください。- 戻り値:
- このイベントをトリガーしたnull以外のコンテキスト。
-
getOldBinding
public Binding getOldBinding()変更前のオブジェクトのバインディングを取得します。ソース・コンテキスト(
getEventContext()
)に関連する変更の前にオブジェクトが存在する場合は、バインディングをnull以外にする必要があります。 つまり、OBJECT_REMOVED
およびOBJECT_CHANGED
ではnull以外である必要があります。OBJECT_RENAMED
の場合、名前変更前のオブジェクトがリスナーが関心を登録したスコープ外にある場合はnullになり、オブジェクトが名前変更前のスコープ内にある場合はnullになりません。バインディング内の名前は、イベント・ソース
getEventContext()
を基準にして解決されます。 このような情報が使用できない場合、Binding.getObject()
によって返されるオブジェクトはnullである可能性があります。- 戻り値:
- 変更前のオブジェクトでnullの可能性のあるバインディング。
-
getNewBinding
public Binding getNewBinding()変更後のオブジェクトのバインディングを取得します。ソース・コンテキスト(
getEventContext()
)に対する変更後にオブジェクトが存在する場合、バインディングはnull以外である必要があります。 つまり、OBJECT_ADDED
およびOBJECT_CHANGED
ではnull以外である必要があります。OBJECT_RENAMED
の場合、名前変更後のオブジェクトがリスナーが関心を登録したスコープ外にある場合はnullになり、オブジェクトが名前変更後のスコープ内にある場合はnullになりません。バインディング内の名前は、イベント・ソース
getEventContext()
を基準にして解決されます。 このような情報が使用できない場合、Binding.getObject()
によって返されるオブジェクトはnullである可能性があります。- 戻り値:
- 変更後のオブジェクトでnullの可能性のあるバインディング。
-
getChangeInfo
public Object getChangeInfo()このイベントの変更情報を取得します。 変更情報の値はサービス特有となります。 たとえば、値はサーバーの変更ログにある、変更を識別するIDとなります。- 戻り値:
- このイベントの、nullの可能性がある変更情報。
-
dispatch
public void dispatch(NamingListener listener) このイベントで最適なリスナー・メソッドを呼び出します。 このメソッドのデフォルト実装は、次のイベント・タイプを処理:OBJECT_ADDED, OBJECT_REMOVED, OBJECT_RENAMED, OBJECT_CHANGED
。リスナー・メソッドは、このメソッドと同じスレッドで実行されます。 スレッドの問題の詳細は、「パッケージの説明」を参照してください。
- パラメータ:
listener
- null以外のリスナー。
-