|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Управление видом используется, когда клиент хочет, чтобы сервер отправил сортированные результаты поиска. Серверная сортировка полезна в ситуации, где клиент должен сортировать результаты согласно некоторым критериям, но не снабжается, чтобы выполнить процесс вида самостоятельно. Управление видом определяется в RFC 2891. Классы ниже обеспечивают функциональность, требуемую поддерживать управление видом.
SortKey является odered списком ключей, основанных, на который сервер сортирует результат.
Пример ниже иллюстрирует взаимодействие клиент-сервер между клиентом, выполняющим поиск, запрашивающий сторону сервера, сортирующую основанный на атрибуте "cn".
// Activate sorting
String sortKey = "cn";
ctx.setRequestControls(new Control[] {
new SortControl(sortKey, Control.CRITICAL) });
// Perform a search
NamingEnumeration results =
ctx.search("", "(objectclass=*)", new SearchControls());
// Iterate over sorted search results
while (results != null && results.hasMore()) {
// Display an entry
SearchResult entry = (SearchResult)results.next();
System.out.println(entry.getName());
// Handle the entry's response controls (if any)
if (entry instanceof HasControls) {
// ((HasControls)entry).getControls();
}
}
// Examine the sort control response
Control[] controls = ctx.getResponseControls();
if (controls != null) {
for (int i = 0; i < controls.length; i++) {
if (controls[i] instanceof SortResponseControl) {
SortResponseControl src = (SortResponseControl)controls[i];
if (! src.isSorted()) {
throw src.getException();
}
} else {
// Handle other response controls (if any)
}
}
}
Полный пример JNDI может быть найден
Отметьте: управление видом поддерживается и Сервером каталогов Java Sun и Windows Active Directory server.