Spec-Zone.ru › OpenJDK 8

Интерфейс Context

Все известные подинтерфейсы:
DirContext, EventContext, EventDirContext, LdapContext
Все известные реализующие классы:
InitialContext, InitialDirContext, InitialLdapContext

public interface Context

Этот интерфейс представляет собой контекст именования, состоящий из набора привязок имя-объект. Он содержит методы для проверки и обновления этих привязок.

Имена

Каждое имя, переданное в качестве аргумента методу Context, относится к этому контексту. Пустое имя используется для именования самого контекста. Параметр имени никогда не может быть null.

Большинство методов имеют перегруженные версии с одним параметром Name и одной с String. Эти перегруженные версии эквивалентны в том, что если параметры Name и String представляют одно и то же имя, то перегруженные версии одних и тех же методов ведут себя одинаково. В описаниях методов ниже документирована только одна версия. Вторая версия вместо этого имеет ссылку на первую: та же документация применима к обеим.

Для систем, поддерживающих федерацию, String аргументы имен в методах Context являются составными именами. Аргументы имен, являющиеся экземплярами CompositeName, обрабатываются как составные имена, а аргументы Name, которые не являются экземплярами CompositeName, обрабатываются как составные имена (которые могут быть экземплярами CompoundName или других реализаций составных имен). Это позволяет использовать результаты NameParser.parse() в качестве аргументов для методов Context. До JNDI 1.2 все аргументы имен обрабатывались как составные имена.

Кроме того, для систем, поддерживающих федерацию, все имена, возвращаемые в NamingEnumeration методами list() и listBindings(), являются составными именами, представленными в виде строк. Смотрите CompositeName для синтаксиса строк имен.

Для систем, не поддерживающих федерацию, аргументы имен (в форме Name или String) и имена, возвращаемые в NamingEnumeration, могут быть именами в собственном пространстве имен, а не в составном пространстве имен, по усмотрению поставщика услуг.

Исключения

Все методы этого интерфейса могут генерировать NamingException или любой из его подклассов. Смотрите NamingException и их подклассы для подробностей об каждом исключении.

Одновременный доступ

Для экземпляра Context не гарантируется синхронизация с одновременным доступом нескольких потоков. Потоки, которым необходимо одновременно обращаться к одному экземпляру Context, должны синхронизироваться между собой и обеспечить необходимую блокировку. Несколько потоков, каждый из которых манипулирует разными экземплярами Context, синхронизироваться не должны. Обратите внимание, что метод lookup, когда ему передано пустое имя, вернёт новый экземпляр Context, представляющий тот же контекст именования.

Для целей контроля одновременного доступа операция Context, возвращающая NamingEnumeration, не считается завершённой, пока перечисление всё ещё используется или пока любые ссылки, сгенерированные этой операцией, всё ещё обрабатываются.

Параметры

Параметр Name, передаваемый любому методу интерфейса Context или одного из его подинтерфейсов, не будет изменён поставщиком услуг. Поставщик услуг может сохранить ссылку на него на всё время операции, включая любое перечисление результатов метода и обработку любых сгенерированных ссылок. Вызывающий метод не должен изменять объект в течение этого времени. Объект Name, возвращённый любым подобным методом, принадлежит вызывающей стороне. Вызывающая сторона может впоследствии изменить его; поставщик услуг — нет.

Свойства окружения

Приложения JNDI нуждаются в способе передачи различных предпочтений и свойств, которые определяют среду доступа к именованным и каталожным службам. Например, контекст может потребовать указать учетные данные безопасности для доступа к службе. Другой контекст может потребовать предоставления информации о конфигурации сервера. Это называется средой контекста. Интерфейс Context предоставляет методы для получения и обновления этой среды.

Среда наследуется от родительского контекста по мере выполнения методов контекста от одного контекста к другому. Изменения в среде одного контекста не влияют напрямую на другие контексты.

Время использования и проверки свойств среды зависит от реализации. Например, некоторые связанные с безопасностью свойства используются поставщиками услуг для «входа» в каталог. Этот процесс входа может происходить во время создания контекста или при первом вызове метода контекста. Время и наличие этого процесса зависят от реализации. При добавлении или удалении свойств среды из контекста проверка их корректности также зависит от реализации. Например, проверка некоторых свойств может происходить в момент изменения, при выполнении следующей операции с контекстом или вообще не происходить.

Любой объект со ссылкой на контекст может просмотреть среду этого контекста. Конфиденциальная информация, такая как пароли в открытом виде, не должна храниться там, если реализация не известна как её защищающая.

Файлы ресурсов

Для упрощения задачи настройки среды, необходимой для приложения JNDI, компоненты приложения и поставщики услуг могут распространяться вместе с файлами ресурсов. Файл ресурсов JNDI — это файл в формате файлов свойств (см. java.util.Properties), содержащий список пар ключ/значение. Ключ — это имя свойства (например, "java.naming.factory.object"), а значение — строка в формате, определённом для этого свойства. Вот пример файла ресурсов JNDI:

java.naming.factory.object=com.sun.jndi.ldap.AttrsToCorba:com.wiz.from.Person java.naming.factory.state=com.sun.jndi.ldap.CorbaToAttrs:com.wiz.from.Person java.naming.factory.control=com.sun.jndi.ldap.ResponseControlFactory
Библиотека классов JNDI считывает файлы ресурсов и делает значения свойств свободно доступными. Таким образом, файлы ресурсов JNDI следует рассматривать как «общедоступные для чтения», и конфиденциальная информация, такая как пароли в открытом виде, не должна там храниться.

Существует два типа файлов ресурсов JNDI: поставщика и приложения.

Файлы ресурсов поставщика

Каждый поставщик услуг имеет необязательный ресурс, в котором перечислены свойства, специфичные для этого поставщика. Название этого ресурса:
[prefix/]jndiprovider.properties
где prefix — имя пакета реализации контекста поставщика, где каждый период (".") преобразуется в косую черту ("/"). Например, предположим, что поставщик услуг определяет реализацию контекста с именем класса com.sun.jndi.ldap.LdapCtx. Файл ресурсов поставщика для этого поставщика называется com/sun/jndi/ldap/jndiprovider.properties. Если класс не находится в пакете, имя ресурса просто jndiprovider.properties.

Некоторые методы библиотеки классов JNDI используют стандартные свойства JNDI, которые определяют списки фабрик JNDI:

  • java.naming.factory.object
  • java.naming.factory.state
  • java.naming.factory.control
  • java.naming.factory.url.pkgs
Библиотека JNDI обращается к файлу ресурсов поставщика при определении значений этих свойств. Другие свойства могут быть установлены в файле ресурсов поставщика по усмотрению поставщика услуг. В документации поставщика услуг должно быть чётко указано, какие свойства разрешены; другие свойства в файле будут игнорироваться.

Файлы ресурсов приложения

При развертывании приложения оно обычно имеет несколько каталогов кода и JAR-файлов в своем пути класса. Аналогично, при развертывании апплета у него будет кодовая база и архивы, указывающие, где найти классы апплета. JNDI находит (используя ClassLoader.getResources()) все файлы ресурсов приложения с именем jndi.properties в пути класса. Кроме того, если файл java.home/lib/jndi.properties существует и доступен для чтения, JNDI обрабатывает его как дополнительный файл ресурсов приложения. (java.home указывает каталог, заданный свойством среды java.home. Все свойства, содержащиеся в этих файлах, помещаются в среду начального контекста. Эта среда затем наследуется другими контекстами.

Для каждого свойства, найденного в более чем одном файле ресурсов приложения, JNDI использует первое найденное значение или, в некоторых случаях, конкатенирует все значения (подробности указаны ниже). Например, если свойство "java.naming.factory.object" найдено в трёх файлах ресурсов jndi.properties, список фабрик объектов — это конкатенация значений свойства из всех трёх файлов. Используя эту схему, каждый компонент, подлежащий развертыванию, отвечает за перечисление фабрик, которые он экспортирует. JNDI автоматически собирает и использует все эти списки экспорта при поиске классов фабрики.

Алгоритм поиска свойств

При создании начального контекста JNDI среда контекста инициализируется свойствами, определёнными в параметре среды, переданном конструктору, системными свойствами, параметрами апплета и файлами ресурсов приложения. Смотрите InitialContext для подробностей. Затем эта начальная среда наследуется другими экземплярами контекста.

Когда библиотеке классов JNDI необходимо определить значение свойства, она делает это, объединяя значения из следующих двух источников, в указанном порядке:

  1. Среда обрабатываемого контекста.
  2. Файл ресурсов поставщика (jndiprovider.properties) для обрабатываемого контекста.
Для каждого свойства, найденного в обоих этих источниках, JNDI определяет значение свойства следующим образом. Если свойство является одним из стандартных свойств JNDI, определяющих список фабрик JNDI (перечисленных выше), значения конкатенируются в один список, разделённый двоеточиями. Для других свойств используется только первое найденное значение.

Когда поставщику услуг нужно определить значение свойства, он обычно берёт его непосредственно из среды. Поставщик услуг может определять специфичные для поставщика свойства, которые должны быть размещены в его собственном файле ресурсов поставщика. В этом случае он должен объединять значения, как описано в предыдущем абзаце.

Таким образом, каждый разработчик поставщика услуг может указать список фабрик, используемых с этим поставщиком услуг. Эти списки могут быть изменены ресурсами приложения, указанными разработчиком приложения или апплета, которые, в свою очередь, могут быть изменены пользователем.

С:
1.3

Поля

Модификатор и тип Поле и описание
static String APPLET

Константа, содержащая имя свойства среды для указания апплета, который должен использоваться конструктором начального контекста при поиске других свойств.

static String AUTHORITATIVE

Константа, содержащая имя свойства среды для указания авторитетности запрашиваемой службы.

static String BATCHSIZE

Константа, содержащая имя свойства среды для указания размера пакета, который следует использовать при возвращении данных через протокол службы.

static String DNS_URL

Константа, содержащая имя свойства среды для указания имен хоста и домена DNS, которые следует использовать для контекста JNDI URL (например, "dns://somehost/wiz.com").

static String INITIAL_CONTEXT_FACTORY

Константа, содержащая имя свойства среды для указания фабрики начального контекста, которую следует использовать.

static String LANGUAGE

Константа, содержащая имя свойства среды для указания предпочтительного языка, который следует использовать со службой.

static String OBJECT_FACTORIES

Константа, содержащая имя свойства среды для указания списка фабрик объектов, которые следует использовать.

static String PROVIDER_URL

Константа, содержащая имя свойства среды для указания конфигурационной информации, которую должен использовать поставщик услуг.

static String REFERRAL

Константа, содержащая имя свойства среды для указания способа обработки ссылок, встречающихся поставщиком услуг.

static String SECURITY_AUTHENTICATION

Константа, содержащая имя свойства среды для указания уровня безопасности, который следует использовать.

static String SECURITY_CREDENTIALS

Константа, содержащая имя свойства среды для указания учетных данных принципала для аутентификации вызывающей стороны для службы.

static String SECURITY_PRINCIPAL

Константа, содержащая имя свойства среды для указания идентификатора принципала для аутентификации вызывающей стороны для службы.

static String SECURITY_PROTOCOL

Константа, содержащая имя свойства среды для указания протокола безопасности, который следует использовать.

static String STATE_FACTORIES

Константа, содержащая имя свойства среды для указания списка фабрик состояний, которые следует использовать.

static String URL_PKG_PREFIXES

Константа, содержащая имя свойства среды для указания списка префиксов пакетов, которые следует использовать при загрузке фабрик контекстов URL.

Методы

Модификатор и тип Метод и описание
Object addToEnvironment(String propName, Object propVal)

Добавляет новое свойство среды в среду этого контекста.

void bind(Name name, Object obj)

Связывает имя с объектом.

void bind(String name, Object obj)

Связывает имя с объектом.

void close()

Закрывает этот контекст.

Name composeName(Name name, Name prefix)

Компонует имя этого контекста с именем, относительным к этому контексту.

String composeName(String name, String prefix)

Компонует имя этого контекста с именем, относительным к этому контексту.

Context createSubcontext(Name name)

Создает и связывает новый контекст.

Context createSubcontext(String name)

Создает и связывает новый контекст.

void destroySubcontext(Name name)

Уничтожает именованный контекст и удаляет его из пространства имен.

void destroySubcontext(String name)

Уничтожает именованный контекст и удаляет его из пространства имен.

Hashtable<?,?> getEnvironment()

Возвращает среду, действующую для этого контекста.

String getNameInNamespace()

Возвращает полное имя этого контекста в его собственном пространстве имен.

NameParser getNameParser(Name name)

Возвращает парсер, связанный с именованным контекстом.

NameParser getNameParser(String name)

Возвращает парсер, связанный с именованным контекстом.

NamingEnumeration<NameClassPair> list(Name name)

Перечисляет имена, связанные в именованном контексте, а также имена классов объектов, связанных с ними.

NamingEnumeration<NameClassPair> list(String name)

Перечисляет имена, связанные в именованном контексте, а также имена классов объектов, связанных с ними.

NamingEnumeration<Binding> listBindings(Name name)

Перечисляет имена, связанные в именованном контексте, а также связанные с ними объекты.

NamingEnumeration<Binding> listBindings(String name)

Перечисляет имена, связанные в именованном контексте, а также связанные с ними объекты.

Object lookup(Name name)

Возвращает именованный объект.

Object lookup(String name)

Возвращает именованный объект.

Object lookupLink(Name name)

Возвращает именованный объект, следуя ссылкам, за исключением конечного атомарного компонента имени.

Object lookupLink(String name)

Возвращает именованный объект, следуя ссылкам, за исключением конечного атомарного компонента имени.

void rebind(Name name, Object obj)

Связывает имя с объектом, перезаписывая любое существующее связывание.

void rebind(String name, Object obj)

Связывает имя с объектом, перезаписывая любое существующее связывание.

Object removeFromEnvironment(String propName)

Удаляет свойство среды из среды этого контекста.

void rename(Name oldName, Name newName)

Связывает новое имя с объектом, связанным со старым именем, и отменяет привязку старого имени.

void rename(String oldName, String newName)

Связывает новое имя с объектом, связанным со старым именем, и отменяет привязку старого имени.

void unbind(Name name)

Отменяет привязку именованного объекта.

void unbind(String name)

Отменяет привязку именованного объекта.

Поля

INITIAL_CONTEXT_FACTORY

static final String INITIAL_CONTEXT_FACTORY

Константа, содержащая имя свойства среды для указания фабрики начального контекста. Значение свойства должно быть полным квалифицированным именем класса фабрики, которая будет создавать начальный контекст. Это свойство может быть указано в параметре среды, переданном конструктору начального контекста, параметре апплета, системном свойстве или файле ресурсов приложения. Если оно не указано ни в одном из этих источников, при попытке выполнить операцию, требующую начальный контекст, будет брошено исключение NoInitialContextException.

Значение этой константы равно "java.naming.factory.initial".

См. также:
InitialContext, InitialDirContext, NamingManager.getInitialContext(java.util.Hashtable<?, ?>), InitialContextFactory, NoInitialContextException, addToEnvironment(String, Object), removeFromEnvironment(String), APPLET, Значения константных полей

OBJECT_FACTORIES

static final String OBJECT_FACTORIES

Константа, содержащая имя свойства среды для указания списка фабрик объектов. Значение свойства должно быть списком фабрик объектов, разделенных двоеточием, с полными квалифицированными именами классов фабрик, которые будут создавать объект, используя информацию об объекте. Это свойство может быть указано в среде, параметре апплета, системном свойстве или одном или нескольких файлах ресурсов.

Значение этой константы равно "java.naming.factory.object".

См. также:
NamingManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>), ObjectFactory, addToEnvironment(String, Object), removeFromEnvironment(String), APPLET, Значения константных полей

STATE_FACTORIES

static final String STATE_FACTORIES

Константа, содержащая имя свойства среды для указания списка фабрик состояний. Значение свойства должно быть списком фабрик состояний, разделенных двоеточием, с полными квалифицированными именами классов фабрик состояний, которые будут использоваться для получения состояния объекта на основе самого объекта. Это свойство может быть указано в среде, параметре апплета, системном свойстве или одном или нескольких файлах ресурсов.

Значение этой константы равно "java.naming.factory.state".

С момента:
1.3
См. также:
NamingManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>), StateFactory, addToEnvironment(String, Object), removeFromEnvironment(String), APPLET, Значения константных полей

URL_PKG_PREFIXES

static final String URL_PKG_PREFIXES

Константа, содержащая имя свойства среды для указания списка префиксов пакетов, которые следует использовать при загрузке фабрик контекста URL. Значение свойства должно быть списком префиксов пакетов, разделенных двоеточием, для имени класса фабрики, которая будет создавать фабрику контекста URL. К возможно пустому списку префиксов пакетов всегда добавляется префикс com.sun.jndi.url.

Значение этой константы равно "java.naming.factory.url.pkgs".

См. также:
NamingManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>), NamingManager.getURLContext(java.lang.String, java.util.Hashtable<?, ?>), ObjectFactory, addToEnvironment(String, Object), removeFromEnvironment(String), APPLET, Значения константных полей

PROVIDER_URL

static final String PROVIDER_URL

Константа, содержащая имя свойства среды для указания конфигурационной информации для использования поставщиком сервиса. Значение свойства должно содержать строку URL (например, "ldap://somehost:389"). Это свойство может быть указано в среде, параметре апплета, системном свойстве или файле ресурсов. Если оно не указано ни в одном из этих источников, конфигурация по умолчанию определяется поставщиком сервиса.

Значение этой константы равно "java.naming.provider.url".

См. также:
addToEnvironment(String, Object), removeFromEnvironment(String), APPLET, Значения константных полей

DNS_URL

static final String DNS_URL

Константа, содержащая имя свойства среды для указания имен хоста и домена DNS, которые следует использовать для контекста JNDI URL (например, "dns://somehost/wiz.com"). Это свойство может быть указано в среде, параметре апплета, системном свойстве или файле ресурсов. Если оно не указано ни в одном из этих источников, и программа пытается использовать JNDI URL, содержащий имя DNS, будет брошено исключение ConfigurationException.

Значение этой константы равно "java.naming.dns.url".

См. также:
addToEnvironment(String, Object), removeFromEnvironment(String), Значения константных полей

AUTHORITATIVE

static final String AUTHORITATIVE

Константа, содержащая имя свойства среды для указания авторитетности запрошенного сервиса. Если значение свойства равно строке "true", это означает, что доступ осуществляется к самому авторитетному источнику (т.е. обход кэша или реплик). В противном случае источник может быть, но не обязательно, авторитетным. Если не указано, значение по умолчанию равно "false".

Значение этой константы равно "java.naming.authoritative".

См. также:
addToEnvironment(String, Object), removeFromEnvironment(String), Значения константных полей

BATCHSIZE

static final String BATCHSIZE

Константа, содержащая имя свойства среды для указания размера пакета для возврата данных через протокол сервиса. Это подсказка для поставщика, чтобы возвращать результаты операций партиями заданного размера, позволяя поставщику оптимизировать производительность и использование ресурсов.

Значение свойства — строковое представление целого числа. Если не указано, размер пакета определяется поставщиком сервиса.

Значение этой константы равно "java.naming.batchsize".

См. также:
addToEnvironment(String, Object), removeFromEnvironment(String), Значения константных полей

REFERRAL

static final String REFERRAL

Константа, содержащая имя свойства среды для указания способа обработки перенаправлений, встречающихся поставщиком сервиса. Значение свойства — одна из следующих строк:

"follow"
автоматически следовать перенаправлениям
"ignore"
игнорировать перенаправления
"throw"
бросить исключение ReferralException при встрече перенаправления.

Если это свойство не указано, поведение определяется поставщиком.

Значение этой константы равно "java.naming.referral".

См. также:
addToEnvironment(String, Object), removeFromEnvironment(String), Значения константных полей

SECURITY_PROTOCOL

static final String SECURITY_PROTOCOL

Константа, содержащая имя свойства среды для указания используемого протокола безопасности. Его значение — строка, определенная поставщиком сервиса (например, "ssl"). Если это свойство не указано, поведение определяется поставщиком сервиса.

Значение этой константы равно "java.naming.security.protocol".

См. также:
addToEnvironment(String, Object), removeFromEnvironment(String), Значения константных полей

SECURITY_AUTHENTICATION

static final String SECURITY_AUTHENTICATION

Константа, содержащая имя свойства среды для указания уровня безопасности. Его значение — одна из следующих строк: "none", "simple", "strong". Если это свойство не указано, поведение определяется поставщиком сервиса.

Значение этой константы равно "java.naming.security.authentication".

См. также:
addToEnvironment(String, Object), removeFromEnvironment(String), Значения константных полей

SECURITY_PRINCIPAL

static final String SECURITY_PRINCIPAL

Константа, содержащая имя свойства среды для указания идентификатора принципала для аутентификации вызывающего абонента для службы. Формат принципала зависит от схемы аутентификации. Если это свойство не указано, поведение определяется поставщиком службы.

Значение этой константы равно "java.naming.security.principal".

См. также:
addToEnvironment(String, Object), removeFromEnvironment(String), Значения постоянных полей

SECURITY_CREDENTIALS

static final String SECURITY_CREDENTIALS

Константа, содержащая имя свойства среды для указания учетных данных принципала для аутентификации вызывающего абонента для службы. Значение свойства зависит от схемы аутентификации. Например, это может быть хэшированный пароль, пароль в открытом виде, ключ, сертификат и т. д. Если это свойство не указано, поведение определяется поставщиком службы.

Значение этой константы равно "java.naming.security.credentials".

См. также:
addToEnvironment(String, Object), removeFromEnvironment(String), Значения постоянных полей

LANGUAGE

static final String LANGUAGE

Константа, содержащая имя свойства среды для указания предпочтительного языка для использования со службой. Значение свойства — это список тегов языка, разделенных двоеточием, как определено в RFC 1766. Если это свойство не указано, предпочтение языка определяется поставщиком службы.

Значение этой константы равно "java.naming.language".

См. также:
addToEnvironment(String, Object), removeFromEnvironment(String), Значения постоянных полей

APPLET

static final String APPLET

Константа, содержащая имя свойства среды для указания апплета, который должен использовать конструктор контекста начального уровня при поиске других свойств. Значение этого свойства — java.applet.Applet экземпляр, который выполняется. Это свойство может быть указано в параметре среды, переданном конструктору контекста начального уровня. При установке этого свойства каждое свойство, которое ищет конструктор контекста начального уровня в системных свойствах, сначала ищется в списке параметров апплета. Если это свойство не указано, конструктор контекста начального уровня будет искать свойства только в параметре среды, переданном ему, системных свойствах и файлах ресурсов приложения.

Значение этой константы равно "java.naming.applet".

С момента:
1.3
См. также:
addToEnvironment(String, Object), removeFromEnvironment(String), InitialContext, Значения постоянных полей

Методы

lookup

Object lookup(Name name)
       throws NamingException

Возвращает именованный объект. Если name пусто, возвращает новый экземпляр этого контекста (который представляет тот же контекст именования, что и этот контекст, но его среда может быть изменена независимо, и к нему можно получить доступ одновременно).

Параметры:
name - имя объекта для поиска
Возвращает:
объект, привязанный к name
Исключения:
NamingException - если возникает исключение именования
См. также:
lookup(String), lookupLink(Name)

lookup

Object lookup(String name)
       throws NamingException

Возвращает именованный объект. Подробности см. в lookup(Name).

Параметры:
name - имя объекта для поиска
Возвращает:
объект, привязанный к name
Исключения:
NamingException - если возникает исключение именования

bind

void bind(Name name,
          Object obj)
   throws NamingException

Привязывает имя к объекту. Все промежуточные контексты и целевой контекст (названные всеми, кроме конечного атомарного компонента имени) должны уже существовать.

Параметры:
name - имя для привязки; не может быть пустым
obj - объект для привязки; может быть null
Исключения:
NameAlreadyBoundException - если имя уже привязано
InvalidAttributesException - если объект не предоставил все обязательные атрибуты
NamingException - если возникает исключение именования
См. также:
bind(String, Object), rebind(Name, Object), DirContext.bind(Name, Object, javax.naming.directory.Attributes)

bind

void bind(String name,
          Object obj)
   throws NamingException

Привязывает имя к объекту. Подробности см. в bind(Name, Object).

Параметры:
name - имя для привязки; не может быть пустым
obj - объект для привязки; может быть null
Исключения:
NameAlreadyBoundException - если имя уже привязано
InvalidAttributesException - если объект не предоставил все обязательные атрибуты
NamingException - если возникает исключение именования

rebind

void rebind(Name name,
            Object obj)
     throws NamingException

Привязывает имя к объекту, перезаписывая любую существующую привязку. Все промежуточные контексты и целевой контекст (названные всеми, кроме конечного атомарного компонента имени) должны уже существовать.

Если объект является DirContext, любые существующие атрибуты, связанные с именем, заменяются атрибутами объекта. В противном случае любые существующие атрибуты, связанные с именем, остаются неизменными.

Параметры:
name - имя для привязки; не может быть пустым
obj - объект для привязки; может быть null
Исключения:
InvalidAttributesException - если объект не предоставил все обязательные атрибуты
NamingException - если возникает исключение именования
См. также:
rebind(String, Object), bind(Name, Object), DirContext.rebind(Name, Object, javax.naming.directory.Attributes), DirContext

rebind

void rebind(String name,
            Object obj)
     throws NamingException

Привязывает имя к объекту, перезаписывая любую существующую привязку. Подробности см. в rebind(Name, Object).

Параметры:
name - имя для привязки; не может быть пустым
obj - объект для привязки; может быть null
Исключения:
InvalidAttributesException - если объект не предоставил все обязательные атрибуты
NamingException - если возникает исключение именования

unbind

void unbind(Name name)
     throws NamingException

Удаляет именованный объект. Удаляет конечное атомарное имя в name из целевого контекста — контекста, названного всеми, кроме конечной атомарной части name.

Этот метод идемпотентен. Он успешно выполняется, даже если конечное атомарное имя не привязано в целевом контексте, но генерирует NameNotFoundException если любой из промежуточных контекстов не существует.

Все атрибуты, связанные с именем, удаляются. Промежуточные контексты не изменяются.

Параметры:
name - имя для удаления; не может быть пустым
Исключения:
NameNotFoundException - если промежуточный контекст не существует
NamingException - если возникает исключение именования
См. также:
unbind(String)

unbind

void unbind(String name)
     throws NamingException

Удаляет именованный объект. Подробности см. в unbind(Name).

Параметры:
name - имя для удаления; не может быть пустым
Исключения:
NameNotFoundException - если промежуточный контекст не существует
NamingException - если возникает исключение именования

rename

void rename(Name oldName,
            Name newName)
     throws NamingException

Привязывает новое имя к объекту, связанному со старым именем, и удаляет старое имя. Оба имени относительны к этому контексту. Любые атрибуты, связанные со старым именем, становятся связанными с новым именем. Промежуточные контексты старого имени не изменяются.

Параметры:
oldName - имя существующей привязки; не может быть пустым
newName - имя новой привязки; не может быть пустым
Исключения:
NameAlreadyBoundException - если newName уже привязано
NamingException - если возникает исключение именования
См. также:
rename(String, String), bind(Name, Object), rebind(Name, Object)

rename

void rename(String oldName,
            String newName)
     throws NamingException

Привязывает новое имя к объекту, связанному со старым именем, и удаляет старое имя. Подробности см. в rename(Name, Name).

Параметры:
oldName - имя существующей привязки; не может быть пустым
newName - имя новой привязки; не может быть пустым
Исключения:
NameAlreadyBoundException - если newName уже привязано
NamingException - если возникает исключение именования

list

NamingEnumeration<NameClassPair> list(Name name)
                               throws NamingException

Перечисляет имена, связанные в именованном контексте, вместе с именами классов объектов, связанных с ними. Содержимое любых вложенных контекстов не включается.

Если привязка добавляется к этому контексту или удаляется из него, её влияние на ранее возвращённую перечисление не определено.

Parameters:
name - имя контекста для вывода списка
Returns:
перечисление имён и имён классов привязок в этом контексте. Каждый элемент перечисления имеет тип NameClassPair.
Throws:
NamingException - если возникает исключение именования
See Also:
list(String), listBindings(Name), NameClassPair

list

NamingEnumeration<NameClassPair> list(String name)
                               throws NamingException

Перечисляет имена, связанные в именованном контексте, вместе с именами классов объектов, связанных с ними. См. list(Name) для подробностей.

Parameters:
name - имя контекста для вывода списка
Returns:
перечисление имён и имён классов привязок в этом контексте. Каждый элемент перечисления имеет тип NameClassPair.
Throws:
NamingException - если возникает исключение именования

listBindings

NamingEnumeration<Binding> listBindings(Name name)
                                 throws NamingException

Перечисляет имена, связанные в именованном контексте, вместе с объектами, связанными с ними. Содержимое любых вложенных контекстов не включается.

Если привязка добавляется к этому контексту или удаляется из него, её влияние на ранее возвращённую перечисление не определено.

Parameters:
name - имя контекста для вывода списка
Returns:
перечисление привязок в этом контексте. Каждый элемент перечисления имеет тип Binding.
Throws:
NamingException - если возникает исключение именования
See Also:
listBindings(String), list(Name), Binding

listBindings

NamingEnumeration<Binding> listBindings(String name)
                                 throws NamingException

Перечисляет имена, связанные в именованном контексте, вместе с объектами, связанными с ними. См. listBindings(Name) для подробностей.

Parameters:
name - имя контекста для вывода списка
Returns:
перечисление привязок в этом контексте. Каждый элемент перечисления имеет тип Binding.
Throws:
NamingException - если возникает исключение именования

destroySubcontext

void destroySubcontext(Name name)
                throws NamingException

Уничтожает именованный контекст и удаляет его из пространства имён. Любые атрибуты, связанные с именем, также удаляются. Промежуточные контексты не уничтожаются.

Этот метод является идемпотентным. Он выполняется успешно, даже если конечное атомарное имя не связано в целевом контексте, но вызывает NameNotFoundException, если какой-либо из промежуточных контекстов не существует.

В федеративной системе именования контекст из одной системы именования может быть связан с именем в другой. Впоследствии можно искать и выполнять операции с внешним контекстом, используя составное имя. Однако попытка уничтожить контекст, используя это составное имя, завершится неудачей с NotContextException, потому что внешний контекст не является «подконтекстом» контекста, в котором он связан. Вместо этого используйте unbind() для удаления привязки внешнего контекста. Уничтожение внешнего контекста требует, чтобы destroySubcontext() было выполнено в контексте из «родной» системы именования внешнего контекста.

Parameters:
name - имя контекста, который нужно уничтожить; не может быть пустым
Throws:
NameNotFoundException - если промежуточный контекст не существует
NotContextException - если имя связано, но не является именем контекста или не является именем контекста соответствующего типа
ContextNotEmptyException - если именованный контекст не пуст
NamingException - если возникает исключение именования
See Also:
destroySubcontext(String)

destroySubcontext

void destroySubcontext(String name)
                throws NamingException

Уничтожает именованный контекст и удаляет его из пространства имён. См. destroySubcontext(Name) для подробностей.

Parameters:
name - имя контекста, который нужно уничтожить; не может быть пустым
Throws:
NameNotFoundException - если промежуточный контекст не существует
NotContextException - если имя связано, но не является именем контекста или не является именем контекста соответствующего типа
ContextNotEmptyException - если именованный контекст не пуст
NamingException - если возникает исключение именования

createSubcontext

Context createSubcontext(Name name)
                  throws NamingException

Создаёт и связывает новый контекст. Создаёт новый контекст с заданным именем и связывает его в целевом контексте (тот, который назван всеми, кроме конечного атомарного компонента имени). Все промежуточные контексты и целевой контекст должны уже существовать.

Parameters:
name - имя контекста для создания; не может быть пустым
Returns:
недавно созданный контекст
Throws:
NameAlreadyBoundException - если имя уже связано
InvalidAttributesException - если создание подконтекста требует указания обязательных атрибутов
NamingException - если возникает исключение именования
See Also:
createSubcontext(String), DirContext.createSubcontext(javax.naming.Name, javax.naming.directory.Attributes)

createSubcontext

Context createSubcontext(String name)
                  throws NamingException

Создаёт и связывает новый контекст. См. createSubcontext(Name) для подробностей.

Parameters:
name - имя контекста для создания; не может быть пустым
Returns:
недавно созданный контекст
Throws:
NameAlreadyBoundException - если имя уже связано
InvalidAttributesException - если создание подконтекста требует указания обязательных атрибутов
NamingException - если возникает исключение именования

lookupLink

Object lookupLink(Name name)
           throws NamingException

Извлекает именованный объект, следуя ссылкам, за исключением конечного атомарного компонента имени. Если объект, связанный с name, не является ссылкой, возвращает сам объект.

Parameters:
name - имя объекта для поиска
Returns:
объект, связанный с name, не следуя конечной ссылке (если таковая имеется).
Throws:
NamingException - если возникает исключение именования
See Also:
lookupLink(String)

lookupLink

Object lookupLink(String name)
           throws NamingException

Извлекает именованный объект, следуя ссылкам, за исключением конечного атомарного компонента имени. См. lookupLink(Name) для подробностей.

Parameters:
name - имя объекта для поиска
Returns:
объект, связанный с name, не следуя конечной ссылке (если таковая имеется)
Throws:
NamingException - если возникает исключение именования

getNameParser

NameParser getNameParser(Name name)
                  throws NamingException

Извлекает парсер, связанный с именованным контекстом. В федерации пространств имён разные системы именования будут анализировать имена по-разному. Этот метод позволяет приложению получить парсер для анализа имён на их атомарные компоненты, используя соглашение об именовании конкретной системы именования. В любой отдельной системе именования объекты NameParser, возвращаемые этим методом, должны быть равны (используя тест equals()).

Parameters:
name - имя контекста, из которого нужно получить парсер
Returns:
парсер имён, который может анализировать составные имена на их атомарные компоненты
Throws:
NamingException - если возникает исключение именования
See Also:
getNameParser(String), CompoundName

getNameParser

NameParser getNameParser(String name)
                  throws NamingException

Извлекает парсер, связанный с именованным контекстом. См. getNameParser(Name) для подробностей.

Parameters:
name - имя контекста, из которого нужно получить парсер
Returns:
парсер имён, который может анализировать составные имена на их атомарные компоненты
Throws:
NamingException - если возникает исключение именования

composeName

Name composeName(Name name,
                 Name prefix)
          throws NamingException

Создаёт имя этого контекста с именем относительно этого контекста. Учитывая имя (name) относительно этого контекста и имя (prefix) этого контекста относительно одного из его предков, этот метод возвращает композицию двух имён, используя синтаксис, подходящий для участвующих систем именования. То есть, если name называет объект относительно этого контекста, результатом является имя того же объекта, но относительно родительского контекста. Ни одно из имён не может быть нулевым.

Например, если этот контекст называется «wiz.com» относительно начального контекста, то

composeName("east", "wiz.com")
может вернуть "east.wiz.com". Если вместо этого этот контекст называется «org/research», то
composeName("user/jane", "org/research")
может вернуть "org/research/user/jane", а
composeName("user/jane", "research")
возвращает "research/user/jane".
Parameters:
name - имя относительно этого контекста
prefix - имя этого контекста относительно одного из его предков
Returns:
композиция prefix и name
Throws:
NamingException - если возникает исключение именования
See Also:
composeName(String, String)

composeName

String composeName(String name,
                   String prefix)
            throws NamingException

Составляет имя этого контекста с именем, относящимся к этому контексту. Подробности см. в composeName(Name, Name).

Параметры:
name - имя, относящееся к этому контексту
prefix - имя этого контекста, относящееся к одному из его предков
Возвращает:
состав prefix и name
Изначает исключение:
NamingException - если возникает исключение именования

addToEnvironment

Object addToEnvironment(String propName,
                        Object propVal)
                 throws NamingException

Добавляет новую среду свойств в среду этого контекста. Если свойство уже существует, его значение перезаписывается. Подробности о свойствах среды см. в описании класса.

Параметры:
propName - имя свойства среды для добавления; не может быть null
propVal - значение добавляемого свойства; не может быть null
Возвращает:
предыдущее значение свойства или null, если свойство не было в среде ранее
Изначает исключение:
NamingException - если возникает исключение именования
См. также:
getEnvironment(), removeFromEnvironment(String)

removeFromEnvironment

Object removeFromEnvironment(String propName)
                      throws NamingException

Удаляет свойство среды из среды этого контекста. Подробности о свойствах среды см. в описании класса.

Параметры:
propName - имя свойства среды для удаления; не может быть null
Возвращает:
предыдущее значение свойства или null, если свойство не было в среде
Изначает исключение:
NamingException - если возникает исключение именования
См. также:
getEnvironment(), addToEnvironment(String, Object)

getEnvironment

Hashtable<?,?> getEnvironment()
                       throws NamingException

Возвращает среду, действующую для этого контекста. Подробности о свойствах среды см. в описании класса.

Вызывающая сторона не должна вносить никаких изменений в возвращаемый объект: их влияние на контекст не определено. Среду этого контекста можно изменить с помощью addToEnvironment() и removeFromEnvironment().

Возвращает:
среду этого контекста; никогда не null
Изначает исключение:
NamingException - если возникает исключение именования
См. также:
addToEnvironment(String, Object), removeFromEnvironment(String)

close

void close()
    throws NamingException

Закрывает этот контекст. Этот метод высвобождает ресурсы этого контекста немедленно, вместо того чтобы ждать, пока они будут высвобождены сборщиком мусора автоматически.

Этот метод идемпотентный: вызов его для контекста, который уже был закрыт, не оказывает никакого влияния. Вызов любого другого метода для закрытого контекста запрещён и приводит к неопределённому поведению.

Изначает исключение:
NamingException - если возникает исключение именования

getNameInNamespace

String getNameInNamespace()
                   throws NamingException

Возвращает полное имя этого контекста в его собственном пространстве имен.

Многие службы именования имеют понятие «полного имени» для объектов в их соответствующих пространствах имен. Например, запись LDAP имеет отличительное имя, а запись DNS имеет полностью квалифицированное имя. Этот метод позволяет приложению-клиенту получить это имя. Возвращаемая этим методом строка не является составным именем JNDI и не должна передаваться непосредственно методам контекста. В системах именования, для которых понятие полного имени не имеет смысла, выбрасывается OperationNotSupportedException.

Возвращает:
имя контекста в собственном пространстве имен; никогда не null
Изначает исключение:
OperationNotSupportedException - если система именования не имеет понятия полного имени
NamingException - если возникает исключение именования
С тех пор как:
1.3

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API