@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 |
---|---|
java.lang.String |
getControlName()
Retrieves the user-friendly name for this control, if available.
|
void |
toString(java.lang.StringBuilder buffer)
Appends a string representation of this LDAP control to the provided
buffer.
|
decode, decode, decodeControls, deregisterDecodeableControl, encode, encodeControls, equals, getOID, getValue, hashCode, hasValue, isCritical, readFrom, registerDecodeableControl, toString, writeTo
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(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.public java.lang.String getControlName()
getControlName
in class Control