Spec-Zone.ru › OpenJDK 25

Класс PagedResultsControl

java.lang.Object
javax.naming.ldap.BasicControl
javax.naming.ldap.PagedResultsControl
Все реализуемые интерфейсы:
Serializable, Control
public final class PagedResultsControl extends BasicControl
Запрашивает, чтобы результаты операции поиска возвращались сервером LDAP пакетами указанного размера. Запрашивающая сторона управляет скоростью возврата пакетов, определяя частоту вызова операций поиска.

В следующем примере кода показано, как можно использовать этот класс:


    // Open an LDAP association
    LdapContext ctx = new InitialLdapContext();

    // Activate paged results
    int pageSize = 20; // 20 entries per page
    byte[] cookie = null;
    int total;
    ctx.setRequestControls(new Control[]{
        new PagedResultsControl(pageSize, Control.CRITICAL) });

    do {
        // Perform the search
        NamingEnumeration results =
            ctx.search("", "(objectclass=*)", new SearchControls());

        // Iterate over a batch of search results
        while (results != null && results.hasMore()) {
            // Display an entry
            SearchResult entry = (SearchResult)results.next();
            System.out.println(entry.getName());
            System.out.println(entry.getAttributes());

            // Handle the entry's response controls (if any)
            if (entry instanceof HasControls) {
                // ((HasControls)entry).getControls();
            }
        }
        // Examine the paged results control response
        Control[] controls = ctx.getResponseControls();
        if (controls != null) {
            for (int i = 0; i < controls.length; i++) {
                if (controls[i] instanceof PagedResultsResponseControl) {
                    PagedResultsResponseControl prrc =
                        (PagedResultsResponseControl)controls[i];
                    total = prrc.getResultSize();
                    cookie = prrc.getCookie();
                } else {
                    // Handle other response controls (if any)
                }
            }
        }

        // Re-activate paged results
        ctx.setRequestControls(new Control[]{
            new PagedResultsControl(pageSize, cookie, Control.CRITICAL) });
    } while (cookie != null);

    // Close the LDAP association
    ctx.close();
    ...

 

Этот класс реализует элемент управления LDAPv3 для постраничной выдачи результатов, определённый в RFC 2696. Значение элемента управления имеет следующее определение ASN.1:


    realSearchControlValue ::= SEQUENCE {
        size      INTEGER (0..maxInt),
                          -- requested page size from client
                          -- result set size estimate from server
        cookie    OCTET STRING
    }

Начиная с:
1.5
См. также:
  • PagedResultsResponseControl
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final String OID
Присвоенный идентификатор объекта элемента управления постраничной выдачей результатов: 1.2.840.113556.1.4.319.

Поля, объявленные в классе BasicControl

criticality, id, value

Поля, объявленные в интерфейсе Control

CRITICAL, NONCRITICAL

Краткое описание конструкторов

Конструктор Описание
PagedResultsControl(int pageSize, boolean criticality)
Создаёт элемент управления, задающий число записей, возвращаемых на одну страницу результатов.
PagedResultsControl(int pageSize, byte[] cookie, boolean criticality)
Создаёт элемент управления, задающий число записей, возвращаемых на одну страницу результатов.

Краткое описание методов

Методы, объявленные в классе BasicControl

getEncodedValue, getID, isCritical

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

OID

public static final String OID
Присвоенный идентификатор объекта элемента управления постраничной выдачей результатов: 1.2.840.113556.1.4.319.
См. также:
  • Значения константных полей

Подробное описание конструкторов

PagedResultsControl

public PagedResultsControl(int pageSize, boolean criticality) throws IOException
Создаёт элемент управления, задающий число записей, возвращаемых на одну страницу результатов.
Параметры:
pageSize — число записей, возвращаемых на одной странице.
criticality — если значение равно true, сервер обязан обработать элемент управления и вернуть результаты поиска в соответствии с pageSize либо отказаться от выполнения поиска. Если значение равно false, сервер не обязан обрабатывать элемент управления.
Исключения:
IOException — если при кодировании переданных аргументов в элемент управления произошла ошибка.

PagedResultsControl

public PagedResultsControl(int pageSize, byte[] cookie, boolean criticality) throws IOException
Создаёт элемент управления, задающий число записей, возвращаемых на одну страницу результатов. Cookie предоставляется сервером и может быть получен из элемента управления ответом для постраничной выдачи результатов.

Последовательность запросов с постраничной выдачей результатов можно прервать, установив pageSize в ноль и задав cookie, равный последнему cookie, полученному от сервера.

Параметры:
pageSize — число записей, возвращаемых на одной странице.
cookie — возможно, null; cookie, созданный сервером.
criticality — если значение равно true, сервер обязан обработать элемент управления и вернуть результаты поиска в соответствии с pageSize либо отказаться от выполнения поиска. Если значение равно false, сервер не обязан обрабатывать элемент управления.
Исключения:
IOException — если при кодировании переданных аргументов в элемент управления произошла ошибка.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.naming/javax/naming/ldap/PagedResultsControl.html

Spec-Zone.ru

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