From e28ddc3ed27d4352ddc7c476f4e5208b2eb27251 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 06 Mar 2014 23:25:34 +0000
Subject: [PATCH] OPENDJ-1308 Migrate schema support
---
opendj3-server-dev/src/server/org/opends/server/backends/jeb/ApproximateIndexer.java | 69 ++++++++++++++++------------------
1 files changed, 32 insertions(+), 37 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ApproximateIndexer.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ApproximateIndexer.java
index c15b923..49db13d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ApproximateIndexer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/ApproximateIndexer.java
@@ -27,6 +27,7 @@
package org.opends.server.backends.jeb;
import java.util.Comparator;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -34,6 +35,7 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.ldap.DecodeException;
import org.opends.server.api.ApproximateMatchingRule;
+import org.opends.server.api.ExtensibleIndexer;
import org.opends.server.types.*;
/**
@@ -165,24 +167,28 @@
for (Attribute attr : attrList)
{
- if (attr.isVirtual())
+ if (!attr.isVirtual())
{
- continue;
- }
- for (AttributeValue value : attr)
- {
- try
+ for (AttributeValue value : attr)
{
- byte[] keyBytes =
- approximateRule.normalizeAttributeValue(value.getValue()).toByteArray();
+ getKeys(value, keys);
+ }
+ }
+ }
+ }
- keys.add(keyBytes);
- }
- catch (DecodeException e)
- {
- logger.traceException(e);
- }
- }
+ private void getKeys(AttributeValue value, Set<byte[]> keys)
+ {
+ try
+ {
+ byte[] keyBytes =
+ approximateRule.normalizeAttributeValue(value.getValue()).toByteArray();
+
+ keys.add(keyBytes);
+ }
+ catch (DecodeException e)
+ {
+ logger.traceException(e);
}
}
@@ -202,32 +208,21 @@
for (Attribute attr : attrList)
{
- if (attr.isVirtual())
+ if (!attr.isVirtual())
{
- continue;
- }
- for (AttributeValue value : attr)
- {
- try
+ for (AttributeValue value : attr)
{
- byte[] keyBytes = approximateRule
- .normalizeAttributeValue(value.getValue()).toByteArray();
-
- Boolean cInsert = modifiedKeys.get(keyBytes);
- if(cInsert == null)
- {
- modifiedKeys.put(keyBytes, insert);
- }
- else if(!cInsert.equals(insert))
- {
- modifiedKeys.remove(keyBytes);
- }
- }
- catch (DecodeException e)
- {
- logger.traceException(e);
+ getKeys(value, modifiedKeys, insert);
}
}
}
}
+
+ private void getKeys(AttributeValue value, Map<byte[], Boolean> modifiedKeys,
+ Boolean insert)
+ {
+ Set<byte[]> keys = new HashSet<byte[]>();
+ getKeys(value, keys);
+ ExtensibleIndexer.computeModifiedKeys(modifiedKeys, insert, keys);
+ }
}
--
Gitblit v1.10.0