Package db

Interface FieldKeyInteriorNode

  • All Superinterfaces:
    InteriorNode

    public interface FieldKeyInteriorNode
    extends InteriorNode
    FieldKeyInteriorNode defines a common interface for FieldKeyNode implementations which are also an InteriorNode.
    • Method Detail

      • keyChanged

        void keyChanged​(Field oldKey,
                        Field newKey,
                        db.FieldKeyNode childNode)
                 throws java.io.IOException
        Callback method for when a child node's leftmost key changes.
        Parameters:
        oldKey - previous leftmost key.
        newKey - new leftmost key.
        childNode - child node containing oldKey (null if not a VarKeyNode)
        Throws:
        java.io.IOException - if IO error occurs
      • 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 java.io.IOException
        Get the key value at a specific index.
        Parameters:
        index - key index
        Returns:
        key value
        Throws:
        java.io.IOException - thrown if an IO error occurs
      • getKeyIndex

        int getKeyIndex​(Field key)
                 throws java.io.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:
        java.io.IOException - thrown if an IO error occurs
      • delete

        void delete()
             throws java.io.IOException
        Delete this node and all child nodes.
        Throws:
        java.io.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​(java.lang.String tableName,
                             TaskMonitor monitor)
                      throws java.io.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:
        java.io.IOException - if IO error occured
        CancelledException - if task cancelled
      • getLeafNode

        db.FieldKeyRecordNode getLeafNode​(Field key)
                                   throws java.io.IOException
        Get the leaf node which contains the specified key.
        Parameters:
        key - key value
        Returns:
        leaf node
        Throws:
        java.io.IOException - thrown if an IO error occurs
      • getLeftmostLeafNode

        db.FieldKeyRecordNode getLeftmostLeafNode()
                                           throws java.io.IOException
        Get the left-most leaf node within the tree.
        Returns:
        left-most leaf node.
        Throws:
        java.io.IOException - thrown if IO error occurs
      • getRightmostLeafNode

        db.FieldKeyRecordNode getRightmostLeafNode()
                                            throws java.io.IOException
        Get the right-most leaf node within the tree.
        Returns:
        right-most leaf node.
        Throws:
        java.io.IOException - thrown if IO error occurs
      • compareKeyField

        int compareKeyField​(Field k,
                            int keyIndex)
        Performs a fast in-place key comparison of the specified key value with a key stored within this node at the specified keyIndex.
        Parameters:
        k - key value to be compared
        keyIndex - key index to another key within this node's buffer
        Returns:
        comparison value, zero if equal, -1 if k has a value less than the store key, or +1 if k has a value greater than the stored key located at keyIndex.