Spec-Zone .ru
спецификации, руководства, описания, API
След: Именование Java и Интерфейс Каталога
Урок: Именование и Операции Каталога
Раздел: Поиск
Контекст
Домашняя страница > Именование Java и Интерфейс Каталога > Именование и Операции Каталога

Контекст

SearchControls значения по умолчанию определяет, что поиск должен быть выполнен в именованном контексте (SearchControls.ONELEVEL_SCOPE). Это значение по умолчанию используется в примерах в разделе Фильтров Поиска.

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

Ищите Поддерево

Поиск всего поддерева ищет именованный объект и всех его потомков. Чтобы заставить поиск вести себя таким образом, передайте SearchControls.SUBTREE_SCOPE к SearchControls.setSearchScope() следующим образом.

// Specify the ids of the attributes to return
String[] attrIDs = {"sn", "telephonenumber", "golfhandicap", "mail"};
SearchControls ctls = new SearchControls();
ctls.setReturningAttributes(attrIDs);
ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);

// Specify the search filter to match
// Ask for objects that have the attribute "sn" == "Geisel"
// and the "mail" attribute
String filter = "(&(sn=Geisel)(mail=*))";

// Search the subtree for objects by using the filter
NamingEnumeration answer = ctx.search("", filter, ctls);

This example ищет поддерево ctx контекста записи, которые удовлетворяют указанный фильтр. Это считает запись "cn= Ted Geisel, ou=People" в этом поддереве, которое удовлетворяет фильтр.

# java SearchSubtree
>>>cn=Ted Geisel, ou=People
attribute: sn
value: Geisel
attribute: mail
value: Ted.Geisel@JNDITutorial.example.com
attribute: telephonenumber
value: +1 408 555 5252

Ищите Именованный Объект

Можно также искать именованный объект. Это полезно, например, чтобы протестировать, удовлетворяет ли именованный объект фильтр поиска. Чтобы искать именованный объект, передайте SearchControls.OBJECT_SCOPE к setSearchScope().

// Specify the ids of the attributes to return
String[] attrIDs = {"sn", "telephonenumber", "golfhandicap", "mail"};
SearchControls ctls = new SearchControls();
ctls.setReturningAttributes(attrIDs);
ctls.setSearchScope(SearchControls.OBJECT_SCOPE);

// Specify the search filter to match
// Ask for objects that have the attribute "sn" == "Geisel"
// and the "mail" attribute
String filter = "(&(sn=Geisel)(mail=*))";

// Search the subtree for objects by using the filter
NamingEnumeration answer = 
    ctx.search("cn=Ted Geisel, ou=People", filter, ctls);

This example тесты, удовлетворяет ли объектный "cn=Ted Geisel, ou=People" данный фильтр.

# java SearchObject
>>>
attribute: sn
value: Geisel
attribute: mail
value: Ted.Geisel@JNDITutorial.example.com
attribute: telephonenumber
value: +1 408 555 5252

Пример, найденный одним ответом и напечатанный это. Заметьте, что имя результата является пустой строкой. Это - то, потому что имя объекта всегда называют относительно контекста поиска (в этом случае, "cn=Ted Geisel, ou=People").


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Фильтры
Следующая страница: Результат граф