Class PackedQuadPrefixTree.PackedQuadCell

All Implemented Interfaces:
Cell, CellCanPrune
Enclosing class:
PackedQuadPrefixTree

protected class PackedQuadPrefixTree.PackedQuadCell extends QuadPrefixTree.QuadCell
See binary representation in the javadocs of PackedQuadPrefixTree.
  • Method Details

    • readCell

      protected void readCell(BytesRef bytes)
      Overrides:
      readCell in class LegacyCell
    • isEnd

      public boolean isEnd(int level, int shift)
    • nextCell

      public PackedQuadPrefixTree.PackedQuadCell nextCell(boolean descend)
      Get the next cell in the tree without using recursion. descend parameter requests traversal to the child nodes, setting this to false will step to the next sibling. Note: This complies with lexicographical ordering, once you've moved to the next sibling there is no backtracking.
    • readLeafAdjust

      protected void readLeafAdjust()
      Overrides:
      readLeafAdjust in class LegacyCell
    • getTokenBytesWithLeaf

      public BytesRef getTokenBytesWithLeaf(BytesRef result)
      Description copied from interface: Cell
      Returns the bytes for this cell, with a leaf byte if this is a leaf cell. The result param is used to save object allocation, though its bytes aren't used.
      Specified by:
      getTokenBytesWithLeaf in interface Cell
      Overrides:
      getTokenBytesWithLeaf in class LegacyCell
      Parameters:
      result - where the result goes, or null to create new
    • getTokenBytesNoLeaf

      public BytesRef getTokenBytesNoLeaf(BytesRef result)
      Description copied from interface: Cell
      Returns the bytes for this cell, without a leaf set. The bytes should sort before Cell.getTokenBytesWithLeaf(org.apache.lucene.util.BytesRef). The result param is used to save object allocation, though its bytes aren't used.
      Specified by:
      getTokenBytesNoLeaf in interface Cell
      Overrides:
      getTokenBytesNoLeaf in class LegacyCell
      Parameters:
      result - where the result goes, or null to create new
    • compareToNoLeaf

      public int compareToNoLeaf(Cell fromCell)
      Description copied from interface: Cell
      Equivalent to this.getTokenBytesNoLeaf(null).compareTo(fromCell.getTokenBytesNoLeaf(null)).
      Specified by:
      compareToNoLeaf in interface Cell
      Overrides:
      compareToNoLeaf in class LegacyCell
    • getLevel

      public int getLevel()
      Description copied from interface: Cell
      Level 0 is the world (and has no parent), from then on a higher level means a smaller cell than the level before it.
      Specified by:
      getLevel in interface Cell
      Overrides:
      getLevel in class LegacyCell
    • getSubCells

      protected Collection<Cell> getSubCells()
      Description copied from class: LegacyCell
      Gets the cells at the next grid cell level that covers this cell. Precondition: Never called when getLevel() == maxLevel.
      Overrides:
      getSubCells in class QuadPrefixTree.QuadCell
      Returns:
      A set of cells (no dups), sorted, modifiable, not empty, not null.
    • getSubCell

      protected QuadPrefixTree.QuadCell getSubCell(org.locationtech.spatial4j.shape.Point p)
      Description copied from class: LegacyCell
      Performant implementations are expected to implement this efficiently by considering the current cell's boundary.
      • Precondition: Never called when getLevel() == maxLevel.
      • Precondition: this.getShape().relate(p) != DISJOINT.
      Overrides:
      getSubCell in class QuadPrefixTree.QuadCell
    • isPrefixOf

      public boolean isPrefixOf(Cell c)
      Description copied from interface: Cell
      Returns if the target term is within/underneath this cell; not necessarily a direct descendant.
      Specified by:
      isPrefixOf in interface Cell
      Overrides:
      isPrefixOf in class LegacyCell
      Parameters:
      c - the term
    • isInternalPrefix

      protected boolean isInternalPrefix(PackedQuadPrefixTree.PackedQuadCell c)
    • concat

      protected long concat(byte postfix)
    • makeShape

      protected org.locationtech.spatial4j.shape.Rectangle makeShape()
      Constructs a bounding box shape out of the encoded cell
      Overrides:
      makeShape in class QuadPrefixTree.QuadCell
    • toString

      public String toString()
      Used for debugging, this will print the bits of the cell
      Overrides:
      toString in class LegacyCell