JavaTM 2 Platform
Std. Ed. v1.3

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 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.