- すべての実装されたインタフェース:
Serializable
NamingEvent
の状態構成は次のとおりです。
- イベント・ソース: このイベントをトリガーした
EventContext
。 - イベントのタイプ。
- 新しいバインディング: 変更後のオブジェクト情報。
- 古いバインディング: 変更前のオブジェクト情報。
- 変更情報: このイベントをトリガーした変更についての情報。通常はサービス・プロバイダ特有の情報、またはサーバー特有の情報。
イベント・ソースは、リスナーが登録した、常に同じEventContext
インスタンスとなるので注意してください。 さらに、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以外のリスナー。
-