@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.