JavaTM 2 Platform
Standard Ed. 5.0

javax.naming.ldap
クラス 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();
     ...

 

このクラスは、RFC 2696 で定義されている、ページごとに区切られた結果の LDAPv3 コントロールを実装します。 このコントロールの値の 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 String OID
          ページごとに区切られた結果のコントロールに割り当てられているオブジェクト識別子は 1.2.840.113556.1.4.319 です。
 
クラス javax.naming.ldap.BasicControl から継承されたフィールド
criticality, id, value
 
インタフェース javax.naming.ldap.Control から継承されたフィールド
CRITICAL, NONCRITICAL
 
コンストラクタの概要
PagedResultsControl(int pageSize, boolean criticality)
          1 ページ当たりに取得する結果のエントリ数を設定するためのコントロールを構築します。
PagedResultsControl(int pageSize, byte[] cookie, boolean criticality)
          1 ページ当たりに取得する結果のエントリ数を設定するためのコントロールを構築します。
 
メソッドの概要
 
クラス javax.naming.ldap.BasicControl から継承されたメソッド
getEncodedValue, getID, isCritical
 
クラス java.lang.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
1 ページ当たりに取得する結果のエントリ数を設定するためのコントロールを構築します。

パラメータ:
pageSize - 1 ページ当たりに取得するエントリ数
criticality - true の場合、サーバはこのコントロールに従って pageSize の指定どおりに検索結果を返すか、検索の実行を拒否する必要がある。false の場合、サーバはこのコントロールに従わなくてもかまわない
例外:
IOException - 指定された引数からコントロールを構築するときにエラーが発生した場合

PagedResultsControl

public PagedResultsControl(int pageSize,
                           byte[] cookie,
                           boolean criticality)
                    throws IOException
1 ページ当たりに取得する結果のエントリ数を設定するためのコントロールを構築します。クッキーはサーバによって提供され、ページごとに区切られた結果の応答コントロールから取得できます。

一連の結果ページを途中で放棄するには、pageSize として 0、サーバから最後に受け取ったクッキーを cookie として設定します。

パラメータ:
pageSize - 1 ページ当たりに取得するエントリ数
cookie - サーバで生成されたクッキー。null の場合もある
criticality - true の場合、サーバはこのコントロールに従って pageSize の指定どおりに検索結果を返すか、検索の実行を拒否する必要がある。false の場合、サーバはこのコントロールに従わなくてもかまわない
例外:
IOException - 指定された引数を符号化してコントロールを構築するときにエラーが発生した場合

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。