use of com.unboundid.ldap.sdk.unboundidds.controls.NoOpRequestControl in project ldapsdk by pingidentity.
the class LDAPPasswordModify method getUpdateControls.
/**
* Retrieves the controls that should be included in the password update
* request.
*
* @return The controls that should be included in the password update
* request, or an empty array if no controls should be included.
*
* @throws LDAPException If a problem occurs while trying to create any of
* the controls.
*/
@NotNull()
private Control[] getUpdateControls() throws LDAPException {
final List<Control> controls = new ArrayList<>();
if (updateControl.isPresent()) {
controls.addAll(updateControl.getValues());
}
if (usePasswordPolicyControlOnUpdate.isPresent()) {
controls.add(new PasswordPolicyRequestControl());
}
if (noOperation.isPresent()) {
controls.add(new NoOpRequestControl());
}
if (getPasswordValidationDetails.isPresent()) {
controls.add(new PasswordValidationDetailsRequestControl());
}
if (retireCurrentPassword.isPresent()) {
controls.add(new RetirePasswordRequestControl(false));
}
if (purgeCurrentPassword.isPresent()) {
controls.add(new PurgePasswordRequestControl(false));
}
if (passwordUpdateBehavior.isPresent()) {
controls.add(LDAPModify.createPasswordUpdateBehaviorRequestControl(passwordUpdateBehavior.getIdentifierString(), passwordUpdateBehavior.getValues()));
}
if (operationPurpose.isPresent()) {
controls.add(new OperationPurposeRequestControl(false, getToolName(), getToolVersion(), LDAPPasswordModify.class.getName() + ".getUpdateControls", operationPurpose.getValue()));
}
if (useAssuredReplication.isPresent()) {
AssuredReplicationLocalLevel localLevel = null;
if (assuredReplicationLocalLevel.isPresent()) {
final String level = assuredReplicationLocalLevel.getValue();
if (level.equalsIgnoreCase(ASSURED_REPLICATION_LOCAL_LEVEL_NONE)) {
localLevel = AssuredReplicationLocalLevel.NONE;
} else if (level.equalsIgnoreCase(ASSURED_REPLICATION_LOCAL_LEVEL_RECEIVED_ANY_SERVER)) {
localLevel = AssuredReplicationLocalLevel.RECEIVED_ANY_SERVER;
} else if (level.equalsIgnoreCase(ASSURED_REPLICATION_LOCAL_LEVEL_PROCESSED_ALL_SERVERS)) {
localLevel = AssuredReplicationLocalLevel.PROCESSED_ALL_SERVERS;
}
}
AssuredReplicationRemoteLevel remoteLevel = null;
if (assuredReplicationRemoteLevel.isPresent()) {
final String level = assuredReplicationRemoteLevel.getValue();
if (level.equalsIgnoreCase(ASSURED_REPLICATION_REMOTE_LEVEL_NONE)) {
remoteLevel = AssuredReplicationRemoteLevel.NONE;
} else if (level.equalsIgnoreCase(ASSURED_REPLICATION_REMOTE_LEVEL_RECEIVED_ANY_REMOTE_LOCATION)) {
remoteLevel = AssuredReplicationRemoteLevel.RECEIVED_ANY_REMOTE_LOCATION;
} else if (level.equalsIgnoreCase(ASSURED_REPLICATION_REMOTE_LEVEL_RECEIVED_ALL_REMOTE_LOCATIONS)) {
remoteLevel = AssuredReplicationRemoteLevel.RECEIVED_ALL_REMOTE_LOCATIONS;
} else if (level.equalsIgnoreCase(ASSURED_REPLICATION_REMOTE_LEVEL_PROCESSED_ALL_REMOTE_SERVERS)) {
remoteLevel = AssuredReplicationRemoteLevel.PROCESSED_ALL_REMOTE_SERVERS;
}
}
Long timeoutMillis = null;
if (assuredReplicationTimeout.isPresent()) {
timeoutMillis = assuredReplicationTimeout.getValue(TimeUnit.MILLISECONDS);
}
controls.add(new AssuredReplicationRequestControl(true, localLevel, localLevel, remoteLevel, remoteLevel, timeoutMillis, false));
}
return controls.toArray(StaticUtils.NO_CONTROLS);
}
use of com.unboundid.ldap.sdk.unboundidds.controls.NoOpRequestControl in project ldapsdk by pingidentity.
the class CollectSupportData method doExtendedOperationProcessing.
/**
* Performs the collect-support-data processing against a remote server using
* the extended operation.
*
* @return A result code that indicates the result of the processing.
*/
@NotNull()
private ResultCode doExtendedOperationProcessing() {
// Create a connection pool that will be used to communicate with the
// server. Use an administrative session if appropriate.
final StartAdministrativeSessionPostConnectProcessor p;
if (useAdministrativeSessionArg.isPresent()) {
p = new StartAdministrativeSessionPostConnectProcessor(new StartAdministrativeSessionExtendedRequest(getToolName(), true));
} else {
p = null;
}
final LDAPConnectionPool pool;
try {
pool = getConnectionPool(1, 1, 0, p, null, true, new ReportBindResultLDAPConnectionPoolHealthCheck(this, true, false));
} catch (final LDAPException e) {
Debug.debugException(e);
wrapErr(0, WRAP_COLUMN, e.getMessage());
toolCompletionMessage.set(e.getMessage());
return e.getResultCode();
}
try {
// Create the properties to use for the extended request.
final CollectSupportDataExtendedRequestProperties properties = new CollectSupportDataExtendedRequestProperties();
final File outputPath = outputPathArg.getValue();
if (outputPath != null) {
if (!(outputPath.exists() && outputPath.isDirectory())) {
properties.setArchiveFileName(outputPath.getName());
}
}
try {
properties.setEncryptionPassphrase(getEncryptionPassphraseForExtOpProcessing());
} catch (final LDAPException e) {
Debug.debugException(e);
wrapErr(0, WRAP_COLUMN, e.getMessage());
toolCompletionMessage.set(e.getMessage());
return e.getResultCode();
}
properties.setIncludeExpensiveData(collectExpensiveDataArg.isPresent());
properties.setIncludeReplicationStateDump(collectReplicationStateDumpArg.isPresent());
properties.setIncludeBinaryFiles(includeBinaryFilesArg.isPresent());
properties.setIncludeExtensionSource(archiveExtensionSourceArg.isPresent());
properties.setUseSequentialMode(sequentialArg.isPresent());
if (securityLevelArg.isPresent()) {
properties.setSecurityLevel(CollectSupportDataSecurityLevel.forName(securityLevelArg.getValue()));
}
if (jstackCountArg.isPresent()) {
properties.setJStackCount(jstackCountArg.getValue());
}
if (reportCountArg.isPresent()) {
properties.setReportCount(reportCountArg.getValue());
}
if (reportIntervalSecondsArg.isPresent()) {
properties.setReportIntervalSeconds(reportIntervalSecondsArg.getValue());
}
if (logTimeRangeArg.isPresent()) {
try {
final ObjectPair<Date, Date> timeRange = parseTimeRange(logTimeRangeArg.getValue(), true);
properties.setLogCaptureWindow(new TimeWindowCollectSupportDataLogCaptureWindow(timeRange.getFirst(), timeRange.getSecond()));
} catch (final LDAPException e) {
// This should never happen because we should have pre-validated the
// value. But handle it just in case.
Debug.debugException(e);
wrapErr(0, WRAP_COLUMN, e.getMessage());
toolCompletionMessage.set(e.getMessage());
return e.getResultCode();
}
} else if (logDurationArg.isPresent()) {
properties.setLogCaptureWindow(new DurationCollectSupportDataLogCaptureWindow(logDurationArg.getValue(TimeUnit.MILLISECONDS)));
} else if (logFileHeadCollectionSizeKBArg.isPresent() || logFileTailCollectionSizeKBArg.isPresent()) {
properties.setLogCaptureWindow(new HeadAndTailSizeCollectSupportDataLogCaptureWindow(logFileHeadCollectionSizeKBArg.getValue(), logFileTailCollectionSizeKBArg.getValue()));
}
if (commentArg.isPresent()) {
properties.setComment(commentArg.getValue());
}
if (proxyToServerAddressArg.isPresent()) {
properties.setProxyToServer(proxyToServerAddressArg.getValue(), proxyToServerPortArg.getValue());
}
// Create the intermediate response listener that will be used to handle
// output and archive fragment messages.
ResultCode resultCode = null;
try (CollectSupportDataIRListener listener = new CollectSupportDataIRListener(this, outputPathArg.getValue())) {
// Construct the extended request to send to the server.
final Control[] controls;
if (dryRunArg.isPresent()) {
controls = new Control[] { new NoOpRequestControl() };
} else {
controls = StaticUtils.NO_CONTROLS;
}
final CollectSupportDataExtendedRequest request = new CollectSupportDataExtendedRequest(properties, listener, controls);
request.setResponseTimeoutMillis(0L);
// Send the request and read the result.
final CollectSupportDataExtendedResult result;
try {
result = (CollectSupportDataExtendedResult) pool.processExtendedOperation(request);
} catch (final LDAPException e) {
Debug.debugException(e);
final String message = ERR_CSD_ERROR_SENDING_REQUEST.get(StaticUtils.getExceptionMessage(e));
wrapErr(0, WRAP_COLUMN, message);
toolCompletionMessage.set(message);
return e.getResultCode();
}
resultCode = result.getResultCode();
final String diagnosticMessage = result.getDiagnosticMessage();
if (diagnosticMessage != null) {
if ((resultCode == ResultCode.SUCCESS) || (resultCode == ResultCode.NO_OPERATION)) {
wrapOut(0, WRAP_COLUMN, diagnosticMessage);
} else {
wrapErr(0, WRAP_COLUMN, diagnosticMessage);
}
toolCompletionMessage.set(diagnosticMessage);
} else {
toolCompletionMessage.set(INFO_CSD_COMPLETED_WITH_RESULT_CODE.get(String.valueOf(resultCode)));
}
} catch (final IOException e) {
Debug.debugException(e);
if (resultCode == ResultCode.SUCCESS) {
resultCode = ResultCode.LOCAL_ERROR;
toolCompletionMessage.set(e.getMessage());
}
}
return resultCode;
} finally {
pool.close();
}
}
use of com.unboundid.ldap.sdk.unboundidds.controls.NoOpRequestControl in project ldapsdk by pingidentity.
the class LDAPDelete method getDeleteControls.
/**
* Retrieves the set of controls that should be included in delete requests.
*
* @return The set of controls that should be included in delete requests.
*/
@NotNull()
private List<Control> getDeleteControls() {
final List<Control> controlList = new ArrayList<>(10);
if (deleteControl.isPresent()) {
controlList.addAll(deleteControl.getValues());
}
controlList.addAll(routeToBackendSetRequestControls);
if (serverSideSubtreeDelete.isPresent()) {
controlList.add(new SubtreeDeleteRequestControl(true));
}
if (softDelete.isPresent()) {
controlList.add(new SoftDeleteRequestControl(true, true));
}
if (hardDelete.isPresent() && (!clientSideSubtreeDelete.isPresent())) {
controlList.add(new HardDeleteRequestControl(true));
}
if (proxyAs.isPresent()) {
controlList.add(new ProxiedAuthorizationV2RequestControl(proxyAs.getValue()));
}
if (proxyV1As.isPresent()) {
controlList.add(new ProxiedAuthorizationV1RequestControl(proxyV1As.getValue().toString()));
}
if (manageDsaIT.isPresent() && (!clientSideSubtreeDelete.isPresent())) {
controlList.add(new ManageDsaITRequestControl(true));
}
if (assertionFilter.isPresent()) {
controlList.add(new AssertionRequestControl(assertionFilter.getValue(), true));
}
if (preReadAttribute.isPresent()) {
controlList.add(new PreReadRequestControl(true, preReadAttribute.getValues().toArray(StaticUtils.NO_STRINGS)));
}
if (noOperation.isPresent()) {
controlList.add(new NoOpRequestControl());
}
if (getBackendSetID.isPresent()) {
controlList.add(new GetBackendSetIDRequestControl(true));
}
if (getServerID.isPresent()) {
controlList.add(new GetServerIDRequestControl(true));
}
if (routeToServer.isPresent()) {
controlList.add(new RouteToServerRequestControl(true, routeToServer.getValue(), false, false, false));
}
if (useAssuredReplication.isPresent()) {
AssuredReplicationLocalLevel localLevel = null;
if (assuredReplicationLocalLevel.isPresent()) {
final String level = assuredReplicationLocalLevel.getValue();
if (level.equalsIgnoreCase("none")) {
localLevel = AssuredReplicationLocalLevel.NONE;
} else if (level.equalsIgnoreCase("received-any-server")) {
localLevel = AssuredReplicationLocalLevel.RECEIVED_ANY_SERVER;
} else if (level.equalsIgnoreCase("processed-all-servers")) {
localLevel = AssuredReplicationLocalLevel.PROCESSED_ALL_SERVERS;
}
}
AssuredReplicationRemoteLevel remoteLevel = null;
if (assuredReplicationRemoteLevel.isPresent()) {
final String level = assuredReplicationRemoteLevel.getValue();
if (level.equalsIgnoreCase("none")) {
remoteLevel = AssuredReplicationRemoteLevel.NONE;
} else if (level.equalsIgnoreCase("received-any-remote-location")) {
remoteLevel = AssuredReplicationRemoteLevel.RECEIVED_ANY_REMOTE_LOCATION;
} else if (level.equalsIgnoreCase("received-all-remote-locations")) {
remoteLevel = AssuredReplicationRemoteLevel.RECEIVED_ALL_REMOTE_LOCATIONS;
} else if (level.equalsIgnoreCase("processed-all-remote-servers")) {
remoteLevel = AssuredReplicationRemoteLevel.PROCESSED_ALL_REMOTE_SERVERS;
}
}
Long timeoutMillis = null;
if (assuredReplicationTimeout.isPresent()) {
timeoutMillis = assuredReplicationTimeout.getValue(TimeUnit.MILLISECONDS);
}
final AssuredReplicationRequestControl c = new AssuredReplicationRequestControl(true, localLevel, localLevel, remoteLevel, remoteLevel, timeoutMillis, false);
controlList.add(c);
}
if (replicationRepair.isPresent()) {
controlList.add(new ReplicationRepairRequestControl());
}
if (suppressReferentialIntegrityUpdates.isPresent()) {
controlList.add(new SuppressReferentialIntegrityUpdatesRequestControl(true));
}
if (operationPurpose.isPresent()) {
controlList.add(new OperationPurposeRequestControl(true, "ldapdelete", Version.NUMERIC_VERSION_STRING, LDAPDelete.class.getName() + ".getDeleteControls", operationPurpose.getValue()));
}
return Collections.unmodifiableList(controlList);
}
use of com.unboundid.ldap.sdk.unboundidds.controls.NoOpRequestControl in project ldapsdk by pingidentity.
the class LDAPModify method createRequestControls.
/**
* Populates lists of request controls that should be included in requests
* of various types.
*
* @param addControls The list of controls to include in add requests.
* @param deleteControls The list of controls to include in delete
* requests.
* @param modifyControls The list of controls to include in modify
* requests.
* @param modifyDNControls The list of controls to include in modify DN
* requests.
* @param searchControls The list of controls to include in search
* requests.
*
* @throws LDAPException If a problem is encountered while creating any of
* the requested controls.
*/
private void createRequestControls(@NotNull final List<Control> addControls, @NotNull final List<Control> deleteControls, @NotNull final List<Control> modifyControls, @NotNull final List<Control> modifyDNControls, @NotNull final List<Control> searchControls) throws LDAPException {
if (addControl.isPresent()) {
addControls.addAll(addControl.getValues());
}
if (deleteControl.isPresent()) {
deleteControls.addAll(deleteControl.getValues());
}
if (modifyControl.isPresent()) {
modifyControls.addAll(modifyControl.getValues());
}
if (modifyDNControl.isPresent()) {
modifyDNControls.addAll(modifyDNControl.getValues());
}
if (operationControl.isPresent()) {
addControls.addAll(operationControl.getValues());
deleteControls.addAll(operationControl.getValues());
modifyControls.addAll(operationControl.getValues());
modifyDNControls.addAll(operationControl.getValues());
}
addControls.addAll(routeToBackendSetRequestControls);
deleteControls.addAll(routeToBackendSetRequestControls);
modifyControls.addAll(routeToBackendSetRequestControls);
modifyDNControls.addAll(routeToBackendSetRequestControls);
if (noOperation.isPresent()) {
final NoOpRequestControl c = new NoOpRequestControl();
addControls.add(c);
deleteControls.add(c);
modifyControls.add(c);
modifyDNControls.add(c);
}
if (generatePassword.isPresent()) {
addControls.add(new GeneratePasswordRequestControl());
}
if (getBackendSetID.isPresent()) {
final GetBackendSetIDRequestControl c = new GetBackendSetIDRequestControl(false);
addControls.add(c);
deleteControls.add(c);
modifyControls.add(c);
modifyDNControls.add(c);
}
if (getServerID.isPresent()) {
final GetServerIDRequestControl c = new GetServerIDRequestControl(false);
addControls.add(c);
deleteControls.add(c);
modifyControls.add(c);
modifyDNControls.add(c);
}
if (ignoreNoUserModification.isPresent()) {
addControls.add(new IgnoreNoUserModificationRequestControl(false));
modifyControls.add(new IgnoreNoUserModificationRequestControl(false));
}
if (nameWithEntryUUID.isPresent()) {
addControls.add(new NameWithEntryUUIDRequestControl(true));
}
if (permissiveModify.isPresent()) {
modifyControls.add(new PermissiveModifyRequestControl(false));
}
if (routeToServer.isPresent()) {
final RouteToServerRequestControl c = new RouteToServerRequestControl(false, routeToServer.getValue(), false, false, false);
addControls.add(c);
deleteControls.add(c);
modifyControls.add(c);
modifyDNControls.add(c);
}
if (suppressReferentialIntegrityUpdates.isPresent()) {
final SuppressReferentialIntegrityUpdatesRequestControl c = new SuppressReferentialIntegrityUpdatesRequestControl(true);
deleteControls.add(c);
modifyDNControls.add(c);
}
if (suppressOperationalAttributeUpdates.isPresent()) {
final EnumSet<SuppressType> suppressTypes = EnumSet.noneOf(SuppressType.class);
for (final String s : suppressOperationalAttributeUpdates.getValues()) {
if (s.equalsIgnoreCase("last-access-time")) {
suppressTypes.add(SuppressType.LAST_ACCESS_TIME);
} else if (s.equalsIgnoreCase("last-login-time")) {
suppressTypes.add(SuppressType.LAST_LOGIN_TIME);
} else if (s.equalsIgnoreCase("last-login-ip")) {
suppressTypes.add(SuppressType.LAST_LOGIN_IP);
} else if (s.equalsIgnoreCase("lastmod")) {
suppressTypes.add(SuppressType.LASTMOD);
}
}
final SuppressOperationalAttributeUpdateRequestControl c = new SuppressOperationalAttributeUpdateRequestControl(suppressTypes);
addControls.add(c);
deleteControls.add(c);
modifyControls.add(c);
modifyDNControls.add(c);
}
if (usePasswordPolicyControl.isPresent()) {
final PasswordPolicyRequestControl c = new PasswordPolicyRequestControl();
addControls.add(c);
modifyControls.add(c);
}
if (assuredReplication.isPresent()) {
AssuredReplicationLocalLevel localLevel = null;
if (assuredReplicationLocalLevel.isPresent()) {
final String level = assuredReplicationLocalLevel.getValue();
if (level.equalsIgnoreCase("none")) {
localLevel = AssuredReplicationLocalLevel.NONE;
} else if (level.equalsIgnoreCase("received-any-server")) {
localLevel = AssuredReplicationLocalLevel.RECEIVED_ANY_SERVER;
} else if (level.equalsIgnoreCase("processed-all-servers")) {
localLevel = AssuredReplicationLocalLevel.PROCESSED_ALL_SERVERS;
}
}
AssuredReplicationRemoteLevel remoteLevel = null;
if (assuredReplicationRemoteLevel.isPresent()) {
final String level = assuredReplicationRemoteLevel.getValue();
if (level.equalsIgnoreCase("none")) {
remoteLevel = AssuredReplicationRemoteLevel.NONE;
} else if (level.equalsIgnoreCase("received-any-remote-location")) {
remoteLevel = AssuredReplicationRemoteLevel.RECEIVED_ANY_REMOTE_LOCATION;
} else if (level.equalsIgnoreCase("received-all-remote-locations")) {
remoteLevel = AssuredReplicationRemoteLevel.RECEIVED_ALL_REMOTE_LOCATIONS;
} else if (level.equalsIgnoreCase("processed-all-remote-servers")) {
remoteLevel = AssuredReplicationRemoteLevel.PROCESSED_ALL_REMOTE_SERVERS;
}
}
Long timeoutMillis = null;
if (assuredReplicationTimeout.isPresent()) {
timeoutMillis = assuredReplicationTimeout.getValue(TimeUnit.MILLISECONDS);
}
final AssuredReplicationRequestControl c = new AssuredReplicationRequestControl(true, localLevel, localLevel, remoteLevel, remoteLevel, timeoutMillis, false);
addControls.add(c);
deleteControls.add(c);
modifyControls.add(c);
modifyDNControls.add(c);
}
if (hardDelete.isPresent() && (!clientSideSubtreeDelete.isPresent())) {
deleteControls.add(new HardDeleteRequestControl(true));
}
if (replicationRepair.isPresent()) {
final ReplicationRepairRequestControl c = new ReplicationRepairRequestControl();
addControls.add(c);
deleteControls.add(c);
modifyControls.add(c);
modifyDNControls.add(c);
}
if (softDelete.isPresent()) {
deleteControls.add(new SoftDeleteRequestControl(true, true));
}
if (serverSideSubtreeDelete.isPresent()) {
deleteControls.add(new SubtreeDeleteRequestControl());
}
if (assertionFilter.isPresent()) {
final AssertionRequestControl c = new AssertionRequestControl(assertionFilter.getValue(), true);
addControls.add(c);
deleteControls.add(c);
modifyControls.add(c);
modifyDNControls.add(c);
}
if (operationPurpose.isPresent()) {
final OperationPurposeRequestControl c = new OperationPurposeRequestControl(false, "ldapmodify", Version.NUMERIC_VERSION_STRING, LDAPModify.class.getName() + ".createRequestControls", operationPurpose.getValue());
addControls.add(c);
deleteControls.add(c);
modifyControls.add(c);
modifyDNControls.add(c);
}
if (manageDsaIT.isPresent()) {
final ManageDsaITRequestControl c = new ManageDsaITRequestControl(true);
addControls.add(c);
if (!clientSideSubtreeDelete.isPresent()) {
deleteControls.add(c);
}
modifyControls.add(c);
modifyDNControls.add(c);
}
if (passwordUpdateBehavior.isPresent()) {
final PasswordUpdateBehaviorRequestControl c = createPasswordUpdateBehaviorRequestControl(passwordUpdateBehavior.getIdentifierString(), passwordUpdateBehavior.getValues());
addControls.add(c);
modifyControls.add(c);
}
if (preReadAttribute.isPresent()) {
final ArrayList<String> attrList = new ArrayList<>(10);
for (final String value : preReadAttribute.getValues()) {
final StringTokenizer tokenizer = new StringTokenizer(value, ", ");
while (tokenizer.hasMoreTokens()) {
attrList.add(tokenizer.nextToken());
}
}
final String[] attrArray = attrList.toArray(StaticUtils.NO_STRINGS);
final PreReadRequestControl c = new PreReadRequestControl(attrArray);
deleteControls.add(c);
modifyControls.add(c);
modifyDNControls.add(c);
}
if (postReadAttribute.isPresent()) {
final ArrayList<String> attrList = new ArrayList<>(10);
for (final String value : postReadAttribute.getValues()) {
final StringTokenizer tokenizer = new StringTokenizer(value, ", ");
while (tokenizer.hasMoreTokens()) {
attrList.add(tokenizer.nextToken());
}
}
final String[] attrArray = attrList.toArray(StaticUtils.NO_STRINGS);
final PostReadRequestControl c = new PostReadRequestControl(attrArray);
addControls.add(c);
modifyControls.add(c);
modifyDNControls.add(c);
}
if (proxyAs.isPresent() && (!useTransaction.isPresent()) && (!multiUpdateErrorBehavior.isPresent())) {
final ProxiedAuthorizationV2RequestControl c = new ProxiedAuthorizationV2RequestControl(proxyAs.getValue());
addControls.add(c);
deleteControls.add(c);
modifyControls.add(c);
modifyDNControls.add(c);
searchControls.add(c);
}
if (proxyV1As.isPresent() && (!useTransaction.isPresent()) && (!multiUpdateErrorBehavior.isPresent())) {
final ProxiedAuthorizationV1RequestControl c = new ProxiedAuthorizationV1RequestControl(proxyV1As.getValue());
addControls.add(c);
deleteControls.add(c);
modifyControls.add(c);
modifyDNControls.add(c);
searchControls.add(c);
}
if (uniquenessAttribute.isPresent() || uniquenessFilter.isPresent()) {
final UniquenessRequestControlProperties uniquenessProperties;
if (uniquenessAttribute.isPresent()) {
uniquenessProperties = new UniquenessRequestControlProperties(uniquenessAttribute.getValues());
if (uniquenessFilter.isPresent()) {
uniquenessProperties.setFilter(uniquenessFilter.getValue());
}
} else {
uniquenessProperties = new UniquenessRequestControlProperties(uniquenessFilter.getValue());
}
if (uniquenessBaseDN.isPresent()) {
uniquenessProperties.setBaseDN(uniquenessBaseDN.getStringValue());
}
if (uniquenessMultipleAttributeBehavior.isPresent()) {
final String value = uniquenessMultipleAttributeBehavior.getValue().toLowerCase();
switch(value) {
case "unique-within-each-attribute":
uniquenessProperties.setMultipleAttributeBehavior(UniquenessMultipleAttributeBehavior.UNIQUE_WITHIN_EACH_ATTRIBUTE);
break;
case "unique-across-all-attributes-including-in-same-entry":
uniquenessProperties.setMultipleAttributeBehavior(UniquenessMultipleAttributeBehavior.UNIQUE_ACROSS_ALL_ATTRIBUTES_INCLUDING_IN_SAME_ENTRY);
break;
case "unique-across-all-attributes-except-in-same-entry":
uniquenessProperties.setMultipleAttributeBehavior(UniquenessMultipleAttributeBehavior.UNIQUE_ACROSS_ALL_ATTRIBUTES_EXCEPT_IN_SAME_ENTRY);
break;
case "unique-in-combination":
uniquenessProperties.setMultipleAttributeBehavior(UniquenessMultipleAttributeBehavior.UNIQUE_IN_COMBINATION);
break;
}
}
if (uniquenessPreCommitValidationLevel.isPresent()) {
final String value = uniquenessPreCommitValidationLevel.getValue().toLowerCase();
switch(value) {
case "none":
uniquenessProperties.setPreCommitValidationLevel(UniquenessValidationLevel.NONE);
break;
case "all-subtree-views":
uniquenessProperties.setPreCommitValidationLevel(UniquenessValidationLevel.ALL_SUBTREE_VIEWS);
break;
case "all-backend-sets":
uniquenessProperties.setPreCommitValidationLevel(UniquenessValidationLevel.ALL_BACKEND_SETS);
break;
case "all-available-backend-servers":
uniquenessProperties.setPreCommitValidationLevel(UniquenessValidationLevel.ALL_AVAILABLE_BACKEND_SERVERS);
break;
}
}
if (uniquenessPostCommitValidationLevel.isPresent()) {
final String value = uniquenessPostCommitValidationLevel.getValue().toLowerCase();
switch(value) {
case "none":
uniquenessProperties.setPostCommitValidationLevel(UniquenessValidationLevel.NONE);
break;
case "all-subtree-views":
uniquenessProperties.setPostCommitValidationLevel(UniquenessValidationLevel.ALL_SUBTREE_VIEWS);
break;
case "all-backend-sets":
uniquenessProperties.setPostCommitValidationLevel(UniquenessValidationLevel.ALL_BACKEND_SETS);
break;
case "all-available-backend-servers":
uniquenessProperties.setPostCommitValidationLevel(UniquenessValidationLevel.ALL_AVAILABLE_BACKEND_SERVERS);
break;
}
}
final UniquenessRequestControl c = new UniquenessRequestControl(true, null, uniquenessProperties);
addControls.add(c);
modifyControls.add(c);
modifyDNControls.add(c);
}
}
Aggregations