jdbm.htree

## Class HTree

- java.lang.Object
- - jdbm.htree.HTree

    public class HTree
    extends Object

Persistent hashtable implementation for PageManager. Implemented as an H*Tree structure. WARNING! If this instance is used in a transactional context, it *must* be discarded after a rollback.

Author:
  Alex Boisvert

### Method Summary

Methods
`static HTree` `createInstance(RecordManager recman)` Create a persistent hashtable.
`Object` `get(Object key)` Returns the value which is associated with the given key.
`long` `getRecid()` Get the record identifier used to load this hashtable.
`FastIterator` `keys()` Returns an enumeration of the keys contained in this
`static HTree` `load(RecordManager recman, long root_recid)` Load a persistent hashtable
`void` `put(Object key, Object value)` Associates the specified value with the specified key.
`void` `remove(Object key)` Remove the value which is associated with the given key.
`FastIterator` `values()` Returns an enumeration of the values contained in this

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### createInstance

    public static HTree createInstance(RecordManager recman)
                                throws IOException

Create a persistent hashtable.

Parameters:
  `recman` - Record manager used for persistence.
Throws:
  `IOException`

#### load

    public static HTree load(RecordManager recman,
             long root_recid)
                      throws IOException

Load a persistent hashtable

Parameters:
  `recman` - RecordManager used to store the persistent hashtable
  `root_recid` - Record id of the root directory of the HTree
Throws:
  `IOException`

#### put

    public void put(Object key,
           Object value)
             throws IOException

Associates the specified value with the specified key.

Parameters:
  `key` - key with which the specified value is to be assocated.
  `value` - value to be associated with the specified key.
Throws:
  `IOException`

#### get

    public Object get(Object key)
               throws IOException

Returns the value which is associated with the given key. Returns `null` if there is not association for this key.

Parameters:
  `key` - key whose associated value is to be returned
Throws:
  `IOException`

#### remove

    public void remove(Object key)
                throws IOException

Remove the value which is associated with the given key. If the key does not exist, this method simply ignores the operation.

Parameters:
  `key` - key whose associated value is to be removed
Throws:
  `IOException`

#### keys

    public FastIterator keys()
                      throws IOException

Returns an enumeration of the keys contained in this

Throws:
  `IOException`

#### values

    public FastIterator values()
                        throws IOException

Returns an enumeration of the values contained in this

Throws:
  `IOException`

#### getRecid

    public long getRecid()

Get the record identifier used to load this hashtable.