From 8fee00d9880af3d06ff9f917fd3934141ef2135c Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Thu, 09 Apr 2015 22:45:43 +0000
Subject: [PATCH] Minor code cleanup:

---
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java |    2 
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java |   77 +++++++++++++++-----------------------
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java    |   34 ----------------
 3 files changed, 33 insertions(+), 80 deletions(-)

diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java
index 4cec4dc..66fce6e 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java
@@ -390,12 +390,39 @@
   }
 
   /**
-   * Get the JE index configuration used by this index.
-   * @return The configuration in effect.
+   * Returns {@code true} if this attribute index supports the provided index type.
+   *
+   * @param indexType
+   *          The index type.
+   * @return {@code true} if this attribute index supports the provided index type.
    */
-  BackendIndexCfg getConfiguration()
+  boolean isIndexed(org.opends.server.types.IndexType indexType)
   {
-    return config;
+    Set<IndexType> indexTypes = config.getIndexType();
+    switch (indexType)
+    {
+    case PRESENCE:
+      return indexTypes.contains(IndexType.PRESENCE);
+
+    case EQUALITY:
+      return indexTypes.contains(IndexType.EQUALITY);
+
+    case SUBSTRING:
+    case SUBINITIAL:
+    case SUBANY:
+    case SUBFINAL:
+      return indexTypes.contains(IndexType.SUBSTRING);
+
+    case GREATER_OR_EQUAL:
+    case LESS_OR_EQUAL:
+      return indexTypes.contains(IndexType.ORDERING);
+
+    case APPROXIMATE:
+      return indexTypes.contains(IndexType.APPROXIMATE);
+
+    default:
+      return false;
+    }
   }
 
   /**
@@ -482,39 +509,6 @@
   }
 
   /**
-   * Decompose an attribute value into a set of substring index keys.
-   * The ID of the entry containing this value should be inserted
-   * into the list of each of these keys.
-   *
-   * @param normValue A byte array containing the normalized attribute value.
-   * @return A set of index keys.
-   */
-  Set<ByteString> substringKeys(ByteString normValue)
-  { // FIXME replace this code with SDK's
-    // AbstractSubstringMatchingRuleImpl.SubstringIndexer.createKeys()
-
-    // Eliminate duplicates by putting the keys into a set.
-    // Sorting the keys will ensure database record locks are acquired
-    // in a consistent order and help prevent transaction deadlocks between
-    // concurrent writers.
-    Set<ByteString> set = new HashSet<ByteString>();
-
-    int substrLength = config.getSubstringLength();
-
-    // Example: The value is ABCDE and the substring length is 3.
-    // We produce the keys ABC BCD CDE DE E
-    // To find values containing a short substring such as DE,
-    // iterate through keys with prefix DE. To find values
-    // containing a longer substring such as BCDE, read keys BCD and CDE.
-    for (int i = 0, remain = normValue.length(); remain > 0; i++, remain--)
-    {
-      int len = Math.min(substrLength, remain);
-      set.add(normValue.subSequence(i, i + len));
-    }
-    return set;
-  }
-
-  /**
    * Retrieve the entry IDs that might match the provided assertion.
    *
    * @param indexQuery
@@ -674,15 +668,6 @@
   }
 
   /**
-   * Get a list of the databases opened by this attribute index.
-   * @param dbList A list of database containers.
-   */
-  void listDatabases(List<DatabaseContainer> dbList)
-  {
-    dbList.addAll(nameToIndexes.values());
-  }
-
-  /**
    * Get a string representation of this object.
    * @return return A string representation of this object.
    */
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java
index 7683e61..c00bd21 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java
@@ -45,7 +45,6 @@
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.util.Reject;
 import org.opends.server.admin.server.ConfigurationChangeListener;
-import org.opends.server.admin.std.meta.BackendIndexCfgDefn;
 import org.opends.server.admin.std.server.PluggableBackendCfg;
 import org.opends.server.api.Backend;
 import org.opends.server.api.MonitorProvider;
@@ -251,42 +250,11 @@
     {
       EntryContainer ec = rootContainer.getEntryContainer(baseDNs[0]);
       AttributeIndex ai = ec.getAttributeIndex(attributeType);
-      if (ai == null)
-      {
-        return false;
-      }
-
-      Set<BackendIndexCfgDefn.IndexType> indexTypes =
-           ai.getConfiguration().getIndexType();
-      switch (indexType)
-      {
-        case PRESENCE:
-          return indexTypes.contains(BackendIndexCfgDefn.IndexType.PRESENCE);
-
-        case EQUALITY:
-          return indexTypes.contains(BackendIndexCfgDefn.IndexType.EQUALITY);
-
-        case SUBSTRING:
-        case SUBINITIAL:
-        case SUBANY:
-        case SUBFINAL:
-          return indexTypes.contains(BackendIndexCfgDefn.IndexType.SUBSTRING);
-
-        case GREATER_OR_EQUAL:
-        case LESS_OR_EQUAL:
-          return indexTypes.contains(BackendIndexCfgDefn.IndexType.ORDERING);
-
-        case APPROXIMATE:
-          return indexTypes.contains(BackendIndexCfgDefn.IndexType.APPROXIMATE);
-
-        default:
-          return false;
-      }
+      return ai != null ? ai.isIndexed(indexType) : false;
     }
     catch (Exception e)
     {
       logger.traceException(e);
-
       return false;
     }
   }
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
index cd46a51..6a8654b 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
@@ -2989,7 +2989,7 @@
 
     for (AttributeIndex index : attrIndexMap.values())
     {
-      index.listDatabases(databases);
+      databases.addAll(index.getNameToIndexes().values());
     }
 
     databases.addAll(vlvIndexMap.values());

--
Gitblit v1.10.0