Class UniquenessResponseControl
- java.lang.Object
-
- com.unboundid.ldap.sdk.Control
-
- com.unboundid.ldap.sdk.unboundidds.controls.UniquenessResponseControl
-
- All Implemented Interfaces:
DecodeableControl
,java.io.Serializable
@NotMutable @ThreadSafety(level=COMPLETELY_THREADSAFE) public final class UniquenessResponseControl extends Control implements DecodeableControl
This class provides a response control that may be included in the response to add, modify, and modify DN requests that included theUniquenessRequestControl
. 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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
UNIQUENESS_RESPONSE_OID
The OID (1.3.6.1.4.1.30221.2.5.53) for the uniqueness response control.
-
Constructor Summary
Constructors Constructor Description UniquenessResponseControl(java.lang.String oid, boolean isCritical, ASN1OctetString value)
Creates a new uniqueness response control with the provided information.UniquenessResponseControl(java.lang.String uniquenessID, java.lang.Boolean preCommitValidationPassed, java.lang.Boolean postCommitValidationPassed, java.lang.String validationMessage)
Creates a new uniqueness response control with the provided information.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description UniquenessResponseControl
decodeControl(java.lang.String oid, boolean isCritical, ASN1OctetString value)
Creates a new instance of this decodeable control from the provided information.static UniquenessResponseControl
decodeJSONControl(JSONObject controlObject, boolean strict)
Attempts to decode the provided object as a JSON representation of a uniqueness response control.static java.util.Map<java.lang.String,UniquenessResponseControl>
get(LDAPResult result)
Retrieves the set of uniqueness response controls included in the provided result.java.lang.String
getControlName()
Retrieves the user-friendly name for this control, if available.java.lang.Boolean
getPostCommitValidationPassed()
Retrieves a value that indicates whether post-commit validation was attempted, and whether that validation passed.UniquenessValidationResult
getPostCommitValidationResult()
Retrieves the result of the server's post-commit validation processing.java.lang.Boolean
getPreCommitValidationPassed()
Retrieves a value that indicates whether pre-commit validation was attempted, and whether that validation passed.UniquenessValidationResult
getPreCommitValidationResult()
Retrieves the result of the server's pre-commit validation processing.java.lang.String
getUniquenessID()
Retrieves the identifier that may be used to correlate this uniqueness response control with the corresponding request control.java.lang.String
getValidationMessage()
Retrieves a message with additional information about the validation processing that was performed.JSONObject
toJSONControl()
Retrieves a representation of this uniqueness response control as a JSON object.void
toString(java.lang.StringBuilder buffer)
Appends a string representation of this LDAP control to the provided buffer.boolean
uniquenessConflictFound()
Indicates whether a uniqueness conflict was found during processing.-
Methods inherited from class com.unboundid.ldap.sdk.Control
decode, decode, decodeControls, decodeJSONControl, deregisterDecodeableControl, encode, encodeControls, equals, getOID, getValue, hashCode, hasValue, isCritical, readFrom, registerDecodeableControl, registerDecodeableControl, toString, writeTo
-
-
-
-
Field Detail
-
UNIQUENESS_RESPONSE_OID
@NotNull public static final java.lang.String UNIQUENESS_RESPONSE_OID
The OID (1.3.6.1.4.1.30221.2.5.53) for the uniqueness response control.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
UniquenessResponseControl
public UniquenessResponseControl(@NotNull java.lang.String uniquenessID, @Nullable java.lang.Boolean preCommitValidationPassed, @Nullable java.lang.Boolean postCommitValidationPassed, @Nullable java.lang.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 benull
.preCommitValidationPassed
- Indicates whether the pre-commit validation was successful. This may benull
if no pre-commit validation was attempted.postCommitValidationPassed
- Indicates whether the post-commit validation was successful. This may benull
if no post-commit validation was attempted.validationMessage
- A message with additional information about the validation processing. This may benull
if no validation message is needed.
-
UniquenessResponseControl
public UniquenessResponseControl(@NotNull java.lang.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 benull
if no value was provided.- Throws:
LDAPException
- If the provided control cannot be decoded as a uniqueness response control.
-
-
Method Detail
-
decodeControl
@NotNull public UniquenessResponseControl decodeControl(@NotNull java.lang.String oid, boolean isCritical, @Nullable ASN1OctetString value) throws LDAPException
Creates a new instance of this decodeable control from the provided information.- Specified by:
decodeControl
in interfaceDecodeableControl
- 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 benull
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
@NotNull public static java.util.Map<java.lang.String,UniquenessResponseControl> get(@NotNull LDAPResult result) throws LDAPException
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, orfalse
if no conflict was found or if no validation was attempted.
-
getUniquenessID
@NotNull public java.lang.String 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
@NotNull public UniquenessValidationResult getPreCommitValidationResult()
Retrieves the result of the server's pre-commit validation processing. The same information can be inferred from thegetPreCommitValidationPassed()
method, but this method may provide a more intuitive result and does not have the possibility of anull
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, orUniquenessValidationResult.VALIDATION_NOT_ATTEMPTED
if the server did not attempt any pre-commit validation.
-
getPreCommitValidationPassed
@Nullable public java.lang.Boolean 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 thegetPreCommitValidationResult()
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, ornull
if pre-commit validation was not attempted.
-
getPostCommitValidationResult
@NotNull public UniquenessValidationResult getPostCommitValidationResult()
Retrieves the result of the server's post-commit validation processing. The same information can be inferred from thegetPostCommitValidationPassed()
method, but this method may provide a more intuitive result and does not have the possibility of anull
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, orUniquenessValidationResult.VALIDATION_NOT_ATTEMPTED
if the server did not attempt any post-commit validation.
-
getPostCommitValidationPassed
@Nullable public java.lang.Boolean 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, ornull
if post-commit validation was not attempted.
-
getValidationMessage
@Nullable public java.lang.String 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
@NotNull public java.lang.String 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 classControl
- Returns:
- The user-friendly name for this control, or the OID if no user-friendly name is available.
-
toJSONControl
@NotNull public JSONObject 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, theoid
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 thevalue-base64
andvalue-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 thevalue-base64
andvalue-json
fields must be present, and if thevalue-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 classControl
- 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 benull
.strict
- Indicates whether to use strict mode when decoding the provided JSON object. If this istrue
, then this method will throw an exception if the provided JSON object contains any unrecognized fields. If this isfalse
, 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.
-
-