Class Node16


  • public class Node16
    extends Node
    • Constructor Detail

      • Node16

        public Node16​(int compressionLength)
    • Method Detail

      • getChildPos

        public int getChildPos​(byte k)
        Description copied from class: Node
        get the position of a child corresponding to the input key 'k'
        Specified by:
        getChildPos in class Node
        Parameters:
        k - a key value of the byte range
        Returns:
        the child position corresponding to the key 'k'
      • getChildKey

        public byte getChildKey​(int pos)
        Description copied from class: Node
        get the corresponding key byte of the requested position
        Specified by:
        getChildKey in class Node
        Parameters:
        pos - the position
        Returns:
        the corresponding key byte
      • getChild

        public Node getChild​(int pos)
        Description copied from class: Node
        get the child at the specified position in the node, the 'pos' range from 0 to count
        Specified by:
        getChild in class Node
        Parameters:
        pos - the position
        Returns:
        a Node corresponding to the input position
      • replaceNode

        public void replaceNode​(int pos,
                                Node freshOne)
        Description copied from class: Node
        replace the position child to the fresh one
        Specified by:
        replaceNode in class Node
        Parameters:
        pos - the position
        freshOne - the fresh node to replace the old one
      • getMinPos

        public int getMinPos()
        Description copied from class: Node
        get the position of the min element in current node.
        Specified by:
        getMinPos in class Node
        Returns:
        the minimum key's position
      • getNextLargerPos

        public int getNextLargerPos​(int pos)
        Description copied from class: Node
        get the next position in the node
        Specified by:
        getNextLargerPos in class Node
        Parameters:
        pos - current position,-1 to start from the min one
        Returns:
        the next larger byte key's position which is close to 'pos' position,-1 for end
      • getMaxPos

        public int getMaxPos()
        Description copied from class: Node
        get the max child's position
        Specified by:
        getMaxPos in class Node
        Returns:
        the max byte key's position
      • getNextSmallerPos

        public int getNextSmallerPos​(int pos)
        Description copied from class: Node
        get the next smaller element's position
        Specified by:
        getNextSmallerPos in class Node
        Parameters:
        pos - the position,-1 to start from the largest one
        Returns:
        the next smaller key's position which is close to input 'pos' position,-1 for end
      • insert

        public static Node insert​(Node node,
                                  Node child,
                                  byte key)
        insert a child into the node with the key byte
        Parameters:
        node - the node16 to insert into
        child - the child node to be inserted
        key - the key byte
        Returns:
        the adaptive changed node of the parent node16
      • remove

        public Node remove​(int pos)
        Description copied from class: Node
        remove the specified position child
        Specified by:
        remove in class Node
        Parameters:
        pos - the position to remove
        Returns:
        an adaptive changed fresh node of the current node
      • serializeNodeBody

        public void serializeNodeBody​(java.io.DataOutput dataOutput)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • serializeNodeBody

        public void serializeNodeBody​(java.nio.ByteBuffer byteBuffer)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • deserializeNodeBody

        public void deserializeNodeBody​(java.io.DataInput dataInput)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • deserializeNodeBody

        public void deserializeNodeBody​(java.nio.ByteBuffer byteBuffer)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • serializeNodeBodySizeInBytes

        public int serializeNodeBodySizeInBytes()
        Description copied from class: Node
        the serialized size except the common node header part
        Specified by:
        serializeNodeBodySizeInBytes in class Node
        Returns:
        the size in bytes
      • replaceChildren

        public void replaceChildren​(Node[] children)