From eeca03c904407d856739e8c8c3d1b0c22ed41c21 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Wed, 17 Dec 2014 10:33:34 +0000
Subject: [PATCH] Move SPI interfaces to separate package.

---
 opendj3-server-dev/src/server/org/opends/server/backends/pluggable/BackendImpl.java |  198 ------------------------------------------------
 1 files changed, 3 insertions(+), 195 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/BackendImpl.java b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/BackendImpl.java
index 2334b57..db78443 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/BackendImpl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/BackendImpl.java
@@ -26,7 +26,6 @@
  */
 package org.opends.server.backends.pluggable;
 
-import java.io.Closeable;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FilenameFilter;
@@ -42,8 +41,6 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigException;
-import org.forgerock.opendj.ldap.ByteSequence;
-import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ConditionResult;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.util.Reject;
@@ -54,7 +51,9 @@
 import org.opends.server.api.Backend;
 import org.opends.server.api.DiskSpaceMonitorHandler;
 import org.opends.server.api.MonitorProvider;
-import org.opends.server.backends.pluggable.BackendImpl.WriteableStorage;
+import org.opends.server.backends.pluggable.spi.StorageRuntimeException;
+import org.opends.server.backends.pluggable.spi.WriteOperation;
+import org.opends.server.backends.pluggable.spi.WriteableStorage;
 import org.opends.server.core.*;
 import org.opends.server.extensions.DiskSpaceMonitor;
 import org.opends.server.types.*;
@@ -76,197 +75,6 @@
 {
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
-  public interface Importer extends Closeable
-  {
-    void createTree(TreeName name);
-
-    void put(TreeName name, ByteSequence key, ByteSequence value);
-
-    @Override
-    void close();
-  }
-
-  public interface ReadOperation<T>
-  {
-    T run(ReadableStorage txn) throws Exception;
-  }
-
-  public interface ReadableStorage
-  {
-    ByteString get(TreeName name, ByteSequence key);
-
-    ByteString getRMW(TreeName name, ByteSequence key);
-
-    Cursor openCursor(TreeName name);
-
-    // TODO: contains, etc.
-  }
-
-  public interface Cursor extends Closeable
-  {
-    boolean positionToKey(ByteSequence key);
-
-    boolean positionToKeyOrNext(ByteSequence key);
-
-    boolean positionToLastKey();
-
-    boolean next();
-
-    boolean previous();
-
-    ByteString getKey();
-
-    ByteString getValue();
-
-    @Override
-    public void close();
-  }
-
-  public interface Storage extends Closeable
-  {
-    void initialize(Map<String, String> options) throws Exception;
-
-    Importer startImport() throws Exception;
-
-    void open() throws Exception;
-
-    <T> T read(ReadOperation<T> readTransaction) throws Exception;
-
-    void write(WriteOperation updateTransaction) throws Exception;
-
-    Cursor openCursor(TreeName name);
-
-    @Override
-    void close();
-  }
-
-  @SuppressWarnings("serial")
-  public static final class StorageRuntimeException extends RuntimeException
-  {
-
-    public StorageRuntimeException(final String message)
-    {
-      super(message);
-    }
-
-    public StorageRuntimeException(final String message, final Throwable cause)
-    {
-      super(message, cause);
-    }
-
-    public StorageRuntimeException(final Throwable cause)
-    {
-      super(cause);
-    }
-  }
-
-  /** Assumes name components don't contain a '/'. */
-  public static final class TreeName
-  {
-    public static TreeName of(final String... names)
-    {
-      return new TreeName(Arrays.asList(names));
-    }
-
-    private final List<String> names;
-    private final String s;
-
-    public TreeName(final List<String> names)
-    {
-      this.names = names;
-      final StringBuilder builder = new StringBuilder();
-      for (final String name : names)
-      {
-        builder.append('/');
-        builder.append(name);
-      }
-      this.s = builder.toString();
-    }
-
-    public List<String> getNames()
-    {
-      return names;
-    }
-
-    public TreeName child(final String name)
-    {
-      final List<String> newNames = new ArrayList<String>(names.size() + 1);
-      newNames.addAll(names);
-      newNames.add(name);
-      return new TreeName(newNames);
-    }
-
-    public TreeName getSuffix()
-    {
-      if (names.size() == 0)
-      {
-        throw new IllegalStateException();
-      }
-      return new TreeName(Collections.singletonList(names.get(0)));
-    }
-
-    public boolean isSuffixOf(TreeName tree)
-    {
-      if (names.size() > tree.names.size())
-      {
-        return false;
-      }
-      for (int i = 0; i < names.size(); i++)
-      {
-        if (!tree.names.get(i).equals(names.get(i)))
-        {
-          return false;
-        }
-      }
-      return true;
-    }
-
-    @Override
-    public boolean equals(final Object obj)
-    {
-      if (this == obj)
-      {
-        return true;
-      }
-      else if (obj instanceof TreeName)
-      {
-        return s.equals(((TreeName) obj).s);
-      }
-      else
-      {
-        return false;
-      }
-    }
-
-    @Override
-    public int hashCode()
-    {
-      return s.hashCode();
-    }
-
-    @Override
-    public String toString()
-    {
-      return s;
-    }
-  }
-
-  public interface WriteOperation
-  {
-    void run(WriteableStorage txn) throws Exception;
-  }
-
-  public interface WriteableStorage extends ReadableStorage
-  {
-    void openTree(TreeName name);
-
-    void put(TreeName name, ByteSequence key, ByteSequence value);
-
-    boolean putIfAbsent(TreeName treeName, ByteSequence key, ByteSequence value);
-
-    boolean remove(TreeName name, ByteSequence key);
-  }
-
   /** The configuration of this JE backend. */
   private LocalDBBackendCfg cfg;
   /** The root JE container to use for this backend. */

--
Gitblit v1.10.0