From 094f3cede311d8554aff0d4ce0a9c2bdaca49535 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 17 Mar 2014 09:54:42 +0000
Subject: [PATCH] OPENDJ-1368 Remove AttributeValue
---
opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVKeyComparator.java | 31 +++++++++++++++++++++++--------
1 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVKeyComparator.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVKeyComparator.java
index 35b4454..9b1926e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVKeyComparator.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVKeyComparator.java
@@ -26,13 +26,17 @@
*/
package org.opends.server.backends.jeb;
+import java.io.Serializable;
+import java.util.Comparator;
+
+import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.DecodeException;
+import org.forgerock.opendj.ldap.ResultCode;
+import org.opends.server.api.MatchingRule;
import org.opends.server.api.OrderingMatchingRule;
+import org.opends.server.types.AttributeType;
import org.opends.server.types.AttributeValue;
import org.opends.server.types.DirectoryException;
-import org.forgerock.opendj.ldap.ByteString;
-
-import java.util.Comparator;
-import java.io.Serializable;
import com.sleepycat.je.DatabaseException;
@@ -94,6 +98,7 @@
* order, or zero if there is no difference between the values with
* regard to ordering.
*/
+ @Override
public int compare(byte[] b1, byte[] b2)
{
// A 0 length byte array is a special key used for the unbound max
@@ -259,6 +264,7 @@
* @param index The index of the values in the set.
* @param entryID The entry ID to use in the comparasion.
* @param values The values to use in the comparasion.
+ * @param types The types of the values to use in the comparasion.
*
* @return A negative integer if the values in the set should come before
* the given values in ascending order, a positive integer if
@@ -272,9 +278,9 @@
* not acceptable for use with the
* associated equality matching rule).
*/
- public int compare(SortValuesSet set, int index,
- long entryID, AttributeValue[] values)
- throws DatabaseException, DirectoryException
+ public int compare(SortValuesSet set, int index, long entryID,
+ AttributeValue[] values, AttributeType[] types) throws DatabaseException,
+ DirectoryException
{
for (int j=0; j < orderingRules.length; j++)
{
@@ -288,7 +294,16 @@
if(values[j] != null)
{
- b2Bytes = values[j].getNormalizedValue();
+ try
+ {
+ final MatchingRule eqRule = types[j].getEqualityMatchingRule();
+ b2Bytes = eqRule.normalizeAttributeValue(values[j].getValue());
+ }
+ catch (DecodeException e)
+ {
+ throw new DirectoryException(
+ ResultCode.INVALID_ATTRIBUTE_SYNTAX, e.getMessageObject(), e);
+ }
}
// A null value will always come after a non-null value.
--
Gitblit v1.10.0