Класс DirectoryManager
public class DirectoryManager extends NamingManager
DirContext
реализаций. Этот класс является расширением
NamingManager. Он содержит методы для использования поставщиками услуг для доступа к фабрикам объектов и фабрикам состояний, а также для получения контекстов продолжения для поддержки федерации.
DirectoryManager
безопасен для одновременного доступа нескольких потоков.
За исключением случаев, оговоренных отдельно, параметр
Name,
Attributes, или окружения, передаваемый любому методу, принадлежит вызывающей стороне. Реализация не будет изменять объект или хранить ссылку на него, хотя она может хранить ссылку на клон или копию.
- Since:
- 1.3
- See Also:
Краткое описание полей
Поля, объявленные в классе javax.naming.spi.NamingManager
CPE
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static DirContext |
getContinuationDirContext |
Создаёт контекст для продолжения
DirContext
операции. |
static Object |
getObjectInstance |
Создаёт экземпляр объекта для указанного объекта, атрибутов и среды. |
static DirStateFactory.Result |
getStateToBind |
Получает состояние объекта для привязки, если задан исходный объект и его атрибуты. |
Методы, объявленные в классе javax.naming.spi.NamingManager
getContinuationContext, getInitialContext, getObjectInstance, getStateToBind, getURLContext, hasInitialContextFactoryBuilder, setInitialContextFactoryBuilder, setObjectFactoryBuilder
Подробное описание методов
getContinuationDirContext
public static DirContext getContinuationDirContext(CannotProceedException cpe) throws NamingException
DirContext
операции. Работает так же, как
NamingManager.getContinuationContext(), только контекст продолжения, возвращаемый, является
DirContext.
- Parameters:
-
cpe- Исключение, не равное null, которое вызвало это продолжение. - Returns:
- Объект
DirContextдля продолжения операции. Не равен null. - Throws:
-
NamingException- Если произошла ошибка именования. - See Also:
getObjectInstance
public static Object getObjectInstance(Object refInfo, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes attrs) throws Exception
Этот метод такой же, как
NamingManager.getObjectInstance
, за исключением следующих различий:
- Он принимает параметр
Attributes, содержащий атрибуты, связанные с объектом.DirObjectFactoryможет использовать эти атрибуты, чтобы не искать их в каталоге. - Фабрики объектов, которые нужно попробовать, должны реализовывать либо
ObjectFactory, либоDirObjectFactory. Если она реализуетDirObjectFactory, то используетсяDirObjectFactory.getObjectInstance(), в противном случае используетсяObjectFactory.getObjectInstance().
DirContext
, должны использовать этот метод, а не
NamingManager.getObjectInstance()
.- Parameters:
-
refInfo- Возможно, null, объект, для которого нужно создать объект. -
name- Имя этого объекта относительноnameCtx. Указание имени необязательно; если оно опущено,nameдолжен быть null. -
nameCtx- Контекст, относительно которого указан параметрname. Если null,nameотносится к контексту по умолчанию. -
environment- Возможно, null, среда, которая будет использоваться при создании фабрики объектов и объекта. -
attrs- Возможно, null, атрибуты, связанные с refInfo. Это может быть не полный набор атрибутов для refInfo; вы можете прочитать больше атрибутов из каталога. - Returns:
- Созданный объект, используя
refInfoиattrs; илиrefInfo, если объект не может быть создан фабрикой. - Throws:
-
NamingException- Если при попытке получить контекст URL возникла ошибка именования, или если один из обращенных к фабрикам выбрасывает NamingException. -
Exception- Если одна из обращенных к фабрикам выбрасывает исключение, или если произошла ошибка при загрузке и создании классов фабрики и объекта. Фабрика должна выбрасывать исключение только в том случае, если она не хочет, чтобы другие фабрики использовались в попытке создать объект. См.DirObjectFactory.getObjectInstance(). - Since:
- 1.3
- See Also:
getStateToBind
public static DirStateFactory.Result getStateToBind(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes attrs) throws NamingException
Этот метод подобен
NamingManager.getStateToBind
, за исключением следующих различий:
- Он принимает параметр
Attributes, содержащий атрибуты, которые были переданы методуDirContext.bind(). - Он возвращает экземпляр
DirStateFactory.Result, содержащий объект для привязки и атрибуты для сопровождения привязки. Объект или атрибуты могут быть null. - Фабрики состояний, которые нужно попробовать, должны каждая реализовывать либо
StateFactory, либоDirStateFactory. Если она реализуетDirStateFactory, то вызываетсяDirStateFactory.getStateToBind(); в противном случае вызываетсяStateFactory.getStateToBind().
DirContext
, должны использовать этот метод, а не
NamingManager.getStateToBind()
. См. NamingManager.getStateToBind() для описания того, как определяется список фабрик состояний, которые нужно попробовать.
Объект, возвращаемый этим методом, принадлежит вызывающей стороне. Реализация не будет его изменять. Он будет содержать либо новый объект
Attributes
, который также принадлежит вызывающей стороне, или ссылку на исходный параметр
attrs
.
- Parameters:
-
obj- Объект, для которого нужно получить состояние для привязки. -
name- Имя этого объекта относительноnameCtx, или null, если имя не задано. -
nameCtx- Контекст, относительно которого указан параметрname, или null, еслиnameотносится к контексту по умолчанию. -
environment- Возможно, null, среда, которая будет использоваться при создании фабрики состояний и состояния объекта. -
attrs- Возможно, null, атрибуты, которые нужно связать с объектом. - Returns:
- Объект DirStateFactory.Result, содержащий объект и атрибуты для привязки. Если ни одна фабрика состояний не возвращает ненулевое значение, результат будет содержать сам объект (
obj) с исходными атрибутами. - Throws:
-
NamingException- Если при использовании фабрик возникла ошибка именования. Фабрика должна выбрасывать исключение только в том случае, если она не хочет, чтобы другие фабрики использовались в попытке создать объект. См.DirStateFactory.getStateToBind(). - Since:
- 1.3
- See Also:
© 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/DirectoryManager.html