|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjavax.naming.ldap.BasicControl
javax.naming.ldap.PagedResultsControl
public final class PagedResultsControl
検索操作の結果を、指定したサイズごとにまとめて返すよう 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
}
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 |
| フィールドの詳細 |
|---|
public static final String OID
| コンストラクタの詳細 |
|---|
public PagedResultsControl(int pageSize,
boolean criticality)
throws IOException
pageSize - 1 ページ当たりに取得するエントリ数criticality - true の場合、サーバはこのコントロールに従って pageSize の指定どおりに検索結果を返すか、検索の実行を拒否する必要がある。false の場合、サーバはこのコントロールに従わなくてもかまわない
IOException - 指定された引数からコントロールを構築するときにエラーが発生した場合
public PagedResultsControl(int pageSize,
byte[] cookie,
boolean criticality)
throws IOException
一連の結果ページを途中で放棄するには、pageSize として 0、サーバから最後に受け取ったクッキーを cookie として設定します。
pageSize - 1 ページ当たりに取得するエントリ数cookie - サーバで生成されたクッキー。null の場合もあるcriticality - true の場合、サーバはこのコントロールに従って pageSize の指定どおりに検索結果を返すか、検索の実行を拒否する必要がある。false の場合、サーバはこのコントロールに従わなくてもかまわない
IOException - 指定された引数を符号化してコントロールを構築するときにエラーが発生した場合
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。