Class CompareRequest
java.lang.Object
org.forgerock.opendj.ldap.messages.CompareRequest
- All Implemented Interfaces:
ProtocolOp
,Request
The Compare operation allows a client to compare an assertion value with the
values of a particular attribute in a particular entry in the Directory.
Note that some directory systems may establish access controls that permit
the values of certain attributes (such as userPassword
) to be
compared but not interrogated by other means.
The following excerpt shows how to use the Compare operation to check whether a member belongs to a (possibly large) static group.
Connection connection = ...; String groupDN = ...; String memberDN = ...; CompareRequest request = Requests.newCompareRequest(groupDN, "member", memberDN); CompareResult result = connection.compare(request); if (result.matched()) { // The member belongs to the group. }
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.forgerock.opendj.ldap.messages.Request
Request.RequestType
-
Method Summary
Modifier and TypeMethodDescription<R,
P, E extends Exception>
Raccept
(RequestVisitor<R, P, E> v, P p) Applies aRequestVisitor
to thisRequest
.final CompareRequest
addControl
(Control control) Adds the provided control to this protocol-op.final CompareRequest
addControls
(Iterable<? extends Control> controls) Adds the provided controls to this protocol-op.final boolean
containsControl
(String oid) Returnstrue
if this protocol-op contains the specified control.Returns the assertion value to be compared.Returns the assertion value to be compared decoded as a UTF-8 string.Returns the name of the attribute to be compared.final <C extends Control>
CgetControl
(ControlDecoder<C> decoder, DecodeOptions options) Decodes and returns the first control in this protocol-op having an OID corresponding to the provided control decoder.Returns aList
containing the controls included with this protocol-op.getName()
Returns the distinguished name of the entry to be compared.getType()
Returns the type of this request to avoid expensiveinstanceof
checks.final CompareRequest
removeControls
(String oid) Removes all the controls having the specified OID.setAssertionValue
(Object value) Sets the assertion value to be compared.setAttributeDescription
(String attributeDescription) Sets the name of the attribute to be compared.setAttributeDescription
(AttributeDescription attributeDescription) Sets the name of the attribute to be compared.Sets the distinguished name of the entry to be compared.Sets the distinguished name of the entry to be compared.toString()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.forgerock.opendj.ldap.messages.ProtocolOp
containsControl, getControl, getControl, getControls
Methods inherited from interface org.forgerock.opendj.ldap.messages.Request
addControl, addControls, removeControls
-
Method Details
-
accept
Description copied from interface:Request
Applies aRequestVisitor
to thisRequest
.- Specified by:
accept
in interfaceRequest
- Type Parameters:
R
- The return type of the visitor's methods.P
- The type of the additional parameters to the visitor's methods.E
- The type of the exception thrown by the visitor method if it fails, orNeverThrowsException
if the visitor cannot fail.- Parameters:
v
- The request visitor.p
- Optional additional visitor parameter.- Returns:
- A result as specified by the visitor.
- Throws:
E
- If the visitor failed.
-
getAssertionValue
Returns the assertion value to be compared.- Returns:
- The assertion value.
-
getAssertionValueAsString
Returns the assertion value to be compared decoded as a UTF-8 string.- Returns:
- The assertion value decoded as a UTF-8 string.
-
getAttributeDescription
Returns the name of the attribute to be compared.- Returns:
- The name of the attribute.
-
getName
Returns the distinguished name of the entry to be compared. The server shall not dereference any aliases in locating the entry to be compared.- Returns:
- The distinguished name of the entry.
-
setAssertionValue
Sets the assertion value to be compared.If the assertion value is not an instance of
ByteString
then it will be converted using theByteString.valueOfObject(Object)
method.- Parameters:
value
- The assertion value to be compared.- Returns:
- This compare request.
- Throws:
UnsupportedOperationException
- If this compare request does not permit the assertion value to be set.NullPointerException
- Ifvalue
wasnull
.
-
setAttributeDescription
Sets the name of the attribute to be compared.- Parameters:
attributeDescription
- The name of the attribute to be compared.- Returns:
- This compare request.
- Throws:
UnsupportedOperationException
- If this compare request does not permit the attribute description to be set.NullPointerException
- IfattributeDescription
wasnull
.
-
setAttributeDescription
Sets the name of the attribute to be compared.- Parameters:
attributeDescription
- The name of the attribute to be compared.- Returns:
- This compare request.
- Throws:
LocalizedIllegalArgumentException
- IfattributeDescription
could not be decoded using the default schema.UnsupportedOperationException
- If this compare request does not permit the attribute description to be set.NullPointerException
- IfattributeDescription
wasnull
.
-
setName
Sets the distinguished name of the entry to be compared. The server shall not dereference any aliases in locating the entry to be compared.- Parameters:
dn
- The distinguished name of the entry to be compared.- Returns:
- This compare request.
- Throws:
UnsupportedOperationException
- If this compare request does not permit the distinguished name to be set.NullPointerException
- Ifdn
wasnull
.
-
setName
Sets the distinguished name of the entry to be compared. The server shall not dereference any aliases in locating the entry to be compared.- Parameters:
dn
- The distinguished name of the entry to be compared.- Returns:
- This compare request.
- Throws:
LocalizedIllegalArgumentException
- Ifdn
could not be decoded using the default schema.UnsupportedOperationException
- If this compare request does not permit the distinguished name to be set.NullPointerException
- Ifdn
wasnull
.
-
getType
Description copied from interface:Request
Returns the type of this request to avoid expensiveinstanceof
checks. -
toString
-
addControl
Description copied from interface:ProtocolOp
Adds the provided control to this protocol-op.- Specified by:
addControl
in interfaceProtocolOp
- Parameters:
control
- The control to be added to this protocol-op.- Returns:
- This protocol-op.
-
addControls
Description copied from interface:ProtocolOp
Adds the provided controls to this protocol-op.- Specified by:
addControls
in interfaceProtocolOp
- Parameters:
controls
- The controls to be added to this protocol-op.- Returns:
- This protocol-op.
-
removeControls
Description copied from interface:ProtocolOp
Removes all the controls having the specified OID.- Specified by:
removeControls
in interfaceProtocolOp
- Parameters:
oid
- The numeric OID of the protocol-op control to remove.- Returns:
- This protocol-op.
-
containsControl
Description copied from interface:ProtocolOp
Returnstrue
if this protocol-op contains the specified control.- Specified by:
containsControl
in interfaceProtocolOp
- Parameters:
oid
- The numeric OID of the protocol-op control.- Returns:
true
if this protocol-op contains the specified control.
-
getControl
public final <C extends Control> C getControl(ControlDecoder<C> decoder, DecodeOptions options) throws DecodeException Description copied from interface:ProtocolOp
Decodes and returns the first control in this protocol-op having an OID corresponding to the provided control decoder.- Specified by:
getControl
in interfaceProtocolOp
- Type Parameters:
C
- The type of control to be decoded and returned.- Parameters:
decoder
- The control decoder.options
- The set of decode options which should be used when decoding the control.- Returns:
- The decoded control, or
null
if the control is not included with this protocol-op. - Throws:
DecodeException
- If the control could not be decoded because it was malformed in some way (e.g. the control value was missing, or its content could not be decoded).
-
getControls
Description copied from interface:ProtocolOp
Returns aList
containing the controls included with this protocol-op. The returnedList
may be modified if permitted by this protocol-op.- Specified by:
getControls
in interfaceProtocolOp
- Returns:
- A
List
containing the controls.
-