Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface EventContext extends Context
Если служба только поддерживает регистрацию для существующих целей, попытка зарегистрироваться для несуществующей цели приводит к NameNotFoundException, бросаемому как можно раньше, предпочтительно в то время, когда addNamingListener() вызывают, или если это не будет возможно, то слушатель получит исключение через NamingExceptionEvent.
Кроме того, для поставщиков услуг, которые только поддерживают регистрацию для существующих целей, когда цель, для которой зарегистрировался слушатель, впоследствии удаляется из пространства имен, слушатель уведомляется через NamingExceptionEvent (содержащий NameNotFoundException).
Приложение может использовать метод targetMustExist(), чтобы проверить, поддерживает ли EventContext регистрацию несуществующих целей.
Например, предположите, что слушатель делает следующую регистрацию:
Когда объект, названный "x/y", впоследствии удаляется, соответствующий NamingEvent (evt) должен содержать:NamespaceChangeListener listener = ...; src.addNamingListener("x", SUBTREE_SCOPE, listener);
evt.getEventContext() == src evt.getOldBinding().getName().equals("x/y")
Кроме того слушатель registration/deregistration с экземпляром EventContext, а не с соответствующим объектом в пространстве имен. Если программа намеревается в некоторый момент удалить слушателя, то она должна сохранить ссылку на экземпляр EventContext, на который она вызвала addNamingListener() (так же, как она должна сохранить ссылку на слушателя, чтобы удалить ее позже). Это не может ожидать делать lookup() и получать другой экземпляр EventContext, на котором можно выполнить deregistration.
Модификатор и Тип | Поле и Описание |
---|---|
static int |
OBJECT_SCOPE
Постоянный для того, чтобы выразить интерес к событиям относительно объекта, названного к установленному сроку.
|
static int |
ONELEVEL_SCOPE
Постоянный для того, чтобы выразить интерес к событиям относительно объектов в контексте, названном к установленному сроку, исключая контекст, названный к установленному сроку.
|
static int |
SUBTREE_SCOPE
Постоянный для того, чтобы выразить интерес к событиям относительно объектов в поддереве объекта, названного к установленному сроку, включая объект, названный к установленному сроку.
|
APPLET, AUTHORITATIVE, BATCHSIZE, DNS_URL, INITIAL_CONTEXT_FACTORY, LANGUAGE, OBJECT_FACTORIES, PROVIDER_URL, REFERRAL, SECURITY_AUTHENTICATION, SECURITY_CREDENTIALS, SECURITY_PRINCIPAL, SECURITY_PROTOCOL, STATE_FACTORIES, URL_PKG_PREFIXES
Модификатор и Тип | Метод и Описание |
---|---|
void |
addNamingListener(Name target, int scope, NamingListener l)
Добавляет слушатель для того, чтобы получить события именования, запущенные, когда объект (ы), идентифицированный целью и контекстом, изменяется.
|
void |
addNamingListener(String target, int scope, NamingListener l)
Добавляет слушатель для того, чтобы получить события именования, запущенные, когда объект, названный строкой, предназначается для имени и изменений контекста.
|
void |
removeNamingListener(NamingListener l)
Удаляет слушателя из получения событий именования, запущенных этим EventContext.
|
boolean |
targetMustExist()
Определяет, может ли слушатель зарегистрировать интерес к цели, которая не существует.
|
addToEnvironment, bind, bind, close, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, getEnvironment, getNameInNamespace, getNameParser, getNameParser, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind
static final int OBJECT_SCOPE
Значением этой константы является 0.
static final int ONELEVEL_SCOPE
Значением этой константы является 1.
static final int SUBTREE_SCOPE
Значением этой константы является 2.
void addNamingListener(Name target, int scope, NamingListener l) throws NamingException
target должен назвать контекст только, когда scope является ONELEVEL_SCOPE. target может назвать неконтекст, если scope является или OBJECT_SCOPE или SUBTREE_SCOPE. Используя SUBTREE_SCOPE для неконтекста могло бы быть полезным, например, если вызывающая сторона не знает заранее, является ли target контекстом и только хочет зарегистрировать интерес к (возможно, выродившееся поддерево) базировался в target.
Когда слушатель уведомляется относительно события, май слушателя в вызванном в потоке кроме того, в котором выполняется addNamingListener(). Забота должна быть проявлена, когда многократные потоки получают доступ к тому же самому EventContext одновременно. См. описание пакета для получения дополнительной информации о поточной обработке проблем.
target
- Ненулевое имя, которое будет разрешено относительно этого контекста.scope
- Один из OBJECT_SCOPE, ONELEVEL_SCOPE, или SUBTREE_SCOPE.l
- Ненулевой слушатель.NamingException
- Если с проблемой встретились, добавляя слушателя.removeNamingListener(javax.naming.event.NamingListener)
void addNamingListener(String target, int scope, NamingListener l) throws NamingException
target
- Имя непустой строки объекта решало относительно этого контекста.scope
- Один из OBJECT_SCOPE, ONELEVEL_SCOPE, или SUBTREE_SCOPE.l
- Ненулевой слушатель.NamingException
- Если с проблемой встретились, добавляя слушателя.removeNamingListener(javax.naming.event.NamingListener)
void removeNamingListener(NamingListener l) throws NamingException
l
- Ненулевой слушатель.NamingException
- Если с проблемой встретились, удаляя слушателя.addNamingListener(javax.naming.Name, int, javax.naming.event.NamingListener)
boolean targetMustExist() throws NamingException
NamingException
- Если поведение контекста в этом отношении не может быть определено.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.