Class SortControl

Class SortControl

public final class SortControl
extends BasicControl

검색 연산의 결과가 반환되기 전에 LDAP 서버가 정렬하도록 요청해요. 정렬 기준은 연관된 정렬 매개변수와 함께 하나 이상의 정렬 키의 정렬된 목록으로 지정돼요. 검색 결과는 정렬 컨트롤에 공급된 매개변수에 따라 LDAP 서버에서 정렬된 다음 요청자에게 반환돼요. 서버에서 정렬이 지원되지 않으면(그리고 정렬 컨트롤이 critical로 표시되어 있으면) 검색 연산이 수행되지 않고 오류가 반환돼요. 다음 코드 샘플은 이 클래스의 사용법을 보여줘요.

// 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 Request Control을 구현해요. 컨트롤 값은 다음과 같은 ASN.1 정의를 가져요.

SortKeyList ::= SEQUENCE OF SEQUENCE {
    attributeType AttributeDescription,
    orderingRule [0] MatchingRuleId OPTIONAL,
    reverseOrder [1] BOOLEAN DEFAULT FALSE }

OID

public static final String OID

서버 측 정렬 컨트롤의 할당된 객체 식별자는 1.2.840.113556.1.4.473이에요.

  • See Also: 상수 필드 값(Constant Field Values)

SortControl

public SortControl(String sortBy,
 boolean criticality)
            throws IOException

단일 속성을 오름차순으로 정렬하는 컨트롤을 생성해요. 정렬은 지정된 속성에 사용하도록 정의된 정렬 매칭 규칙을 사용해 수행돼요.

  • Parameters: sortBy - 정렬할 속성 ID
  • Throws: IOException - 제공된 인자를 컨트롤로 인코딩하는 동안 오류가 발생했을 때

SortControl

public SortControl(String[] sortBy,
 boolean criticality)
            throws IOException

속성 목록을 오름차순으로 정렬하는 컨트롤을 생성해요. 정렬은 지정된 각 속성에 사용하도록 정의된 정렬 매칭 규칙을 사용해 수행돼요.

  • Parameters: sortBy - 정렬할 속성 ID의, null이 아닌 목록. 목록은 높은 것에서 낮은 것 순의 정렬 키 우선순위 순서예요
  • Throws: IOException - 제공된 인자를 컨트롤로 인코딩하는 동안 오류가 발생했을 때

SortControl

public SortControl(SortKey[] sortBy,
 boolean criticality)
            throws IOException

정렬 키 목록으로 정렬하는 컨트롤을 생성해요. 각 정렬 키는 사용할 정렬 순서와 정렬 매칭 규칙을 지정해요.

  • Parameters: sortBy - 정렬할 키의, null이 아닌 목록. 목록은 높은 것에서 낮은 것 순의 정렬 키 우선순위 순서예요
  • Throws: IOException - 제공된 인자를 컨트롤로 인코딩하는 동안 오류가 발생했을 때