Package ghidra.trace.database.symbol

# Class DBTraceNamespaceSymbol

java.lang.Object
ghidra.program.database.DatabaseObject
ghidra.util.database.DBAnnotatedObject
ghidra.trace.database.symbol.AbstractDBTraceSymbol
ghidra.trace.database.symbol.DBTraceNamespaceSymbol

All Implemented Interfaces:
  `Namespace`, `Symbol`, `DBTraceOverlaySpaceAdapter.DecodesAddresses`, `TraceNamespaceSymbol`, `TraceSymbol`

Direct Known Subclasses:
  `DBTraceClassSymbol`

public class DBTraceNamespaceSymbol extends AbstractDBTraceSymbol implements TraceNamespaceSymbol

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface ghidra.program.model.symbol.Namespace

  `Namespace.Type`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final AddressSet`
  `allAddresses`
  `protected static final String`
  `TABLE_NAME`

  ### Fields inherited from class ghidra.trace.database.symbol.AbstractDBTraceSymbol

  `manager, parent`

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

  `key`

  ### Fields inherited from interface ghidra.program.model.symbol.Namespace

  `DELIMITER, GLOBAL_NAMESPACE_ID, NAMESPACE_DELIMITER`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DBTraceNamespaceSymbol(DBTraceSymbolManager manager, DBCachedObjectStore<?> store, DBRecord record)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected DBTraceNamespaceSymbol`
  `checkCircular(DBTraceNamespaceSymbol newParent)`
  `boolean`
  `delete()`
  Delete the symbol and its associated resources.
  `protected void`
  `doGetPath(ArrayList<String> list)`
  `AddressSet`
  `getAddressSet()`
  `AddressSetView`
  `getBody()`
  Get the address set for this namespace.
  `Collection<? extends AbstractDBTraceSymbol>`
  `getChildren()`
  Get the children of this namespace
  `Lifespan`
  `getLifespan()`
  `SymbolType`
  `getSymbolType()`
  Returns this symbol's type
  `boolean`
  `isPrimary()`
  `void`
  `setParentNamespace(Namespace parentNamespace)`
  Set the parent namespace for this namespace.
  `boolean`
  `setPrimary()`
  Sets this symbol to be primary.

  ### Methods inherited from class ghidra.trace.database.symbol.AbstractDBTraceSymbol

  `assertIsNamespace, assertNotGlobal, doCollectAddressSet, doDelete, doSetNameWithEvent, doSetParent, doSetSource, doSetSourceWithEvent, equals, fresh, getAddress, getAddressSpace, getID, getName, getName, getOverlaySpaceAdapter, getParentNamespace, getParentSymbol, getPath, getProgram, getProgramLocation, getRanges, getReferenceCollection, getReferenceCount, getReferences, getReferences, getSource, getThread, getTrace, hashCode, hasReferences, isDescendant, isDynamic, isExternal, isGlobal, isPinned, isValidParent, set, setName, setNameAndNamespace, setNamespace, setPinned, setSource, toString, validateNameAndParent, validateNameAndSource`

  ### 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, finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface ghidra.program.model.symbol.Namespace

  `getID, getName, getName, getPathList, getType, isExternal, isLibrary`

  ### Methods inherited from interface ghidra.program.model.symbol.Symbol

  `getAddress, getID, getName, getName, getProgram, getProgramLocation, getReferenceCount, getSource, hasReferences, isDeleted, isDescendant, isDynamic, isExternal, isExternalEntryPoint, isValidParent, setName, setNameAndNamespace, setNamespace, setSource`

  ### Methods inherited from interface ghidra.trace.model.symbol.TraceNamespaceSymbol

  `getObject, getParentNamespace, getPath, getSymbol, getTrace, isGlobal`

  ### Methods inherited from interface ghidra.trace.model.symbol.TraceSymbol

  `getParentSymbol, getReferenceCollection, getReferences, getReferences, getThread, isPinned, setPinned`

- ## Field Details

  - ### TABLE_NAME

    protected static final String TABLE_NAME
    See Also:
      - Constant Field Values

  - ### allAddresses

    protected final AddressSet allAddresses

- ## Constructor Details

  - ### DBTraceNamespaceSymbol

    public DBTraceNamespaceSymbol(DBTraceSymbolManager manager, DBCachedObjectStore<?> store, DBRecord record)

- ## Method Details

  - ### checkCircular

    protected DBTraceNamespaceSymbol checkCircular(DBTraceNamespaceSymbol newParent) throws CircularDependencyException
    Overrides:
      `checkCircular` in class `AbstractDBTraceSymbol`
    Throws:
      `CircularDependencyException`

  - ### getLifespan

    public Lifespan getLifespan()
    Overrides:
      `getLifespan` in class `AbstractDBTraceSymbol`

  - ### getAddressSet

    public AddressSet getAddressSet()
    Overrides:
      `getAddressSet` in class `AbstractDBTraceSymbol`

  - ### getSymbolType

    public SymbolType getSymbolType()
    Description copied from interface: `Symbol`
    Returns this symbol's type
    Specified by:
      `getSymbolType` in interface `Symbol`
    Returns:
      symbol type

  - ### getBody

    public AddressSetView getBody()
    Description copied from interface: `Namespace`
    Get the address set for this namespace. Note: The body of a namespace (currently only used by the function namespace) is restricted it Integer.MAX_VALUE.
    Specified by:
      `getBody` in interface `Namespace`
    Returns:
      the address set for this namespace

  - ### setParentNamespace

    public void setParentNamespace(Namespace parentNamespace) throws DuplicateNameException, InvalidInputException, CircularDependencyException
    Description copied from interface: `Namespace`
    Set the parent namespace for this namespace. Restrictions may apply.
    Specified by:
      `setParentNamespace` in interface `Namespace`
    Parameters:
      `parentNamespace` - the namespace to use as this namespace's parent.
    Throws:
      `DuplicateNameException` - if another symbol exists in the parent namespace with the same name as this namespace
      `InvalidInputException` - if the parent namespace is not applicable for this namespace.
      `CircularDependencyException` - if the parent namespace is a descendant of this namespace.

  - ### setPrimary

    public boolean setPrimary()
    Description copied from interface: `Symbol`
    Sets this symbol to be primary. All other symbols at the same address will be set to !primary. Only applies to non-function symbols.
    Specified by:
      `setPrimary` in interface `Symbol`
    Returns:
      returns true if the symbol was not primary and now it is, otherwise false

  - ### getChildren

    public Collection<? extends AbstractDBTraceSymbol> getChildren()
    Description copied from interface: `TraceNamespaceSymbol`
    Get the children of this namespace
    Specified by:
      `getChildren` in interface `TraceNamespaceSymbol`
    Returns:
      the children

  - ### delete

    public boolean delete()
    Description copied from interface: `Symbol`
    Delete the symbol and its associated resources. Any references symbol associations will be discarded.
    Specified by:
      `delete` in interface `Symbol`
    Overrides:
      `delete` in class `AbstractDBTraceSymbol`
    Returns:
      true if successful

  - ### doGetPath

    protected void doGetPath(ArrayList<String> list)

  - ### isPrimary

    public boolean isPrimary()
    Specified by:
      `isPrimary` in interface `Symbol`
    Returns:
      true if this symbol is primary