Class BTreeIterator

  • All Implemented Interfaces:
    IndexIterator

    public class BTreeIterator
    extends java.lang.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:
    ObjectIndex, IndexedObjectDatabase
    • Constructor Summary

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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object getKey()
      Returns the key Object currently associated with this iterator.
      long getRecPtr()
      Returns the reference (usually a file pointer) currently associated with this iterator.
      void invalidate()
      Sets this iterator's state to invalid.
      boolean isValid()
      Checks to see if this iterator is valid.
      boolean moveFirst()
      Moves this iterator to the first key and reference in sequence.
      boolean moveLast()
      Moves this iterator to the last key and reference in sequence.
      boolean moveNext()
      Moves this iterator to the next key and reference in sequence.
      boolean movePrevious()
      Moves this iterator to the previous key and reference in sequence.
      boolean moveTo​(KeyObject key)
      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 Detail

      • BTreeIterator

        public BTreeIterator​(BTreeIndex index)
                      throws java.io.IOException,
                             java.lang.ClassNotFoundException
        Creates a new BTreeIterator for a given index and database.
        Parameters:
        index - the index to which this iterator is attached.
        Throws:
        java.io.IOException - when an I/O exception is thrown by an underlying java.io.* class
        java.lang.ClassNotFoundException - for a casting error, usually when a persistent object or index does match the expected type
        See Also:
        BTreeIndex
      • BTreeIterator

        public BTreeIterator​(BTreeIterator iterator)
                      throws java.io.IOException,
                             java.lang.ClassNotFoundException
        Creates a new BTreeIterator that points to the same location as an existing BtreeIterator.
        Parameters:
        iterator - the iterator to be copied.
        Throws:
        java.io.IOException - when an I/O exception is thrown by an underlying java.io.* class
        java.lang.ClassNotFoundException - for a casting error, usually when a persistent object or index does match the expected type
        See Also:
        BTreeIndex
    • Method Detail

      • getRecPtr

        public long getRecPtr()
                       throws java.io.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:
        java.io.IOException
      • getKey

        public java.lang.Object getKey()
                                throws java.io.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:
        java.io.IOException - when an I/O exception is thrown by an underlying java.io.* class
      • moveNext

        public boolean moveNext()
                         throws java.io.IOException,
                                java.lang.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:
        java.io.IOException - when an I/O exception is thrown by an underlying java.io.* class
        java.lang.ClassNotFoundException - for a casting error, usually when a persistent object or index does match the expected type
      • movePrevious

        public boolean movePrevious()
                             throws java.io.IOException,
                                    java.lang.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:
        java.io.IOException - when an I/O exception is thrown by an underlying java.io.* class
        java.lang.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 java.io.IOException,
                                 java.lang.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:
        java.io.IOException - when an I/O exception is thrown by an underlying java.io.* class
        java.lang.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 java.io.IOException,
                                java.lang.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:
        java.io.IOException - when an I/O exception is thrown by an underlying java.io.* class
        java.lang.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 java.io.IOException,
                              java.lang.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:
        java.io.IOException - when an I/O exception is thrown by an underlying java.io.* class
        java.lang.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 java.io.IOException,
                              java.lang.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:
        java.io.IOException - when an I/O exception is thrown by an underlying java.io.* class
        java.lang.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.