public class NamingEvent extends EventObject
NamingEventの状態構成は次のとおりです。
イベント・ソースは、リスナーが登録した、常に同じEventContext インスタンスとなるので注意してください。 さらに、NamingEventにあるバインディング名は、そのインスタンスと常に関連しています。 たとえば、リスナーが次の登録を行なったとします。
そのあとに「x/y」という名前のオブジェクトが削除された場合、対応するNamingEvent (evt)には次が含まれている必要があります。NamespaceChangeListener listener = ...; src.addNamingListener("x", SUBTREE_SCOPE, listener);
複数のスレッドが同時に同じEventContextにアクセスしている場合は注意が必要です。 スレッドの問題の詳細は、「パッケージの説明」を参照してください。evt.getEventContext() == src evt.getOldBinding().getName().equals("x/y")
NamingListener
, EventContext
, 直列化された形式修飾子と型 | フィールド | 説明 |
---|---|---|
protected Object |
changeInfo |
このイベントを生成した変更情報を含みます。
|
protected Binding |
newBinding |
変更後のオブジェクト情報を含みます。
|
static int |
OBJECT_ADDED |
新しいオブジェクトが追加されたことを示すネーミング・イベント・タイプ。
|
static int |
OBJECT_CHANGED |
オブジェクトが変更されたことを示すネーミング・イベント・タイプ。
|
static int |
OBJECT_REMOVED |
オブジェクトが削除されたことを示すネーミング・イベント・タイプ。
|
static int |
OBJECT_RENAMED |
オブジェクトの名前が変更になったことを示すネーミング・イベント・タイプ。
|
protected Binding |
oldBinding |
変更前のオブジェクト情報を含みます。
|
protected int |
type |
このイベントのタイプを含みます。
|
source
コンストラクタ | 説明 |
---|---|
NamingEvent(EventContext source, int type, Binding newBd, Binding oldBd, Object changeInfo) |
NamingEventのインスタンスを構築します。
|
修飾子と型 | メソッド | 説明 |
---|---|---|
void |
dispatch(NamingListener listener) |
このイベントで最適なリスナー・メソッドを呼び出します。
|
Object |
getChangeInfo() |
このイベントの変更情報を取得します。
|
EventContext |
getEventContext() |
このイベントをトリガーしたイベント・ソースを検出します。
|
Binding |
getNewBinding() |
変更後のオブジェクトのバインディングを取得します。
|
Binding |
getOldBinding() |
変更前のオブジェクトのバインディングを取得します。
|
int |
getType() |
このイベントのタイプを返します。
|
getSource, toString
public static final int OBJECT_ADDED
public static final int OBJECT_REMOVED
public static final int OBJECT_RENAMED
古い名前または新しい名前がリスナーの登録した範囲を超えている場合、NamingEventにある旧/新バインディングはnullとなることがあります。
名前空間ツリーの内部ノードが名前変更された場合は、リスナーの範囲内である最上位ノードを使用して、名前変更イベントを生成する必要があります。 サポート範囲はプロバイダ固有となります。 たとえば、内部ノードを変更すると、名前変更通知がすべての下位ノードに対して生成されます。対応するプロバイダの設定にかかわらず、これらの通知はリスナーに強制的に伝達されます。
この定数の値は2です。
public static final int OBJECT_CHANGED
この定数の値は3です。
protected Object changeInfo
protected int type
protected Binding oldBinding
protected Binding newBinding
public NamingEvent(EventContext source, int type, Binding newBd, Binding oldBd, Object changeInfo)
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の可能性のあるオブジェクト。OBJECT_ADDED
, OBJECT_REMOVED
, OBJECT_RENAMED
, OBJECT_CHANGED
public int getType()
OBJECT_ADDED
, OBJECT_REMOVED
, OBJECT_RENAMED
, OBJECT_CHANGED
public EventContext getEventContext()
このメソッドの結果を使用してイベント・ソースにアクセスした場合、たとえばオブジェクトを参照したり属性を取得する場合、Contextの実装がスレッド・セーフではない(またEventContextがContextのサブインタフェースである)ため、ロックが必要です。 スレッドの問題の詳細は、「パッケージの説明」を参照してください。
public Binding getOldBinding()
変更前に存在したオブジェクトが、転送元のコンテキスト(getEventContext())に関連する場合、バインディングはnull以外である必要があります。 つまり、OBJECT_REMOVEDおよびOBJECT_CHANGEDに対してはnull以外としてください。 OBJECT_RENAMEDについては、名前変更前のオブジェクトが、対象を登録したリスナーの範囲外にある場合はnullとし、オブジェクトが名前変更前の範囲内にある場合はnull以外としてください。
バインディング内の名前は、イベント・ソースgetEventContext()を基準にして解決されます。 このような情報が使用できない場合は、Binding.getObject()によって返されたオブジェクトがnullであることがあります。
public Binding getNewBinding()
変更後に存在したオブジェクトが、転送元のコンテキスト(getEventContext())に関連する場合、バインディングはnull以外である必要があります。 つまり、OBJECT_ADDEDおよびOBJECT_CHANGEDに対してはnull以外としてください。 OBJECT_RENAMEDについては、名前変更前のオブジェクトが、リスナーで登録した対象の範囲外にある場合はnullとし、オブジェクトが名前変更後では範囲内にある場合はnull以外としてください。
バインディング内の名前は、イベント・ソースgetEventContext()を基準にして解決されます。 このような情報が使用できない場合は、Binding.getObject()によって返されたオブジェクトがnullであることがあります。
public Object getChangeInfo()
public void dispatch(NamingListener listener)
リスナー・メソッドは、このメソッドと同じスレッドで実行されます。 スレッドの問題の詳細は、「パッケージの説明」を参照してください。
listener
- null以外のリスナー。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。