模块  java.naming
软件包  javax.naming.ldap

Class SortControl

  • 实现的所有接口
    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(); ...  

    此类实现了服务器端排序的LDAPv3请求控制,如RFC 2891中所定义。 控件的值具有以下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。
        另请参见:
        常数字段值
    • 构造方法详细信息

      • SortControl

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

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

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