|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.unboundid.ldap.sdk.Control
com.unboundid.ldap.sdk.controls.PermissiveModifyRequestControl
@NotMutable @ThreadSafety(level=COMPLETELY_THREADSAFE) public final class PermissiveModifyRequestControl
This class provides an implementation of the permissive modify request
control, which is supported by a number of servers and may be included in a
modify request to indicate that the server should not reject a modify
request which attempts to add an attribute value which already exists or
remove an attribute value which does not exist. Normally, such modification
attempts would be rejected.
The OID for this control is "1.2.840.113556.1.4.1413". It does not have a
value.
// 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(); }
Field Summary | |
---|---|
static java.lang.String |
PERMISSIVE_MODIFY_REQUEST_OID
The OID (1.2.840.113556.1.4.1413) for the permissive modify request control. |
Constructor Summary | |
---|---|
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. |
Method Summary | |
---|---|
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. |
Methods inherited from class com.unboundid.ldap.sdk.Control |
---|
decode, decode, decodeControls, deregisterDecodeableControl, encode, encodeControls, equals, getOID, getValue, hashCode, hasValue, isCritical, readFrom, registerDecodeableControl, toString, writeTo |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String PERMISSIVE_MODIFY_REQUEST_OID
Constructor Detail |
---|
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.Method Detail |
---|
public java.lang.String getControlName()
getControlName
in class Control
public void toString(java.lang.StringBuilder buffer)
toString
in class Control
buffer
- The buffer to which to append the string representation of
this buffer.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |