Интерфейс DirObjectFactory
- Все суперинтерфейсы:
ObjectFactory
public interface DirObjectFactory extends ObjectFactory
Фреймворк JNDI позволяет загружать реализации объектов динамически через фабрики объектов. Подробнее см. ObjectFactory.
DirObjectFactory расширяет ObjectFactory, позволяя предоставить экземпляр Attributes, в метод getObjectInstance(). Реализации DirObjectFactory предназначены для использования поставщиками услуг DirContext. Поставщик услуг, помимо чтения объекта из каталога, может иметь атрибуты, полезные для фабрики объектов, чтобы проверить, должен ли фабрика обрабатывать объект. Например, поставщик услуг LDAP может прочитать «objectclass» объекта. Фабрика объектов CORBA может быть заинтересована только в записях LDAP с «objectclass=corbaObject». Используя атрибуты, предоставленные поставщиком услуг LDAP, фабрика объектов CORBA может быстро исключить объекты, которыми ей не нужно беспокоиться, а фабрики объектов non-CORBA могут быстро исключить записи LDAP, связанные с CORBA.
- С момента:
- 1.3
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
getObjectInstance |
Создаёт объект, используя информацию о местоположении или ссылке и указанные атрибуты. |
Методы, объявленные в интерфейсе javax.naming.spi.ObjectFactory
getObjectInstance
Подробное описание методов
getObjectInstance
Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes attrs) throws Exception
Специальные требования к этому объекту предоставляются с помощью environment. Примером такой свойства среды является информация об идентификации пользователя.
DirectoryManager.getObjectInstance() последовательно загружает фабрики объектов. Если встречается DirObjectFactory, вызывается DirObjectFactory.getObjectInstance(); в противном случае, вызывается ObjectFactory.getObjectInstance(). Это происходит до тех пор, пока фабрика не вернёт ненулевой ответ.
Когда исключение выбрасывается фабрикой объектов, исключение передаётся вызывающей стороне DirectoryManager.getObjectInstance(). Поиск других фабрик, которые могут вернуть ненулевой ответ, прекращается. Фабрика объектов должна выбрасывать исключение только в том случае, если она уверена, что она единственная целевая фабрика и что другие фабрики объектов не должны пытаться работать. Если эта фабрика не может создать объект, используя предоставленные аргументы, она должна вернуть null.
Поскольку DirObjectFactory расширяет ObjectFactory, у него фактически есть два getObjectInstance() метода, где один отличается от другого аргументом attributes. Учитывая фабрику, реализующую DirObjectFactory, DirectoryManager.getObjectInstance() будет использовать только метод, принимающий аргумент attributes, а NamingManager.getObjectInstance() будет использовать только тот, который не принимает аргумент attributes.
См. ObjectFactory для описания URL-контекстных фабрик и других свойств фабрик объектов, которые применяются одинаково к DirObjectFactory.
Параметры name, attrs, и environment принадлежат вызывающей стороне. Реализация не будет изменять эти объекты или сохранять ссылки на них, хотя она может сохранять ссылки на клоны или копии.
- Параметры:
-
obj- Возможно нулевой объект, содержащий информацию о местоположении или ссылке, которая может быть использована для создания объекта. -
name- Имя этого объекта относительноnameCtx, или null, если имя не указано. -
nameCtx- Контекст, относительно которого указан параметрname, или null, еслиnameотносится к контексту по умолчанию. -
environment- Возможно нулевая среда, используемая при создании объекта. -
attrs- Возможно нулевые атрибуты, содержащие некоторые из атрибутовobj.attrsможет не иметь всех атрибутовobj. Если фабрике объектов необходимы дополнительные атрибуты, она должна получить их, либо используяobj, либоnameиnameCtx. Фабрика не должна изменять attrs. - Возвращает:
- Созданный объект; null, если объект не может быть создан.
- Изначает:
-
Exception- Если эта фабрика объектов столкнулась с ошибкой при попытке создать объект, и другие фабрики объектов не должны быть опробованы. - См. также:
© 1993, 2023, 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/21/docs/api/java.naming/javax/naming/spi/DirObjectFactory.html