@NotMutable @ThreadSafety(level=COMPLETELY_THREADSAFE) public final class PermissiveModifyRequestControl extends Control
// Ensure that we start with a known description value in the test entry
// by using a replace to overwrite any existing value(s).
ModifyRequest replaceRequest = new ModifyRequest(
"uid=test.user,ou=People,dc=example,dc=com",
new Modification(ModificationType.REPLACE, "description", "value"));
LDAPResult replaceResult = connection.modify(replaceRequest);
// Create a modify request that will attempt to add the value that already
// exists. If we attempt to do this without the permissive modify control,
// the attempt should fail.
ModifyRequest addExistingValueRequest = new ModifyRequest(
"uid=test.user,ou=People,dc=example,dc=com",
new Modification(ModificationType.ADD, "description", "value"));
LDAPResult addExistingValueResultWithoutControl;
try
{
addExistingValueResultWithoutControl =
connection.modify(addExistingValueRequest);
// We shouldn't get here because the attempt to add the existing value
// should fail.
}
catch (LDAPException le)
{
// We expected this failure because the value we're trying to add already
// exists in the entry.
addExistingValueResultWithoutControl = le.toLDAPResult();
ResultCode resultCode = le.getResultCode();
String errorMessageFromServer = le.getDiagnosticMessage();
}
// Update the modify request to include the permissive modify request
// control, and re-send the request. The operation should now succeed.
addExistingValueRequest.addControl(new PermissiveModifyRequestControl());
LDAPResult addExistingValueResultWithControl;
try
{
addExistingValueResultWithControl =
connection.modify(addExistingValueRequest);
// If we've gotten here, then the modification was successful.
}
catch (LDAPException le)
{
// If we've gotten here, then the modification failed for some reason.
addExistingValueResultWithControl = le.toLDAPResult();
ResultCode resultCode = le.getResultCode();
String errorMessageFromServer = le.getDiagnosticMessage();
}
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
PERMISSIVE_MODIFY_REQUEST_OID
The OID (1.2.840.113556.1.4.1413) for the permissive modify request
control.
|
| Constructor and Description |
|---|
PermissiveModifyRequestControl()
Creates a new permissive modify request control.
|
PermissiveModifyRequestControl(boolean isCritical)
Creates a new permissive modify request control.
|
PermissiveModifyRequestControl(Control control)
Creates a new permissive modify request control which is decoded from the
provided generic control.
|
| Modifier and Type | Method and Description |
|---|---|
static PermissiveModifyRequestControl |
decodeJSONControl(JSONObject controlObject,
boolean strict)
Attempts to decode the provided object as a JSON representation of a
permissive modify request control.
|
java.lang.String |
getControlName()
Retrieves the user-friendly name for this control, if available.
|
JSONObject |
toJSONControl()
Retrieves a representation of this permissive modify 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 PERMISSIVE_MODIFY_REQUEST_OID
public PermissiveModifyRequestControl()
public PermissiveModifyRequestControl(boolean isCritical)
isCritical - Indicates whether the control should be marked
critical.public PermissiveModifyRequestControl(@NotNull Control control) throws LDAPException
control - The generic control to be decoded as a permissive modify
request control.LDAPException - If the provided control cannot be decoded as a
permissive modify request control.@NotNull public java.lang.String getControlName()
getControlName in class Control@NotNull public JSONObject toJSONControl()
value-base64 nor
value-json fields may be present):
oid -- A mandatory string field whose value is the object
identifier for this control. For the permissive modify request
control, the OID is "1.2.840.113556.1.4.1413".
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.
toJSONControl in class Control@NotNull public static PermissiveModifyRequestControl 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 permissive modify request control.