- すべての実装されたインタフェース:
Serializable
public class NamingEvent extends EventObject
NamingEventの状態構成は次のとおりです。
- イベント・ソース: このイベントをトリガーした
EventContext。 - イベントのタイプ。
- 新しいバインディング: 変更後のオブジェクト情報。
- 古いバインディング: 変更前のオブジェクト情報。
- 変更情報: このイベントをトリガーした変更についての情報。通常はサービス・プロバイダ特有の情報、またはサーバー特有の情報。
イベント・ソースは、リスナーが登録した、常に同じEventContext インスタンスとなるので注意してください。 さらに、NamingEventにあるバインディング名は、そのインスタンスと常に関連しています。 たとえば、リスナーが次の登録を行なったとします。
NamespaceChangeListener listener = ...;
src.addNamingListener("x", SUBTREE_SCOPE, listener);
そのあとに「x/y」という名前のオブジェクトが削除された場合、対応するNamingEvent (evt)には次が含まれている必要があります。
evt.getEventContext() == src
evt.getOldBinding().getName().equals("x/y")
複数のスレッドが同時に同じEventContextにアクセスしている場合は注意が必要です。 スレッドの問題の詳細は、「パッケージの説明」を参照してください。 - 導入されたバージョン:
- 1.3
- 関連項目:
NamingListener,EventContext, 直列化された形式
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 protected ObjectchangeInfoこのイベントを生成した変更情報を含みます。protected BindingnewBinding変更後のオブジェクト情報を含みます。static intOBJECT_ADDED新しいオブジェクトが追加されたことを示すネーミング・イベント・タイプ。static intOBJECT_CHANGEDオブジェクトが変更されたことを示すネーミング・イベント・タイプ。static intOBJECT_REMOVEDオブジェクトが削除されたことを示すネーミング・イベント・タイプ。static intOBJECT_RENAMEDオブジェクトの名前が変更になったことを示すネーミング・イベント・タイプ。protected BindingoldBinding変更前のオブジェクト情報を含みます。protected inttypeこのイベントのタイプを含みます。 -
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 NamingEvent(EventContext source, int type, Binding newBd, Binding oldBd, Object changeInfo)NamingEventのインスタンスを構築します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 voiddispatch(NamingListener listener)このイベントで最適なリスナー・メソッドを呼び出します。ObjectgetChangeInfo()このイベントの変更情報を取得します。EventContextgetEventContext()このイベントをトリガーしたイベント・ソースを検出します。BindinggetNewBinding()変更後のオブジェクトのバインディングを取得します。BindinggetOldBinding()変更前のオブジェクトのバインディングを取得します。intgetType()このイベントのタイプを返します。
-
フィールド詳細
-
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の可能性のあるオブジェクト。- 関連項目:
OBJECT_ADDED,OBJECT_REMOVED,OBJECT_RENAMED,OBJECT_CHANGED
-
-
メソッドの詳細
-
getType
public int getType()このイベントのタイプを返します。- 戻り値:
- このイベントのタイプ。
- 関連項目:
OBJECT_ADDED,OBJECT_REMOVED,OBJECT_RENAMED,OBJECT_CHANGED
-
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以外のリスナー。
-