Class LeafNode


  • public class LeafNode
    extends Node
    • Field Detail

      • LEAF_NODE_KEY_LENGTH_IN_BYTES

        public static final int LEAF_NODE_KEY_LENGTH_IN_BYTES
        See Also:
        Constant Field Values
    • Constructor Detail

      • LeafNode

        public LeafNode​(byte[] key,
                        long containerIdx)
        constructor
        Parameters:
        key - the 48 bit
        containerIdx - the corresponding container index
      • LeafNode

        public LeafNode​(long key,
                        long containerIdx)
        constructor
        Parameters:
        key - a long value ,only the high 48 bit is valuable
        containerIdx - the corresponding container index
    • Method Detail

      • 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
      • 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
      • 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
      • replaceChildren

        public void replaceChildren​(Node[] children)
      • getContainerIdx

        public long getContainerIdx()
      • getKeyBytes

        public byte[] getKeyBytes()