- 所有已实现的接口:
-
Serializable
NamingEvent
的状态包括
- 事件源:触发此事件的
EventContext
。 - 事件类型。
- 新绑定:更改后对象的信息。
- 旧绑定:更改前对象的信息。
- 更改信息:触发此事件的更改信息;通常是特定于服务提供程序或服务器的信息。
请注意,事件源始终是与监听器注册的相同EventContext
实例。此外,在NamingEvent
中的绑定名称始终是相对于该实例的。例如,假设监听器进行以下注册:
随后删除命名为"x/y"的对象时,相应的NamespaceChangeListener listener = ...; src.addNamingListener("x", SUBTREE_SCOPE, listener);
NamingEvent
(evt
)必须包含:
在多个线程同时访问同一evt.getEventContext() == src evt.getOldBinding().getName().equals("x/y")
EventContext
时必须小心。有关线程问题的更多信息,请参阅包描述。
- 自 JDK 版本:
- 1.3
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionprotected Object
包含生成此事件的更改信息。protected Binding
包含更改后对象的信息。static final int
用于指示已添加新对象的命名事件类型。static final int
用于指示已更改对象的命名事件类型。static final int
用于指示已删除对象的命名事件类型。static final int
用于指示已重命名对象的命名事件类型。protected Binding
包含更改前对象的信息。protected int
包含此事件的类型。Fields declared in class java.util.EventObject
source
-
Constructor Summary
ConstructorDescriptionNamingEvent
(EventContext source, int type, Binding newBd, Binding oldBd, Object changeInfo) 构造NamingEvent
的实例。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
dispatch
(NamingListener listener) 在此事件上调用适当的监听器方法。检索此事件的更改信息。检索触发此事件的事件源。检索更改后对象的绑定。检索更改前对象的绑定。int
getType()
返回此事件的类型。Methods declared in class java.util.EventObject
getSource, toString
-
Field Details
-
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
包含生成此事件的更改信息。 -
type
protected int type包含此事件的类型。- 参见:
-
oldBinding
包含更改前对象的信息。 -
newBinding
包含更改后对象的信息。
-
-
Constructor Details
-
NamingEvent
构造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的包含更改信息的对象。 - 参见:
-
-
Method Details
-
getType
public int getType()返回此事件的类型。- 返回:
- 此事件的类型。
- 参见:
-
getEventContext
检索触发此事件的事件源。这将返回与EventObject.getSource()
相同的对象。如果此方法的结果用于访问事件源,例如查找对象或获取其属性,则需要锁定该对象,因为
Context
的实现不能保证是线程安全的(而EventContext
是Context
的子接口)。有关线程问题的更多信息,请参阅包描述。- 返回:
- 触发此事件的非null上下文。
-
getOldBinding
检索更改前对象的绑定。如果对象在更改前相对于源上下文(
getEventContext()
)存在,则绑定必须为非null。也就是说,对于OBJECT_REMOVED
和OBJECT_CHANGED
,它必须为非null。对于OBJECT_RENAMED
,如果重命名前的对象在监听器注册兴趣的范围之外,则它为null;如果重命名前的对象在重命名前在范围内,则它为非null。绑定中的名称应相对于事件源
getEventContext()
进行解析。由Binding.getObject()
返回的对象可能为null,如果此信息不可用。- 返回:
- 更改前对象的可能为null的绑定。
-
getNewBinding
检索更改后对象的绑定。如果对象在更改后相对于源上下文(
getEventContext()
)存在,则绑定必须为非null。也就是说,对于OBJECT_ADDED
和OBJECT_CHANGED
,它必须为非null。对于OBJECT_RENAMED
,如果重命名后的对象在监听器注册兴趣的范围之外,则它为null;如果重命名后的对象在重命名后在范围内,则它为非null。绑定中的名称应相对于事件源
getEventContext()
进行解析。由Binding.getObject()
返回的对象可能为null,如果此信息不可用。- 返回:
- 更改后对象的可能为null的绑定。
-
getChangeInfo
检索此事件的更改信息。更改信息的值是特定于服务的。例如,它可以是标识服务器上更改的更改日志中的 ID。- 返回:
- 此事件的可能为null的更改信息。
-
dispatch
调用此事件上的适当监听器方法。此方法的默认实现处理以下事件类型:OBJECT_ADDED, OBJECT_REMOVED, OBJECT_RENAMED, OBJECT_CHANGED
。监听器方法在与此方法相同的线程中执行。有关线程问题的更多信息,请参阅包描述。
- 参数:
-
listener
- 非空监听器。
-