Package com.unboundid.ldap.sdk.controls
Class PreReadResponseControl
- java.lang.Object
-
- com.unboundid.ldap.sdk.Control
-
- com.unboundid.ldap.sdk.controls.PreReadResponseControl
-
- All Implemented Interfaces:
DecodeableControl
,java.io.Serializable
@NotMutable @ThreadSafety(level=COMPLETELY_THREADSAFE) public final class PreReadResponseControl extends Control implements DecodeableControl
This class provides an implementation of the LDAP pre-read response control as defined in RFC 4527. It may be used to return a copy of the target entry immediately before processing a delete, modify, or modify DN operation.
If the corresponding delete, modify, or modify DN request included thePreReadRequestControl
and the operation was successful, then the response for that operation should include the pre-read response control with a read-only copy of the entry as it appeared immediately before processing the request. If the operation was not successful, then the pre-read response control will not be returned.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
PRE_READ_RESPONSE_OID
The OID (1.3.6.1.1.13.1) for the pre-read response control.
-
Constructor Summary
Constructors Constructor Description PreReadResponseControl(ReadOnlyEntry entry)
Creates a new pre-read response control including the provided entry.PreReadResponseControl(java.lang.String oid, boolean isCritical, ASN1OctetString value)
Creates a new pre-read response control with the provided information.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description PreReadResponseControl
decodeControl(java.lang.String oid, boolean isCritical, ASN1OctetString value)
Creates a new instance of this decodeable control from the provided information.static PreReadResponseControl
decodeJSONControl(JSONObject controlObject, boolean strict)
Attempts to decode the provided object as a JSON representation of a pre-read response control.static PreReadResponseControl
get(LDAPResult result)
Extracts a pre-read response control from the provided result.java.lang.String
getControlName()
Retrieves the user-friendly name for this control, if available.ReadOnlyEntry
getEntry()
Retrieves a read-only copy of the entry returned by this post-read response control.JSONObject
toJSONControl()
Retrieves a representation of this pre-read response control as a JSON object.void
toString(java.lang.StringBuilder buffer)
Appends a string representation of this LDAP control to the provided buffer.-
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
-
PRE_READ_RESPONSE_OID
@NotNull public static final java.lang.String PRE_READ_RESPONSE_OID
The OID (1.3.6.1.1.13.1) for the pre-read response control.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
PreReadResponseControl
public PreReadResponseControl(@NotNull ReadOnlyEntry entry)
Creates a new pre-read response control including the provided entry.- Parameters:
entry
- The entry to include in this pre-read response control. It must not benull
.
-
PreReadResponseControl
public PreReadResponseControl(@NotNull java.lang.String oid, boolean isCritical, @Nullable ASN1OctetString value) throws LDAPException
Creates a new pre-read 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 pre-read response control.
-
-
Method Detail
-
decodeControl
@NotNull public PreReadResponseControl 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
@Nullable public static PreReadResponseControl get(@NotNull LDAPResult result) throws LDAPException
Extracts a pre-read response control from the provided result.- Parameters:
result
- The result from which to retrieve the pre-read response control.- Returns:
- The pre-read response control contained in the provided result, or
null
if the result did not contain a pre-read response control. - Throws:
LDAPException
- If a problem is encountered while attempting to decode the pre-read response control contained in the provided result.
-
getEntry
@NotNull public ReadOnlyEntry getEntry()
Retrieves a read-only copy of the entry returned by this post-read response control.- Returns:
- A read-only copy of the entry returned by this post-read response control.
-
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 pre-read 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 pre-read response control, the OID is "1.3.6.1.1.13.1". -
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 pre-read 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 pre-read response control. Exactly one of thevalue-base64
andvalue-json
fields must be present, and if thevalue-json
field is used, it must include a "_dn
" field whose value is the DN of the entry, and all other fields will have a name that is the name of an LDAP attribute in the entry and a value that is an array containing the string representations of the values for that attribute.
- Overrides:
toJSONControl
in classControl
- Returns:
- A JSON object that contains a representation of this control.
-
-
decodeJSONControl
@NotNull public static PreReadResponseControl decodeJSONControl(@NotNull JSONObject controlObject, boolean strict) throws LDAPException
Attempts to decode the provided object as a JSON representation of a pre-read 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 pre-read response control that was decoded from the provided JSON object.
- Throws:
LDAPException
- If the provided JSON object cannot be parsed as a valid pre-read response control.
-
-