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