From f3b16f1a20361d02edda90e09e1df0997ddc4dc2 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 08 Oct 2015 09:59:03 +0000
Subject: [PATCH] Code cleanup

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexQueryFactoryImpl.java |   57 ++++++++----------
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java        |   69 +++++++++++-----------
 2 files changed, 60 insertions(+), 66 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java
index 6a1dded..0a73e68 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java
@@ -489,34 +489,40 @@
    * @param monitor
    *          The backend monitor provider that will keep index
    *          filter usage statistics.
-   * @return The candidate entry IDs that might contain the filter assertion
-   *         value.
+   * @return The candidate entry IDs that might contain the filter assertion value.
    */
   private EntryIDSet evaluateIndexQuery(IndexQuery indexQuery, String indexName, SearchFilter filter,
       StringBuilder debugBuffer, BackendMonitor monitor)
   {
+    // FIXME equivalent code exists in evaluateExtensibleFilter()
     LocalizableMessageBuilder debugMessage = monitor.isFilterUseEnabled() ? new LocalizableMessageBuilder() : null;
     StringBuilder indexNameOut = debugBuffer == null ? null : new StringBuilder();
     EntryIDSet results = indexQuery.evaluate(debugMessage, indexNameOut);
 
     if (debugBuffer != null)
     {
-      appendDebugIndexInformation(debugBuffer, indexName);
+      appendDebugIndexInformation(debugBuffer, config.getAttribute(), indexName);
       appendDebugUnindexedInformation(debugBuffer, indexNameOut);
     }
 
+    updateStats(monitor, filter, results, debugMessage);
+    return results;
+  }
+
+  private void updateStats(BackendMonitor monitor, SearchFilter filter, EntryIDSet idSet,
+      LocalizableMessageBuilder debugMessage)
+  {
     if (monitor.isFilterUseEnabled())
     {
-      if (results.isDefined())
+      if (idSet.isDefined())
       {
-        monitor.updateStats(filter, results.size());
+        monitor.updateStats(filter, idSet.size());
       }
       else
       {
         monitor.updateStats(filter, debugMessage.toMessage());
       }
     }
-    return results;
   }
 
   /**
@@ -524,20 +530,33 @@
    * an auxiliary index type during index query.
    *
    * @param debugBuffer the current debugsearchindex buffer
-   * @param indexNameOut the name of the index type
+   * @param indexName the name of the index type
    */
-  private void appendDebugUnindexedInformation(StringBuilder debugBuffer, StringBuilder indexNameOut)
+  private void appendDebugUnindexedInformation(StringBuilder debugBuffer, StringBuilder indexName)
   {
-    if (indexNameOut.length() > 0)
+    if (indexName.length() > 0)
     {
       debugBuffer.append(newUndefinedSet());
-      appendDebugIndexInformation(debugBuffer, indexNameOut.toString());
+      appendDebugIndexInformation(debugBuffer, config.getAttribute(), indexName);
     }
   }
 
-  private void appendDebugIndexInformation(final StringBuilder debugBuffer, final String infos)
+  private void appendDebugIndexInformation(StringBuilder debugBuffer, AttributeType attrType, CharSequence indexName)
   {
-    debugBuffer.append("[INDEX:").append(config.getAttribute().getNameOrOID()).append(".").append(infos).append("]");
+    String attrNameOrOID = attrType.getNameOrOID();
+    debugBuffer.append("[INDEX:").append(attrNameOrOID).append(".").append(indexName).append("]");
+  }
+
+  private void appendDebugIndexesInformation(StringBuilder debugBuffer, AttributeType attrType,
+      Collection<? extends Indexer> indexers)
+  {
+    final String attrNameOrOID = attrType.getNameOrOID();
+    debugBuffer.append("[INDEX:");
+    for (Indexer indexer : indexers)
+    {
+      debugBuffer.append(" ").append(attrNameOrOID).append(".").append(indexer.getIndexID());
+    }
+    debugBuffer.append("]");
   }
 
   /**
@@ -877,8 +896,7 @@
    *                     to this search.
    * @param monitor The backend monitor provider that will keep
    *                index filter usage statistics.
-   * @return The candidate entry IDs that might contain the filter
-   *         assertion value.
+   * @return The candidate entry IDs that might contain the filter assertion value.
    */
   EntryIDSet evaluateExtensibleFilter(IndexQueryFactory<IndexQuery> indexQueryFactory,
       SearchFilter filter, StringBuilder debugBuffer, BackendMonitor monitor)
@@ -912,6 +930,7 @@
 
     try
     {
+      // FIXME equivalent code exists in evaluateIndexQuery()
       final IndexQuery indexQuery = rule.getAssertion(filter.getAssertionValue()).createIndexQuery(indexQueryFactory);
       LocalizableMessageBuilder debugMessage = monitor.isFilterUseEnabled() ? new LocalizableMessageBuilder() : null;
       StringBuilder indexNameOut = debugBuffer == null ? null : new StringBuilder();
@@ -919,29 +938,11 @@
 
       if (debugBuffer != null)
       {
-        debugBuffer.append("[INDEX:");
-        for (Indexer indexer : rule.createIndexers(indexingOptions))
-        {
-            debugBuffer.append(" ")
-              .append(filter.getAttributeType().getNameOrOID())
-              .append(".")
-              .append(indexer.getIndexID());
-        }
-        debugBuffer.append("]");
+        appendDebugIndexesInformation(debugBuffer, filter.getAttributeType(), rule.createIndexers(indexingOptions));
         appendDebugUnindexedInformation(debugBuffer, indexNameOut);
       }
 
-      if (monitor.isFilterUseEnabled())
-      {
-        if (results.isDefined())
-        {
-          monitor.updateStats(filter, results.size());
-        }
-        else
-        {
-          monitor.updateStats(filter, debugMessage.toMessage());
-        }
-      }
+      updateStats(monitor, filter, results, debugMessage);
       return results;
     }
     catch (DecodeException e)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexQueryFactoryImpl.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexQueryFactoryImpl.java
index 9397e00..45da3c1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexQueryFactoryImpl.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexQueryFactoryImpl.java
@@ -44,6 +44,7 @@
 import org.opends.server.backends.pluggable.spi.Cursor;
 import org.opends.server.backends.pluggable.spi.ReadableTransaction;
 import org.opends.server.backends.pluggable.spi.StorageRuntimeException;
+import org.opends.server.types.AttributeType;
 
 /**
  * This class is an implementation of IndexQueryFactory which creates
@@ -186,19 +187,12 @@
           final Index index = attributeIndex.getNameToIndexes().get(indexID);
           if (index == null)
           {
-            if(debugMessage != null)
-            {
-              debugMessage.append(INFO_INDEX_FILTER_INDEX_TYPE_DISABLED.get(indexID,
-                  attributeIndex.getAttributeType().getNameOrOID()));
-            }
+            appendDisabledIndexType(debugMessage, indexID, attributeIndex.getAttributeType());
             return createMatchAllQuery().evaluate(debugMessage, indexNameOut);
           }
 
           final EntryIDSet entrySet = index.get(txn, key);
-          if (debugMessage != null && !entrySet.isDefined())
-          {
-            updateStatsUndefinedResults(debugMessage, index);
-          }
+          updateStatsForUndefinedResults(debugMessage, entrySet, index);
           return entrySet;
         }
 
@@ -222,19 +216,12 @@
         final Index index = attributeIndex.getNameToIndexes().get(indexID);
         if (index == null)
         {
-          if (debugMessage != null)
-          {
-            debugMessage.append(INFO_INDEX_FILTER_INDEX_TYPE_DISABLED.get(indexID,
-                  attributeIndex.getAttributeType().getNameOrOID()));
-          }
+          appendDisabledIndexType(debugMessage, indexID, attributeIndex.getAttributeType());
           return createMatchAllQuery().evaluate(debugMessage, indexNameOut);
         }
 
         final EntryIDSet entrySet = readRange(index, txn, lowerBound, upperBound, includeLowerBound, includeUpperBound);
-        if (debugMessage != null && !entrySet.isDefined())
-        {
-          updateStatsUndefinedResults(debugMessage, index);
-        }
+        updateStatsForUndefinedResults(debugMessage, entrySet, index);
         return entrySet;
       }
 
@@ -369,19 +356,12 @@
           final Index index = attributeIndex.getNameToIndexes().get(indexID);
           if (index == null)
           {
-            if(debugMessage != null)
-            {
-              debugMessage.append(INFO_INDEX_FILTER_INDEX_TYPE_DISABLED.get(indexID,
-                  attributeIndex.getAttributeType().getNameOrOID()));
-            }
+            appendDisabledIndexType(debugMessage, indexID, attributeIndex.getAttributeType());
             return newUndefinedSet();
           }
 
           final EntryIDSet entrySet = index.get(txn, AttributeIndex.PRESENCE_KEY);
-          if (debugMessage != null && !entrySet.isDefined())
-          {
-            updateStatsUndefinedResults(debugMessage, index);
-          }
+          updateStatsForUndefinedResults(debugMessage, entrySet, index);
           if (indexNameOut != null)
           {
             indexNameOut.append(IndexFilterType.PRESENCE);
@@ -397,15 +377,28 @@
       };
   }
 
-  private static void updateStatsUndefinedResults(LocalizableMessageBuilder debugMessage, Index index)
+  private static void appendDisabledIndexType(LocalizableMessageBuilder debugMessage, String indexID,
+      AttributeType attrType)
   {
-    if (!index.isTrusted())
+    if (debugMessage != null)
     {
-      debugMessage.append(INFO_INDEX_FILTER_INDEX_NOT_TRUSTED.get(index.getName()));
+      debugMessage.append(INFO_INDEX_FILTER_INDEX_TYPE_DISABLED.get(indexID, attrType.getNameOrOID()));
     }
-    else
+  }
+
+  private static void updateStatsForUndefinedResults(
+      LocalizableMessageBuilder debugMessage, EntryIDSet idSet, Index index)
+  {
+    if (debugMessage != null && !idSet.isDefined())
     {
-      debugMessage.append(INFO_INDEX_FILTER_INDEX_LIMIT_EXCEEDED.get(index.getName()));
+      if (!index.isTrusted())
+      {
+        debugMessage.append(INFO_INDEX_FILTER_INDEX_NOT_TRUSTED.get(index.getName()));
+      }
+      else
+      {
+        debugMessage.append(INFO_INDEX_FILTER_INDEX_LIMIT_EXCEEDED.get(index.getName()));
+      }
     }
   }
 

--
Gitblit v1.10.0