@NotMutable @ThreadSafety(level=COMPLETELY_THREADSAFE) public final class JSONFormattedResponseControl extends Control implements DecodeableControl
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.
controls
,
whose value is an array of the JSON representations of the response controls
returned by the server. The JSON representations of the controls is the one
generated by the Control.toJSONControl()
method, and is the one
expected by the Control.decodeJSONControl(com.unboundid.util.json.JSONObject, boolean, boolean)
method. In particular,
each control should have at least an oid
field that specifies the OID
for the control, and a criticality
field that indicates whether the
control is considered critical. If the control has a value, then either the
value-base64
field should be used to provide a base64-encoded
representation of the value, or the value-json
field should be used
to provide a JSON-formatted representation of the value for controls that
support it.
false
.JSONFormattedRequestControl
,
Serialized FormModifier and Type | Field and Description |
---|---|
static java.lang.String |
JSON_FORMATTED_RESPONSE_OID
The OID (1.3.6.1.4.1.30221.2.5.64) for the JSON-formatted response control.
|
Constructor and Description |
---|
JSONFormattedResponseControl(java.lang.String oid,
boolean isCritical,
ASN1OctetString value)
Creates a new instance of this control that is decoded from the provided
generic control information.
|
Modifier and Type | Method and Description |
---|---|
static JSONFormattedResponseControl |
createWithControlObjects(java.util.Collection<JSONObject> controlObjects)
Creates a new
JSONFormattedResponseControl with the provided set of
embedded JSON objects. |
static JSONFormattedResponseControl |
createWithControlObjects(JSONObject... controlObjects)
Creates a new
JSONFormattedResponseControl with the provided set of
embedded JSON objects. |
static JSONFormattedResponseControl |
createWithControls(java.util.Collection<Control> controls)
Creates a new
JSONFormattedResponseControl with the provided set of
embedded controls. |
static JSONFormattedResponseControl |
createWithControls(Control... controls)
Creates a new
JSONFormattedResponseControl with the provided set of
embedded controls. |
JSONFormattedResponseControl |
decodeControl(java.lang.String oid,
boolean isCritical,
ASN1OctetString value)
Creates a new instance of this decodeable control from the provided
information.
|
java.util.List<Control> |
decodeEmbeddedControls(JSONFormattedControlDecodeBehavior behavior,
java.util.List<java.lang.String> nonFatalDecodeMessages)
Attempts to retrieve a decoded representation of the embedded response
controls using the specified behavior.
|
static JSONFormattedResponseControl |
decodeJSONControl(JSONObject controlObject,
boolean strict)
Attempts to decode the provided object as a JSON representation of a
JSON-formatted response control.
|
static JSONFormattedResponseControl |
get(IntermediateResponse response)
Extracts a JSON-formatted control from the provided intermediate response.
|
static JSONFormattedResponseControl |
get(LDAPResult result)
Extracts a JSON-formatted control from the provided LDAP result.
|
static JSONFormattedResponseControl |
get(SearchResultEntry entry)
Extracts a JSON-formatted control from the provided search result entry.
|
static JSONFormattedResponseControl |
get(SearchResultReference reference)
Extracts a JSON-formatted control from the provided search result
reference.
|
java.lang.String |
getControlName()
Retrieves the user-friendly name for this control, if available.
|
java.util.List<JSONObject> |
getControlObjects()
Retrieves a list of the JSON objects that represent the embedded response
controls.
|
JSONObject |
toJSONControl()
Retrieves a representation of this JSON-formatted response control as a
JSON object.
|
void |
toString(java.lang.StringBuilder buffer)
Appends a string representation of this LDAP control to the provided
buffer.
|
decode, decode, decodeControls, decodeJSONControl, deregisterDecodeableControl, encode, encodeControls, equals, getOID, getValue, hashCode, hasValue, isCritical, readFrom, registerDecodeableControl, registerDecodeableControl, toString, writeTo
@NotNull public static final java.lang.String JSON_FORMATTED_RESPONSE_OID
public JSONFormattedResponseControl(@NotNull java.lang.String oid, boolean isCritical, @Nullable ASN1OctetString value) throws LDAPException
controls
field whose value is an array of JSON objects that appear
to be well-formed generic JSON controls, but it will not make any attempt
to validate in a control-specific manner.oid
- The OID for the control. It must not be null
.isCritical
- Indicates whether the control is considered critical.value
- The value for this control. It should not be
null
because this control requires a value, and
an exception will be thrown if the given value is
null
.LDAPException
- If a problem is encountered while attempting to
decode the provided information as a JSON-formatted
response control.@NotNull public static JSONFormattedResponseControl createWithControls(@NotNull Control... controls)
JSONFormattedResponseControl
with the provided set of
embedded controls.controls
- The collection of controls to embed within this
response. This must not be null
or empty.JSONFormattedResponseControl
that was created.@NotNull public static JSONFormattedResponseControl createWithControls(@NotNull java.util.Collection<Control> controls)
JSONFormattedResponseControl
with the provided set of
embedded controls.controls
- The collection of controls to embed within this
response control. This must not be null
or
empty.JSONFormattedResponseControl
that was created.@NotNull public static JSONFormattedResponseControl createWithControlObjects(@Nullable JSONObject... controlObjects)
JSONFormattedResponseControl
with the provided set of
embedded JSON objects.controlObjects
- The collection of JSON objects that represent the
encoded controls to embed within this response
control. This must not be null
or empty.
Note that no attempt will be made to validate the
JSON objects as controls.JSONFormattedResponseControl
that was created.@NotNull public static JSONFormattedResponseControl createWithControlObjects(@NotNull java.util.Collection<JSONObject> controlObjects)
JSONFormattedResponseControl
with the provided set of
embedded JSON objects.controlObjects
- The collection of JSON objects that represent the
encoded controls to embed within this response
control. This must not be null
or empty.
Note that no attempt will be made to validate the
JSON objects as controls.JSONFormattedResponseControl
that was created.@NotNull public JSONFormattedResponseControl decodeControl(@NotNull java.lang.String oid, boolean isCritical, @Nullable ASN1OctetString value) throws LDAPException
decodeControl
in interface DecodeableControl
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.LDAPException
- If the provided information cannot be decoded as a
valid instance of this decodeable control.@NotNull public java.util.List<JSONObject> getControlObjects()
@NotNull public java.util.List<Control> decodeEmbeddedControls(@NotNull JSONFormattedControlDecodeBehavior behavior, @Nullable java.util.List<java.lang.String> nonFatalDecodeMessages) throws LDAPException
behavior
- The behavior to use when parsing JSON
objects as controls. It must not be
null
.nonFatalDecodeMessages
- An optional list that may be updated with
messages about any JSON objects that could
not be parsed as valid controls, but that
should not result in an exception as per
the provided behavior. This may be
null
if no such messages are
desired. If it is non-null
, then
the list must be updatable.LDAPException
- If any of the JSON objects cannot be parsed as a
valid control@Nullable public static JSONFormattedResponseControl get(@NotNull LDAPResult result) throws LDAPException
result
- The LDAP result from which to retrieve the JSON-formatted
response control.null
if the result did not contain a
JSON-formatted response control.LDAPException
- If a problem is encountered while attempting to
decode the JSON-formatted response control
contained in the provided LDAP result.@Nullable public static JSONFormattedResponseControl get(@NotNull SearchResultEntry entry) throws LDAPException
entry
- The search result entry from which to retrieve the
JSON-formatted response control.null
if the entry did not contain
a JSON-formatted response control.LDAPException
- If a problem is encountered while attempting to
decode the JSON-formatted response control
contained in the provided search result entry.@Nullable public static JSONFormattedResponseControl get(@NotNull SearchResultReference reference) throws LDAPException
reference
- The search result reference from which to retrieve the
JSON-formatted response control.null
if the reference did not
contain a JSON-formatted response control.LDAPException
- If a problem is encountered while attempting to
decode the JSON-formatted response control
contained in the provided search result reference.@Nullable public static JSONFormattedResponseControl get(@NotNull IntermediateResponse response) throws LDAPException
response
- The intermediate response from which to retrieve the
JSON-formatted response control.null
if the response did not
contain a JSON-formatted response control.LDAPException
- If a problem is encountered while attempting to
decode the JSON-formatted response control
contained in the provided intermediate response.@NotNull public java.lang.String getControlName()
getControlName
in class Control
@NotNull public JSONObject toJSONControl()
oid
-- A mandatory string field whose value is the object
identifier for this control. For the JSON-formatted response control,
the OID is "1.3.6.1.4.1.30221.2.5.65".
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 JSON-formatted
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 JSON-formatted
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:
controls
-- An array field whose values are JSON objects
that represent the JSON-formatted request controls to send to the
server.
toJSONControl
in class Control
@NotNull public static JSONFormattedResponseControl decodeJSONControl(@NotNull JSONObject controlObject, boolean strict) throws LDAPException
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.LDAPException
- If the provided JSON object cannot be parsed as a
valid JSON-formatted response control.