Class CompareRequest

java.lang.Object
org.forgerock.opendj.ldap.messages.CompareRequest
All Implemented Interfaces:
ProtocolOp, Request

public final class CompareRequest extends Object implements 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.
 }
 
  • Method Details

    • accept

      public <R, P, E extends Exception> R accept(RequestVisitor<R,P,E> v, P p) throws E
      Description copied from interface: Request
      Applies a RequestVisitor to this Request.
      Specified by:
      accept in interface Request
      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, or NeverThrowsException 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

      public ByteString getAssertionValue()
      Returns the assertion value to be compared.
      Returns:
      The assertion value.
    • getAssertionValueAsString

      public String 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

      public AttributeDescription getAttributeDescription()
      Returns the name of the attribute to be compared.
      Returns:
      The name of the attribute.
    • getName

      public Dn 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

      public CompareRequest setAssertionValue(Object value)
      Sets the assertion value to be compared.

      If the assertion value is not an instance of ByteString then it will be converted using the ByteString.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 - If value was null.
    • setAttributeDescription

      public CompareRequest setAttributeDescription(AttributeDescription attributeDescription)
      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 - If attributeDescription was null.
    • setAttributeDescription

      public CompareRequest setAttributeDescription(String attributeDescription)
      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 - If attributeDescription could not be decoded using the default schema.
      UnsupportedOperationException - If this compare request does not permit the attribute description to be set.
      NullPointerException - If attributeDescription was null.
    • setName

      public CompareRequest setName(Dn dn)
      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 - If dn was null.
    • setName

      public CompareRequest setName(String dn)
      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 - If dn could not be decoded using the default schema.
      UnsupportedOperationException - If this compare request does not permit the distinguished name to be set.
      NullPointerException - If dn was null.
    • getType

      public Request.RequestType getType()
      Description copied from interface: Request
      Returns the type of this request to avoid expensive instanceof checks.
      Specified by:
      getType in interface Request
      Returns:
      the type of this request
    • toString

      public String toString()
    • addControl

      public final CompareRequest addControl(Control control)
      Description copied from interface: ProtocolOp
      Adds the provided control to this protocol-op.
      Specified by:
      addControl in interface ProtocolOp
      Parameters:
      control - The control to be added to this protocol-op.
      Returns:
      This protocol-op.
    • addControls

      public final CompareRequest addControls(Iterable<? extends Control> controls)
      Description copied from interface: ProtocolOp
      Adds the provided controls to this protocol-op.
      Specified by:
      addControls in interface ProtocolOp
      Parameters:
      controls - The controls to be added to this protocol-op.
      Returns:
      This protocol-op.
    • removeControls

      public final CompareRequest removeControls(String oid)
      Description copied from interface: ProtocolOp
      Removes all the controls having the specified OID.
      Specified by:
      removeControls in interface ProtocolOp
      Parameters:
      oid - The numeric OID of the protocol-op control to remove.
      Returns:
      This protocol-op.
    • containsControl

      public final boolean containsControl(String oid)
      Description copied from interface: ProtocolOp
      Returns true if this protocol-op contains the specified control.
      Specified by:
      containsControl in interface ProtocolOp
      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 interface ProtocolOp
      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

      public final List<Control> getControls()
      Description copied from interface: ProtocolOp
      Returns a List containing the controls included with this protocol-op. The returned List may be modified if permitted by this protocol-op.
      Specified by:
      getControls in interface ProtocolOp
      Returns:
      A List containing the controls.