Class JSONFormattedResponseControl
java.lang.Object
com.unboundid.ldap.sdk.Control
com.unboundid.ldap.sdk.unboundidds.controls.JSONFormattedResponseControl
- All Implemented Interfaces:
DecodeableControl,Serializable
@NotMutable
@ThreadSafety(level=COMPLETELY_THREADSAFE)
public final class JSONFormattedResponseControl
extends Control
implements DecodeableControl
This class provides an implementation of a response control that may be used
to encapsulate a set of one or more other controls represented as JSON
objects.
This control has an OID of 1.3.6.1.4.1.30221.2.5.65, and it takes a value that must be a JSON object that contains a single field,
As with all response controls, the criticality for JSON-formatted response controls should be
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.
This control has an OID of 1.3.6.1.4.1.30221.2.5.65, and it takes a value that must be a JSON object that contains a single field,
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.
As with all response controls, the criticality for JSON-formatted response controls should be
false.- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe OID (1.3.6.1.4.1.30221.2.5.64) for the JSON-formatted response control. -
Constructor Summary
ConstructorsConstructorDescriptionJSONFormattedResponseControl(String oid, boolean isCritical, ASN1OctetString value) Creates a new instance of this control that is decoded from the provided generic control information. -
Method Summary
Modifier and TypeMethodDescriptionstatic JSONFormattedResponseControlcreateWithControlObjects(JSONObject... controlObjects) Creates a newJSONFormattedResponseControlwith the provided set of embedded JSON objects.static JSONFormattedResponseControlcreateWithControlObjects(Collection<JSONObject> controlObjects) Creates a newJSONFormattedResponseControlwith the provided set of embedded JSON objects.static JSONFormattedResponseControlcreateWithControls(Control... controls) Creates a newJSONFormattedResponseControlwith the provided set of embedded controls.static JSONFormattedResponseControlcreateWithControls(Collection<Control> controls) Creates a newJSONFormattedResponseControlwith the provided set of embedded controls.decodeControl(String oid, boolean isCritical, ASN1OctetString value) Creates a new instance of this decodeable control from the provided information.decodeEmbeddedControls(JSONFormattedControlDecodeBehavior behavior, List<String> nonFatalDecodeMessages) Attempts to retrieve a decoded representation of the embedded response controls using the specified behavior.static JSONFormattedResponseControldecodeJSONControl(JSONObject controlObject, boolean strict) Attempts to decode the provided object as a JSON representation of a JSON-formatted response control.static JSONFormattedResponseControlget(IntermediateResponse response) Extracts a JSON-formatted control from the provided intermediate response.static JSONFormattedResponseControlget(LDAPResult result) Extracts a JSON-formatted control from the provided LDAP result.static JSONFormattedResponseControlget(SearchResultEntry entry) Extracts a JSON-formatted control from the provided search result entry.static JSONFormattedResponseControlget(SearchResultReference reference) Extracts a JSON-formatted control from the provided search result reference.Retrieves the user-friendly name for this control, if available.Retrieves a list of the JSON objects that represent the embedded response controls.Retrieves a representation of this JSON-formatted response control as a JSON object.voidtoString(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 Details
-
JSON_FORMATTED_RESPONSE_OID
The OID (1.3.6.1.4.1.30221.2.5.64) for the JSON-formatted response control.- See Also:
-
-
Constructor Details
-
JSONFormattedResponseControl
public JSONFormattedResponseControl(@NotNull String oid, boolean isCritical, @Nullable ASN1OctetString value) throws LDAPException Creates a new instance of this control that is decoded from the provided generic control information. generic control. Note that if the provided control has a value, it will be validated to ensure that it is a JSON object containing only acontrolsfield 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.- Parameters:
oid- The OID for the control. It must not benull.isCritical- Indicates whether the control is considered critical.value- The value for this control. It should not benullbecause this control requires a value, and an exception will be thrown if the given value isnull.- Throws:
LDAPException- If a problem is encountered while attempting to decode the provided information as a JSON-formatted response control.
-
-
Method Details
-
createWithControls
@NotNull public static JSONFormattedResponseControl createWithControls(@NotNull Control... controls) Creates a newJSONFormattedResponseControlwith the provided set of embedded controls.- Parameters:
controls- The collection of controls to embed within this response. This must not benullor empty.- Returns:
- The
JSONFormattedResponseControlthat was created.
-
createWithControls
@NotNull public static JSONFormattedResponseControl createWithControls(@NotNull Collection<Control> controls) Creates a newJSONFormattedResponseControlwith the provided set of embedded controls.- Parameters:
controls- The collection of controls to embed within this response control. This must not benullor empty.- Returns:
- The
JSONFormattedResponseControlthat was created.
-
createWithControlObjects
@NotNull public static JSONFormattedResponseControl createWithControlObjects(@Nullable JSONObject... controlObjects) Creates a newJSONFormattedResponseControlwith the provided set of embedded JSON objects.- Parameters:
controlObjects- The collection of JSON objects that represent the encoded controls to embed within this response control. This must not benullor empty. Note that no attempt will be made to validate the JSON objects as controls.- Returns:
- The
JSONFormattedResponseControlthat was created.
-
createWithControlObjects
@NotNull public static JSONFormattedResponseControl createWithControlObjects(@NotNull Collection<JSONObject> controlObjects) Creates a newJSONFormattedResponseControlwith the provided set of embedded JSON objects.- Parameters:
controlObjects- The collection of JSON objects that represent the encoded controls to embed within this response control. This must not benullor empty. Note that no attempt will be made to validate the JSON objects as controls.- Returns:
- The
JSONFormattedResponseControlthat was created.
-
decodeControl
@NotNull public JSONFormattedResponseControl decodeControl(@NotNull String oid, boolean isCritical, @Nullable ASN1OctetString value) throws LDAPException Creates a new instance of this decodeable control from the provided information.- Specified by:
decodeControlin 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 benullif 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.
-
getControlObjects
Retrieves a list of the JSON objects that represent the embedded response controls. These JSON objects may not have been validated to ensure that they represent valid controls.- Returns:
- A list of the JSON objects that represent the embedded response controls.
-
decodeEmbeddedControls
@NotNull public List<Control> decodeEmbeddedControls(@NotNull JSONFormattedControlDecodeBehavior behavior, @Nullable List<String> nonFatalDecodeMessages) throws LDAPException Attempts to retrieve a decoded representation of the embedded response controls using the specified behavior.- Parameters:
behavior- The behavior to use when parsing JSON objects as controls. It must not benull.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 benullif no such messages are desired. If it is non-null, then the list must be updatable.- Returns:
- A decoded representation of the embedded response controls, or an empty list if none of the embedded JSON objects can be parsed as valid controls but that should not result in an exception as per the provided behavior.
- Throws:
LDAPException- If any of the JSON objects cannot be parsed as a valid control
-
get
@Nullable public static JSONFormattedResponseControl get(@NotNull LDAPResult result) throws LDAPException Extracts a JSON-formatted control from the provided LDAP result.- Parameters:
result- The LDAP result from which to retrieve the JSON-formatted response control.- Returns:
- The JSON-formatted response control contained in the provided
LDAP result, or
nullif the result did not contain a JSON-formatted response control. - Throws:
LDAPException- If a problem is encountered while attempting to decode the JSON-formatted response control contained in the provided LDAP result.
-
get
@Nullable public static JSONFormattedResponseControl get(@NotNull SearchResultEntry entry) throws LDAPException Extracts a JSON-formatted control from the provided search result entry.- Parameters:
entry- The search result entry from which to retrieve the JSON-formatted response control.- Returns:
- The JSON-formatted response control contained in the provided
search result entry, or
nullif the entry did not contain a JSON-formatted response control. - Throws:
LDAPException- If a problem is encountered while attempting to decode the JSON-formatted response control contained in the provided search result entry.
-
get
@Nullable public static JSONFormattedResponseControl get(@NotNull SearchResultReference reference) throws LDAPException Extracts a JSON-formatted control from the provided search result reference.- Parameters:
reference- The search result reference from which to retrieve the JSON-formatted response control.- Returns:
- The JSON-formatted response control contained in the provided
search result reference, or
nullif the reference did not contain a JSON-formatted response control. - Throws:
LDAPException- If a problem is encountered while attempting to decode the JSON-formatted response control contained in the provided search result reference.
-
get
@Nullable public static JSONFormattedResponseControl get(@NotNull IntermediateResponse response) throws LDAPException Extracts a JSON-formatted control from the provided intermediate response.- Parameters:
response- The intermediate response from which to retrieve the JSON-formatted response control.- Returns:
- The JSON-formatted response control contained in the provided
intermediate response, or
nullif the response did not contain a JSON-formatted response control. - Throws:
LDAPException- If a problem is encountered while attempting to decode the JSON-formatted response control contained in the provided intermediate response.
-
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:
getControlNamein classControl- Returns:
- The user-friendly name for this control, or the OID if no user-friendly name is available.
-
toJSONControl
Retrieves a representation of this JSON-formatted 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 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, theoidfield 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 thevalue-base64andvalue-jsonfields 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 thevalue-base64andvalue-jsonfields must be present, and if thevalue-jsonfield 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.
-
- Overrides:
toJSONControlin classControl- Returns:
- A JSON object that contains a representation of this control.
-
-
decodeJSONControl
@NotNull public static JSONFormattedResponseControl decodeJSONControl(@NotNull JSONObject controlObject, boolean strict) throws LDAPException Attempts to decode the provided object as a JSON representation of a JSON-formatted 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 JSON-formatted response control that was decoded from the provided JSON object.
- Throws:
LDAPException- If the provided JSON object cannot be parsed as a valid JSON-formatted response control.
-
toString
Appends a string representation of this LDAP control to the provided buffer.
-