Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface DirContext extends Context
Большинство методов перегрузило версии с одним взятием a Name
параметр и одно взятие a String
. Эти перегруженные версии эквивалентны в этом если Name
и String
параметры являются только различными представлениями того же самого имени, тогда перегруженные версии тех же самых методов ведут себя то же самое. В описаниях метода ниже, документируется только одна версия. У второй версии вместо этого есть ссылка к первому: та же самая документация применяется к обоим.
См. Context для обсуждения интерпретации параметра имени методам Context. Эти те же самые правила применяются к параметру имени методам DirContext.
Вторая модель - то, что атрибуты связываются с именем (обычно атомарное имя) в DirContext. В этой модели работа атрибута на именованном объекте примерно эквивалентна поиску на имени родительского DirContext именованного объекта, сопровождаемого работой атрибута, вызванной на родителя, в котором вызывающая сторона предоставляет терминальное атомарное имя. Атрибуты могут быть просмотрены как сохраненный в родительском DirContext (снова, это не подразумевает, что реализация должна сделать так). У объектов, которые не являются DirContexts, могут быть атрибуты, пока их родителями является DirContexts.
JNDI поддерживают обе из этих моделей. Это до отдельных поставщиков услуг, чтобы решить, где "сохранить" атрибуты. Клиенты JNDI являются самыми безопасными, когда они не делают предположения о том, сохранены ли атрибуты объекта как часть объекта, или сохранены в пределах родительского объекта и связываются с именем объекта.
В разделении на подклассы атрибута атрибуты определяются в иерархии классов. В некоторых каталогах, например, атрибут "имени" мог бы быть суперклассом всех связанных с именем атрибутов, включая "commonName" и "фамилию". Выяснение атрибута "имени" могло бы возвратить и атрибуты "commonName" и "фамилии".
С синонимами типа атрибута каталог может присвоить многократные имена к тому же самому атрибуту. Например, "cn" и "commonName" мог бы оба обратиться к тому же самому атрибуту. Выяснение "cn" могло бы возвратить атрибут "commonName".
Некоторые каталоги поддерживают коды языка для атрибутов. Выяснение такого каталога для атрибута "описания", например, могло бы возвратить все следующие атрибуты:
У некоторых каталогов есть понятие "операционных атрибутов", которые являются атрибутами, связанными с объектом каталога в административных целях. Примером операционных атрибутов является список управления доступом для объекта.
В методах getAttributes() И search() можно определить что все атрибуты, связанные с требуемыми объектами быть возвращенными предоставлением null как список атрибутов, чтобы возвратиться. Возвращенные атрибуты не включают операционные атрибуты. Чтобы получить операционные атрибуты, следует назвать их явно.
Есть определенные методы, в которых имя должно решить к контексту (например, ища единственный контекст уровня). Документация таких методов использует термин, названный контекстом, чтобы описать их параметр имени. Для этих методов, если именованным объектом не является DirContext, NotContextException
бросается. Кроме этих методов, нет никакого требования что именованный объект быть DirContext.
Attributes, SearchControls, или объект массива, который передают в качестве параметра к любому методу, не будут изменены поставщиком услуг. Поставщик услуг может сохранить ссылку на это для продолжительности работы, включая любое перечисление результатов метода и обработку любых отсылок сгенерированной. Вызывающая сторона не должна изменить объект в это время. Объект Attributes, возвращенный любым методом, принадлежит вызывающей стороне. Вызывающая сторона может впоследствии изменить это; поставщик услуг не будет.
Все методы в этом интерфейсе могут бросить NamingException или любой из его подклассов. См. NamingException и их подклассы для деталей о каждом исключении.
Context
Модификатор и Тип | Поле и Описание |
---|---|
static int |
ADD_ATTRIBUTE
Эта константа определяет, чтобы добавить атрибут с указанными значениями.
|
static int |
REMOVE_ATTRIBUTE
Эта константа определяет, чтобы удалить указанные значения атрибута из атрибута.
|
static int |
REPLACE_ATTRIBUTE
Эта константа определяет, чтобы заменить атрибут указанными значениями.
|
APPLET, AUTHORITATIVE, BATCHSIZE, DNS_URL, INITIAL_CONTEXT_FACTORY, LANGUAGE, OBJECT_FACTORIES, PROVIDER_URL, REFERRAL, SECURITY_AUTHENTICATION, SECURITY_CREDENTIALS, SECURITY_PRINCIPAL, SECURITY_PROTOCOL, STATE_FACTORIES, URL_PKG_PREFIXES
Модификатор и Тип | Метод и Описание |
---|---|
void |
bind(Name name, Object obj, Attributes attrs)
Связывает имя к объекту, наряду со связанными атрибутами.
|
void |
bind(String name, Object obj, Attributes attrs)
Связывает имя к объекту, наряду со связанными атрибутами.
|
DirContext |
createSubcontext(Name name, Attributes attrs)
Создает и ограничивает новый контекст, наряду со связанными атрибутами.
|
DirContext |
createSubcontext(String name, Attributes attrs)
Создает и ограничивает новый контекст, наряду со связанными атрибутами.
|
Атрибуты |
getAttributes(Name name)
Получает все атрибуты, связанные с именованным объектом.
|
Атрибуты |
getAttributes(Name name, String[] attrIds)
Получает выбранные атрибуты, связанные с именованным объектом.
|
Атрибуты |
getAttributes(String name)
Получает все атрибуты, связанные с именованным объектом.
|
Атрибуты |
getAttributes(String name, String[] attrIds)
Получает выбранные атрибуты, связанные с именованным объектом.
|
DirContext |
getSchema(Name name)
Получает схему, связанную с именованным объектом.
|
DirContext |
getSchema(String name)
Получает схему, связанную с именованным объектом.
|
DirContext |
getSchemaClassDefinition(Name name)
Получает контекст, содержащий объекты схемы определений классов именованного объекта.
|
DirContext |
getSchemaClassDefinition(String name)
Получает контекст, содержащий объекты схемы определений классов именованного объекта.
|
void |
modifyAttributes(Name name, int mod_op, Attributes attrs)
Изменяет атрибуты, связанные с именованным объектом.
|
void |
modifyAttributes(Name name, ModificationItem[] mods)
Изменяет атрибуты, связанные с именованным объектом, используя упорядоченный список модификаций.
|
void |
modifyAttributes(String name, int mod_op, Attributes attrs)
Изменяет атрибуты, связанные с именованным объектом.
|
void |
modifyAttributes(String name, ModificationItem[] mods)
Изменяет атрибуты, связанные с именованным объектом, используя упорядоченный список модификаций.
|
void |
rebind(Name name, Object obj, Attributes attrs)
Связывает имя к объекту, наряду со связанными атрибутами, перезаписывая любую существующую привязку.
|
void |
rebind(String name, Object obj, Attributes attrs)
Связывает имя к объекту, наряду со связанными атрибутами, перезаписывая любую существующую привязку.
|
NamingEnumeration<SearchResult> |
search(Name name, Attributes matchingAttributes)
Поиски в единственном контексте для объектов, которые содержат указанный набор атрибутов.
|
NamingEnumeration<SearchResult> |
search(Name name, Attributes matchingAttributes, String[] attributesToReturn)
Поиски в единственном контексте для объектов, которые содержат указанный набор атрибутов, и получают выбранные атрибуты.
|
NamingEnumeration<SearchResult> |
search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons)
Поиски в именованном контексте или объекте для записей, которые удовлетворяют данный поисковый фильтр.
|
NamingEnumeration<SearchResult> |
search(Name name, String filter, SearchControls cons)
Поиски в именованном контексте или объекте для записей, которые удовлетворяют данный поисковый фильтр.
|
NamingEnumeration<SearchResult> |
search(String name, Attributes matchingAttributes)
Поиски в единственном контексте для объектов, которые содержат указанный набор атрибутов.
|
NamingEnumeration<SearchResult> |
search(String name, Attributes matchingAttributes, String[] attributesToReturn)
Поиски в единственном контексте для объектов, которые содержат указанный набор атрибутов, и получают выбранные атрибуты.
|
NamingEnumeration<SearchResult> |
search(String name, String filterExpr, Object[] filterArgs, SearchControls cons)
Поиски в именованном контексте или объекте для записей, которые удовлетворяют данный поисковый фильтр.
|
NamingEnumeration<SearchResult> |
search(String name, String filter, SearchControls cons)
Поиски в именованном контексте или объекте для записей, которые удовлетворяют данный поисковый фильтр.
|
addToEnvironment, bind, bind, close, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, getEnvironment, getNameInNamespace, getNameParser, getNameParser, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind
static final int ADD_ATTRIBUTE
Если атрибут не существует, создайте атрибут. У получающегося атрибута есть объединение указанного набора значений и предшествующего набора значений. Добавление атрибута без значения бросит InvalidAttributeValueException
если у атрибута должно быть по крайней мере одно значение. Для однозначного атрибута, где тот атрибут уже существует, броски AttributeInUseException
. Пытаясь добавить больше чем одно значение к однозначному атрибуту, броскам InvalidAttributeValueException
.
Значением этой константы является 1.
static final int REPLACE_ATTRIBUTE
Если атрибут уже существует, заменяет все существующие значения новыми указанными значениями. Если атрибут не существует, создает это. Если никакое значение не определяется, удаляет все значения атрибута. Удаление последнего значения удалит атрибут, если атрибут будет обязан иметь по крайней мере одно значение. Пытаясь добавить больше чем одно значение к однозначному атрибуту, броскам InvalidAttributeValueException
.
Значением этой константы является 2.
static final int REMOVE_ATTRIBUTE
У получающегося атрибута есть разность множеств его предшествующего набора значений и указанного набора значений. Если никакие значения не определяются, удаляет весь атрибут. Если атрибут не существует, или если некоторые или все элементы указанного набора значений не существуют, это отсутствие может быть проигнорировано, и работа успешно выполняется, или NamingException может быть брошен, чтобы указать на отсутствие. Удаление последнего значения удалит атрибут, если атрибут будет обязан иметь по крайней мере одно значение.
Значением этой константы является 3.
Attributes getAttributes(Name name) throws NamingException
name
- имя объекта, от которого можно получить атрибутыname
. Возвращает пустой набор атрибута, если у имени нет никаких атрибутов; никогда не обнуляйте.NamingException
- если с исключением именования встречаютсяgetAttributes(String)
, getAttributes(Name, String[])
Attributes getAttributes(String name) throws NamingException
getAttributes(Name)
для деталей.name
- имя объекта, от которого можно получить атрибутыname
NamingException
- если с исключением именования встречаютсяAttributes getAttributes(Name name, String[] attrIds) throws NamingException
Если объекту не определят атрибут, то каталог проигнорирует несуществующий атрибут и возвратит те требуемые атрибуты, которые действительно имеет объект.
Каталог мог бы возвратить больше атрибутов, чем требовалось (см. Имена типов Атрибута в описании класса), но не позволяется возвратить произвольные, несвязанные атрибуты.
См. также Операционные Атрибуты в описании класса.
name
- имя объекта, от которого можно получить атрибутыattrIds
- идентификаторы атрибутов, чтобы получить. нуль указывает, что все атрибуты должны быть получены; пустой массив указывает, что ни один не должен быть получен.NamingException
- если с исключением именования встречаютсяAttributes getAttributes(String name, String[] attrIds) throws NamingException
getAttributes(Name, String[])
для деталей.name
- Имя объекта, от которого можно получить атрибутыattrIds
- идентификаторы атрибутов, чтобы получить. нуль указывает, что все атрибуты должны быть получены; пустой массив указывает, что ни один не должен быть получен.NamingException
- если с исключением именования встречаютсяvoid modifyAttributes(Name name, int mod_op, Attributes attrs) throws NamingException
name
- имя объекта, атрибуты которого будут обновленыmod_op
- работа модификации, один из: ADD_ATTRIBUTE
, REPLACE_ATTRIBUTE
, REMOVE_ATTRIBUTE
.attrs
- атрибуты, которые будут использоваться для модификации; возможно, не нульAttributeModificationException
- если модификация не может быть завершена успешноNamingException
- если с исключением именования встречаютсяmodifyAttributes(Name, ModificationItem[])
void modifyAttributes(String name, int mod_op, Attributes attrs) throws NamingException
modifyAttributes(Name, int, Attributes)
для деталей.name
- имя объекта, атрибуты которого будут обновленыmod_op
- работа модификации, один из: ADD_ATTRIBUTE
, REPLACE_ATTRIBUTE
, REMOVE_ATTRIBUTE
.attrs
- атрибуты, которые будут использоваться для модификации; возможно, не нульAttributeModificationException
- если модификация не может быть завершена успешноNamingException
- если с исключением именования встречаютсяvoid modifyAttributes(Name name, ModificationItem[] mods) throws NamingException
name
- имя объекта, атрибуты которого будут обновленыmods
- упорядоченная последовательность модификаций, которые будут выполнены; возможно, не нульAttributeModificationException
- если модификации не могут быть завершены успешноNamingException
- если с исключением именования встречаютсяmodifyAttributes(Name, int, Attributes)
, ModificationItem
void modifyAttributes(String name, ModificationItem[] mods) throws NamingException
modifyAttributes(Name, ModificationItem[])
для деталей.name
- имя объекта, атрибуты которого будут обновленыmods
- упорядоченная последовательность модификаций, которые будут выполнены; возможно, не нульAttributeModificationException
- если модификации не могут быть завершены успешноNamingException
- если с исключением именования встречаютсяvoid bind(Name name, Object obj, Attributes attrs) throws NamingException
name
- имя, чтобы связать; возможно, не пустоobj
- объект связать; возможно нульattrs
- атрибуты, чтобы связаться с привязкойNameAlreadyBoundException
- если имя уже связываетсяInvalidAttributesException
- если некоторые "обязательные" атрибуты привязки не предоставляютсяNamingException
- если с исключением именования встречаютсяContext.bind(Name, Object)
, rebind(Name, Object, Attributes)
void bind(String name, Object obj, Attributes attrs) throws NamingException
bind(Name, Object, Attributes)
для деталей.name
- имя, чтобы связать; возможно, не пустоobj
- объект связать; возможно нульattrs
- атрибуты, чтобы связаться с привязкойNameAlreadyBoundException
- если имя уже связываетсяInvalidAttributesException
- если некоторые "обязательные" атрибуты привязки не предоставляютсяNamingException
- если с исключением именования встречаютсяvoid rebind(Name name, Object obj, Attributes attrs) throws NamingException
name
- имя, чтобы связать; возможно, не пустоobj
- объект связать; возможно нульattrs
- атрибуты, чтобы связаться с привязкойInvalidAttributesException
- если некоторые "обязательные" атрибуты привязки не предоставляютсяNamingException
- если с исключением именования встречаютсяContext.bind(Name, Object)
, bind(Name, Object, Attributes)
void rebind(String name, Object obj, Attributes attrs) throws NamingException
rebind(Name, Object, Attributes)
для деталей.name
- имя, чтобы связать; возможно, не пустоobj
- объект связать; возможно нульattrs
- атрибуты, чтобы связаться с привязкойInvalidAttributesException
- если некоторые "обязательные" атрибуты привязки не предоставляютсяNamingException
- если с исключением именования встречаютсяDirContext createSubcontext(Name name, Attributes attrs) throws NamingException
name
- имя контекста, чтобы создать; возможно, не пустоattrs
- атрибуты, чтобы связаться с недавно создаваемым контекстомNameAlreadyBoundException
- если имя уже связываетсяInvalidAttributesException
- если attrs
не содержит все обязательные атрибуты, требуемые для созданияNamingException
- если с исключением именования встречаютсяContext.createSubcontext(Name)
DirContext createSubcontext(String name, Attributes attrs) throws NamingException
createSubcontext(Name, Attributes)
для деталей.name
- имя контекста, чтобы создать; возможно, не пустоattrs
- атрибуты, чтобы связаться с недавно создаваемым контекстомNameAlreadyBoundException
- если имя уже связываетсяInvalidAttributesException
- если attrs
не содержит все обязательные атрибуты, требуемые для созданияNamingException
- если с исключением именования встречаютсяDirContext getSchema(Name name) throws NamingException
Этот метод возвращает корень дерева информации о схеме, которое применимо к именованному объекту. Несколько именованных объектов (или даже весь каталог) могли бы совместно использовать ту же самую схему.
Проблемы, такие как структура и содержание дерева схемы, разрешение, чтобы изменить к содержанию дерева схемы, и эффекту таких модификаций на каталоге зависят от базового каталога.
name
- имя объекта, схема которого должна быть полученаOperationNotSupportedException
- если схема, не поддерживаемаяNamingException
- если с исключением именования встречаютсяDirContext getSchema(String name) throws NamingException
getSchema(Name)
для деталей.name
- имя объекта, схема которого должна быть полученаOperationNotSupportedException
- если схема, не поддерживаемаяNamingException
- если с исключением именования встречаютсяDirContext getSchemaClassDefinition(Name name) throws NamingException
Одна категория информации, найденной в схемах каталога, является определениями классов. Определение "класса объекта" определяет тип объекта и какие атрибуты (обязательный и дополнительный) объект должен иметь. Отметьте, что ссылка "класса объекта" термина здесь находится в смысле каталога, а не в смысле Java. Например, если бы именованный объект является объектом каталога класса "Человека", getSchemaClassDefinition() возвратил бы DirContext, представляющий определение класса объекта (каталога) "Человека".
Информация, которая может быть получена из определения класса объекта, зависима от каталога.
До JNDI 1.2, этот метод, возвращенный единственный объект схемы представление определения класса именованного объекта. Начиная с JNDI 1.2, этот метод возвращает DirContext, содержащий все определения классов именованного объекта.
name
- имя объекта, определение класса объекта которого должно быть полученоOperationNotSupportedException
- если схема, не поддерживаемаяNamingException
- если с исключением именования встречаютсяDirContext getSchemaClassDefinition(String name) throws NamingException
getSchemaClassDefinition(Name)
для деталей.name
- имя объекта, определение класса объекта которого должно быть полученоOperationNotSupportedException
- если схема, не поддерживаемаяNamingException
- если с исключением именования встречаютсяNamingEnumeration<SearchResult> search(Name name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException
SearchControls
настройки. Для объекта, который будет выбран, каждый атрибут в matchingAttributes
должен соответствовать некоторый атрибут объекта. Если matchingAttributes
является пустым или нулевым, все объекты в целевом контексте возвращаются.
Атрибут A1 в matchingAttributes
как полагают, соответствует атрибуту A2 объекта, если у A1 и A2 есть тот же самый идентификатор, и каждое значение A1 равно некоторому значению A2. Это подразумевает, что порядок значений не является существенным, и что A2 может содержать "дополнительные" значения, не найденные в A1, не влияя на сравнение. Это также подразумевает что, если у A1 нет никаких значений, то тестирование на соответствие эквивалентно тестированию на присутствие атрибута A2 с тем же самым идентификатором.
Точное определение "равенства", используемого в сравнении значений атрибута, определяется базовой службой каталогов. Это могло бы использовать Object.equals
метод, например, или мог бы использовать схему, чтобы определить различную работу равенства. Для того, чтобы соответствовать основанный на операциях кроме равенства (таких как сравнение подстроки) используют версию search
метод, который берет параметр фильтра.
Когда изменения производятся в этом DirContext, эффект на перечисления, возвращенные предшествующими звонками в этот метод, неопределен.
Если объекту не определят атрибут, то каталог проигнорирует несуществующий атрибут и возвратит требуемые атрибуты, которые действительно имеет объект.
Каталог мог бы возвратить больше атрибутов, чем требовалось (см. Имена типов Атрибута в описании класса), но не позволяется возвратить произвольные, несвязанные атрибуты.
См. также Операционные Атрибуты в описании класса.
name
- имя контекста, чтобы искатьmatchingAttributes
- атрибуты, чтобы искать. Если пустой или нулевой, все объекты в целевом контексте возвращаются.attributesToReturn
- атрибуты, чтобы возвратиться. нуль указывает, что все атрибуты должны быть возвращены; пустой массив указывает, что ни один не должен быть возвращен.attributesToReturn
и имя соответствующего объекта, названного относительно контекста, названного name
.NamingException
- если с исключением именования встречаютсяSearchControls
, SearchResult
, search(Name, String, Object[], SearchControls)
NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException
search(Name, Attributes, String[])
для деталей.name
- имя контекста, чтобы искатьmatchingAttributes
- атрибуты, чтобы искатьattributesToReturn
- атрибуты, чтобы возвратитьсяNamingException
- если с исключением именования встречаютсяNamingEnumeration<SearchResult> search(Name name, Attributes matchingAttributes) throws NamingException
search(Name, Attributes, String[])
. search(Name, Attributes, String[])
для полного описания.name
- имя контекста, чтобы искатьmatchingAttributes
- атрибуты, чтобы искатьNamingException
- если с исключением именования встречаютсяsearch(Name, Attributes, String[])
NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes) throws NamingException
search(Name, Attributes)
для деталей.name
- имя контекста, чтобы искатьmatchingAttributes
- атрибуты, чтобы искатьNamingException
- если с исключением именования встречаютсяNamingEnumeration<SearchResult> search(Name name, String filter, SearchControls cons) throws NamingException
Формат и интерпретация filter
следует за RFC 2254 со следующими интерпретациями для attr
и value
упомянутый в RFC.
attr
идентификатор атрибута.
value
строковое представление значение атрибута. Преобразование этого строкового представления в значение атрибута специфично для каталога.
Для утверждения "someCount=127", например, attr
"someCount" и value
"127". Провайдер определяет, основанный на ID атрибута ("someCount") (и возможно его схема), что значение атрибута является целым числом. Это тогда анализирует строку "127" соответственно.
Любые символы неASCII в строке фильтра должны быть представлены соответствующим Java (Unicode) символы, и не закодированы как октеты UTF-8. Поочередно, нотация "наклонной-черты-влево-hexcode", описанная в RFC 2254, может использоваться.
Если каталог не поддерживает строковое представление некоторых или все его атрибуты, форму search
это признает, что параметры фильтра в форме Объектов могут использоваться вместо этого. Поставщик услуг для такого каталога тогда преобразовал бы параметры фильтра его специфичному для службы представлению для оценки фильтра. См. search(Name, String, Object[], SearchControls)
.
RFC 2254 определяет определенные операторы для фильтра, включая соответствия подстроки, равенство, приблизительное соответствие, больше чем, меньше чем. Эти операторы отображаются на операторы с соответствующей семантикой в базовом каталоге. Например, для равняется оператору, предположите, что у каталога есть соответствующее правило, определяющее "равенство" атрибутов в фильтре. Это правило использовалось бы для того, чтобы проверить равенство атрибутов, определенных в фильтре с атрибутами объектов в каталоге. Точно так же, если бы у каталога есть соответствующее правило для того, чтобы упорядочить, это правило использовалось бы для того, чтобы сделать "больше чем" и "меньше чем" сравнения.
Не все операторы, определенные в RFC 2254, применимы ко всем атрибутам. Когда оператор не применим, исключение InvalidSearchFilterException
бросается.
Результат возвращается в перечислении SearchResult s. Каждый SearchResult содержит имя объекта и другой информации об объекте (см. SearchResult). Имя любой относительно целевого контекста поиска (который называют name
параметр), или это - строка URL. Если целевой контекст включается в перечисление (как возможно когда cons
определяет поисковый контекст SearchControls.OBJECT_SCOPE
или SearchControls.SUBSTREE_SCOPE
), его имя является пустой строкой. SearchResult может также содержать атрибуты соответствующего объекта, если параметр cons, определенный, который приписывает быть возвращенным.
Если у объекта нет требуемого атрибута, что несуществующий атрибут будет проигнорирован. Те требуемые атрибуты, которые действительно имеет объект, будут возвращены.
Каталог мог бы возвратить больше атрибутов, чем требовалось (см. Имена типов Атрибута в описании класса), но не позволяется возвратить произвольные, несвязанные атрибуты.
См. также Операционные Атрибуты в описании класса.
name
- имя контекста или объекта искатьfilter
- выражение фильтра, чтобы использовать для поиска; возможно, не нульcons
- поисковые средства управления, которые управляют поиском. Если ноль, поисковые средства управления по умолчанию используются (эквивалентный (new SearchControls())).InvalidSearchFilterException
- если поисковый определенный фильтр не поддерживается или понимается под базовым каталогомInvalidSearchControlsException
- если поисковые средства управления содержат недопустимые настройкиNamingException
- если с исключением именования встречаютсяsearch(Name, String, Object[], SearchControls)
, SearchControls
, SearchResult
NamingEnumeration<SearchResult> search(String name, String filter, SearchControls cons) throws NamingException
search(Name, String, SearchControls)
для деталей.name
- имя контекста или объекта искатьfilter
- выражение фильтра, чтобы использовать для поиска; возможно, не нульcons
- поисковые средства управления, которые управляют поиском. Если ноль, поисковые средства управления по умолчанию используются (эквивалентный (new SearchControls())).InvalidSearchFilterException
- если поисковый определенный фильтр не поддерживается или понимается под базовым каталогомInvalidSearchControlsException
- если поисковые средства управления содержат недопустимые настройкиNamingException
- если с исключением именования встречаютсяNamingEnumeration<SearchResult> search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException
Интерпретация filterExpr
основано на RFC 2254. Это может дополнительно содержать переменные формы {i}
- где i
целое число - которые обращаются к объектам в filterArgs
массив. Интерпретация filterExpr
иначе идентично тому из filter
параметр метода search(Name, String, SearchControls)
.
Когда переменная {i}
появляется в поисковом фильтре, он указывает что параметр фильтра filterArgs[i]
должен использоваться в том месте. Такие переменные могут использоваться везде, где attr, значение, или matchingrule производство появляются в грамматике фильтра RFC 2254, разделите 4. Когда оцененным строке параметром фильтра заменяют переменную, фильтр интерпретируется, как будто строка была дана вместо переменной с любыми символами, имеющими специальное значение в пределах фильтров (такой как '*'
) быть оставленным согласно правилам RFC 2254.
Для каталогов, которые не используют строковое представление для некоторых или всех их атрибутов, параметр фильтра, соответствующий значению атрибута, может иметь тип кроме Строки. Каталоги, которые поддерживают неструктурированные оцененные двоичному файлу атрибуты, например, должны принять байтовые массивы как параметры фильтра. Интерпретация (если кто-либо) параметров фильтра какого-либо другого типа определяется поставщиком услуг для того каталога, который отображает операции фильтра на операции с соответствующей семантикой в базовом каталоге.
Этот метод возвращает перечисление результатов. Каждый элемент в перечислении содержит имя объекта и другой информации об объекте (см. SearchResult
). Имя любой относительно целевого контекста поиска (который называют name
параметр), или это - строка URL. Если целевой контекст включается в перечисление (как возможно когда cons
определяет поисковый контекст SearchControls.OBJECT_SCOPE
или SearchControls.SUBSTREE_SCOPE
), его имя является пустой строкой.
SearchResult может также содержать атрибуты соответствующего объекта, если параметр cons определяет, что атрибуты возвращаются.
Если у объекта нет требуемого атрибута, что несуществующий атрибут будет проигнорирован. Те требуемые атрибуты, которые действительно имеет объект, будут возвращены.
Каталог мог бы возвратить больше атрибутов, чем требовалось (см. Имена типов Атрибута в описании класса), но не позволяется возвратить произвольные, несвязанные атрибуты.
Если поисковый фильтр с недопустимыми переменными заменами обеспечивается для этого метода, результат неопределен. Когда изменения производятся в этом DirContext, эффект на перечисления, возвращенные предшествующими звонками в этот метод, неопределен.
См. также Операционные Атрибуты в описании класса.
name
- имя контекста или объекта искатьfilterExpr
- выражение фильтра, чтобы использовать для поиска. Выражение может содержать переменные формы"{i}
"где i
неотрицательное целое число., Возможно, не нуль.filterArgs
- массив параметров, чтобы заменить переменные в filterExpr
. Значение filterArgs[i]
заменит каждое возникновение"{i}
". Если ноль, эквивалентный пустому массиву.cons
- поисковые средства управления, которые управляют поиском. Если ноль, поисковые средства управления по умолчанию используются (эквивалентный (new SearchControls())).ArrayIndexOutOfBoundsException
- если filterExpr содержит {i}
выражения, где i
вне границ массива filterArgs
InvalidSearchControlsException
- если cons содержит недопустимые настройкиInvalidSearchFilterException
- если filterExpr с filterArgs представляет недопустимый поисковый фильтрNamingException
- если с исключением именования встречаютсяsearch(Name, Attributes, String[])
, MessageFormat
NamingEnumeration<SearchResult> search(String name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException
search(Name, String, Object[], SearchControls)
для деталей.name
- имя контекста или объекта искатьfilterExpr
- выражение фильтра, чтобы использовать для поиска. Выражение может содержать переменные формы"{i}
"где i
неотрицательное целое число., Возможно, не нуль.filterArgs
- массив параметров, чтобы заменить переменные в filterExpr
. Значение filterArgs[i]
заменит каждое возникновение"{i}
". Если ноль, эквивалентный пустому массиву.cons
- поисковые средства управления, которые управляют поиском. Если ноль, поисковые средства управления по умолчанию используются (эквивалентный (new SearchControls())).ArrayIndexOutOfBoundsException
- если filterExpr содержит {i}
выражения, где i
вне границ массива filterArgs
InvalidSearchControlsException
- если cons содержит недопустимые настройкиInvalidSearchFilterException
- если filterExpr с filterArgs представляет недопустимый поисковый фильтрNamingException
- если с исключением именования встречаются
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.