mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Matthew Swift
07.45.2015 20fdcbef0d17440c367d2943f9c5799bddfe661f
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.
  }