Class UniquenessResponseControl

java.lang.Object
com.unboundid.ldap.sdk.Control
com.unboundid.ldap.sdk.unboundidds.controls.UniquenessResponseControl
All Implemented Interfaces:
DecodeableControl, Serializable

This class provides a response control that may be included in the response to add, modify, and modify DN requests that included the UniquenessRequestControl. It provides information about the uniqueness processing that was performed.
NOTE: This class, and other classes within the com.unboundid.ldap.sdk.unboundidds package structure, are only supported for use against Ping Identity, UnboundID, and Nokia/Alcatel-Lucent 8661 server products. These classes provide support for proprietary functionality or for external specifications that are not considered stable or mature enough to be guaranteed to work in an interoperable way with other types of LDAP servers.

The control has an OID of 1.3.6.1.4.1.30221.2.5.53 and a criticality of false. It must have a value with the following encoding:
   UniquenessResponseValue ::= SEQUENCE {
     uniquenessID                [0] OCTET STRING,
     preCommitValidationPassed   [1] BOOLEAN OPTIONAL,
     postCommitValidationPassed  [2] BOOLEAN OPTIONAL,
     validationMessage           [3] OCTET STRING OPTIONAL,
     ... }
 
See Also:
  • Field Details

  • Constructor Details

    • UniquenessResponseControl

      public UniquenessResponseControl(@NotNull String uniquenessID, @Nullable Boolean preCommitValidationPassed, @Nullable Boolean postCommitValidationPassed, @Nullable String validationMessage)
      Creates a new uniqueness response control with the provided information.
      Parameters:
      uniquenessID - The uniqueness ID that may be used to correlate this uniqueness response control with the corresponding request control. This must not be null.
      preCommitValidationPassed - Indicates whether the pre-commit validation was successful. This may be null if no pre-commit validation was attempted.
      postCommitValidationPassed - Indicates whether the post-commit validation was successful. This may be null if no post-commit validation was attempted.
      validationMessage - A message with additional information about the validation processing. This may be null if no validation message is needed.
    • UniquenessResponseControl

      public UniquenessResponseControl(@NotNull String oid, boolean isCritical, @Nullable ASN1OctetString value) throws LDAPException
      Creates a new uniqueness response control with the provided information.
      Parameters:
      oid - The OID for the control.
      isCritical - Indicates whether the control should be marked critical.
      value - The encoded value for the control. This may be null if no value was provided.
      Throws:
      LDAPException - If the provided control cannot be decoded as a uniqueness response control.
  • Method Details

    • decodeControl

      Creates a new instance of this decodeable control from the provided information.
      Specified by:
      decodeControl in interface DecodeableControl
      Parameters:
      oid - The OID for the control.
      isCritical - Indicates whether the control should be marked critical.
      value - The encoded value for the control. This may be null if no value was provided.
      Returns:
      The decoded representation of this control.
      Throws:
      LDAPException - If the provided information cannot be decoded as a valid instance of this decodeable control.
    • get

      Retrieves the set of uniqueness response controls included in the provided result.
      Parameters:
      result - The result to process.
      Returns:
      The set of uniqueness response controls included in the provided result, indexed by uniqueness ID. It may be empty if the result does not include any uniqueness response controls.
      Throws:
      LDAPException - If a problem is encountered while getting the set of uniqueness response controls contained in the provided result.
    • uniquenessConflictFound

      public boolean uniquenessConflictFound()
      Indicates whether a uniqueness conflict was found during processing.
      Returns:
      true if a uniqueness conflict was found during processing, or false if no conflict was found or if no validation was attempted.
    • getUniquenessID

      Retrieves the identifier that may be used to correlate this uniqueness response control with the corresponding request control. This is primarily useful for requests that contain multiple uniqueness controls, as there may be a separate response control for each.
      Returns:
      The identifier that may be used to correlate this uniqueness response control with the corresponding request control.
    • getPreCommitValidationResult

      Retrieves the result of the server's pre-commit validation processing. The same information can be inferred from the getPreCommitValidationPassed() method, but this method may provide a more intuitive result and does not have the possibility of a null return value.
      Returns:
      UniquenessValidationResult.VALIDATION_PASSED if the server did not find any conflicting entries during the pre-commit check, UniquenessValidationResult.VALIDATION_FAILED if the server found at least one conflicting entry during the pre-commit check, or UniquenessValidationResult.VALIDATION_NOT_ATTEMPTED if the server did not attempt any pre-commit validation.
    • getPreCommitValidationPassed

      Retrieves a value that indicates whether pre-commit validation was attempted, and whether that validation passed. Note that this method is still supported and is not deprecated at this time, but the getPreCommitValidationResult() is now the recommended way to get this information.
      Returns:
      Boolean.TRUE if pre-commit validation was attempted and passed, Boolean.FALSE if pre-commit validation was attempted and did not pass, or null if pre-commit validation was not attempted.
    • getPostCommitValidationResult

      Retrieves the result of the server's post-commit validation processing. The same information can be inferred from the getPostCommitValidationPassed() method, but this method may provide a more intuitive result and does not have the possibility of a null return value.
      Returns:
      UniquenessValidationResult.VALIDATION_PASSED if the server did not find any conflicting entries during the post-commit check, UniquenessValidationResult.VALIDATION_FAILED if the server found at least one conflicting entry during the post-commit check, or UniquenessValidationResult.VALIDATION_NOT_ATTEMPTED if the server did not attempt any post-commit validation.
    • getPostCommitValidationPassed

      Retrieves a value that indicates whether post-commit validation was attempted, and whether that validation passed.
      Returns:
      Boolean.TRUE if post-commit validation was attempted and passed, Boolean.FALSE if post-commit validation was attempted and did not pass, or null if post-commit validation was not attempted.
    • getValidationMessage

      Retrieves a message with additional information about the validation processing that was performed.
      Returns:
      A message with additional information about the validation processing that was performed, or null if no validation message is available.
    • getControlName

      Retrieves the user-friendly name for this control, if available. If no user-friendly name has been defined, then the OID will be returned.
      Overrides:
      getControlName in class Control
      Returns:
      The user-friendly name for this control, or the OID if no user-friendly name is available.
    • toJSONControl

      Retrieves a representation of this uniqueness response control as a JSON object. The JSON object uses the following fields:
      • oid -- A mandatory string field whose value is the object identifier for this control. For the uniqueness response control, the OID is "1.3.6.1.4.1.30221.2.5.53".
      • control-name -- An optional string field whose value is a human-readable name for this control. This field is only intended for descriptive purposes, and when decoding a control, the oid field should be used to identify the type of control.
      • criticality -- A mandatory Boolean field used to indicate whether this control is considered critical.
      • value-base64 -- An optional string field whose value is a base64-encoded representation of the raw value for this uniqueness response control. Exactly one of the value-base64 and value-json fields must be present.
      • value-json -- An optional JSON object field whose value is a user-friendly representation of the value for this uniqueness response control. Exactly one of the value-base64 and value-json fields must be present, and if the value-json field is used, then it will use the following fields:
        • uniqueness-id -- A string field whose value is the uniqueness ID from the uniqueness request control with which this response control is associated.
        • pre-commit-validation-passed -- An optional Boolean field that indicates whether pre-commit validation passed without identifying any conflicts.
        • post-commit-validation-passed -- An optional Boolean field that indicates whether post-commit validation passed without identifying any conflicts.
        • validation-message -- An optional String field whose value is a message with additional information about the uniqueness processing.
      Overrides:
      toJSONControl in class Control
      Returns:
      A JSON object that contains a representation of this control.
    • decodeJSONControl

      @NotNull public static UniquenessResponseControl decodeJSONControl(@NotNull JSONObject controlObject, boolean strict) throws LDAPException
      Attempts to decode the provided object as a JSON representation of a uniqueness response control.
      Parameters:
      controlObject - The JSON object to be decoded. It must not be null.
      strict - Indicates whether to use strict mode when decoding the provided JSON object. If this is true, then this method will throw an exception if the provided JSON object contains any unrecognized fields. If this is false, then unrecognized fields will be ignored.
      Returns:
      The uniqueness response control that was decoded from the provided JSON object.
      Throws:
      LDAPException - If the provided JSON object cannot be parsed as a valid uniqueness response control.
    • toString

      public void toString(@NotNull StringBuilder buffer)
      Appends a string representation of this LDAP control to the provided buffer.
      Overrides:
      toString in class Control
      Parameters:
      buffer - The buffer to which to append the string representation of this buffer.