public class NamingEvent extends EventObject
NamingEvent的状态由
请注意,事件源始终与侦听器注册的EventContext 实例相同。 此外, NamingEvent中绑定的名称总是与该实例相关。 例如,假设一个监听器进行以下注册:
当名为“x / y”的对象随后被删除时,对应的NamingEvent ( evt )必须包含:NamespaceChangeListener listener = ...; src.addNamingListener("x", SUBTREE_SCOPE, listener);
当多个线程同时访问同一个EventContext时,必须小心。 见package description关于线程问题的更多信息。evt.getEventContext() == src evt.getOldBinding().getName().equals("x/y")
NamingListener
, EventContext
, Serialized Form
Modifier and Type | Field and Description |
---|---|
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
包含此事件的类型。
|
source
Constructor and Description |
---|
NamingEvent(EventContext source, int type, Binding newBd, Binding oldBd, Object changeInfo)
构造的
NamingEvent一个实例。
|
Modifier and Type | Method and Description |
---|---|
void |
dispatch(NamingListener listener)
在此事件上调用适当的侦听器方法。
|
Object |
getChangeInfo()
检索此事件的更改信息。
|
EventContext |
getEventContext()
检索触发此事件的事件源。
|
Binding |
getNewBinding()
在更改后检索对象的绑定。
|
Binding |
getOldBinding()
在更改之前检索对象的绑定。
|
int |
getType()
返回此事件的类型。
|
getSource, toString
public static final int OBJECT_ADDED
public static final int OBJECT_REMOVED
public static final int OBJECT_RENAMED
如果旧名称或新名称超出了侦听器注册的范围,则NamingEvent中的旧/新绑定可能为null。
当命名空间树中的内部节点已被重命名时,作为监听器范围的一部分的最顶层节点应用于生成重命名事件。 可以支持的程度是提供者特定的。 例如,服务可能会为更改的内部节点的所有后代生成重命名通知,并且相应的提供程序可能无法阻止这些通知传播到侦听器。
该常数的值为2 。
public static final int OBJECT_CHANGED
该常数的值为3 。
protected Object changeInfo
protected int type
OBJECT_ADDED
,
OBJECT_REMOVED
,
OBJECT_RENAMED
,
OBJECT_CHANGED
protected Binding oldBinding
protected Binding newBinding
public NamingEvent(EventContext source, int type, Binding newBd, Binding oldBd, Object changeInfo)
newBd和oldBd中的名称将相对于事件源source进行解析。 对于OBJECT_ADDED事件类型, newBd不能为空。 对于OBJECT_REMOVED事件类型, oldBd不能为空。 对于OBJECT_CHANGED事件类型, newBd和oldBd不能为空。 对于OBJECT_RENAMED事件类型,如果新的或旧的绑定超出了侦听器注册的范围,则newBd或oldBd之一可能为null。
source
- 触发此事件的非空上下文。
type
- 事件的类型。
newBd
- 更改前可能为空的绑定。
见方法说明。
oldBd
- 更改后可能为空绑定。
见方法说明。
changeInfo
- 包含有关更改信息的可能为空的对象。
OBJECT_ADDED
,
OBJECT_REMOVED
,
OBJECT_RENAMED
,
OBJECT_CHANGED
public int getType()
OBJECT_ADDED
,
OBJECT_REMOVED
,
OBJECT_RENAMED
,
OBJECT_CHANGED
public EventContext getEventContext()
如果使用此方法的结果来访问事件源,例如,查找对象或获取其属性,则需要锁定,因为Context的实现不能保证是线程安全的( EventContext是子接口Context )。 见package description关于线程问题的更多信息。
public Binding getOldBinding()
如果对象存在于相对于源上下文的更改之前,绑定必须是非空的( getEventContext() )。 也就是说, OBJECT_REMOVED和OBJECT_CHANGED必须是非空的。 对于OBJECT_RENAMED ,如果重命名之前的对象超出了侦听器注册兴趣的范围,则为null; 如果对象在重命名之前在范围内,则它是非空的。
绑定中的名称将相对于事件源getEventContext()进行解析。 Binding.getObject()返回的对象可能为null,如果这样的信息不可用。
public Binding getNewBinding()
如果对象存在于相对于源上下文的更改之后,绑定必须是非空的( getEventContext() )。 也就是说, OBJECT_ADDED和OBJECT_CHANGED必须是非空的。 对于OBJECT_RENAMED ,如果重命名后的对象超出了侦听器注册兴趣的范围,则为null; 如果对象在重命名之后在范围内,则为非空值。
绑定中的名称将相对于事件源getEventContext()进行解析。 如果这些信息是不可用的Binding.getObject()返回的对象可能是空的。
public Object getChangeInfo()
public void dispatch(NamingListener listener)
侦听器方法在与此方法相同的线程中执行。 见package description关于线程问题的更多信息。
listener
- 非正常听众。