@NotMutable @ThreadSafety(level=COMPLETELY_THREADSAFE) public final class ServerSideSortRequestControl extends Control
SortKey values. Each sort key includes an attribute name and a flag
that indicates whether to sort in ascending or descending order. It may also
specify a custom matching rule that should be used to specify which logic
should be used to perform the sorting.
ServerSideSortResponseControl to provide information about the
status of the sort processing.
// Perform a search to get all user entries sorted by last name, then by
// first name, both in ascending order.
SearchRequest searchRequest = new SearchRequest(
"ou=People,dc=example,dc=com", SearchScope.SUB,
Filter.createEqualityFilter("objectClass", "person"));
searchRequest.addControl(new ServerSideSortRequestControl(
new SortKey("sn"), new SortKey("givenName")));
SearchResult lastNameAscendingResult;
try
{
lastNameAscendingResult = connection.search(searchRequest);
// If we got here, then the search was successful.
}
catch (LDAPSearchException lse)
{
// The search failed for some reason.
lastNameAscendingResult = lse.getSearchResult();
ResultCode resultCode = lse.getResultCode();
String errorMessageFromServer = lse.getDiagnosticMessage();
}
// Get the response control and retrieve the result code for the sort
// processing.
LDAPTestUtils.assertHasControl(lastNameAscendingResult,
ServerSideSortResponseControl.SERVER_SIDE_SORT_RESPONSE_OID);
ServerSideSortResponseControl lastNameAscendingResponseControl =
ServerSideSortResponseControl.get(lastNameAscendingResult);
ResultCode lastNameSortResult =
lastNameAscendingResponseControl.getResultCode();
// Perform the same search, but this time request the results to be sorted
// in descending order by first name, then last name.
searchRequest.setControls(new ServerSideSortRequestControl(
new SortKey("givenName", true), new SortKey("sn", true)));
SearchResult firstNameDescendingResult;
try
{
firstNameDescendingResult = connection.search(searchRequest);
// If we got here, then the search was successful.
}
catch (LDAPSearchException lse)
{
// The search failed for some reason.
firstNameDescendingResult = lse.getSearchResult();
ResultCode resultCode = lse.getResultCode();
String errorMessageFromServer = lse.getDiagnosticMessage();
}
// Get the response control and retrieve the result code for the sort
// processing.
LDAPTestUtils.assertHasControl(firstNameDescendingResult,
ServerSideSortResponseControl.SERVER_SIDE_SORT_RESPONSE_OID);
ServerSideSortResponseControl firstNameDescendingResponseControl =
ServerSideSortResponseControl.get(firstNameDescendingResult);
ResultCode firstNameSortResult =
firstNameDescendingResponseControl.getResultCode();
EntrySorter class for details on performing
client-side sorting in the LDAP SDK.| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
SERVER_SIDE_SORT_REQUEST_OID
The OID (1.2.840.113556.1.4.473) for the server-side sort request control.
|
| Constructor and Description |
|---|
ServerSideSortRequestControl(boolean isCritical,
java.util.List<SortKey> sortKeys)
Creates a new server-side sort control that will sort the results based on
the provided set of sort keys.
|
ServerSideSortRequestControl(boolean isCritical,
SortKey... sortKeys)
Creates a new server-side sort control that will sort the results based on
the provided set of sort keys.
|
ServerSideSortRequestControl(Control control)
Creates a new server-side sort request control which is decoded from the
provided generic control.
|
ServerSideSortRequestControl(java.util.List<SortKey> sortKeys)
Creates a new server-side sort control that will sort the results based on
the provided set of sort keys.
|
ServerSideSortRequestControl(SortKey... sortKeys)
Creates a new server-side sort control that will sort the results based on
the provided set of sort keys.
|
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
getControlName()
Retrieves the user-friendly name for this control, if available.
|
SortKey[] |
getSortKeys()
Retrieves the set of sort keys that define the desired order in which the
results should be returned.
|
void |
toString(java.lang.StringBuilder buffer)
Appends a string representation of this LDAP control to the provided
buffer.
|
decode, decode, decodeControls, deregisterDecodeableControl, encode, encodeControls, equals, getOID, getValue, hashCode, hasValue, isCritical, readFrom, registerDecodeableControl, toString, writeTopublic static final java.lang.String SERVER_SIDE_SORT_REQUEST_OID
public ServerSideSortRequestControl(SortKey... sortKeys)
sortKeys - The set of sort keys to define the desired order in which
the results should be returned. It must not be
null or empty.public ServerSideSortRequestControl(java.util.List<SortKey> sortKeys)
sortKeys - The set of sort keys to define the desired order in which
the results should be returned. It must not be
null or empty.public ServerSideSortRequestControl(boolean isCritical, SortKey... sortKeys)
isCritical - Indicates whether this control should be marked
critical.sortKeys - The set of sort keys to define the desired order in
which the results should be returned. It must not be
null or empty.public ServerSideSortRequestControl(boolean isCritical, java.util.List<SortKey> sortKeys)
isCritical - Indicates whether this control should be marked
critical.sortKeys - The set of sort keys to define the desired order in
which the results should be returned. It must not be
null or empty.public ServerSideSortRequestControl(Control control) throws LDAPException
control - The generic control to be decoded as a server-side sort
request control.LDAPException - If the provided control cannot be decoded as a
server-side sort request control.public SortKey[] getSortKeys()
public java.lang.String getControlName()
getControlName in class Control