目录搜索
文字
分享


JavaTM 2 Platform
Standard Ed. 6

javax.naming.ldap
类 SortControl

1

2

3

java.lang.Object

  <img src="../../../resources/inherit.gif" alt="继承者 ">javax.naming.ldap.BasicControl

      <img src="../../../resources/inherit.gif" alt="继承者 "><b>javax.naming.ldap.SortControl</b>

所有已实现的接口:
Serializable, Control

1

public final class <b>SortControl</b>

extends BasicControl

请求 LDAP 服务器在返回搜索操作的结果前对这些结果进行排序。使用一个或多个排序键所组成的有序列表与关联的排序参数一起指定排序标准。搜索结果根据排序控件中提供的参数在 LDAP 服务器排序,然后返回给请求方。如果服务器上不支持排序(而排序控件被标记为关键),则不执行搜索操作并返回错误。

以下代码示例展示了使用该类的方式:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

// Open an LDAP association

LdapContext ctx = new InitialLdapContext();

 

// 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 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 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)

        }

    }

}

 

// Close the LDAP association

ctx.close();

...

此类实现在 RFC 2891 中定义的用于服务器端排序的 LDAPv3 请求控件。 控件值具有以下 ASN.1 定义:

1

2

3

4

SortKeyList ::= SEQUENCE OF SEQUENCE {

    attributeType     AttributeDescription,

    orderingRule  [0] MatchingRuleId OPTIONAL,

    reverseOrder  [1] BOOLEAN DEFAULT FALSE }

从以下版本开始:
1.5
另请参见:
SortKey, SortResponseControl, 序列化表格

字段摘要
static String OID
          服务器端排序控件的分配对象标识符为 1.2.840.113556.1.4.473。
 
从类 javax.naming.ldap.BasicControl 继承的字段
criticality, id, value
 
从接口 javax.naming.ldap.Control 继承的字段
CRITICAL, NONCRITICAL
 
构造方法摘要
SortControl(SortKey[] sortBy, boolean criticality)
          构造一个控件来对排序键列表进行排序。
SortControl(String[] sortBy, boolean criticality)
          构造一个控件来按升序对属性列表进行排序。
SortControl(String sortBy, boolean criticality)
          构造一个控件来按升序对单个属性进行排序。
 
方法摘要
 
从类 javax.naming.ldap.BasicControl 继承的方法
getEncodedValue, getID, isCritical
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

OID

1

public static final String <b>OID</b>

服务器端排序控件的分配对象标识符为 1.2.840.113556.1.4.473。

另请参见:
常量字段值
构造方法详细信息

SortControl

1

2

3

public <b>SortControl</b>(String sortBy,

                   boolean criticality)

            throws IOException

构造一个控件来按升序对单个属性进行排序。使用为指定属性定义的排序匹配规则执行排序。

参数:
sortBy - 用于排序的属性 ID。
criticality - 如果为 true,则服务器属性遵从控件,按照请求返回搜索结果或拒绝执行搜索。如果为 false,则服务器不必遵从控件。
抛出:
IOException - 如果在编码控件中提供的参数时遇到错误。

SortControl

1

2

3

public <b>SortControl</b>(String[] sortBy,

                   boolean criticality)

            throws IOException

构造一个控件来按升序对属性列表进行排序。使用为每个指定属性定义的排序匹配规则执行排序。

参数:
sortBy - 用于排序的非 null 属性 ID 列表。列表按从高到低的排序键优先级顺序排列。
criticality - 如果为 true,则服务器属性遵从控件,按照请求返回搜索结果或拒绝执行搜索。如果为 false,则服务器不必遵从控件。
抛出:
IOException - 如果在编码控件中提供的参数时遇到错误。

SortControl

1

2

3

public <b>SortControl</b>(SortKey[] sortBy,

                   boolean criticality)

            throws IOException

构造一个控件来对排序键列表进行排序。每个排序键都指定要使用的排序顺序和排序匹配规则。

参数:
sortBy - 用于排序的非 null 键列表。列表按从高到低的排序键优先级顺序排列。
criticality - 如果为 true,则服务器属性遵从控件,按照请求返回搜索结果或拒绝执行搜索。如果为 false,则服务器不必遵从控件。
抛出:
IOException - 如果在编码控件中提供的参数时遇到错误。

JavaTM 2 Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。

上一篇:Rdn下一篇:SortKey