Package ghidra.trace.database.target

# Class DBTraceObjectValueData

java.lang.Object
ghidra.program.database.DatabaseObject
ghidra.util.database.DBAnnotatedObject
ghidra.util.database.spatial.DBTreeRecord<ValueShape,ValueBox>
ghidra.util.database.spatial.DBTreeDataRecord<ValueShape,ValueBox,DBTraceObjectValueData>
ghidra.trace.database.target.DBTraceObjectValueData

All Implemented Interfaces:
  `ValueShape`, `BoundedShape<ValueBox>`

public class DBTraceObjectValueData extends DBTreeDataRecord<ValueShape,ValueBox,DBTraceObjectValueData> implements ValueShape

- ## Nested Class Summary

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

  `DBTreeDataRecord.RecordEntry<DS extends BoundedShape<NS>,NS extends BoundingShape<NS>,T>`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Address`
  `address`
  `protected ValueBox`
  `bounds`
  `protected Lifespan`
  `lifespan`
  `protected final DBTraceObjectManager`
  `manager`
  `protected AddressRange`
  `range`
  `protected final DBTraceObjectValueRStarTree`
  `tree`

  ### Fields inherited from class ghidra.program.database.DatabaseObject

  `key`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DBTraceObjectValueData(DBTraceObjectManager manager, DBTraceObjectValueRStarTree tree, DBCachedObjectStore<?> store, DBRecord record)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `description()`
  `void`
  `doDelete()`
  `void`
  `doSetLifespan(Lifespan lifespan)`
  `protected void`
  `fresh(boolean created)`
  Extension point: Called when the object's fields are populated.
  `int`
  `getAddressSpaceId()`
  If the value is an address or range, the id of the address space
  `ValueBox`
  `getBounds()`
  `DBTraceObject`
  `getChild()`
  `DBTraceObject`
  `getChildOrNull()`
  `String`
  `getEntryKey()`
  `Lifespan`
  `getLifespan()`
  `DBTraceObjectManager`
  `getManager()`
  `long`
  `getMaxAddressOffset()`
  `long`
  `getMinAddressOffset()`
  `protected long`
  `getObjChildKey()`
  `protected long`
  `getObjParentKey()`
  `DBTraceObject`
  `getParent()`
  `long`
  `getParentKey()`
  `protected DBTraceObjectValueData`
  `getRecordValue()`
  Get the value of this record Note that the value is sometimes the record itself, i.e., this method returns `this`.
  `ValueShape`
  `getShape()`
  `Object`
  `getValue()`
  `DBTraceObjectValue`
  `getWrapper()`
  `boolean`
  `isDeleted()`
  `void`
  `setParentKey(long parentKey)`
  `protected void`
  `setRecordValue(DBTraceObjectValueData value)`
  Set the value of this record Note that the value is sometimes the record itself.
  `void`
  `setShape(ValueShape shape)`
  `protected boolean`
  `shapeEquals(ValueShape shape)`
  `protected void`
  `updateBounds()`

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

  `asEntry, getDataCount, toString`

  ### Methods inherited from class ghidra.util.database.DBAnnotatedObject

  `doRefresh, doUpdateAll, doUpdated, doWrite, getObjectKey, getTableName, isDeleted, refresh, refresh, update, update, update, update`

  ### Methods inherited from class ghidra.program.database.DatabaseObject

  `checkDeleted, checkIsValid, checkIsValid, getKey, isDeleted, isInvalid, keyChanged, setDeleted, setInvalid, validate`

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

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

  ### Methods inherited from interface ghidra.trace.database.target.ValueShape

  `getMaxAddress, getMinAddress, getRange`

- ## Field Details

  - ### manager

    protected final DBTraceObjectManager manager

  - ### tree

    protected final DBTraceObjectValueRStarTree tree

  - ### bounds

    protected ValueBox bounds

  - ### lifespan

    protected Lifespan lifespan

  - ### address

    protected Address address

  - ### range

    protected AddressRange range

- ## Constructor Details

  - ### DBTraceObjectValueData

    public DBTraceObjectValueData(DBTraceObjectManager manager, DBTraceObjectValueRStarTree tree, DBCachedObjectStore<?> store, DBRecord record)

- ## Method Details

  - ### getObjParentKey

    protected long getObjParentKey()

  - ### getObjChildKey

    protected long getObjChildKey()

  - ### getAddressSpaceId

    public int getAddressSpaceId()
    Description copied from interface: `ValueShape`
    If the value is an address or range, the id of the address space
    Specified by:
      `getAddressSpaceId` in interface `ValueShape`
    Returns:
      the space id, or -1 for non-address value

  - ### getMinAddressOffset

    public long getMinAddressOffset()
    Specified by:
      `getMinAddressOffset` in interface `ValueShape`

  - ### getMaxAddressOffset

    public long getMaxAddressOffset()
    Specified by:
      `getMaxAddressOffset` in interface `ValueShape`

  - ### updateBounds

    protected void updateBounds()

  - ### fresh

    protected void fresh(boolean created) throws IOException
    Description copied from class: `DBAnnotatedObject`
    Extension point: Called when the object's fields are populated.

    This provides an opportunity for the object to initialize any non-database-backed fields that depend on the database-backed fields. Note that its use may indicate a situation better solved by a custom `DBCachedObjectStoreFactory.DBFieldCodec`. If both the database-backed and non-database-backed fields are used frequently, then a codec may not be indicated. If the database-backed fields are only used in this method or to encode another frequently-used field, then a codec is likely better.

    For a new object, the database-backed fields remain at their initial values. They will be saved after this method returns, so they may be further initialized with custom logic.

    For an object loaded from the database, the database-backed fields are already populated from the record when this method is called. They are not automatically saved after this method returns. This method should not further initialize database-backed fields in this case.

    Overrides:
      `fresh` in class `DBAnnotatedObject`
    Parameters:
      `created` - `true` when object is being created, or `false` when it is being loaded.
    Throws:
      `IOException` - if further initialization fails.

  - ### getParent

    public DBTraceObject getParent()
    Specified by:
      `getParent` in interface `ValueShape`

  - ### getEntryKey

    public String getEntryKey()
    Specified by:
      `getEntryKey` in interface `ValueShape`

  - ### getValue

    public Object getValue()

  - ### getChild

    public DBTraceObject getChild()
    Specified by:
      `getChild` in interface `ValueShape`

  - ### getLifespan

    public Lifespan getLifespan()
    Specified by:
      `getLifespan` in interface `ValueShape`

  - ### shapeEquals

    protected boolean shapeEquals(ValueShape shape)
    Specified by:
      `shapeEquals` in class `DBTreeDataRecord<ValueShape,ValueBox,DBTraceObjectValueData>`

  - ### setRecordValue

    protected void setRecordValue(DBTraceObjectValueData value)
    Description copied from class: `DBTreeDataRecord`
    Set the value of this record Note that the value is sometimes the record itself. In this case, this method expects `value` to be `null` and does nothing. See `SpatialMap.put(BoundedShape, Object)` for more details of this pattern.
    Specified by:
      `setRecordValue` in class `DBTreeDataRecord<ValueShape,ValueBox,DBTraceObjectValueData>`
    Parameters:
      `value` - the record's new value

  - ### getRecordValue

    protected DBTraceObjectValueData getRecordValue()
    Description copied from class: `DBTreeDataRecord`
    Get the value of this record Note that the value is sometimes the record itself, i.e., this method returns `this`. See `SpatialMap.put(BoundedShape, Object)` for more details of this pattern.
    Specified by:
      `getRecordValue` in class `DBTreeDataRecord<ValueShape,ValueBox,DBTraceObjectValueData>`
    Returns:
      the record's value

  - ### getShape

    public ValueShape getShape()
    Specified by:
      `getShape` in class `DBTreeRecord<ValueShape,ValueBox>`

  - ### getBounds

    public ValueBox getBounds()
    Specified by:
      `getBounds` in interface `BoundedShape<ValueBox>`
    Specified by:
      `getBounds` in class `DBTreeRecord<ValueShape,ValueBox>`

  - ### setShape

    public void setShape(ValueShape shape)
    Specified by:
      `setShape` in class `DBTreeRecord<ValueShape,ValueBox>`

  - ### getParentKey

    public long getParentKey()
    Specified by:
      `getParentKey` in class `DBTreeRecord<ValueShape,ValueBox>`

  - ### setParentKey

    public void setParentKey(long parentKey)
    Specified by:
      `setParentKey` in class `DBTreeRecord<ValueShape,ValueBox>`

  - ### description

    public String description()
    Specified by:
      `description` in interface `BoundedShape<ValueBox>`

  - ### getManager

    public DBTraceObjectManager getManager()

  - ### getChildOrNull

    public DBTraceObject getChildOrNull()
    Specified by:
      `getChildOrNull` in interface `ValueShape`

  - ### doSetLifespan

    public void doSetLifespan(Lifespan lifespan)

  - ### doDelete

    public void doDelete()

  - ### getWrapper

    public DBTraceObjectValue getWrapper()

  - ### isDeleted

    boolean isDeleted()