Class BTreeIterator

java.lang.Object
com.coyotegulch.jisp.BTreeIterator
All Implemented Interfaces:
IndexIterator

public class BTreeIterator extends Object implements IndexIterator
BTreeIterator defines an object that references a specific object relative to other objects in an ObjectIndex. In many ways, a BTreeIterator is analogous to the "cursors" found in SQL-type databases; it is essentially a movable reference to elements in an index, and it can be moved forward and backward through the list of keys.

See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a new BTreeIterator for a given index and database.
    Creates a new BTreeIterator that points to the same location as an existing BtreeIterator.
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the key Object currently associated with this iterator.
    long
    Returns the reference (usually a file pointer) currently associated with this iterator.
    void
    Sets this iterator's state to invalid.
    boolean
    Checks to see if this iterator is valid.
    boolean
    Moves this iterator to the first key and reference in sequence.
    boolean
    Moves this iterator to the last key and reference in sequence.
    boolean
    Moves this iterator to the next key and reference in sequence.
    boolean
    Moves this iterator to the previous key and reference in sequence.
    boolean
    Moves this iterator to point to the given key.
    boolean
    moveTo(KeyObject key, boolean acceptNext)
    Moves this iterator to point to the given key.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • BTreeIterator

      public BTreeIterator(BTreeIndex index) throws IOException, ClassNotFoundException
      Creates a new BTreeIterator for a given index and database.
      Parameters:
      index - the index to which this iterator is attached.
      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:
    • BTreeIterator

      public BTreeIterator(BTreeIterator iterator) throws IOException, ClassNotFoundException
      Creates a new BTreeIterator that points to the same location as an existing BtreeIterator.
      Parameters:
      iterator - the iterator to be copied.
      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:
  • Method Details

    • getRecPtr

      public long getRecPtr() throws IOException
      Returns the reference (usually a file pointer) currently associated with this iterator.
      Specified by:
      getRecPtr in interface IndexIterator
      Returns:
      the record Object currently referenced by this iterator, or -1 if the iterator is invalid
      Throws:
      IOException
    • getKey

      public Object getKey() throws IOException
      Returns the key Object currently associated with this iterator.
      Specified by:
      getKey in interface IndexIterator
      Returns:
      the key Object currently referenced by this iterator, or null if the iterator is invalid
      Throws:
      IOException - when an I/O exception is thrown by an underlying java.io.* class
    • moveNext

      public boolean moveNext() throws IOException, ClassNotFoundException
      Moves this iterator to the next key and reference in sequence.
      Specified by:
      moveNext in interface IndexIterator
      Returns:
      true if the operation was successful; false otherwise.
      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
    • movePrevious

      public boolean movePrevious() throws IOException, ClassNotFoundException
      Moves this iterator to the previous key and reference in sequence.
      Specified by:
      movePrevious in interface IndexIterator
      Returns:
      true if the operation was successful; false otherwise.
      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
      BTreeException - when an error occurs during B-Tree processing
    • moveFirst

      public boolean moveFirst() throws IOException, ClassNotFoundException
      Moves this iterator to the first key and reference in sequence.
      Specified by:
      moveFirst in interface IndexIterator
      Returns:
      true if the operation was successful; false otherwise.
      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
      BTreeException - when an error occurs during B-Tree processing
    • moveLast

      public boolean moveLast() throws IOException, ClassNotFoundException
      Moves this iterator to the last key and reference in sequence.
      Specified by:
      moveLast in interface IndexIterator
      Returns:
      true if the operation was successful; false otherwise.
      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
      BTreeException - when an error occurs during B-Tree processing
    • moveTo

      public boolean moveTo(KeyObject key) throws IOException, ClassNotFoundException
      Moves this iterator to point to the given key.
      Specified by:
      moveTo in interface IndexIterator
      Parameters:
      key - key identifier to find
      Returns:
      true if the operation was successful; false otherwise.
      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
      BTreeException - when an error occurs during B-Tree processing
    • moveTo

      public boolean moveTo(KeyObject key, boolean acceptNext) throws IOException, ClassNotFoundException
      Moves this iterator to point to the given key.
      Specified by:
      moveTo in interface IndexIterator
      Parameters:
      key - key identifier to find
      acceptNext - when true, allows the search to return the next record in sequence if an exact match is not found
      Returns:
      true if the operation was successful; false otherwise.
      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
      BTreeException - when an error occurs during B-Tree processing
    • isValid

      public boolean isValid()
      Checks to see if this iterator is valid.
      Specified by:
      isValid in interface IndexIterator
      Returns:
      true if the iterator is valid; false if it is invalid.
    • invalidate

      public void invalidate()
      Sets this iterator's state to invalid.