From 3e52eb25d79ee1da4e06c792f329fa4594af382d Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 23 Mar 2015 15:14:02 +0000
Subject: [PATCH] Code cleanup

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java |   77 ++++++++++++++++++++------------------
 1 files changed, 41 insertions(+), 36 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java
index 0f37ebd..5bc65ae 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java
@@ -31,6 +31,7 @@
 import static org.opends.server.util.StaticUtils.*;
 
 import java.io.Closeable;
+import java.util.Arrays;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
@@ -739,21 +740,14 @@
           {
             // We don't have enough entries in the set to meet the requested
             // page size, so we'll need to shorten the array.
-            long[] newIDArray = new long[selectedPos];
-            System.arraycopy(selectedIDs, 0, newIDArray, 0, selectedPos);
-            selectedIDs = newIDArray;
+            selectedIDs = Arrays.copyOf(selectedIDs, selectedPos);
           }
 
           searchOperation.addResponseControl(
               new VLVResponseControl(targetOffset, currentCount,
                                      LDAPResultCode.SUCCESS));
 
-          if(debugBuilder != null)
-          {
-            debugBuilder.append("[COUNT:");
-            debugBuilder.append(cursorCount);
-            debugBuilder.append("]");
-          }
+          appendCount(debugBuilder, cursorCount);
         }
         finally
         {
@@ -852,23 +846,13 @@
               afterIDCount += lastIDs.length;
             }
 
-            selectedIDs = new long[idList.size()];
-            Iterator<EntryID> idIterator = idList.iterator();
-            for (int i=0; i < selectedIDs.length; i++)
-            {
-              selectedIDs[i] = idIterator.next().longValue();
-            }
+            selectedIDs = toLongArray(idList);
 
             searchOperation.addResponseControl(
                 new VLVResponseControl(targetOffset + 1, currentCount,
                                        LDAPResultCode.SUCCESS));
 
-            if(debugBuilder != null)
-            {
-              debugBuilder.append("[COUNT:");
-              debugBuilder.append(targetOffset + afterIDCount + 1);
-              debugBuilder.append("]");
-            }
+            appendCount(debugBuilder, targetOffset + afterIDCount + 1);
           }
         }
         finally
@@ -901,25 +885,46 @@
         cursor.close();
       }
 
-      selectedIDs = new long[currentCount];
-      int pos = 0;
-      for(long[] id : idSets)
-      {
-        System.arraycopy(id, 0, selectedIDs, pos, id.length);
-        pos += id.length;
-      }
-
-      if(debugBuilder != null)
-      {
-        debugBuilder.append("[COUNT:");
-        debugBuilder.append(currentCount);
-        debugBuilder.append("]");
-      }
+      selectedIDs = concat(idSets, currentCount);
+      appendCount(debugBuilder, currentCount);
     }
     return newDefinedSet(selectedIDs);
   }
 
-    /**
+  private void appendCount(StringBuilder debugBuilder, int currentCount)
+  {
+    if (debugBuilder != null)
+    {
+      debugBuilder.append("[COUNT:");
+      debugBuilder.append(currentCount);
+      debugBuilder.append("]");
+    }
+  }
+
+  private long[] toLongArray(LinkedList<EntryID> idList)
+  {
+    final long[] results = new long[idList.size()];
+    final Iterator<EntryID> idIterator = idList.iterator();
+    for (int i = 0; i < results.length; i++)
+    {
+      results[i] = idIterator.next().longValue();
+    }
+    return results;
+  }
+
+  private long[] concat(List<long[]> idSets, int totalLength)
+  {
+    long[] results = new long[totalLength];
+    int pos = 0;
+    for(long[] id : idSets)
+    {
+      System.arraycopy(id, 0, results, pos, id.length);
+      pos += id.length;
+    }
+    return results;
+  }
+
+  /**
    * Set the vlvIndex trust state.
    * @param txn A database transaction, or null if none is required.
    * @param trusted True if this vlvIndex should be trusted or false

--
Gitblit v1.10.0