net.obsearch.storage.bdb
Class BDBOBStoreJeFloat

java.lang.Object
  extended by net.obsearch.storage.bdb.AbstractBDBOBStoreJe<TupleFloat>
      extended by net.obsearch.storage.bdb.BDBOBStoreJeFloat
All Implemented Interfaces:
OBStore<TupleFloat>, OBStoreFloat

public final class BDBOBStoreJeFloat
extends AbstractBDBOBStoreJe<TupleFloat>
implements OBStoreFloat

BDBOBStoreFloat is a wrapper for Berkeley indexes that assumes that keys are floats 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
BDBOBStoreJeFloat(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 floats as a primary indexing method.
 
Method Summary
 float bytesToValue(byte[] entry)
          Converts the value of the given entry into its primitive type.
 OperationStatus delete(float key)
          Deletes the given key and its corresponding value from the database.
 byte[] getValue(float key)
          Returns the associated value for the given key.
 CloseIterator<TupleFloat> processAll()
          Process all the elements in the DB.
 CloseIterator<TupleFloat> processRange(float low, float high)
          Process the given range of items (from low to high), including low and high.
 CloseIterator<TupleFloat> processRangeNoDup(float low, float high)
           
 CloseIterator<TupleFloat> processRangeReverse(float low, float high)
          Process the given range of items (from high to low), including low and high.
 CloseIterator<TupleFloat> processRangeReverseNoDup(float low, float high)
           
 OperationStatus put(float 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

BDBOBStoreJeFloat

public BDBOBStoreJeFloat(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 floats 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(float key)
                       throws OBStorageException
Description copied from interface: OBStoreFloat
Deletes the given key and its corresponding value from the database.

Specified by:
delete in interface OBStoreFloat
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 float bytesToValue(byte[] entry)
Converts the value of the given entry into its primitive type.

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

getValue

public byte[] getValue(float key)
                throws IllegalArgumentException,
                       OBStorageException
Description copied from interface: OBStoreFloat
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 OBStoreFloat
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(float key,
                           byte[] value)
                    throws IllegalArgumentException,
                           OBStorageException
Description copied from interface: OBStoreFloat
Inserts the key value pair. If the key existed, it will be overwritten.

Specified by:
put in interface OBStoreFloat
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<TupleFloat> processRange(float low,
                                              float high)
                                       throws OBStorageException
Description copied from interface: OBStoreFloat
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 OBStoreFloat
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<TupleFloat> processRangeNoDup(float low,
                                                   float high)
                                            throws OBStorageException
Throws:
OBStorageException

processRangeReverse

public CloseIterator<TupleFloat> processRangeReverse(float low,
                                                     float high)
                                              throws OBStorageException
Description copied from interface: OBStoreFloat
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 OBStoreFloat
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<TupleFloat> processRangeReverseNoDup(float low,
                                                          float high)
                                                   throws OBStorageException
Throws:
OBStorageException

processAll

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

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


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