Module  java.naming
软件包  javax.naming.ldap

Class SortControl

  • All Implemented Interfaces:
    SerializableControl


    public final class SortControl
    extends BasicControl
    请求在返回之前由LDAP服务器对搜索操作的结果进行排序。 排序标准使用一个或多个排序键的排序列表和相关的排序参数进行指定。 搜索结果根据排序控制中提供的参数在LDAP服务器进行排序,然后返回给请求者。 如果服务器不支持排序(并且排序控件被标记为关键),则不执行搜索操作,并返回错误。

    以下代码示例显示了如何使用类:

       // 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定义:

      SortKeyList ::= SEQUENCE OF SEQUENCE {
             attributeType     AttributeDescription,
             orderingRule  [0] MatchingRuleId OPTIONAL,
             reverseOrder  [1] BOOLEAN DEFAULT FALSE } 
    从以下版本开始:
    1.5
    另请参见:
    SortKeySortResponseControlSerialized Form
    • 字段详细信息

      • OID

        public static final String OID
        服务器端排序控件的分配对象标识符为1.2.840.113556.1.4.473。
        另请参见:
        Constant Field Values
    • 构造方法详细信息

      • SortControl

        public SortControl​(String sortBy,
                           boolean criticality)
                    throws IOException
        构造一个控件以按升序对单个属性进行排序。 将使用定义用于指定属性的排序匹配规则执行排序。
        参数
        sortBy - 要排序的属性ID。
        criticality - 如果为真,则服务器必须遵守控制并返回按要求排序的搜索结果或拒绝执行搜索。 如果是虚假的,那么服务器不需要尊重控制权。
        异常
        IOException - 如果在将所提供的参数编码到控件中时遇到错误。
      • SortControl

        public SortControl​(String[] sortBy,
                           boolean criticality)
                    throws IOException
        构造一个控件以按升序对属性列表进行排序。 将使用为每个指定属性使用定义的排序匹配规则执行排序。
        参数
        sortBy - 要排序的属性ID的非空列表。 列表按照从最高到最低排序关键字优先级的顺序。
        criticality - 如果为真,则服务器必须遵守控制并返回按请求排序的搜索结果或拒绝执行搜索。 如果是虚假的,那么服务器不需要尊重控制权。
        异常
        IOException - 如果在将所提供的参数编码到控件中时遇到错误。
      • SortControl

        public SortControl​(SortKey[] sortBy,
                           boolean criticality)
                    throws IOException
        构造一个控件以对排序键列表进行排序。 每个排序键指定要使用的排序顺序和排序匹配规则。
        参数
        sortBy - 要排序的键的非空列表。 列表按照从最高到最低排序关键字优先级的顺序。
        criticality - 如果为真,则服务器必须遵守控制并返回按要求排序的搜索结果或拒绝执行搜索。 如果是虚假的,那么服务器不需要尊重控制权。
        异常
        IOException - 如果在将提供的参数编码到控件中时遇到错误。