com.coyotegulch.jisp
Class BTreeIterator

java.lang.Object
  extended bycom.coyotegulch.jisp.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
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
 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.