Class LeafNode

java.lang.Object
org.roaringbitmap.art.Node
org.roaringbitmap.art.LeafNode

public class LeafNode extends Node
  • Field Details

    • LEAF_NODE_KEY_LENGTH_IN_BYTES

      public static final int LEAF_NODE_KEY_LENGTH_IN_BYTES
      See Also:
  • Constructor Details

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

    • serializeNodeBody

      public void serializeNodeBody(DataOutput dataOutput) throws IOException
      Throws:
      IOException
    • serializeNodeBody

      public void serializeNodeBody(ByteBuffer byteBuffer) throws IOException
      Throws:
      IOException
    • deserializeNodeBody

      public void deserializeNodeBody(DataInput dataInput) throws IOException
      Throws:
      IOException
    • deserializeNodeBody

      public void deserializeNodeBody(ByteBuffer byteBuffer) throws IOException
      Throws:
      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'
    • getNearestChildPos

      public org.roaringbitmap.art.SearchResult getNearestChildPos(byte key)
      Description copied from class: Node
      get the position of a child corresponding to the input key 'k' if present if 'k' is not in the child, return the positions of the neighbouring nodes instead
      Specified by:
      getNearestChildPos in class Node
      Parameters:
      key - a key value of the byte range
      Returns:
      a result indicating whether or not the key was found and the positions of the child corresponding to it or its neighbours
    • 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()