JavaTM 2 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
指示已經重命名了某個物件的命名事件型別。注意,有些服務可能為單個邏輯重命名操作觸發多個事件。例如,重命名操作可能通過添加具有新名稱的綁定並移除舊綁定來實作。

如果新名稱或舊名稱在偵聽器註冊的範圍之外,則 NamingEvent 中的新/舊綁定為 null。

重命名名稱空間階層樹中的內部節點後,應該使用作為偵聽器範圍一部分的頂層節點產生重命名事件。對這一點的支持程度是特定於提供者的。例如,服務可能為所有已更改內部節點的子代都產生重命名通知,相應的提供者可能無法阻止將這些通知傳播到偵聽器。

此常數的值為 2

另請參見:
常數欄位值

OBJECT_CHANGED

public static final int OBJECT_CHANGED
指示已經更改了某個物件的命名事件型別。更改可能包括物件的屬性,也可能包括物件本身。注意,有些服務可能為單個修改觸發多個事件。例如,修改可能通過首先移除舊綁定,然後添加包含相同名稱但不同物件的新綁定來實作。

此常數的值為 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 的實例。

newBdoldBd 中的名稱將相對於事件源 source 進行解析。 對於 OBJECT_ADDED 事件型別,newBd 不得為 null。對於 OBJECT_REMOVED 事件型別,oldBd 不得為 null。對於 OBJECT_CHANGED 事件型別,newBdoldBd 不得為 null。對於 OBJECT_RENAMED 事件型別,如果新綁定或舊綁定在已註冊偵聽器的範圍之外,則 newBdoldBd 中的一個可以為 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_REMOVEDOBJECT_CHANGED 它必須為非 null。對於 OBJECT_RENAMED,如果重命名前物件在註冊偵聽器關注的範圍之外,則它為 null;如果物件在重命名前在該範圍之內,則它為非 null。

綁定中的名稱將相對於事件源 getEventContext() 進行解析。如果這類別資訊不可用,則 Binding.getObject() 返回的物件為 null。

返回:
更改前物件的綁定(可能為 null)。

getNewBinding

public Binding getNewBinding()
檢索更改後物件的綁定。

如果物件存在於相對源上下文 (getEventContext()) 進行更改之後,則綁定必須為非 null。即對於 OBJECT_ADDEDOBJECT_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_RENAMEDOBJECT_CHANGED

偵聽器方法與此方法在同一個執行緒中執行。有關執行緒問題的更多資訊,請參閱包描述

參數:
listener - 非 null 偵聽器。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only