Spec-Zone.ru › OpenJDK 17

Интерфейс 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(). Это продолжается до тех пор, пока фабрика не вернет значение не равное null.

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

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

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

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

© 1993, 2021, 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/17/docs/api/java.naming/javax/naming/spi/DirStateFactory.html

Spec-Zone.ru

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