Класс NamingEvent
- 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); Когда объект с именем "x/y" впоследствии удаляется, соответствующее 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) | Создаёт экземпляр |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
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 Поля
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 не должно быть 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
Методы
getType
public int getType()
Возвращает тип этого события.
- Возвращает:
- Тип этого события.
- См. также:
-
OBJECT_ADDED,OBJECT_REMOVED,OBJECT_RENAMED,OBJECT_CHANGED
getEventContext
public EventContext getEventContext()
Возвращает источник события, который сгенерировал это событие. Возвращает тот же объект, что и EventObject.getSource().
Если результат этого метода используется для доступа к источнику события, например, для поиска объекта или получения его атрибутов, то он должен быть заблокирован, так как реализации Context не гарантируют потокобезопасность (и EventContext — подинтерфейс Context). См. описание пакета в разделе Потоки для получения дополнительной информации о проблемах с потоками.
- Возвращает:
- Контекст, который сгенерировал это событие (не null).
getOldBinding
public Binding getOldBinding()
Возвращает связывание объекта до изменения.
Связывание должно быть не null, если объект существовал до изменения относительно контекста источника (getEventContext()). То есть, оно должно быть не null для OBJECT_REMOVED и OBJECT_CHANGED. Для OBJECT_RENAMED, оно null, если объект до переименования находится вне области, на которую слушатель зарегистрировал интерес; оно не null, если объект находится в области до переименования.
Имя в связывании должно быть разрешено относительно источника события getEventContext(). Объект, возвращаемый Binding.getObject(), может быть null, если такая информация недоступна.
- Возвращает:
- Возможная связь объекта до изменения (может быть null).
getNewBinding
public Binding getNewBinding()
Возвращает связывание объекта после изменения.
Связывание должно быть не null, если объект существовал после изменения относительно контекста источника (getEventContext()). То есть, оно должно быть не null для OBJECT_ADDED и OBJECT_CHANGED. Для OBJECT_RENAMED, оно null, если объект после переименования находится вне области, на которую слушатель зарегистрировал интерес; оно не null, если объект находится в области после переименования.
Имя в связывании должно быть разрешено относительно источника события getEventContext(). Объект, возвращаемый Binding.getObject(), может быть null, если такая информация недоступна.
- Возвращает:
- Возможная связь объекта после изменения (может быть null).
getChangeInfo
public Object getChangeInfo()
Возвращает информацию об изменениях для этого события. Значение информации об изменениях зависит от службы. Например, это может быть идентификатор, который идентифицирует изменение в журнале изменений на сервере.
- Возвращает:
- Возможная информация об изменениях для этого события (может быть null).
dispatch
public void dispatch(NamingListener listener)
Вызывает соответствующий метод слушателя для этого события. По умолчанию этот метод обрабатывает следующие типы событий: OBJECT_ADDED, OBJECT_REMOVED,
OBJECT_RENAMED, OBJECT_CHANGED.
Метод слушателя выполняется в том же потоке, что и этот метод. См. описание пакета в разделе Потоки для получения дополнительной информации о проблемах с потоками.
- Параметры:
-
listener- Слушатель (не null).
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.naming/javax/naming/event/NamingEvent.html