/* This file is part of the db4o object database http://www.db4o.com Copyright (C) 2004 - 2011 Versant Corporation http://www.versant.com db4o is free software; you can redistribute it and/or modify it under the terms of version 3 of the GNU General Public License as published by the Free Software Foundation. db4o is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. */ package com.db4o.io; import java.io.*; import com.db4o.config.*; import com.db4o.ext.*; /** * Base interface for Storage adapters that open a {@link Bin} * to store db4o database data to. * @see FileConfiguration#storage(Storage) */ public interface Storage { /** * opens a {@link Bin} to store db4o database data. */ Bin open(BinConfiguration config) throws Db4oIOException; /** * returns true if a Bin (file or memory) exists with the passed name. */ boolean exists(String uri); /** * Deletes the bin for the given URI from the storage. * @since 7.9 * @param uri bin URI * @throws IOException if the bin could not be deleted */ void delete(String uri) throws IOException; /** * Renames the bin for the given old URI to the new URI. If a bin for the new URI * exists, it will be overwritten. * @since 7.9 * @param oldUri URI of the existing bin * @param newUri future URI of the bin * @throws IOException if the bin could not be deleted */ void rename(String oldUri, String newUri) throws IOException; }