public abstract class LegacyCell extends Object implements CellCanPrune
| Modifier and Type | Field and Description |
|---|---|
protected int |
b_len |
protected int |
b_off |
protected byte[] |
bytes |
protected boolean |
isLeaf |
protected org.locationtech.spatial4j.shape.Shape |
shape |
protected org.locationtech.spatial4j.shape.SpatialRelation |
shapeRel
When set via getSubCells(filter), it is the relationship between this cell
and the given shape filter.
|
| Modifier | Constructor and Description |
|---|---|
protected |
LegacyCell(byte[] bytes,
int off,
int len)
Warning: Refers to the same bytes (no copy).
|
| Modifier and Type | Method and Description |
|---|---|
protected static int |
compare(byte[] aBytes,
int aUpto,
int a_length,
byte[] bBytes,
int bUpto,
int b_length)
Copied from
BytesRef.compareTo(BytesRef). |
int |
compareToNoLeaf(Cell fromCell)
Equivalent to
this.getTokenBytesNoLeaf(null).compareTo(fromCell.getTokenBytesNoLeaf(null)). |
boolean |
equals(Object obj) |
protected abstract SpatialPrefixTree |
getGrid() |
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 abstract int |
getMaxLevels() |
CellIterator |
getNextLevelCells(org.locationtech.spatial4j.shape.Shape shapeFilter)
Gets the cells at the next grid cell level underneath this one, optionally filtered by
shapeFilter. |
org.locationtech.spatial4j.shape.SpatialRelation |
getShapeRel()
Gets the relationship this cell has with the shape from which it was filtered from, assuming it came from a
CellIterator. |
protected abstract LegacyCell |
getSubCell(org.locationtech.spatial4j.shape.Point p)
Performant implementations are expected to implement this efficiently by
considering the current cell's boundary.
|
protected abstract 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.
|
int |
hashCode() |
boolean |
isLeaf()
Some cells are flagged as leaves, which are indexed as such.
|
boolean |
isPrefixOf(Cell c)
Returns if the target term is within/underneath this cell; not necessarily a direct
descendant.
|
protected void |
readCell(BytesRef bytes) |
protected void |
readLeafAdjust() |
void |
setLeaf()
Set this cell to be a leaf.
|
void |
setShapeRel(org.locationtech.spatial4j.shape.SpatialRelation rel)
See
Cell.getShapeRel(). |
String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, waitgetSubCellsSizeprotected byte[] bytes
protected int b_off
protected int b_len
protected boolean isLeaf
protected org.locationtech.spatial4j.shape.SpatialRelation shapeRel
protected org.locationtech.spatial4j.shape.Shape shape
protected LegacyCell(byte[] bytes,
int off,
int len)
setLeaf() is subsequently called then it
may modify bytes.protected void readCell(BytesRef bytes)
protected void readLeafAdjust()
protected abstract SpatialPrefixTree getGrid()
protected abstract int getMaxLevels()
public org.locationtech.spatial4j.shape.SpatialRelation getShapeRel()
CellCellIterator. Arguably it belongs there but it's very convenient here.getShapeRel in interface Cellpublic void setShapeRel(org.locationtech.spatial4j.shape.SpatialRelation rel)
CellCell.getShapeRel().setShapeRel in interface Cellpublic boolean isLeaf()
Cellpublic void setLeaf()
Cellpublic BytesRef getTokenBytesWithLeaf(BytesRef result)
CellgetTokenBytesWithLeaf in interface Cellresult - where the result goes, or null to create newpublic BytesRef getTokenBytesNoLeaf(BytesRef result)
CellCell.getTokenBytesWithLeaf(org.apache.lucene.util.BytesRef).
The result param is used to save object allocation, though its bytes aren't used.getTokenBytesNoLeaf in interface Cellresult - where the result goes, or null to create newpublic int getLevel()
Cellpublic CellIterator getNextLevelCells(org.locationtech.spatial4j.shape.Shape shapeFilter)
CellshapeFilter. The returned cells should have Cell.getShapeRel() set to
their relation with shapeFilter. In addition, for non-points Cell.isLeaf()
must be true when that relation is WITHIN.
IMPORTANT: Cells returned from this iterator can be shared, as well as the bytes.
Precondition: Never called when getLevel() == maxLevel.
getNextLevelCells in interface CellshapeFilter - an optional filter for the returned cells.protected abstract LegacyCell getSubCell(org.locationtech.spatial4j.shape.Point p)
Precondition: Never called when getLevel() == maxLevel. Precondition: this.getShape().relate(p) != DISJOINT.
protected abstract Collection<Cell> getSubCells()
public boolean isPrefixOf(Cell c)
CellisPrefixOf in interface Cellc - the termpublic int compareToNoLeaf(Cell fromCell)
Cellthis.getTokenBytesNoLeaf(null).compareTo(fromCell.getTokenBytesNoLeaf(null)).compareToNoLeaf in interface Cellprotected static int compare(byte[] aBytes,
int aUpto,
int a_length,
byte[] bBytes,
int bUpto,
int b_length)
BytesRef.compareTo(BytesRef).
This is to avoid creating a BytesRef.Copyright © 2000-2024 Apache Software Foundation. All Rights Reserved.