Класс 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 из нескольких потоков. Дополнительную информацию о проблемах с потоками см. в описании пакета.- С:
- 1.3
- См. также:
-
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) Создаёт экземпляр |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
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- Неравный контекст, сгенерировавший это событие. -
type- Тип события. -
newBd- Возможная пустая связь до изменения. См. описание метода. -
oldBd- Возможная пустая связь после изменения. См. описание метода. -
changeInfo- Возможный пустой объект, содержащий информацию об изменении. - См. также:
-
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). См. описание пакета потоков для получения дополнительной информации о проблемах с потоками.
- Возвращает:
- Неравный контекст, сгенерировавший это событие.
getOldBinding
public Binding getOldBinding()
Возвращает связь объекта до изменения.
Связь должна быть неравной, если объект существовал до изменения относительно контекста источника (getEventContext()). То есть, она должна быть неравной для OBJECT_REMOVED и OBJECT_CHANGED. Для OBJECT_RENAMED, она равна null, если объект до переименования находится вне области, для которой слушатель зарегистрировал интерес; она не равна null, если объект находится в области до переименования.
Имя в связи должно быть разрешено относительно источника события getEventContext(). Объект, возвращаемый Binding.getObject(), может быть null, если такая информация недоступна.
- Возвращает:
- Возможная пустая связь объекта до изменения.
getNewBinding
public Binding getNewBinding()
Возвращает связь объекта после изменения.
Связь должна быть неравной, если объект существовал после изменения относительно контекста источника (getEventContext()). То есть, она должна быть неравной для OBJECT_ADDED и OBJECT_CHANGED. Для OBJECT_RENAMED, она равна null, если объект после переименования находится вне области, для которой слушатель зарегистрировал интерес; она не равна null, если объект находится в области после переименования.
Имя в связи должно быть разрешено относительно источника события getEventContext(). Объект, возвращаемый Binding.getObject(), может быть null, если такая информация недоступна.
- Возвращает:
- Возможная пустая связь объекта после изменения.
getChangeInfo
public Object getChangeInfo()
Возвращает информацию об изменении для этого события. Значение информации об изменении зависит от службы. Например, это может быть идентификатор, который идентифицирует изменение в журнале изменений на сервере.
- Возвращает:
- Возможная пустая информация об изменении этого события.
dispatch
public void dispatch(NamingListener listener)
Вызывает соответствующий метод слушателя для этого события. Стандартная реализация этого метода обрабатывает следующие типы событий: OBJECT_ADDED, OBJECT_REMOVED, OBJECT_RENAMED, OBJECT_CHANGED.
Метод слушателя выполняется в том же потоке, что и этот метод. См. описание пакета потоков для получения дополнительной информации о проблемах с потоками.
- Параметры:
-
listener- Неравный слушатель.
© 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.