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