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, 2013, Oracle and/or its affiliates. All rights reserved.