Interface Result

All Superinterfaces:
ProtocolOp, Response
All Known Subinterfaces:
BindResult, CompareResult, ExtendedResult, GenericExtendedResult, PasswordModifyExtendedResult, StartTlsExtendedResult, WhoAmIExtendedResult
All Known Implementing Classes:
AbstractExtendedResult

public interface Result extends Response
A Result is used to indicate the status of an operation performed by the server. A Result is comprised of several fields:
  • The result code can be retrieved using the method getResultCode(). This indicates the overall outcome of the operation. In particular, whether it succeeded which is indicated using a value of ResultCode.SUCCESS.
  • The optional diagnostic message can be retrieved using the method getDiagnosticMessage(). At the server's discretion, a diagnostic message may be included in a Result in order to supplement the result code with additional human-readable information.
  • The optional matched DN can be retrieved using the method getMatchedDn(). For certain result codes, this is used to indicate to the client the last entry used in finding the Request's target (or base) entry.
  • The optional referrals can be retrieved using the method getReferralUris(). Referrals are present in a Result if the result code is set to ResultCode.REFERRAL, and it are absent with all other result codes.
  • Method Details

    • addControl

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

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

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

      Result addReferralUri(String uri)
      Adds the provided referral URI to this result.
      Parameters:
      uri - The referral URI to be added.
      Returns:
      This result.
      Throws:
      UnsupportedOperationException - If this result does not permit referrals to be added.
      NullPointerException - If uri was null.
    • getCause

      Throwable getCause()
      Returns the throwable cause associated with this result if available. A cause may be provided in cases where a result indicates a failure due to a client-side error.
      Returns:
      The throwable cause, or null if none was provided.
    • getControl

      <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

      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.
    • getDiagnosticMessage

      LocalizableMessage getDiagnosticMessage()
      Returns the diagnostic message associated with this result.
      Returns:
      The diagnostic message, which may be empty if none was provided (never null).
    • getDiagnosticMessageAsString

      String getDiagnosticMessageAsString()
      Returns the diagnostic message associated with this result as a string.
      Returns:
      The diagnostic message, which may be empty if none was provided (never null).
    • getMatchedDn

      String getMatchedDn()
      Returns the matched DN associated with this result.
      Returns:
      The matched DN, which may be empty if none was provided (never null).
    • getReferralUris

      List<String> getReferralUris()
      Returns a List containing the referral URIs included with this result. The returned List may be modified if permitted by this result.
      Returns:
      A List containing the referral URIs.
    • getResultCode

      ResultCode getResultCode()
      Returns the result code associated with this result.
      Returns:
      The result code.
    • isReferral

      boolean isReferral()
      Indicates whether a referral needs to be chased in order to complete the operation.

      Specifically, this method returns true if the result code is equal to ResultCode.REFERRAL.

      Returns:
      true if a referral needs to be chased, otherwise false.
    • isSuccess

      boolean isSuccess()
      Indicates whether the request succeeded or not. This method will return {code true} for all non-error responses.
      Returns:
      true if the request succeeded, otherwise false.
    • setCause

      Result setCause(Throwable cause)
      Sets the throwable cause associated with this result if available. A cause may be provided in cases where a result indicates a failure due to a client-side error.
      Parameters:
      cause - The throwable cause, which may be null indicating that none was provided.
      Returns:
      This result.
      Throws:
      UnsupportedOperationException - If this result does not permit the cause to be set.
    • setDiagnosticMessage

      Result setDiagnosticMessage(CharSequence message)
      Sets the diagnostic message associated with this result.
      Parameters:
      message - The diagnostic message, which may be empty or null indicating that none was provided.
      Returns:
      This result.
      Throws:
      UnsupportedOperationException - If this result does not permit the diagnostic message to be set.
    • setMatchedDn

      Result setMatchedDn(String dn)
      Sets the matched DN associated with this result.
      Parameters:
      dn - The matched DN associated, which may be empty or null indicating that none was provided.
      Returns:
      This result.
      Throws:
      UnsupportedOperationException - If this result does not permit the matched DN to be set.
    • setMatchedDn

      Result setMatchedDn(Dn dn)
      Sets the matched DN associated with this result.
      Parameters:
      dn - The matched DN associated, which may be empty or null indicating that none was provided.
      Returns:
      This result.
      Throws:
      UnsupportedOperationException - If this result does not permit the matched DN to be set.
    • setResultCode

      Result setResultCode(ResultCode resultCode)
      Sets the result code associated with this result.
      Parameters:
      resultCode - The result code.
      Returns:
      This result.
      Throws:
      UnsupportedOperationException - If this result does not permit the result code to be set.
      NullPointerException - If resultCode was null.
    • copyFrom

      default Result copyFrom(Result result)
      Copies the result code, cause, diagnostic message, matched DN and referral URIs from the provided result to this result. It does not copy the LDAP controls.

      The current result code, cause, diagnostic message and matched DN will be overwritten, while the provided referral URIs will be added to the list of referral URIs.

      Parameters:
      result - The result from which to copy the attributes.
      Returns:
      This result.