Класс 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. -
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, содержащий объект для связывания и атрибуты для сопровождения связывания. Объект или атрибуты могут быть null. - Фабрики состояния, которые пытаются использоваться, должны реализовывать либо
StateFactory, либоDirStateFactory. Если реализуетсяDirStateFactory, вызываетсяDirStateFactory.getStateToBind(); в противном случае вызываетсяStateFactory.getStateToBind().
DirContext, должны использовать этот метод, а не NamingManager.getStateToBind(). См. NamingManager.getStateToBind() для описания того, как определяется список фабрик состояния, которые нужно попробовать.
Объект, возвращаемый этим методом, принадлежит вызывающей стороне. Реализация не будет его изменять. Он будет содержать либо новый объект Attributes, также принадлежащий вызывающей стороне, либо ссылку на исходный параметр attrs.
- Parameters:
-
obj- Объект, не равный null, для которого нужно получить состояние для связывания. -
name- Имя этого объекта относительноnameCtx, или null, если имя не указано. -
nameCtx- Контекст, относительно которого указан параметрname, или null, еслиnameотносится к контексту по умолчанию. -
environment- Возможно null, среда, которая будет использоваться для создания фабрики состояния и состояния объекта. -
attrs- Возможно null, атрибуты, которые будут связаны с объектом. - Returns:
- Объект DirStateFactory.Result, не равный null, содержащий объект и атрибуты, которые нужно связать. Если ни одна фабрика состояния не возвращает значение не равное null, результат будет содержать сам объект (
obj) с оригинальными атрибутами. - Throws:
-
NamingException- Если возникло исключение обработки имен при использовании фабрик. Фабрика должна выбрасывать исключение только в том случае, если она не хочет, чтобы другие фабрики использовались для попытки создать объект. См.DirStateFactory.getStateToBind(). - Since:
- 1.3
- See Also:
© 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/DirectoryManager.html