From 81d27a068e194169b632b5ec5f2f5249f232a049 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 27 Feb 2015 13:50:23 +0000
Subject: [PATCH] Code cleanup

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexInputBuffer.java |  124 ++++++++++++++++++-----------------------
 1 files changed, 54 insertions(+), 70 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexInputBuffer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexInputBuffer.java
index 27101ce..65f8cb0 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexInputBuffer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexInputBuffer.java
@@ -44,25 +44,26 @@
 final class IndexInputBuffer implements Comparable<IndexInputBuffer>
 {
 
-  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
-
-  private final IndexManager indexMgr;
-  private final FileChannel channel;
-  private final long begin;
-  private final long end;
-  private final int id;
-
-  private long offset;
-  private final ByteBuffer cache;
-  private Integer indexID;
-  private ByteBuffer keyBuf = ByteBuffer.allocate(128);
-
   /** Possible states while reading a record. */
   private static enum RecordState
   {
     START, NEED_INSERT_ID_SET, NEED_DELETE_ID_SET
   }
 
+  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
+
+  private final IndexManager indexMgr;
+  private final FileChannel channel;
+  private final long begin;
+  private final long end;
+  private final int bufferID;
+
+  private long offset;
+  private final ByteBuffer cache;
+
+  // Next fields are the fetched record data
+  private Integer indexID;
+  private ByteBuffer keyBuf = ByteBuffer.allocate(128);
   private RecordState recordState = RecordState.START;
 
   /**
@@ -76,22 +77,22 @@
    *          The position of the start of the buffer in the scratch file.
    * @param end
    *          The position of the end of the buffer in the scratch file.
-   * @param id
-   *          The index ID.
+   * @param bufferID
+   *          The buffer ID.
    * @param cacheSize
    *          The cache size.
    * @throws IOException
    *           If an IO error occurred when priming the cache.
    */
   public IndexInputBuffer(IndexManager indexMgr, FileChannel channel,
-      long begin, long end, int id, int cacheSize) throws IOException
+      long begin, long end, int bufferID, int cacheSize) throws IOException
   {
     this.indexMgr = indexMgr;
     this.channel = channel;
     this.begin = begin;
     this.end = end;
     this.offset = 0;
-    this.id = id;
+    this.bufferID = bufferID;
     this.cache = ByteBuffer.allocate(Math.max(cacheSize - 384, 256));
 
     loadCache();
@@ -99,8 +100,6 @@
     keyBuf.flip();
   }
 
-
-
   private void loadCache() throws IOException
   {
     channel.position(begin + offset);
@@ -124,8 +123,6 @@
     indexMgr.addBytesRead(bytesRead);
   }
 
-
-
   /**
    * Returns {@code true} if this buffer has more data.
    *
@@ -139,8 +136,6 @@
     return cache.remaining() != 0 || hasMore;
   }
 
-
-
   /**
    * Returns the length of the next key.
    *
@@ -151,22 +146,18 @@
     return keyBuf.limit();
   }
 
-
-
   /**
-   * Returns the next key.
+   * Fetches the next key into the provided byte buffer.
    *
    * @param b
-   *          A buffer into which the key should be added.
+   *          A buffer where to fetch the key
    */
-  public void getKey(ByteBuffer b)
+  public void fetchKey(ByteBuffer b)
   {
     keyBuf.get(b.array(), 0, keyBuf.limit());
     b.limit(keyBuf.limit());
   }
 
-
-
   /**
    * Returns the index ID of the next record.
    *
@@ -178,20 +169,17 @@
     {
       try
       {
-        getNextRecord();
+        fetchNextRecord();
       }
       catch (IOException ex)
       {
-        logger.error(ERR_JEB_IMPORT_BUFFER_IO_ERROR, indexMgr
-            .getBufferFileName());
+        logger.error(ERR_JEB_IMPORT_BUFFER_IO_ERROR, indexMgr.getBufferFileName());
         throw new RuntimeException(ex);
       }
     }
     return indexID;
   }
 
-
-
   /**
    * Reads the next record from the buffer, skipping any remaining data in the
    * current record.
@@ -199,7 +187,7 @@
    * @throws IOException
    *           If an IO error occurred.
    */
-  public void getNextRecord() throws IOException
+  public void fetchNextRecord() throws IOException
   {
     switch (recordState)
     {
@@ -237,16 +225,12 @@
     recordState = RecordState.NEED_INSERT_ID_SET;
   }
 
-
-
   private int getInt() throws IOException
   {
     ensureData(4);
     return cache.getInt();
   }
 
-
-
   /**
    * Reads the next ID set from the record and merges it with the provided ID
    * set.
@@ -301,30 +285,25 @@
     }
   }
 
-
-
   private boolean ensureData(int len) throws IOException
   {
-    boolean ret = false;
     if (cache.remaining() == 0)
     {
       cache.clear();
       loadCache();
       cache.flip();
-      ret = true;
+      return true;
     }
     else if (cache.remaining() < len)
     {
       cache.compact();
       loadCache();
       cache.flip();
-      ret = true;
+      return true;
     }
-    return ret;
+    return false;
   }
 
-
-
   /**
    * Compares this buffer with the provided key and index ID.
    *
@@ -338,12 +317,9 @@
    */
   int compare(ByteBuffer cKey, Integer cIndexID)
   {
-    if (keyBuf.limit() == 0)
-    {
-      getIndexID();
-    }
-    final int rc = Importer.indexComparator.compare(keyBuf.array(), 0, keyBuf.limit(), cKey.array(), cKey.limit());
-    if (rc == 0)
+    ensureRecordFetched();
+    final int cmp = Importer.indexComparator.compare(keyBuf.array(), 0, keyBuf.limit(), cKey.array(), cKey.limit());
+    if (cmp == 0)
     {
       return (indexID.intValue() == cIndexID.intValue()) ? 0 : 1;
     }
@@ -360,28 +336,36 @@
       return 0;
     }
 
-    if (keyBuf.limit() == 0)
-    {
-      getIndexID();
-    }
-
-    if (o.keyBuf.limit() == 0)
-    {
-      o.getIndexID();
-    }
+    ensureRecordFetched();
+    o.ensureRecordFetched();
 
     byte[] oKey = o.keyBuf.array();
     int oLen = o.keyBuf.limit();
-    int returnCode = Importer.indexComparator.compare(keyBuf.array(), 0,
-        keyBuf.limit(), oKey, oLen);
-    if (returnCode == 0)
+    int cmp = Importer.indexComparator.compare(keyBuf.array(), 0, keyBuf.limit(), oKey, oLen);
+    if (cmp == 0)
     {
-      returnCode = indexID.intValue() - o.getIndexID().intValue();
-      if (returnCode == 0)
+      cmp = indexID.intValue() - o.getIndexID().intValue();
+      if (cmp == 0)
       {
-        returnCode = id - o.id;
+        return bufferID - o.bufferID;
       }
     }
-    return returnCode;
+    return cmp;
+  }
+
+  private void ensureRecordFetched()
+  {
+    if (keyBuf.limit() == 0)
+    {
+      try
+      {
+        fetchNextRecord();
+      }
+      catch (IOException ex)
+      {
+        logger.error(ERR_JEB_IMPORT_BUFFER_IO_ERROR, indexMgr.getBufferFileName());
+        throw new RuntimeException(ex);
+      }
+    }
   }
 }

--
Gitblit v1.10.0