JavaTM Platform
Standard Ed. 6

javax.naming.event
クラス NamingEvent

java.lang.Object
  上位を拡張 java.util.EventObject
      上位を拡張 javax.naming.event.NamingEvent
すべての実装されたインタフェース:
Serializable

public class NamingEvent
extends EventObject

このクラスは、ネームサービス/ディレクトリサービスでトリガーされたイベントを表します。

NamingEvent の状態構成は次のとおりです。

イベントソースは、リスナーが登録した、常に同じ 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  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
          このイベントの型を含みます。
 
クラス java.util.EventObject から継承されたフィールド
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()
          このイベントの型を返します。
 
クラス java.util.EventObject から継承されたメソッド
getSource, toString
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

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
このイベントの型を含みます。

関連項目:
OBJECT_ADDED, OBJECT_REMOVED, OBJECT_RENAMED, OBJECT_CHANGED

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 の実装がスレッドセーフではない (また EventContextContext のサブインタフェースである) ため、ロックが必要です。スレッド問題の詳細は、「パッケージの説明」を参照してください。

戻り値:
このイベントをトリガーした 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_ADDEDOBJECT_REMOVEDOBJECT_RENAMED、および OBJECT_CHANGED です。

リスナーメソッドは、このメソッドと同じスレッドで実行されます。スレッド問題の詳細は、「パッケージの説明」を参照してください。

パラメータ:
listener - null 以外のリスナー

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。