From a664a9b752df04c88a9bdfdae50754ffa425654d Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 05 Dec 2014 14:24:50 +0000
Subject: [PATCH] OPENDJ-1602 (CR-5566) New pluggable storage based backend

---
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/PresenceIndexer.java |   42 ++++++++++++------------------------------
 1 files changed, 12 insertions(+), 30 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/PresenceIndexer.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/PresenceIndexer.java
index 550e9dc..be30cca 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/PresenceIndexer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/PresenceIndexer.java
@@ -26,6 +26,7 @@
  */
 package org.opends.server.backends.jeb;
 
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -42,11 +43,13 @@
  */
 public class PresenceIndexer extends Indexer
 {
+  /** The key bytes used for the presence index. */
+  static final byte[] presenceKeyBytes = "+".getBytes();
 
-  /**
-   * The attribute type for which this instance will
-   * generate index keys.
-   */
+  /** The key bytes used for the presence index as a {@link ByteString}. */
+  static final ByteString presenceKey = ByteString.wrap(presenceKeyBytes);
+
+  /** The attribute type for which this instance will generate index keys. */
   private AttributeType attributeType;
 
   /**
@@ -70,13 +73,12 @@
   @Override
   public void indexEntry(Entry entry, Set<ByteString> keys, IndexingOptions options)
   {
-    List<Attribute> attrList =
-         entry.getAttribute(attributeType);
+    List<Attribute> attrList = entry.getAttribute(attributeType);
     if (attrList != null)
     {
       if (!attrList.isEmpty())
       {
-        keys.add(getPresenceKeyData());
+        keys.add(presenceKey);
       }
     }
   }
@@ -86,22 +88,7 @@
   public void replaceEntry(Entry oldEntry, Entry newEntry,
                            Map<ByteString, Boolean> modifiedKeys, IndexingOptions options)
   {
-    List<Attribute> newAttributes = newEntry.getAttribute(attributeType, true);
-    List<Attribute> oldAttributes = oldEntry.getAttribute(attributeType, true);
-    if(oldAttributes == null)
-    {
-      if(newAttributes != null)
-      {
-        modifiedKeys.put(getPresenceKeyData(), true);
-      }
-    }
-    else
-    {
-      if(newAttributes == null)
-      {
-        modifiedKeys.put(getPresenceKeyData(), false);
-      }
-    }
+    modifyEntry(oldEntry, newEntry, Collections.<Modification>emptyList(), modifiedKeys, options);
   }
 
   /** {@inheritDoc} */
@@ -116,20 +103,15 @@
     {
       if(newAttributes != null)
       {
-        modifiedKeys.put(getPresenceKeyData(), true);
+        modifiedKeys.put(presenceKey, true);
       }
     }
     else
     {
       if(newAttributes == null)
       {
-        modifiedKeys.put(getPresenceKeyData(), false);
+        modifiedKeys.put(presenceKey, false);
       }
     }
   }
-
-  private ByteString getPresenceKeyData()
-  {
-    return ByteString.wrap(AttributeIndex.presenceKey.getData());
-  }
 }

--
Gitblit v1.10.0