Интерфейс 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
- См. также:
-
NamingManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>),DirectoryManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes),ObjectFactory
Методы
| Модификатор и тип | Метод и описание |
|---|---|
Object |
getObjectInstance(Object obj,
Name name,
Context nameCtx,
Hashtable<?,?> environment,
Attributes attrs) Создаёт объект, используя информацию о расположении или ссылке, и указанные атрибуты. |
Методы, унаследованные от интерфейса 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- Если эта объектная фабрика столкнулась с исключением при попытке создать объект, и другие объектные фабрики не должны быть опробованы. - См. также:
-
DirectoryManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes),NamingManager.getURLContext(java.lang.String, java.util.Hashtable<?, ?>)
© 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.