Interface ObjectIndex

All Known Implementing Classes:
BTreeIndex, HashIndex

public interface ObjectIndex
ObjectIndex defines the concept of an index that associates key values with references to serializable objects. Concrete subclasses of ObjectIndex assume that an object's position (as given by a long value) is constant, regardless of the actual meaning of that position. In general, the position represents the * location (file pointer) of a Serializable object in an IndexedObjectDatabase. *

* Use the IndexedObjectDatabase.attachIndex method to attach an ObjectIndex * to a database. A database updates all attached indexes when it writes or removes objects * from its file.

See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    long
    Find the position of the object associated with a given key.
    void
    insertKey(KeyObject key, long pos)
    Insert a key into the database, associating a record position with the given key.
    void
    Removes the given key from the index.
    void
    replaceKey(KeyObject key, long pos)
    Replace the reference pos for the given key.
    void
    storeKey(KeyObject key, long pos)
    If the key already exists, replace the reference pos for the given key.
  • Method Details

    • insertKey

      void insertKey(KeyObject key, long pos) throws IOException, ClassNotFoundException
      Insert a key into the database, associating a record position with the given key. Throws a DuplicateKey exception if the key already exists.

      Parameters:
      key - A key identifying the record to be read.
      pos - File position of record associated with key
      Throws:
      IOException - when an I/O exception is thrown by an underlying java.io.* class
      ClassNotFoundException - for a casting error, usually when a persistent object or index does match the expected type
      DuplicateKey - when inserting a duplicate key into an index that does not support duplicates
      See Also:
    • replaceKey

      void replaceKey(KeyObject key, long pos) throws IOException, ClassNotFoundException
      Replace the reference pos for the given key. Throws a KeyNotFound exception if the requested key does not exist in the index.
      Parameters:
      key - A key identifying the record to be read.
      pos - File position of record associated with key
      Throws:
      IOException - when an I/O exception is thrown by an underlying java.io.* class
      ClassNotFoundException - for a casting error, usually when a persistent object or index does match the expected type
      KeyNotFound - when the specified key can not be found in the index
      See Also:
    • storeKey

      void storeKey(KeyObject key, long pos) throws IOException, ClassNotFoundException
      If the key already exists, replace the reference pos for the given key. Otherwise, insert a key into the database, associating a record position with the given key.
      Parameters:
      key - A key identifying the record to be read.
      pos - File position of record associated with key
      Throws:
      IOException - when an I/O exception is thrown by an underlying java.io.* class
      ClassNotFoundException - for a casting error, usually when a persistent object or index does match the expected type
      See Also:
    • findKey

      long findKey(KeyObject key) throws IOException, ClassNotFoundException
      Find the position of the object associated with a given key.
      Parameters:
      key - A key identifying the record to be read.
      Returns:
      The position of the record associated with key.
      Throws:
      IOException - when an I/O exception is thrown by an underlying java.io.* class
      ClassNotFoundException - for a casting error, usually when a persistent object or index does match the expected type
      KeyNotFound - when the specified key can not be found in the index
      See Also:
    • removeKey

      void removeKey(KeyObject key) throws IOException, ClassNotFoundException
      Removes the given key from the index.
      Parameters:
      key - A key identifying the record to be read.
      Throws:
      IOException - when an I/O exception is thrown by an underlying java.io.* class
      ClassNotFoundException - for a casting error, usually when a persistent object or index does match the expected type
      KeyNotFound - when the specified key can not be found in the index
      See Also: