From 20fdcbef0d17440c367d2943f9c5799bddfe661f Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Tue, 07 Apr 2015 10:45:33 +0000
Subject: [PATCH] OPENDJ-1628 - Simplify Index hierarchy and remove Indexer classes

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/NullIndex.java |  184 ++++++++++++++++++++++++---------------------
 1 files changed, 98 insertions(+), 86 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/NullIndex.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/NullIndex.java
index 8cf26e3..e61486e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/NullIndex.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/NullIndex.java
@@ -24,154 +24,166 @@
  */
 package org.opends.server.backends.pluggable;
 
-import static org.opends.server.backends.pluggable.EntryIDSet.*;
-
-import java.util.List;
-import java.util.Set;
+import static org.opends.server.backends.pluggable.EntryIDSet.newUndefinedSet;
 
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.opendj.ldap.ByteString;
-import org.forgerock.opendj.ldap.ConditionResult;
-import org.forgerock.opendj.ldap.spi.IndexingOptions;
-import org.opends.server.backends.pluggable.State.IndexFlag;
+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.backends.pluggable.spi.TreeName;
 import org.opends.server.backends.pluggable.spi.WriteableTransaction;
-import org.opends.server.types.Entry;
-import org.opends.server.types.Modification;
 
 /**
- * A null index which replaces id2children and id2subtree when they have been
- * disabled.
+ * A null index which replaces id2children and id2subtree when they have been disabled.
  */
-final class NullIndex extends Index
+final class NullIndex implements Index
 {
+  private final TreeName name;
 
-  NullIndex(TreeName name, Indexer indexer, State state, WriteableTransaction txn,
-      EntryContainer entryContainer) throws StorageRuntimeException
+  NullIndex(TreeName name)
   {
-    super(name, indexer, state, 0, 0, false, txn, entryContainer);
-    state.removeFlagsFromIndex(txn, name, IndexFlag.TRUSTED);
-    super.delete(txn);
+    this.name = name;
   }
 
   @Override
-  void updateKey(WriteableTransaction txn, ByteString key, EntryIDSet deletedIDs, EntryIDSet addedIDs)
+  public void update(WriteableTransaction txn, ByteString key, EntryIDSet deletedIDs, EntryIDSet addedIDs)
       throws StorageRuntimeException
   {
     // Do nothing.
   }
 
   @Override
-  void delete(IndexBuffer buffer, ByteString keyBytes)
-  {
-    // Do nothing.
-  }
-
-  @Override
-  ConditionResult containsID(ReadableTransaction txn, ByteString key, EntryID entryID)
-      throws StorageRuntimeException
-  {
-    return ConditionResult.UNDEFINED;
-  }
-
-  @Override
-  EntryIDSet read(ReadableTransaction txn, ByteSequence key)
+  public EntryIDSet get(ReadableTransaction txn, ByteSequence key)
   {
     return newUndefinedSet();
   }
 
   @Override
-  EntryIDSet readRange(ReadableTransaction txn, ByteSequence lower, ByteSequence upper, boolean lowerIncluded,
-      boolean upperIncluded)
-  {
-    return newUndefinedSet();
-  }
-
-  @Override
-  int getEntryLimitExceededCount()
-  {
-    return 0;
-  }
-
-  @Override
-  void addEntry(IndexBuffer buffer, EntryID entryID, Entry entry, IndexingOptions options)
-      throws StorageRuntimeException
-  {
-    // Do nothing.
-  }
-
-  @Override
-  void removeEntry(IndexBuffer buffer, EntryID entryID, Entry entry, IndexingOptions options)
-      throws StorageRuntimeException
-  {
-    // Do nothing.
-  }
-
-  @Override
-  void modifyEntry(IndexBuffer buffer, EntryID entryID, Entry oldEntry, Entry newEntry, List<Modification> mods,
-      IndexingOptions options) throws StorageRuntimeException
-  {
-    // Do nothing.
-  }
-
-  @Override
-  boolean setIndexEntryLimit(int indexEntryLimit)
+  public boolean setIndexEntryLimit(int indexEntryLimit)
   {
     return false;
   }
 
   @Override
-  int getIndexEntryLimit()
+  public int getIndexEntryLimit()
   {
     return 0;
   }
 
   @Override
-  void setTrusted(WriteableTransaction txn, boolean trusted) throws StorageRuntimeException
+  public void setTrusted(WriteableTransaction txn, boolean trusted) throws StorageRuntimeException
   {
     // Do nothing.
   }
 
   @Override
-  boolean isTrusted()
+  public boolean isTrusted()
   {
     return true;
   }
 
   @Override
-  boolean isRebuildRunning()
+  public boolean getMaintainCount()
   {
     return false;
   }
 
   @Override
-  boolean getMaintainCount()
-  {
-    return false;
-  }
-
-  @Override
-  void open(WriteableTransaction txn) throws StorageRuntimeException
-  {
-    // Do nothing.
-  }
-
-  @Override
-  long getRecordCount(ReadableTransaction txn) throws StorageRuntimeException
+  public long getRecordCount(ReadableTransaction txn) throws StorageRuntimeException
   {
     return 0;
   }
 
   @Override
-  void delete(WriteableTransaction txn) throws StorageRuntimeException
+  public Cursor<ByteString, EntryIDSet> openCursor(ReadableTransaction txn)
+  {
+    return new Cursor<ByteString, EntryIDSet>()
+    {
+
+      @Override
+      public boolean positionToKey(ByteSequence key)
+      {
+        return false;
+      }
+
+      @Override
+      public boolean positionToKeyOrNext(ByteSequence key)
+      {
+        return false;
+      }
+
+      @Override
+      public boolean positionToLastKey()
+      {
+        return false;
+      }
+
+      @Override
+      public boolean positionToIndex(int index)
+      {
+        return false;
+      }
+
+      @Override
+      public boolean next()
+      {
+        return false;
+      }
+
+      @Override
+      public ByteString getKey()
+      {
+        return null;
+      }
+
+      @Override
+      public EntryIDSet getValue()
+      {
+        return null;
+      }
+
+      @Override
+      public void close()
+      {
+        // Nothing to do.
+      }
+
+    };
+  }
+
+  @Override
+  public void importRemove(WriteableTransaction txn, ImportIDSet idsToBeRemoved) throws StorageRuntimeException
   {
     // Do nothing.
   }
 
   @Override
-  void indexEntry(Entry entry, Set<ByteString> keys, IndexingOptions options)
+  public void importPut(WriteableTransaction txn, ImportIDSet idsToBeAdded) throws StorageRuntimeException
+  {
+    // Do nothing.
+  }
+
+  @Override
+  public TreeName getName()
+  {
+    return name;
+  }
+
+  @Override
+  public void open(WriteableTransaction txn) throws StorageRuntimeException
+  {
+    // Do nothing.
+  }
+
+  @Override
+  public void delete(WriteableTransaction txn) throws StorageRuntimeException
+  {
+    // Do nothing.
+  }
+
+  @Override
+  public void setName(TreeName name)
   {
     // Do nothing.
   }

--
Gitblit v1.10.0