Package ghidra.trace.database.map

# Class DBTraceAddressSnapRangePropertyMapTree<T,DR extends DBTraceAddressSnapRangePropertyMapTree.AbstractDBTraceAddressSnapRangePropertyMapData<T>>

java.lang.Object
ghidra.util.database.spatial.AbstractConstraintsTree<TraceAddressSnapRange,DR,TraceAddressSnapRange,DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode,T,DBTraceAddressSnapRangePropertyMapTree.TraceAddressSnapRangeQuery>
ghidra.util.database.spatial.AbstractRStarConstraintsTree<TraceAddressSnapRange,DR,TraceAddressSnapRange,DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode,T,DBTraceAddressSnapRangePropertyMapTree.TraceAddressSnapRangeQuery>
ghidra.util.database.spatial.rect.Abstract2DRStarTree<Address,Long,TraceAddressSnapRange,DR,TraceAddressSnapRange,DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode,T,DBTraceAddressSnapRangePropertyMapTree.TraceAddressSnapRangeQuery>
ghidra.trace.database.map.DBTraceAddressSnapRangePropertyMapTree<T,DR>

public class DBTraceAddressSnapRangePropertyMapTree<T,DR extends DBTraceAddressSnapRangePropertyMapTree.AbstractDBTraceAddressSnapRangePropertyMapData<T>> extends Abstract2DRStarTree<Address,Long,TraceAddressSnapRange,DR,TraceAddressSnapRange,DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode,T,DBTraceAddressSnapRangePropertyMapTree.TraceAddressSnapRangeQuery>

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `DBTraceAddressSnapRangePropertyMapTree.AbstractDBTraceAddressSnapRangePropertyMapData<T>`
  `static class`
  `DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode`
  `static class`
  `DBTraceAddressSnapRangePropertyMapTree.TraceAddressSnapRangeQuery`

  ## Nested classes/interfaces inherited from class ghidra.util.database.spatial.rect.Abstract2DRStarTree

  `Abstract2DRStarTree.AsSpatialMap<DS extends BoundedShape<NS>,DR extends DBTreeDataRecord<DS,NS,T>,NS extends Rectangle2D<?,?,NS>,T,Q extends AbstractRectangle2DQuery<?,?,DS,NS,Q>>`

  ## Nested classes/interfaces inherited from class ghidra.util.database.spatial.AbstractRStarConstraintsTree

  `AbstractRStarConstraintsTree.LeastAreaEnlargementThenLeastArea, AbstractRStarConstraintsTree.LeastDistanceFromCenterToPoint, AbstractRStarConstraintsTree.LevelInfo`

  ## Nested classes/interfaces inherited from class ghidra.util.database.spatial.AbstractConstraintsTree

  `AbstractConstraintsTree.TreeRecordVisitor, AbstractConstraintsTree.VisitResult`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final DBCachedObjectIndex<Long,DR>`
  `dataByParent`
  `protected final DBTraceAddressSnapRangePropertyMap.DBTraceAddressSnapRangePropertyMapDataFactory<T,DR>`
  `dataFactory`
  `protected final Comparator<TraceAddressSnapRange>`
  `leftmostComparator`
  `protected final DBTraceAddressSnapRangePropertyMapSpace<T,DR>`
  `mapSpace`
  `protected static final int`
  `MAX_CHILDREN`
  `protected final DBCachedObjectIndex<Long,DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode>`
  `nodesByParent`

  ### Fields inherited from class ghidra.util.database.spatial.rect.Abstract2DRStarTree

  `axes, space`

  ### Fields inherited from class ghidra.util.database.spatial.AbstractRStarConstraintsTree

  `CHEAT_OVERLAP_COUNT, FILL_RATE, MAX_LEVELS, maxChildren, minChildren, REINSERT_RATE, reinsertCount`

  ### Fields inherited from class ghidra.util.database.spatial.AbstractConstraintsTree

  `cachedDataChildren, cachedNodeChildren, dataStore, leafLevel, nodeStore, root`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DBTraceAddressSnapRangePropertyMapTree(DBCachedObjectStoreFactory storeFactory, String tableName, DBTraceAddressSnapRangePropertyMapSpace<T,DR> space, Class<DR> dataType, DBTraceAddressSnapRangePropertyMap.DBTraceAddressSnapRangePropertyMapDataFactory<T,DR> dataFactory, boolean upgradable)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected DR`
  `createDataEntry(DBCachedObjectStore<DR> store, DBRecord record)`
  `protected DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode`
  `createNodeEntry(DBCachedObjectStore<DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode> store, DBRecord record)`
  `protected void`
  `doDeleteEntry(DR data)`
  `protected void`
  `doInsertDataEntry(DR entry)`
  `protected void`
  `doUnparentEntry(DR data)`
  Remove a data record from the tree, but keep the orphaned record in the table
  `protected Collection<DR>`
  `getDataChildrenOf(long parentKey)`
  For leaf nodes, get the children.
  `protected Comparator<TraceAddressSnapRange>`
  `getDefaultBoundsComparator()`
  `protected Rectangle2DDirection`
  `getDirectionOf(DBTraceAddressSnapRangePropertyMapTree.TraceAddressSnapRangeQuery query)`
  `DBTraceAddressSnapRangePropertyMapSpace<T,DR>`
  `getMapSpace()`
  `protected Collection<DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode>`
  `getNodeChildrenOf(long parentKey)`
  For non-leaf nodes, get the children.

  ### Methods inherited from class ghidra.util.database.spatial.rect.Abstract2DRStarTree

  `asSpatialMap, getShapeSpace, getSplitAxes`

  ### Methods inherited from class ghidra.util.database.spatial.AbstractRStarConstraintsTree

  `checkNodeIntegrity, computeOverlap, doChooseSplitAxis, doChooseSplitIndex, doChooseSubtree, doInsert, doInsertData, doOverflowTreatment, doReInsert, doSplit, findChildByMinimumEnlargementCost, findChildByNearlyMinimumOverlapCost`

  ### Methods inherited from class ghidra.util.database.spatial.AbstractConstraintsTree

  `checkDataIntegrity, checkIntegrity, clear, computeLeafLevel, count, destroySubtree, doAddToCachedChildren, doDecrementDataCount, doFindExact, doRecomputeBounds, doRemoveData, doRemoveFromCachedChildren, doSetParentKey, doUpdateOrDeleteAlongPath, dump, first, getChildrenOf, getDataByKey, getDataChildrenOf, getNodeChildrenOf, getOrCreateRoot, getParentOf, getUserIndex, init, invalidateCache, isEmpty, iterator, iterator, orderedIterator, resyncMetadata, unionStream, visit, visit, visitAllData`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### MAX_CHILDREN

    protected static final int MAX_CHILDREN
    See Also:
      - Constant Field Values

  - ### dataFactory

    protected final DBTraceAddressSnapRangePropertyMap.DBTraceAddressSnapRangePropertyMapDataFactory<T,DR extends DBTraceAddressSnapRangePropertyMapTree.AbstractDBTraceAddressSnapRangePropertyMapData<T>> dataFactory

  - ### mapSpace

    protected final DBTraceAddressSnapRangePropertyMapSpace<T,DR extends DBTraceAddressSnapRangePropertyMapTree.AbstractDBTraceAddressSnapRangePropertyMapData<T>> mapSpace

  - ### nodesByParent

    protected final DBCachedObjectIndex<Long,DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode> nodesByParent

  - ### dataByParent

    protected final DBCachedObjectIndex<Long,DR extends DBTraceAddressSnapRangePropertyMapTree.AbstractDBTraceAddressSnapRangePropertyMapData<T>> dataByParent

  - ### leftmostComparator

    protected final Comparator<TraceAddressSnapRange> leftmostComparator

- ## Constructor Details

  - ### DBTraceAddressSnapRangePropertyMapTree

    public DBTraceAddressSnapRangePropertyMapTree(DBCachedObjectStoreFactory storeFactory, String tableName, DBTraceAddressSnapRangePropertyMapSpace<T,DR> space, Class<DR> dataType, DBTraceAddressSnapRangePropertyMap.DBTraceAddressSnapRangePropertyMapDataFactory<T,DR> dataFactory, boolean upgradable) throws VersionException, IOException
    Throws:
      `VersionException`
      `IOException`

- ## Method Details

  - ### getDefaultBoundsComparator

    protected Comparator<TraceAddressSnapRange> getDefaultBoundsComparator()
    Specified by:
      `getDefaultBoundsComparator` in class `AbstractConstraintsTree<TraceAddressSnapRange,DR extends DBTraceAddressSnapRangePropertyMapTree.AbstractDBTraceAddressSnapRangePropertyMapData<T>,TraceAddressSnapRange,DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode,T,DBTraceAddressSnapRangePropertyMapTree.TraceAddressSnapRangeQuery>`

  - ### createDataEntry

    protected DR createDataEntry(DBCachedObjectStore<DR> store, DBRecord record)
    Specified by:
      `createDataEntry` in class `AbstractConstraintsTree<TraceAddressSnapRange,DR extends DBTraceAddressSnapRangePropertyMapTree.AbstractDBTraceAddressSnapRangePropertyMapData<T>,TraceAddressSnapRange,DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode,T,DBTraceAddressSnapRangePropertyMapTree.TraceAddressSnapRangeQuery>`

  - ### createNodeEntry

    protected DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode createNodeEntry(DBCachedObjectStore<DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode> store, DBRecord record)
    Specified by:
      `createNodeEntry` in class `AbstractConstraintsTree<TraceAddressSnapRange,DR extends DBTraceAddressSnapRangePropertyMapTree.AbstractDBTraceAddressSnapRangePropertyMapData<T>,TraceAddressSnapRange,DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode,T,DBTraceAddressSnapRangePropertyMapTree.TraceAddressSnapRangeQuery>`

  - ### getDirectionOf

    protected Rectangle2DDirection getDirectionOf(DBTraceAddressSnapRangePropertyMapTree.TraceAddressSnapRangeQuery query)

  - ### getNodeChildrenOf

    protected Collection<DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode> getNodeChildrenOf(long parentKey)
    Description copied from class: `AbstractConstraintsTree`
    For non-leaf nodes, get the children.

    For leaf nodes, the behavior is undefined. Note that the query should not filter the children, only order them. Filtering is performed by `AbstractConstraintsTree<DS extends BoundedShape<NS>,DR extends DBTreeDataRecord<DS,NS,T>,NS extends BoundingShape<NS>,NR extends DBTreeNodeRecord<NS>,T,Q extends Query<DS,NS>>.TreeRecordVisitor`.

    Specified by:
      `getNodeChildrenOf` in class `AbstractConstraintsTree<TraceAddressSnapRange,DR extends DBTraceAddressSnapRangePropertyMapTree.AbstractDBTraceAddressSnapRangePropertyMapData<T>,TraceAddressSnapRange,DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode,T,DBTraceAddressSnapRangePropertyMapTree.TraceAddressSnapRangeQuery>`
    Parameters:
      `parentKey` - the key of the parent whose children to get
    Returns:
      an iterable of the children

  - ### getDataChildrenOf

    protected Collection<DR> getDataChildrenOf(long parentKey)
    Description copied from class: `AbstractConstraintsTree`
    For leaf nodes, get the children.

    For non-leaf nodes, the behavior is undefined. Note that the query should not filter the children, only order them, or else the collection will return an incorrect `Collection.size()`. Filtering is performed by `AbstractConstraintsTree<DS extends BoundedShape<NS>,DR extends DBTreeDataRecord<DS,NS,T>,NS extends BoundingShape<NS>,NR extends DBTreeNodeRecord<NS>,T,Q extends Query<DS,NS>>.TreeRecordVisitor`.

    Specified by:
      `getDataChildrenOf` in class `AbstractConstraintsTree<TraceAddressSnapRange,DR extends DBTraceAddressSnapRangePropertyMapTree.AbstractDBTraceAddressSnapRangePropertyMapData<T>,TraceAddressSnapRange,DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode,T,DBTraceAddressSnapRangePropertyMapTree.TraceAddressSnapRangeQuery>`
    Parameters:
      `parentKey` - the key of the parent whose children to get
    Returns:
      an iterable of the children

  - ### doUnparentEntry

    protected void doUnparentEntry(DR data)
    Description copied from class: `AbstractConstraintsTree`
    Remove a data record from the tree, but keep the orphaned record in the table

    Note that at most one orphaned record should be in the table at any time, otherwise behavior is undefined. It is up to the implementor to provide a means of inserting orphaned data records back into the tree. This is useful for implementations which allow a data record's shape to be mutated: Orphan the record, adjust its shape, re-insert the orphan.

    Overrides:
      `doUnparentEntry` in class `AbstractConstraintsTree<TraceAddressSnapRange,DR extends DBTraceAddressSnapRangePropertyMapTree.AbstractDBTraceAddressSnapRangePropertyMapData<T>,TraceAddressSnapRange,DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode,T,DBTraceAddressSnapRangePropertyMapTree.TraceAddressSnapRangeQuery>`
    Parameters:
      `data` - the data record

  - ### doDeleteEntry

    protected void doDeleteEntry(DR data)
    Overrides:
      `doDeleteEntry` in class `AbstractConstraintsTree<TraceAddressSnapRange,DR extends DBTraceAddressSnapRangePropertyMapTree.AbstractDBTraceAddressSnapRangePropertyMapData<T>,TraceAddressSnapRange,DBTraceAddressSnapRangePropertyMapTree.DBTraceAddressSnapRangePropertyMapNode,T,DBTraceAddressSnapRangePropertyMapTree.TraceAddressSnapRangeQuery>`

  - ### doInsertDataEntry

    protected void doInsertDataEntry(DR entry)

  - ### getMapSpace

    public DBTraceAddressSnapRangePropertyMapSpace<T,DR> getMapSpace()