FileDocCategorySizeDatePackage
SortResponseControl.javaAPI DocJava SE 5 API5197Fri Aug 26 14:57:40 BST 2005javax.naming.ldap

SortResponseControl

public final class SortResponseControl extends BasicControl
Indicates whether the requested sort of search results was successful or not. When the result code indicates success then the results have been sorted as requested. Otherwise the sort was unsuccessful and additional details regarding the cause of the error may have been provided by the server.

The code sample in {@link SortControl} shows how this class may be used.

This class implements the LDAPv3 Response Control for server-side sorting as defined in RFC 2891. The control's value has the following ASN.1 definition:


SortResult ::= SEQUENCE {
sortResult ENUMERATED {
success (0), -- results are sorted
operationsError (1), -- server internal failure
timeLimitExceeded (3), -- timelimit reached before
-- sorting was completed
strongAuthRequired (8), -- refused to return sorted
-- results via insecure
-- protocol
adminLimitExceeded (11), -- too many matching entries
-- for the server to sort
noSuchAttribute (16), -- unrecognized attribute
-- type in sort key
inappropriateMatching (18), -- unrecognized or inappro-
-- priate matching rule in
-- sort key
insufficientAccessRights (50), -- refused to return sorted
-- results to this client
busy (51), -- too busy to process
unwillingToPerform (53), -- unable to sort
other (80)
},
attributeType [0] AttributeType OPTIONAL }

since
1.5
see
SortControl
author
Vincent Ryan

Fields Summary
public static final String
OID
The server-side sort response control's assigned object identifier is 1.2.840.113556.1.4.474.
private static final long
serialVersionUID
private int
resultCode
The sort result code.
private String
badAttrId
The ID of the attribute that caused the sort to fail.
Constructors Summary
public SortResponseControl(String id, boolean criticality, byte[] value)
Constructs a control to indicate the outcome of a sort request.

param
id The control's object identifier string.
param
criticality The control's criticality.
param
value The control's ASN.1 BER encoded value. It is not cloned - any changes to value will affect the contents of the control.
exception
IOException if an error is encountered while decoding the control's value.


                                                                                                                                                                                              
          
	  

	super(id, criticality, value);

	// decode value
	BerDecoder ber = new BerDecoder(value, 0, value.length);

	ber.parseSeq(null);
	resultCode = ber.parseEnumeration();
	if ((ber.bytesLeft() > 0) && (ber.peekByte() == Ber.ASN_CONTEXT)) {
	    badAttrId = ber.parseStringWithTag(Ber.ASN_CONTEXT, true, null);
	}
    
Methods Summary
public java.lang.StringgetAttributeID()
Retrieves the ID of the attribute that caused the sort to fail. Returns null if no ID was returned by the server.

return
The possibly null ID of the bad attribute.

	return badAttrId;
    
public javax.naming.NamingExceptiongetException()
Retrieves the NamingException appropriate for the result code.

return
A NamingException or null if the result code indicates success.


	return LdapCtx.mapErrorCode(resultCode, null);
    
public intgetResultCode()
Retrieves the LDAP result code of the sort operation.

return
The result code. A zero value indicates success.

	return resultCode;
    
public booleanisSorted()
Determines if the search results have been successfully sorted. If an error occurred during sorting a NamingException is thrown.

return
true if the search results have been sorted.

	return (resultCode == 0); // a result code of zero indicates success