@NotMutable @ThreadSafety(level=COMPLETELY_THREADSAFE) public final class JSONFormattedRequestControl extends Control
JSONFormattedResponseControl
.
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.
JSONFormattedResponseControl
. If the control has a value, then that
value should be a JSON object that contains a single field,
controls
, whose value is an array of the JSON representations of the
request controls that should be sent to 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.
true
, especially
if it embeds any controls with a criticality of true
. Any controls
embedded in the value of this control will be processed by the server with
the criticality of that embedded control.JSONFormattedResponseControl
,
Serialized FormModifier and Type | Field and Description |
---|---|
static java.lang.String |
JSON_FORMATTED_REQUEST_OID
The OID (1.3.6.1.4.1.30221.2.5.64) for the JSON-formatted request control.
|
Constructor and Description |
---|
JSONFormattedRequestControl(Control control)
Creates a new instance of this control that is decoded from the provided
generic control.
|
Modifier and Type | Method and Description |
---|---|
static JSONFormattedRequestControl |
createEmptyControl(boolean isCritical)
Creates a new
JSONFormattedRequestControl without any embedded
controls. |
static JSONFormattedRequestControl |
createWithControlObjects(boolean isCritical,
java.util.Collection<JSONObject> controlObjects)
Creates a new
JSONFormattedRequestControl with the provided set of
embedded JSON objects. |
static JSONFormattedRequestControl |
createWithControlObjects(boolean isCritical,
JSONObject... controlObjects)
Creates a new
JSONFormattedRequestControl with the provided set of
embedded JSON objects. |
static JSONFormattedRequestControl |
createWithControls(boolean isCritical,
java.util.Collection<Control> controls)
Creates a new
JSONFormattedRequestControl with the provided set of
embedded controls. |
static JSONFormattedRequestControl |
createWithControls(boolean isCritical,
Control... controls)
Creates a new
JSONFormattedRequestControl with the provided set of
embedded controls. |
java.util.List<Control> |
decodeEmbeddedControls(JSONFormattedControlDecodeBehavior behavior,
java.util.List<java.lang.String> nonFatalDecodeMessages)
Attempts to retrieve a decoded representation of the embedded request
controls using the specified behavior.
|
static JSONFormattedRequestControl |
decodeJSONControl(JSONObject controlObject,
boolean strict)
Attempts to decode the provided object as a JSON representation of a
JSON-formatted request control.
|
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 request
controls.
|
JSONObject |
toJSONControl()
Retrieves a representation of this JSON-formatted request 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_REQUEST_OID
public JSONFormattedRequestControl(@NotNull Control control) 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.control
- The control to decode as a JSON-formatted request control.LDAPException
- If a problem is encountered while attempting to
decode the provided control as a JSON-formatted
request control.@NotNull public static JSONFormattedRequestControl createEmptyControl(boolean isCritical)
JSONFormattedRequestControl
without any embedded
controls. This may be used to indicate that no request controls are
needed, but the server should return any response controls in a
JSONFormattedResponseControl
.isCritical
- Indicates whether this control should be considered
critical.JSONFormattedRequestControl
that was created.@NotNull public static JSONFormattedRequestControl createWithControls(boolean isCritical, @Nullable Control... controls)
JSONFormattedRequestControl
with the provided set of
embedded controls.isCritical
- Indicates whether the control should be considered
critical. This should generally be true
,
although it is acceptable for it to be false
if
there are no embedded controls, or if all of the
embedded controls have a criticality of false
.controls
- The collection of controls to embed within this
request control. This may be null
or empty if
the request should not have any embedded controls.JSONFormattedRequestControl
that was created.@NotNull public static JSONFormattedRequestControl createWithControls(boolean isCritical, @Nullable java.util.Collection<Control> controls)
JSONFormattedRequestControl
with the provided set of
embedded controls.isCritical
- Indicates whether the control should be considered
critical. This should generally be true
,
although it is acceptable for it to be false
if
there are no embedded controls, or if all of the
embedded controls have a criticality of false
.controls
- The collection of controls to embed within this
request control. This may be null
or empty if
the request should not have any embedded controls.JSONFormattedRequestControl
that was created.@NotNull public static JSONFormattedRequestControl createWithControlObjects(boolean isCritical, @Nullable JSONObject... controlObjects)
JSONFormattedRequestControl
with the provided set of
embedded JSON objects.isCritical
- Indicates whether the control should be considered
critical. This should generally be true
,
although it is acceptable for it to be
false
if there are no embedded controls, or
if all of the embedded controls have a criticality
of false
.controlObjects
- The collection of JSON objects that represent the
encoded controls to embed within this request
control. This may be null
or empty if the
request should not have any embedded controls.
Note that no attempt will be made to validate the
JSON objects as controls.JSONFormattedRequestControl
that was created.@NotNull public static JSONFormattedRequestControl createWithControlObjects(boolean isCritical, @Nullable java.util.Collection<JSONObject> controlObjects)
JSONFormattedRequestControl
with the provided set of
embedded JSON objects.isCritical
- Indicates whether the control should be considered
critical. This should generally be true
,
although it is acceptable for it to be
false
if there are no embedded controls, or
if all of the embedded controls have a criticality
of false
.controlObjects
- The collection of JSON objects that represent the
encoded controls to embed within this request.
This may be null
or empty if the request
control should not have any embedded controls.
Note that no attempt will be made to validate the
JSON objects as controls.JSONFormattedRequestControl
that was created.@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@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 request control,
the OID is "1.3.6.1.4.1.30221.2.5.64".
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
request control. At most 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
request control. At most 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 mandatory 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 JSONFormattedRequestControl 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 request control.