net.obsearch.storage.bdb
Class BDBOBStoreJeByte

java.lang.Object
  extended by net.obsearch.storage.bdb.AbstractBDBOBStoreJe<TupleByte>
      extended by net.obsearch.storage.bdb.BDBOBStoreJeByte
All Implemented Interfaces:
OBStore<TupleByte>, OBStoreByte

public final class BDBOBStoreJeByte
extends AbstractBDBOBStoreJe<TupleByte>
implements OBStoreByte

BDBOBStoreByte is a wrapper for Berkeley indexes that assumes that keys are bytes and values are byte[].

Author:
Arnoldo Jose Muller Molina

Nested Class Summary
 
Nested classes/interfaces inherited from class net.obsearch.storage.bdb.AbstractBDBOBStoreJe
AbstractBDBOBStoreJe.ByteArrayIterator, AbstractBDBOBStoreJe.CursorIterator<T>
 
Field Summary
 
Fields inherited from class net.obsearch.storage.bdb.AbstractBDBOBStoreJe
counter, db, sequence, stats
 
Constructor Summary
BDBOBStoreJeByte(String name, com.sleepycat.je.Database db, com.sleepycat.je.Database seq, OBStoreFactory fact, boolean duplicates)
          Builds a new Storage system by receiving a Berkeley DB database that uses bytes as a primary indexing method.
 
Method Summary
 byte bytesToValue(byte[] entry)
          Converts the value of the given entry into its primitive type.
 OperationStatus delete(byte key)
          Deletes the given key and its corresponding value from the database.
 byte[] getValue(byte key)
          Returns the associated value for the given key.
 CloseIterator<TupleByte> processAll()
          Process all the elements in the DB.
 CloseIterator<TupleByte> processRange(byte low, byte high)
          Process the given range of items (from low to high), including low and high.
 CloseIterator<TupleByte> processRangeNoDup(byte low, byte high)
           
 CloseIterator<TupleByte> processRangeReverse(byte low, byte high)
          Process the given range of items (from high to low), including low and high.
 CloseIterator<TupleByte> processRangeReverseNoDup(byte low, byte high)
           
 OperationStatus put(byte key, byte[] value)
          Inserts the key value pair.
 
Methods inherited from class net.obsearch.storage.bdb.AbstractBDBOBStoreJe
allowsDuplicatedData, close, delete, deleteAll, getFactory, getName, getReadStats, getStats, getValue, nextId, optimize, prepareBytes, processAllKeys, processRange, processRangeNoDup, processRangeReverse, processRangeReverseNoDup, put, putIfNew, setReadStats, size
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.obsearch.storage.OBStore
close, delete, deleteAll, getFactory, getName, getReadStats, getStats, getValue, nextId, optimize, prepareBytes, processRange, processRangeNoDup, processRangeReverse, processRangeReverseNoDup, put, setReadStats, size
 

Constructor Detail

BDBOBStoreJeByte

public BDBOBStoreJeByte(String name,
                        com.sleepycat.je.Database db,
                        com.sleepycat.je.Database seq,
                        OBStoreFactory fact,
                        boolean duplicates)
                 throws com.sleepycat.je.DatabaseException
Builds a new Storage system by receiving a Berkeley DB database that uses bytes as a primary indexing method.

Parameters:
db - The database to be stored.
seq - Sequences database.
name - Name of the database.
Throws:
com.sleepycat.je.DatabaseException - if something goes wrong with the database.
Method Detail

delete

public OperationStatus delete(byte key)
                       throws OBStorageException
Description copied from interface: OBStoreByte
Deletes the given key and its corresponding value from the database.

Specified by:
delete in interface OBStoreByte
Parameters:
key - The key that will be deleted.
Returns:
net.obsearch.OperationStatus.Status#OK if the key was found, otherwise, net.obsearch.OperationStatus.Status#NOT_EXISTS.
Throws:
OBStorageException - If an exception occurs at the underlying storage system. You can query the exception to see more details regarding the nature of the error.

bytesToValue

public byte bytesToValue(byte[] entry)
Converts the value of the given entry into its primitive type.

Specified by:
bytesToValue in interface OBStoreByte
Parameters:
entry - The place where we will put the entry.

getValue

public byte[] getValue(byte key)
                throws IllegalArgumentException,
                       OBStorageException
Description copied from interface: OBStoreByte
Returns the associated value for the given key. If the underlying storage system can hold repeated keys, then an IllegalArgumentException is thrown.

Specified by:
getValue in interface OBStoreByte
Parameters:
key - the key that will be searched.
Returns:
the associated value for the given key.
Throws:
IllegalArgumentException - If the underlying storage system can hold multiple keys.
OBStorageException - If an exception occurs at the underlying storage system. You can query the exception to see more details regarding the nature of the error.

put

public OperationStatus put(byte key,
                           byte[] value)
                    throws IllegalArgumentException,
                           OBStorageException
Description copied from interface: OBStoreByte
Inserts the key value pair. If the key existed, it will be overwritten.

Specified by:
put in interface OBStoreByte
Parameters:
key - Key to insert
value - The value that the key will hold after this operation completes.
Returns:
net.obsearch.OperationStatus.Status#OK the record was inserted/updated successfully. net.obsearch.OperationStatus.Status#ERROR if the record could not be updated.
Throws:
OBStorageException - If an exception occurs at the underlying storage system. You can query the exception to see more details regarding the nature of the error.
IllegalArgumentException

processRange

public CloseIterator<TupleByte> processRange(byte low,
                                             byte high)
                                      throws OBStorageException
Description copied from interface: OBStoreByte
Process the given range of items (from low to high), including low and high. The TupleProcessor's process method will be called for each value found within the range.

Specified by:
processRange in interface OBStoreByte
Throws:
OBStorageException - If an exception occurs at the underlying storage system. You can query the exception to see more details regarding the nature of the error.

processRangeNoDup

public CloseIterator<TupleByte> processRangeNoDup(byte low,
                                                  byte high)
                                           throws OBStorageException
Throws:
OBStorageException

processRangeReverse

public CloseIterator<TupleByte> processRangeReverse(byte low,
                                                    byte high)
                                             throws OBStorageException
Description copied from interface: OBStoreByte
Process the given range of items (from high to low), including low and high. The TupleProcessor's process method will be called for each value found within the range.

Specified by:
processRangeReverse in interface OBStoreByte
Throws:
OBStorageException - If an exception occurs at the underlying storage system. You can query the exception to see more details regarding the nature of the error.

processRangeReverseNoDup

public CloseIterator<TupleByte> processRangeReverseNoDup(byte low,
                                                         byte high)
                                                  throws OBStorageException
Throws:
OBStorageException

processAll

public CloseIterator<TupleByte> processAll()
                                    throws OBStorageException
Description copied from interface: OBStore
Process all the elements in the DB. Useful for debugging.

Specified by:
processAll in interface OBStore<TupleByte>
Returns:
An iterator that goes through all the data in the DB.
Throws:
OBStorageException


Copyright © 2007-2011 Arnoldo Jose Muller Molina. All Rights Reserved.