From e219b928766a0a4984f613c7e3162cf03889380c Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 05 Dec 2014 14:46:11 +0000
Subject: [PATCH] Increased IndexBuffer encapsulation: Moved Index.getBufferedIndexValues() and VLVIndex.getVLVIndex() to IndexBuffer.
---
opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java | 16 +-------
opendj3-server-dev/src/server/org/opends/server/backends/jeb/Index.java | 20 ---------
opendj3-server-dev/src/server/org/opends/server/backends/jeb/IndexBuffer.java | 66 ++++++++++++++++++--------------
3 files changed, 40 insertions(+), 62 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/Index.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/Index.java
index 8d60654..6bcc52d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/Index.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/Index.java
@@ -493,25 +493,7 @@
private BufferedIndexValues getBufferedIndexValues(IndexBuffer buffer, ByteString keyBytes)
{
- TreeMap<ByteString, BufferedIndexValues> bufferedOperations = buffer.getBufferedIndex(this);
- BufferedIndexValues values = null;
-
- if (bufferedOperations == null)
- {
- bufferedOperations = new TreeMap<ByteString, BufferedIndexValues>(bsComparator);
- buffer.putBufferedIndex(this, bufferedOperations);
- }
- else
- {
- values = bufferedOperations.get(keyBytes);
- }
-
- if (values == null)
- {
- values = new BufferedIndexValues();
- bufferedOperations.put(keyBytes, values);
- }
- return values;
+ return buffer.getBufferedIndexValues(this, keyBytes, bsComparator);
}
/**
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/IndexBuffer.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/IndexBuffer.java
index 7e735bd..20d3e8c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/IndexBuffer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/IndexBuffer.java
@@ -28,6 +28,7 @@
import java.util.*;
+import org.forgerock.opendj.ldap.ByteSequence;
import org.forgerock.opendj.ldap.ByteString;
import org.opends.server.types.DirectoryException;
@@ -173,29 +174,6 @@
}
/**
- * Get the buffered values for the given index.
- *
- * @param index The index with the buffered values to retrieve.
- * @return The buffered values or <code>null</code> if there are
- * no buffered values for the specified index.
- */
- public TreeMap<ByteString, BufferedIndexValues> getBufferedIndex(Index index)
- {
- return bufferedIndexes.get(index);
- }
-
- /**
- * Put the specified buffered index values for the given index.
- *
- * @param index The index affected by the buffered values.
- * @param bufferedValues The buffered values for the index.
- */
- public void putBufferedIndex(Index index, TreeMap<ByteString, BufferedIndexValues> bufferedValues)
- {
- bufferedIndexes.put(index, bufferedValues);
- }
-
- /**
* Get the buffered VLV values for the given VLV index.
*
* @param vlvIndex The VLV index with the buffered values to retrieve.
@@ -204,18 +182,48 @@
*/
public BufferedVLVValues getVLVIndex(VLVIndex vlvIndex)
{
- return bufferedVLVIndexes.get(vlvIndex);
+ BufferedVLVValues bufferedValues = bufferedVLVIndexes.get(vlvIndex);
+ if (bufferedValues == null)
+ {
+ bufferedValues = new BufferedVLVValues();
+ bufferedVLVIndexes.put(vlvIndex, bufferedValues);
+ }
+ return bufferedValues;
}
/**
- * Put the specified buffered VLV values for the given VLV index.
+ * Get the buffered index values for the given index and keyBytes.
*
- * @param vlvIndex The VLV index affected by the buffered values.
- * @param bufferedVLVValues The buffered values for the VLV index.
+ * @param index
+ * The index for which to retrieve the buffered index values
+ * @param keyBytes
+ * The keyBytes for which to retrieve the buffered index values
+ * @param bsComparator
+ * The byte sequence comparator to use when retrieving the
+ * BufferedIndexValues
+ * @return The buffered index values, it can never be null
*/
- public void putBufferedVLVIndex(VLVIndex vlvIndex, BufferedVLVValues bufferedVLVValues)
+ BufferedIndexValues getBufferedIndexValues(Index index, ByteString keyBytes, Comparator<ByteSequence> bsComparator)
{
- bufferedVLVIndexes.put(vlvIndex, bufferedVLVValues);
+ BufferedIndexValues values = null;
+
+ TreeMap<ByteString, BufferedIndexValues> bufferedOperations = bufferedIndexes.get(index);
+ if (bufferedOperations == null)
+ {
+ bufferedOperations = new TreeMap<ByteString, BufferedIndexValues>(bsComparator);
+ bufferedIndexes.put(index, bufferedOperations);
+ }
+ else
+ {
+ values = bufferedOperations.get(keyBytes);
+ }
+
+ if (values == null)
+ {
+ values = new BufferedIndexValues();
+ bufferedOperations.put(keyBytes, values);
+ }
+ return values;
}
/**
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java
index feb5c62..1d9cf7a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VLVIndex.java
@@ -43,7 +43,6 @@
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn.Scope;
import org.opends.server.admin.std.server.LocalDBVLVIndexCfg;
-import org.opends.server.backends.jeb.IndexBuffer.BufferedVLVValues;
import org.opends.server.controls.ServerSideSortRequestControl;
import org.opends.server.controls.VLVRequestControl;
import org.opends.server.controls.VLVResponseControl;
@@ -294,7 +293,7 @@
if (shouldInclude(entry))
{
final SortValues sortValues = new SortValues(entryID, entry, sortOrder);
- getVLVIndex(buffer).addValues(sortValues);
+ buffer.getVLVIndex(this).addValues(sortValues);
return true;
}
return false;
@@ -316,23 +315,12 @@
if (shouldInclude(entry))
{
final SortValues sortValues = new SortValues(entryID, entry, sortOrder);
- getVLVIndex(buffer).deleteValues(sortValues);
+ buffer.getVLVIndex(this).deleteValues(sortValues);
return true;
}
return false;
}
- private BufferedVLVValues getVLVIndex(IndexBuffer buffer)
- {
- BufferedVLVValues bufferedValues = buffer.getVLVIndex(this);
- if (bufferedValues == null)
- {
- bufferedValues = new BufferedVLVValues();
- buffer.putBufferedVLVIndex(this, bufferedValues);
- }
- return bufferedValues;
- }
-
/**
* Update the vlvIndex to reflect a sequence of modifications in a Modify
* operation.
--
Gitblit v1.10.0