net.obsearch.storage.tc
Class TCOBStorageLong

java.lang.Object
  extended by net.obsearch.storage.tc.AbstractTCOBStorage<TupleLong>
      extended by net.obsearch.storage.tc.TCOBStorageLong
All Implemented Interfaces:
OBStore<TupleLong>, OBStoreLong

public final class TCOBStorageLong
extends AbstractTCOBStorage<TupleLong>
implements OBStoreLong

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

Author:
Arnoldo Jose Muller Molina

Nested Class Summary
 
Nested classes/interfaces inherited from class net.obsearch.storage.tc.AbstractTCOBStorage
AbstractTCOBStorage.ByteArrayIterator, AbstractTCOBStorage.ByteArrayKeyIterator, AbstractTCOBStorage.CursorIterator<T>
 
Field Summary
 
Fields inherited from class net.obsearch.storage.tc.AbstractTCOBStorage
fact, stats
 
Constructor Summary
TCOBStorageLong(String name, tokyocabinet.DBM db, OBStoreFactory fact, OBStorageConfig storageConf)
          Builds a new Storage system by receiving a Berkeley DB database that uses longs as a primary indexing method.
 
Method Summary
 long bytesToValue(byte[] entry)
          Converts the value of the given entry into its primitive type.
 OperationStatus delete(long key)
          Deletes the given key and its corresponding value from the database.
 byte[] getValue(long key)
          Returns the associated value for the given key.
 byte[] prepareBytes(byte[] in)
          Transform Bytes in a format that can be used by the underlying index.
 CloseIterator<TupleLong> processAll()
          Process all the elements in the DB.
 CloseIterator<TupleLong> processRange(long low, long high)
          Process the given range of items (from low to high), including low and high.
 CloseIterator<TupleLong> processRangeNoDup(long low, long high)
           
 CloseIterator<TupleLong> processRangeReverse(long low, long high)
          Process the given range of items (from high to low), including low and high.
 CloseIterator<TupleLong> processRangeReverseNoDup(long low, long high)
           
 OperationStatus put(long key, byte[] value)
          Inserts the key value pair.
 
Methods inherited from class net.obsearch.storage.tc.AbstractTCOBStorage
allowsDuplicatedData, close, delete, deleteAll, getFactory, getName, getReadStats, getStats, getValue, nextId, optimize, 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, processRange, processRangeNoDup, processRangeReverse, processRangeReverseNoDup, put, setReadStats, size
 

Constructor Detail

TCOBStorageLong

public TCOBStorageLong(String name,
                       tokyocabinet.DBM db,
                       OBStoreFactory fact,
                       OBStorageConfig storageConf)
                throws OBStorageException,
                       OBException
Builds a new Storage system by receiving a Berkeley DB database that uses longs as a primary indexing method.

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

delete

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

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

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

getValue

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

Specified by:
put in interface OBStoreLong
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<TupleLong> processRange(long low,
                                             long high)
Description copied from interface: OBStoreLong
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 OBStoreLong

processRangeNoDup

public CloseIterator<TupleLong> processRangeNoDup(long low,
                                                  long high)
                                           throws OBStorageException
Throws:
OBStorageException

processRangeReverse

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

processAll

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

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

prepareBytes

public byte[] prepareBytes(byte[] in)
Description copied from interface: OBStore
Transform Bytes in a format that can be used by the underlying index.

Specified by:
prepareBytes in interface OBStore<TupleLong>
Parameters:
in - Input byte array
Returns:
transformed bytes ready to be sorted.`


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