- 所有已实现的接口:
Serializable
NamingEvent 的状态包括
- 事件源:触发此事件的
EventContext。 - 事件类型。
- 新的绑定:改变后对象的信息。
- 旧绑定:对象改变前的信息。
- 变更信息:触发该事件的变更信息;通常是特定于服务提供者或特定于服务的信息。
请注意,事件源始终与监听器注册的相同EventContext instance。此外,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
- 参见:
-
字段摘要
字段修饰符和类型Field描述protected Object包含有关生成此事件的更改的信息。protected Binding包含有关更改后对象的信息。static final int用于指示已添加新对象的命名事件类型。static final int用于指示对象已更改的命名事件类型。static final int用于指示对象已被删除的命名事件类型。static final int用于指示对象已重命名的命名事件类型。protected Binding包含有关更改前对象的信息。protected int包含此事件的类型。在类 java.util.EventObject 中声明的字段
source -
构造方法总结
构造方法构造方法描述NamingEvent(EventContext source, int type, Binding newBd, Binding oldBd, Object changeInfo) 构造一个NamingEvent实例 -
方法总结
修饰符和类型方法描述voiddispatch(NamingListener listener) 对此事件调用适当的监听方法。检索此事件的更改信息。检索触发此事件的事件源。检索更改后对象的绑定。检索更改前对象的绑定。intgetType()返回此事件的类型。在类 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中的旧/新绑定可能为空。当名称空间树中的内部节点已重命名时,作为监听范围一部分的最顶层节点应该用于生成重命名事件。支持的程度因供应商而异。例如,服务可能会为已更改的内部节点的所有后代生成重命名通知,而相应的提供者可能无法阻止将这些通知传播给监听。
此常量值为
2.- 参见:
-
OBJECT_CHANGED
public static final int OBJECT_CHANGED用于指示对象已更改的命名事件类型。更改可能包括对象的属性或对象本身。请注意,某些服务可能会为一次修改触发多个事件。例如,可以通过首先删除旧绑定并添加包含相同名称但对象不同的新绑定来实现修改。此常量值为
3.- 参见:
-
changeInfo
包含有关生成此事件的更改的信息。 -
type
protected int type包含此事件的类型。- 参见:
-
oldBinding
包含有关更改前对象的信息。 -
newBinding
包含有关更改后对象的信息。
-
-
构造方法详细信息
-
NamingEvent
构造一个NamingEvent实例newBd和oldBd中的名称将相对于事件源source进行解析。对于OBJECT_ADDED事件类型,newBd不能为空。对于OBJECT_REMOVED事件类型,oldBd不能为空。对于OBJECT_CHANGED事件类型,newBd和oldBd不得为空。对于OBJECT_RENAMED事件类型,如果新绑定或旧绑定超出监听器已注册的范围,则newBd或oldBd之一可能为空。- 参数:
source- 触发此事件的非空上下文。type- 事件的类型。newBd- 更改前可能为空的绑定。见方法说明。oldBd- 更改后可能为空绑定。见方法说明。changeInfo- 一个可能为 null 的对象,其中包含有关更改的信息。- 参见:
-
-
方法详情
-
getType
public int getType()返回此事件的类型。- 返回:
- 此事件的类型。
- 参见:
-
getEventContext
检索触发此事件的事件源。这将返回与EventObject.getSource()相同的对象。如果此方法的结果用于访问事件源,例如查找对象或获取其属性,则需要对其进行锁定,因为不保证
Context的实现是线程安全的(而EventContext是一个Context的子接口)。有关线程问题的更多信息,请参阅 包装说明。- 返回:
- 触发此事件的非空上下文。
-
getOldBinding
检索更改前对象的绑定。如果对象在相对于源上下文 (
getEventContext()) 的更改之前存在,则绑定必须为非空。也就是说,它对于OBJECT_REMOVED和OBJECT_CHANGED必须是非空的。对于OBJECT_RENAMED,如果重命名之前的对象在监听器已注册兴趣的范围之外,则为空;如果对象在重命名之前在范围内,则它是非空的。绑定中的名称将相对于事件源
getEventContext()进行解析。如果此类信息不可用,Binding.getObject()返回的对象可能为空。- 返回:
- 更改前对象的可能为 null 的绑定。
-
getNewBinding
检索更改后对象的绑定。如果对象在相对于源上下文 (
getEventContext()) 发生更改后存在,则绑定必须为非空。也就是说,它对于OBJECT_ADDED和OBJECT_CHANGED必须是非空的。对于OBJECT_RENAMED,如果重命名后的对象在监听器注册兴趣的范围之外,则为空;如果重命名后对象在范围内,则它是非空的。绑定中的名称将相对于事件源
getEventContext()进行解析。如果此类信息不可用,Binding.getObject()返回的对象可能为空。- 返回:
- 更改后对象的可能为 null 的绑定。
-
getChangeInfo
检索此事件的更改信息。更改信息的值是特定于服务的。例如,它可以是标识服务上更改日志中的更改的 ID。- 返回:
- 此事件的可能为空的更改信息。
-
dispatch
对此事件调用适当的监听器方法。此方法的默认实现处理以下事件类型:OBJECT_ADDED, OBJECT_REMOVED, OBJECT_RENAMED, OBJECT_CHANGED。监听器方法与此方法在同一线程中执行。有关线程问题的更多信息,请参阅 包装说明。
- 参数:
listener- 非空监听器。
-