From be9f94f921957835e36578e31b5905a91de24cd3 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 18 Dec 2014 17:04:27 +0000
Subject: [PATCH] OPENDJ-1602 New pluggable storage based backend

---
 opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java b/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java
index fa12c03..01a5b2e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java
@@ -235,6 +235,33 @@
                 db.releaseExchange(ex);
             }
         }
+
+        @Override
+        public void truncateTree(TreeName treeName) {
+            try {
+                getVolume(treeName).truncate();
+            } catch (PersistitException e) {
+                throw new StorageRuntimeException(e);
+            }
+        }
+
+        @Override
+        public void renameTree(TreeName oldTreeName, TreeName newTreeName) {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public void deleteTree(TreeName treeName) {
+            Exchange ex = null;
+            try {
+                ex = getExchange(treeName);
+                ex.removeTree();
+            } catch (PersistitException e) {
+                throw new StorageRuntimeException(e);
+            } finally {
+                db.releaseExchange(ex);
+            }
+        }
     }
 
     private final class CursorImpl implements Cursor {
@@ -472,4 +499,14 @@
     private Exchange getExchange0(TreeName treeName, boolean create) throws PersistitException {
         return db.getExchange(getVolume(treeName), treeName.toString(), create);
     }
+
+    @Override
+    public void closeTree(TreeName treeName) {
+        // nothing to do, in persistit you close the volume itself
+    }
+
+    @Override
+    public boolean isValid() {
+        return !db.isFatal();
+    }
 }

--
Gitblit v1.10.0