From f320107e53fc1cd108998dba50aa336db1dcb380 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 08 Apr 2015 11:55:25 +0000
Subject: [PATCH] AttributeIndex.java: Removed more duplicated code.

---
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VerifyJob.java      |    3 -
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/AttributeIndex.java |   58 +++++++++-------------------
 2 files changed, 20 insertions(+), 41 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 f23473d..23b2f13 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
@@ -745,7 +745,7 @@
         @Override
         public void run(WriteableTransaction txn) throws Exception
         {
-          applyChangeToPresenceIndex(txn, cfg, ccr);
+          applyChangeToIndex(txn, IndexType.PRESENCE, cfg, ccr);
           applyChangeToIndex(txn, IndexType.EQUALITY, cfg, ccr);
           applyChangeToIndex(txn, IndexType.SUBSTRING, cfg, ccr);
           applyChangeToIndex(txn, IndexType.ORDERING, cfg, ccr);
@@ -795,9 +795,7 @@
         validIndexIds.add(indexId);
         if (!nameToIndexes.containsKey(indexId))
         {
-          MatchingRuleIndex index = new MatchingRuleIndex(txn, cfg, indexer);
-          openIndex(txn, index, ccr);
-          nameToIndexes.put(indexId, index);
+          nameToIndexes.put(indexId, openNewIndex(txn, cfg, indexer, ccr));
         }
         else
         {
@@ -881,12 +879,17 @@
 
     if (index == null)
     {
-      final MatchingRule matchingRule = getMatchingRule(indexType, cfg.getAttribute());
-      for (Indexer indexer : matchingRule.getIndexers())
+      if (indexType == IndexType.PRESENCE)
       {
-        index = new MatchingRuleIndex(txn, cfg, indexer);
-        openIndex(txn, index, ccr);
-        nameToIndexes.put(indexId, index);
+        nameToIndexes.put(indexId, openNewIndex(txn, cfg, PRESENCE_INDEXER, ccr));
+      }
+      else
+      {
+        final MatchingRule matchingRule = getMatchingRule(indexType, cfg.getAttribute());
+        for (Indexer indexer : matchingRule.getIndexers())
+        {
+          nameToIndexes.put(indexId, openNewIndex(txn, cfg, indexer, ccr));
+        }
       }
     }
     else
@@ -897,7 +900,9 @@
         ccr.setAdminActionRequired(true);
         ccr.addMessage(NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(index.getName()));
       }
-      if (indexType == IndexType.SUBSTRING && config.getSubstringLength() != cfg.getSubstringLength())
+
+      if (indexType == IndexType.SUBSTRING
+          && config.getSubstringLength() != cfg.getSubstringLength())
       {
         ccr.setAdminActionRequired(true);
         // FIXME: msg?
@@ -906,34 +911,6 @@
     }
   }
 
-  private void applyChangeToPresenceIndex(WriteableTransaction txn, BackendIndexCfg cfg, ConfigChangeResult ccr)
-  {
-    final IndexType indexType = IndexType.PRESENCE;
-    final String indexID = indexType.toString();
-    MatchingRuleIndex index = nameToIndexes.get(indexID);
-    if (!cfg.getIndexType().contains(indexType))
-    {
-      removeIndex(txn, index, indexType);
-      return;
-    }
-
-    if (index == null)
-    {
-      index = new MatchingRuleIndex(txn, cfg, PRESENCE_INDEXER);
-      openIndex(txn, index, ccr);
-      nameToIndexes.put(indexID, index);
-    }
-    else
-    {
-      // already exists. Just update index entry limit.
-      if (index.setIndexEntryLimit(cfg.getIndexEntryLimit()))
-      {
-        ccr.setAdminActionRequired(true);
-        ccr.addMessage(NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(index.getName()));
-      }
-    }
-  }
-
   private void removeIndex(WriteableTransaction txn, Index index, IndexType indexType)
   {
     if (index != null)
@@ -951,8 +928,10 @@
     }
   }
 
-  private void openIndex(WriteableTransaction txn, Index index, ConfigChangeResult ccr)
+  private MatchingRuleIndex openNewIndex(WriteableTransaction txn, BackendIndexCfg cfg, Indexer indexer,
+      ConfigChangeResult ccr)
   {
+    final MatchingRuleIndex index = new MatchingRuleIndex(txn, cfg, indexer);
     index.open(txn);
 
     if (!index.isTrusted())
@@ -960,6 +939,7 @@
       ccr.setAdminActionRequired(true);
       ccr.addMessage(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(index.getName()));
     }
+    return index;
   }
 
   /**
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VerifyJob.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VerifyJob.java
index 80267de..1547d74 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VerifyJob.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VerifyJob.java
@@ -1396,10 +1396,9 @@
     for (Attribute attr : attrList)
     {
       final AttributeType attrType = attr.getAttributeType();
-      MatchingRule equalityRule = attrType.getEqualityMatchingRule();
       for (ByteString value : attr)
       {
-        ByteString normalizedBytes = normalize(equalityRule, value);
+        ByteString normalizedBytes = normalize(attrType.getEqualityMatchingRule(), value);
 
         if (equalityIndex != null)
         {

--
Gitblit v1.10.0