Spec-Zone.ru › OpenJDK 8

Интерфейс DirStateFactory

Все суперинтерфейсы:
StateFactory

public interface DirStateFactory
extends StateFactory

Данный интерфейс представляет фабрику для получения состояния объекта и соответствующих атрибутов для привязки.

Фреймворк JNDI позволяет загружать реализации объектов динамически с помощью object factories.

Класс DirStateFactory расширяет StateFactory, позволяя передавать и возвращать экземпляр Attributes в метод getStateToBind(). Реализации DirStateFactory предназначены для использования поставщиками DirContext сервисов. Когда вызывающая сторона привязывает объект, используя DirContext.bind(), она может также указать набор атрибутов, которые необходимо привязать к объекту. Объект и атрибуты, которые нужно привязать, передаются в метод getStateToBind() фабрики. Если фабрика обрабатывает объект и атрибуты, она возвращает соответствующую пару объект-атрибуты для привязки. Если фабрика не обрабатывает объект, она должна вернуть null.

Например, вызывающая сторона может привязать объект принтера с некоторыми связанными с принтером атрибутами.

ctx.rebind("inky", printer, printerAttrs);
Поставщик LDAP-сервиса для ctx использует класс DirStateFactory (косвенно через DirectoryManager.getStateToBind()) и предоставляет ему printer и printerAttrs. Фабрика для LDAP-каталога может преобразовать printer в набор атрибутов и объединить его с printerAttrs. Затем поставщик сервиса использует полученные атрибуты для создания записи LDAP и обновляет каталог.

Поскольку DirStateFactory расширяет StateFactory, у него есть два метода getStateToBind(), где один отличается от другого аргументом attributes. DirectoryManager.getStateToBind() будет использовать только форму, принимающую аргумент attributes, в то время как NamingManager.getStateToBind() будет использовать только форму, не принимающую аргумент attributes.

Любая форма метода getStateToBind() DirStateFactory может быть вызвана несколько раз, возможно, с использованием различных параметров. Реализация является потокобезопасной.

С:
1.3
См. также:
DirectoryManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes), DirObjectFactory

Вложенные классы

Модификатор и тип Интерфейс и описание
static class  DirStateFactory.Result

Пара объект/атрибуты для возврата результата DirStateFactory.getStateToBind().

Методы

Модификатор и тип Метод и описание
DirStateFactory.Result getStateToBind(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes inAttrs)

Получает состояние объекта для привязки, учитывая объект и атрибуты, которые необходимо преобразовать.

Методы, унаследованные от интерфейса javax.naming.spi.StateFactory

getStateToBind

Методы

getStateToBind

DirStateFactory.Result getStateToBind(Object obj,
                                      Name name,
                                      Context nameCtx,
                                      Hashtable<?,?> environment,
                                      Attributes inAttrs)
                               throws NamingException

Получает состояние объекта для привязки, учитывая объект и атрибуты, которые необходимо преобразовать.

DirectoryManager.getStateToBind() последовательно загружает фабрики состояний. Если фабрика реализует DirStateFactory, DirectoryManager вызывает этот метод; в противном случае, он вызывает StateFactory.getStateToBind(). Это делается до тех пор, пока фабрика не вернёт ненулевой ответ.

Если фабрика бросает исключение, исключение передаётся вызывающей стороне метода DirectoryManager.getStateToBind(). Поиск других фабрик, которые могут вернуть ненулевой ответ, прекращается. Фабрика должна выбрасывать исключение только в том случае, если она уверена, что это единственная целевая фабрика и что другие фабрики не должны быть опробованы. Если эта фабрика не может создать объект с использованием предоставленных аргументов, она должна вернуть null.

Параметры name и nameCtx могут по желанию использоваться для указания имени создаваемого объекта. Подробнее см. описание "Имя и параметры контекста" в ObjectFactory.getObjectInstance(). Если фабрика использует nameCtx, она должна синхронизировать своё использование с учётом одновременного доступа, поскольку реализации контекста не гарантируют потокобезопасность.

Параметры name, inAttrs, и environment принадлежат вызывающей стороне. Реализация не будет изменять эти объекты или сохранять ссылки на них, хотя она может сохранять ссылки на клоны или копии. Объект, возвращаемый этим методом, принадлежит вызывающей стороне. Реализация не будет впоследствии его изменять. Он будет содержать либо новый объект Attributes, также принадлежащий вызывающей стороне, либо ссылку на исходный параметр inAttrs.

Параметры:
obj - Возможно нулевой объект, состояние которого необходимо получить.
name - Имя этого объекта относительно nameCtx, или null, если имя не указано.
nameCtx - Контекст относительно которого указан параметр name, или null, если name относится к контексту по умолчанию.
environment - Возможно нулевая среда, которая должна быть использована при создании состояния объекта.
inAttrs - Возможно нулевые атрибуты, которые необходимо привязать к объекту. Фабрика не должна изменять inAttrs.
Возвращает:
Объект Result, содержащий состояние объекта для привязки и соответствующие атрибуты для привязки; null, если объект не использует эту фабрику.
Бросает:
NamingException - Если эта фабрика столкнулась с ошибкой при попытке получить состояние объекта, и другие фабрики не должны быть опробованы.
См. также:
DirectoryManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes)

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API