From eaee3f6a42c1a129f07e2364a4c32c59b9e03e19 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 09 Feb 2016 15:22:22 +0000
Subject: [PATCH] Prep work for OPENDJ-1342: align APIs for RDNs
---
opendj-server-legacy/src/main/java/org/opends/server/plugins/UniqueAttributePlugin.java | 53 +++++++++++++++++++++--------------------------------
1 files changed, 21 insertions(+), 32 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/plugins/UniqueAttributePlugin.java b/opendj-server-legacy/src/main/java/org/opends/server/plugins/UniqueAttributePlugin.java
index 825b916..acd07bc 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/plugins/UniqueAttributePlugin.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/plugins/UniqueAttributePlugin.java
@@ -39,6 +39,7 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.config.server.ConfigChangeResult;
import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.AVA;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.SearchScope;
@@ -65,7 +66,6 @@
import org.opends.server.types.Entry;
import org.opends.server.types.IndexType;
import org.opends.server.types.Modification;
-import org.opends.server.types.RDN;
import org.opends.server.types.SearchFilter;
import org.opends.server.types.SearchResultEntry;
import org.opends.server.types.operation.PluginOperation;
@@ -253,9 +253,8 @@
{
Attribute a = m.getAttribute();
AttributeType t = a.getAttributeDescription().getAttributeType();
- if (! config.getType().contains(t))
+ if (!isModifyingUniqueAttribute(t, config))
{
- // This modification isn't for a unique attribute.
continue;
}
@@ -368,17 +367,15 @@
}
List<ByteString> recordedValues = new LinkedList<>();
- RDN newRDN = modifyDNOperation.getNewRDN();
- for (int i=0; i < newRDN.getNumValues(); i++)
+ for (AVA ava : modifyDNOperation.getNewRDN())
{
- AttributeType t = newRDN.getAttributeType(i);
- if (! config.getType().contains(t))
+ AttributeType t = ava.getAttributeType();
+ if (!isModifyingUniqueAttribute(t, config))
{
- // We aren't interested in this attribute type.
continue;
}
- ByteString v = newRDN.getAttributeValue(i);
+ ByteString v = ava.getAttributeValue();
DN entryDN = modifyDNOperation.getEntryDN();
PreOperation stop =
checkUniqueness(entryDN, t, v, baseDNs, recordedValues, config);
@@ -391,9 +388,11 @@
return PluginResult.PreOperation.continueOperationProcessing();
}
+ private boolean isModifyingUniqueAttribute(AttributeType t, UniqueAttributePluginCfg config)
+ {
+ return config.getType().contains(t);
+ }
-
- /** {@inheritDoc} */
@Override
public final void doPostSynchronization(
PostSynchronizationAddOperation addOperation)
@@ -442,9 +441,8 @@
{
Attribute a = m.getAttribute();
AttributeType t = a.getAttributeDescription().getAttributeType();
- if (! config.getType().contains(t))
+ if (!isModifyingUniqueAttribute(t, config))
{
- // This modification isn't for a unique attribute.
continue;
}
@@ -499,19 +497,14 @@
DN entryDN = modifyDNOperation.getEntryDN();
DN updatedEntryDN = modifyDNOperation.getUpdatedEntry().getName();
- RDN newRDN = modifyDNOperation.getNewRDN();
- for (int i=0; i < newRDN.getNumValues(); i++)
+ for (AVA ava : modifyDNOperation.getNewRDN())
{
- AttributeType t = newRDN.getAttributeType(i);
- if (! config.getType().contains(t))
+ AttributeType t = ava.getAttributeType();
+ if (isModifyingUniqueAttribute(t, config))
{
- // We aren't interested in this attribute type.
- continue;
+ ByteString v = ava.getAttributeValue();
+ sendAlertForUnresolvedConflict(modifyDNOperation, entryDN, updatedEntryDN, t, v, baseDNs, config);
}
-
- ByteString v = newRDN.getAttributeValue(i);
- sendAlertForUnresolvedConflict(modifyDNOperation, entryDN,
- updatedEntryDN, t, v, baseDNs, config);
}
}
@@ -830,9 +823,8 @@
{
Attribute a = m.getAttribute();
AttributeType t = a.getAttributeDescription().getAttributeType();
- if (! config.getType().contains(t))
+ if (!isModifyingUniqueAttribute(t, config))
{
- // This modification isn't for a unique attribute.
continue;
}
@@ -884,16 +876,13 @@
return PostOperation.continueOperationProcessing();
}
- RDN newRDN = modifyDNOperation.getNewRDN();
- for (int i=0; i < newRDN.getNumValues(); i++)
+ for (AVA ava : modifyDNOperation.getNewRDN())
{
- AttributeType t = newRDN.getAttributeType(i);
- if (! config.getType().contains(t))
+ AttributeType t = ava.getAttributeType();
+ if (isModifyingUniqueAttribute(t, config))
{
- // We aren't interested in this attribute type.
- continue;
+ uniqueAttrValue2Dn.remove(ava.getAttributeValue());
}
- uniqueAttrValue2Dn.remove(newRDN.getAttributeValue(i));
}
return PostOperation.continueOperationProcessing();
}
--
Gitblit v1.10.0