Class PackedQuadPrefixTree.PackedQuadCell
- java.lang.Object
-
- org.apache.lucene.spatial.prefix.tree.LegacyCell
-
- org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.QuadCell
-
- org.apache.lucene.spatial.prefix.tree.PackedQuadPrefixTree.PackedQuadCell
-
- All Implemented Interfaces:
Cell
,CellCanPrune
- Enclosing class:
- PackedQuadPrefixTree
protected class PackedQuadPrefixTree.PackedQuadCell extends QuadPrefixTree.QuadCell
See binary representation in the javadocs ofPackedQuadPrefixTree
.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareToNoLeaf(Cell fromCell)
Equivalent tothis.getTokenBytesNoLeaf(null).compareTo(fromCell.getTokenBytesNoLeaf(null))
.protected long
concat(byte postfix)
int
getLevel()
Level 0 is the world (and has no parent), from then on a higher level means a smaller cell than the level before it.protected QuadPrefixTree.QuadCell
getSubCell(org.locationtech.spatial4j.shape.Point p)
Performant implementations are expected to implement this efficiently by considering the current cell's boundary.protected Collection<Cell>
getSubCells()
Gets the cells at the next grid cell level that covers this cell.BytesRef
getTokenBytesNoLeaf(BytesRef result)
Returns the bytes for this cell, without a leaf set.BytesRef
getTokenBytesWithLeaf(BytesRef result)
Returns the bytes for this cell, with a leaf byte if this is a leaf cell.boolean
isEnd(int level, int shift)
protected boolean
isInternalPrefix(PackedQuadPrefixTree.PackedQuadCell c)
boolean
isPrefixOf(Cell c)
Returns if the target term is within/underneath this cell; not necessarily a direct descendant.protected org.locationtech.spatial4j.shape.Rectangle
makeShape()
Constructs a bounding box shape out of the encoded cellPackedQuadPrefixTree.PackedQuadCell
nextCell(boolean descend)
Get the next cell in the tree without using recursion.protected void
readCell(BytesRef bytes)
protected void
readLeafAdjust()
String
toString()
Used for debugging, this will print the bits of the cell-
Methods inherited from class org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.QuadCell
concat, getGrid, getMaxLevels, getShape, getSubCellsSize
-
Methods inherited from class org.apache.lucene.spatial.prefix.tree.LegacyCell
compare, equals, getNextLevelCells, getShapeRel, hashCode, isLeaf, setLeaf, setShapeRel
-
-
-
-
Method Detail
-
readCell
protected void readCell(BytesRef bytes)
- Overrides:
readCell
in classLegacyCell
-
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 classLegacyCell
-
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 interfaceCell
- Overrides:
getTokenBytesWithLeaf
in classLegacyCell
- 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 beforeCell.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 interfaceCell
- Overrides:
getTokenBytesNoLeaf
in classLegacyCell
- Parameters:
result
- where the result goes, or null to create new
-
compareToNoLeaf
public int compareToNoLeaf(Cell fromCell)
Description copied from interface:Cell
Equivalent tothis.getTokenBytesNoLeaf(null).compareTo(fromCell.getTokenBytesNoLeaf(null))
.- Specified by:
compareToNoLeaf
in interfaceCell
- Overrides:
compareToNoLeaf
in classLegacyCell
-
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 interfaceCell
- Overrides:
getLevel
in classLegacyCell
-
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 classQuadPrefixTree.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 classQuadPrefixTree.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 interfaceCell
- Overrides:
isPrefixOf
in classLegacyCell
- 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 classQuadPrefixTree.QuadCell
-
toString
public String toString()
Used for debugging, this will print the bits of the cell- Overrides:
toString
in classLegacyCell
-
-