- java.lang.Object
-
- java.util.EventObject
-
- javax.naming.event.NamingEvent
-
- 实现的所有接口
-
Serializable
public class NamingEvent extends EventObject
此类表示由命名/目录服务触发的事件。NamingEvent
的州由- 事件源:
EventContext
触发了此事件。 - 事件类型。
- 新绑定:更改后有关对象的信息。
- 旧绑定:更改前有关对象的信息。
- 更改信息:有关触发此事件的更改的信息; 通常是服务提供商特定的或服务器特定的信息。
请注意,事件源始终与侦听器已注册的
EventContext
实例相同。 此外,NamingEvent
中绑定的名称始终相对于该实例。 例如,假设一个监听器进行以下注册:NamespaceChangeListener listener = ...; src.addNamingListener("x", SUBTREE_SCOPE, listener);
NamingEvent
(evt
)必须包含:evt.getEventContext() == src evt.getOldBinding().getName().equals("x/y")
EventContext
时,必须小心。 有关线程问题的更多信息,请参见package description 。- 从以下版本开始:
- 1.3
- 另请参见:
-
NamingListener
,EventContext
, Serialized Form
-
-
字段汇总
字段 变量和类型 字段 描述 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
-
-
-
-
字段详细信息
-
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
的实例。newBd
和oldBd
中的名称将相对于事件源source
进行解析。 对于OBJECT_ADDED
事件类型,newBd
不能为空。 对于OBJECT_REMOVED
事件类型,oldBd
不能为空。 对于OBJECT_CHANGED
事件类型,newBd
和oldBd
不能为空。 对于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
)。 有关线程问题的更多信息,请参见package description 。- 结果
- 触发此事件的非null上下文。
-
getOldBinding
public Binding getOldBinding()
在更改之前检索对象的绑定。如果对象在相对于源上下文(
getEventContext()
)的更改之前存在,则绑定必须是非getEventContext()
。 也就是说,对于OBJECT_REMOVED
和OBJECT_CHANGED
,它必须OBJECT_REMOVED
OBJECT_CHANGED
。 对于OBJECT_RENAMED
,如果重命名前的对象超出了侦听器已注册的范围,则为null; 如果对象在重命名之前位于范围内,则它是非空的。绑定中的名称将相对于事件源
getEventContext()
进行解析。 如果此类信息不可用,则Binding.getObject()
返回的对象可能为null。- 结果
- 更改前对象的可能空绑定。
-
getNewBinding
public Binding getNewBinding()
更改后检索对象的绑定。如果对象在相对于源上下文(
getEventContext()
)的更改之后存在,则绑定必须是非getEventContext()
。 也就是说,对于OBJECT_ADDED
和OBJECT_CHANGED
,它必须OBJECT_ADDED
OBJECT_CHANGED
。 对于OBJECT_RENAMED
,如果重命名后的对象超出了侦听器注册的范围,则为null; 如果对象在重命名后位于范围内,则它是非空的。绑定中的名称将相对于事件源
getEventContext()
进行解析。 如果此类信息不可用,则Binding.getObject()
返回的对象可能为null。- 结果
- 更改后对象的可能空绑定。
-
getChangeInfo
public Object getChangeInfo()
检索此事件的更改信息。 更改信息的值是特定于服务的。 例如,它可以是标识服务器上更改日志中的更改的ID。- 结果
- 此事件的可能为null的更改信息。
-
dispatch
public void dispatch(NamingListener listener)
在此事件上调用适当的侦听器方法。 此方法的默认实现处理以下事件类型:OBJECT_ADDED, OBJECT_REMOVED, OBJECT_RENAMED, OBJECT_CHANGED
。侦听器方法在与此方法相同的线程中执行。 有关线程问题的更多信息,请参见package description 。
- 参数
-
listener
- 非listener
的侦听器。
-
-