Package db

# Interface InteriorNode

All Known Subinterfaces:
  `FieldKeyInteriorNode`

public interface InteriorNode
Marker interface for `Table` interior nodes within the BTree structure.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `delete()`
  Delete this node and all child nodes.
  `DataBuffer`
  `getBuffer()`
  `int`
  `getBufferId()`
  `int[]`
  `getBufferReferences()`
  Return all buffer IDs for those buffers which are children of this buffer.
  `int`
  `getKeyCount()`
  `Field`
  `getKeyField(int index)`
  Get the key value at a specific index.
  `int`
  `getKeyIndex(Field key)`
  Perform a binary search to locate the specified key and derive an index into the Buffer ID storage.
  `InteriorNode`
  `getParent()`
  `boolean`
  `isConsistent(String tableName, TaskMonitor monitor)`
  Check the consistency of this node and all of its children.
  `void`
  `setKeyCount(int cnt)`
  Set the number of keys contained within this node.

- ## Method Details

  - ### getParent

    InteriorNode getParent()
    Returns:
      the parent node or null if this is the root

  - ### getBufferId

    int getBufferId()
    Returns:
      the data buffer ID associated with this node.

  - ### getBuffer

    DataBuffer getBuffer()
    Returns:
      the data buffer associated with this node.

  - ### getKeyCount

    int getKeyCount()
    Returns:
      the number of keys contained within this node.

  - ### setKeyCount

    void setKeyCount(int cnt)
    Set the number of keys contained within this node.
    Parameters:
      `cnt` - key count

  - ### getKeyField

    Field getKeyField(int index) throws IOException
    Get the key value at a specific index.
    Parameters:
      `index` - key index
    Returns:
      key value
    Throws:
      `IOException` - thrown if an IO error occurs

  - ### getKeyIndex

    int getKeyIndex(Field key) throws IOException
    Perform a binary search to locate the specified key and derive an index into the Buffer ID storage. This method is intended to find the insertion index or exact match for a child key. A negative value will be returned when an exact match is not found and may be transformed into an insertion index (insetIndex = -returnedIndex-1).
    Parameters:
      `key` - key to search for
    Returns:
      int buffer ID index.
    Throws:
      `IOException` - thrown if an IO error occurs

  - ### delete

    void delete() throws IOException
    Delete this node and all child nodes.
    Throws:
      `IOException` - thrown if IO error occurs

  - ### getBufferReferences

    int[] getBufferReferences()
    Return all buffer IDs for those buffers which are children of this buffer.
    Returns:
      array of buffer IDs

  - ### isConsistent

    boolean isConsistent(String tableName, TaskMonitor monitor) throws IOException, CancelledException
    Check the consistency of this node and all of its children.
    Parameters:
      `tableName` - name of table containing this node
      `monitor` - task monitor
    Returns:
      true if consistency check passed, else false
    Throws:
      `IOException` - if IO error occured
      `CancelledException` - if task cancelled