The following code sample shows how the class may be used:
// 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();
...
This class implements the LDAPv3 Request Control for server-side sorting as defined in RFC 2891. The control's value has the following ASN.1 definition:
SortKeyList ::= SEQUENCE OF SEQUENCE { attributeType AttributeDescription, orderingRule [0] MatchingRuleId OPTIONAL, reverseOrder [1] BOOLEAN DEFAULT FALSE }
SortKey
, SortResponseControl
Modifier and Type | Field and Description |
---|---|
public static final String | OID
The server-side sort control's assigned object identifier is 1.2.840.113556.1.4.473. |
private static final long |
Access | Constructor and Description |
---|---|
public | SortControl(String
An attribute ID to sort by. sortBy, boolean If true then the server must honor the control
and return the search results sorted as
requested or refuse to perform the search.
If false, then the server need not honor the
control. criticality)Constructs a control to sort on a single attribute in ascending order. |
public | SortControl(String[]
A non-null list of attribute IDs to sort by.
The list is in order of highest to lowest sort key
precedence. sortBy, boolean If true then the server must honor the control
and return the search results sorted as
requested or refuse to perform the search.
If false, then the server need not honor the
control. criticality)Constructs a control to sort on a list of attributes in ascending order. |
public | SortControl(SortKey[]
A non-null list of keys to sort by.
The list is in order of highest to lowest sort key
precedence. sortBy, boolean If true then the server must honor the control
and return the search results sorted as
requested or refuse to perform the search.
If false, then the server need not honor the
control. criticality)Constructs a control to sort on a list of sort keys. |
Modifier and Type | Method and Description |
---|---|
private byte[] | Returns: A possibly null byte array representing the ASN.1 BER encoded value of the sort control.A non-null list of keys to sort by. sortKeys)Encodes the sort control's value using ASN.1 BER. |
OID | back to summary |
---|---|
public static final String OID The server-side sort control's assigned object identifier is 1.2.840.113556.1.4.473. |
serialVersionUID | back to summary |
---|---|
private static final long serialVersionUID |
SortControl | back to summary |
---|---|
public SortControl(String sortBy, boolean criticality) throws IOException Constructs a control to sort on a single attribute in ascending order. Sorting will be performed using the ordering matching rule defined for use with the specified attribute.
|
SortControl | back to summary |
---|---|
public SortControl(String[] sortBy, boolean criticality) throws IOException Constructs a control to sort on a list of attributes in ascending order. Sorting will be performed using the ordering matching rule defined for use with each of the specified attributes.
|
SortControl | back to summary |
---|---|
public SortControl(SortKey[] sortBy, boolean criticality) throws IOException Constructs a control to sort on a list of sort keys. Each sort key specifies the sort order and ordering matching rule to use.
|
setEncodedValue | back to summary |
---|---|
private byte[] setEncodedValue(SortKey[] sortKeys) throws IOException Encodes the sort control's value using ASN.1 BER. The result includes the BER tag and length for the control's value but does not include the control's object identifier and criticality setting.
|