java.lang.Object java.util.EventObject javax.naming.event.NamingEvent
public class NamingEvent
此类表示命名/目录服务触发的事件。
NamingEvent 的状态包括
注意,事件源始终是注册了侦听器的那个 EventContext 实例。此外,NamingEvent 中绑定的名称始终相对于该实例。例如,假定侦听器进行以下注册:
以后删除名为 "x/y" 的对象时,相应的 NamingEvent ( evt) 必须包含:NamespaceChangeListener listener = ...; src.addNamingListener("x", SUBTREE_SCOPE, listener);
当多个线程并发访问同一个 EventContext 时必须谨慎。有关线程问题的更多信息,请参阅 包描述。evt.getEventContext() == src evt.getOldBinding().getName().equals("x/y")
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 |
字段详细信息 |
---|
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
protected Binding oldBinding
protected Binding newBinding
构造方法详细信息 |
---|
public NamingEvent(EventContext source, int type, Binding newBd, Binding oldBd, Object changeInfo)
newBd 和 oldBd 中的名称将相对于事件源 source 进行解析。 对于 OBJECT_ADDED 事件类型,newBd 不得为 null。对于 OBJECT_REMOVED 事件类型,oldBd 不得为 null。对于 OBJECT_CHANGED 事件类型,newBd 和 oldBd 不得为 null。对于 OBJECT_RENAMED 事件类型,如果新绑定或旧绑定在已注册侦听器的范围之外,则 newBd 和 oldBd 中的一个可以为 null。
source
- 触发此事件的非 null 上下文。
type
- 事件的类型。
newBd
- 更改前的绑定(可能为 null)。请参阅方法描述。
oldBd
- 更改后的绑定(可能为 null)。请参阅方法描述。
changeInfo
- 包含关于更改的信息的对象(可能为 null)。
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 的子接口)。有关线程问题的更多信息,请参阅包描述。
public Binding getOldBinding()
如果对象存在于相对源上下文 (getEventContext()) 进行更改之前,则绑定必须为非 null。即对于 OBJECT_REMOVED 和 OBJECT_CHANGED 它必须为非 null。对于 OBJECT_RENAMED,如果重命名前对象在注册侦听器关注的范围之外,则它为 null;如果对象在重命名前在该范围之内,则它为非 null。
绑定中的名称将相对于事件源 getEventContext() 进行解析。如果这类信息不可用,则 Binding.getObject() 返回的对象为 null。
public Binding getNewBinding()
如果对象存在于相对源上下文 (getEventContext()) 进行更改之后,则绑定必须为非 null。即对于 OBJECT_ADDED 和 OBJECT_CHANGED 它必须为非 null。对于 OBJECT_RENAMED,如果重命名后对象在注册侦听器关注的范围之外,则它为 null;如果对象在重命名后在该范围之内,则它为非 null。
绑定中的名称将相对于事件源 getEventContext() 进行解析。如果这类信息不可用,则 Binding.getObject() 返回的对象为 null。
public Object getChangeInfo()
public void dispatch(NamingListener listener)
侦听器方法与此方法在同一个线程中执行。有关线程问题的更多信息,请参阅包描述。
listener
- 非 null 侦听器。