Package ghidra.program.database.symbol

# Class GlobalVariableSymbolDB

java.lang.Object
ghidra.program.database.DatabaseObject
ghidra.program.database.symbol.SymbolDB
ghidra.program.database.symbol.VariableSymbolDB
ghidra.program.database.symbol.GlobalVariableSymbolDB

All Implemented Interfaces:
  `Symbol`

public class GlobalVariableSymbolDB extends VariableSymbolDB

- ## Field Summary

  ### Fields inherited from class ghidra.program.database.symbol.SymbolDB

  `address, lock, symbolMgr`

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

  `key`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GlobalVariableSymbolDB(SymbolManager symbolMgr, DBObjectCache<SymbolDB> cache, VariableStorageManagerDB variableMgr, Address address, DBRecord record)`
  Constructs a new GlobalVariableSymbolDB which are restricted to the global namespace

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected String`
  `doGetName()`
  The code for creating the name content for this symbol.
  `Object`
  `getObject()`
  `SymbolType`
  `getSymbolType()`
  Returns this symbol's type
  `boolean`
  `isValidParent(Namespace parent)`
  Determines if the given parent is valid for this Symbol.

  ### Methods inherited from class ghidra.program.database.symbol.VariableSymbolDB

  `delete, equals, getDataType, getFirstUseOffset, getFunction, getOrdinal, getProgramLocation, getReferenceCount, getReferences, getVariableStorage, hasMultipleReferences, hasReferences, isExternal, isPrimary, refresh, setFirstUseOffset, setInvalid, setOrdinal, setStorageAndDataType, validateNameSource`

  ### Methods inherited from class ghidra.program.database.symbol.SymbolDB

  `checkDeleted, doCheckIsPrimary, doGetParentNamespace, doIsPinned, doSetNameAndNamespace, doSetPinned, doSetPrimary, getAddress, getDataTypeId, getID, getName, getName, getParentNamespace, getParentSymbol, getPath, getProgram, getReferences, getSource, getSymbolsDynamicallyRenamedByMyRename, getSymbolStringData, getVariableOffset, hashCode, isDeleted, isDeleting, isDescendant, isDynamic, isExternalEntryPoint, isGlobal, isPinned, moveLowLevel, refresh, setAddress, setDataTypeId, setName, setNameAndNamespace, setNamespace, setPinned, setPrimary, setSource, setSymbolStringData, setVariableOffset, toString`

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

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

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

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

- ## Constructor Details

  - ### GlobalVariableSymbolDB

    public GlobalVariableSymbolDB(SymbolManager symbolMgr, DBObjectCache<SymbolDB> cache, VariableStorageManagerDB variableMgr, Address address, DBRecord record)
    Constructs a new GlobalVariableSymbolDB which are restricted to the global namespace
    Parameters:
      `symbolMgr` - the symbol manager
      `cache` - symbol object cache
      `variableMgr` - variable storage manager
      `address` - the address of the symbol (stack address)
      `record` - the record for the symbol

- ## Method Details

  - ### getSymbolType

    public SymbolType getSymbolType()
    Description copied from interface: `Symbol`
    Returns this symbol's type
    Specified by:
      `getSymbolType` in interface `Symbol`
    Overrides:
      `getSymbolType` in class `VariableSymbolDB`
    Returns:
      symbol type
    See Also:
      - `Symbol.getSymbolType()`

  - ### isValidParent

    public boolean isValidParent(Namespace parent)
    Description copied from interface: `Symbol`
    Determines if the given parent is valid for this Symbol. Specified namespace must belong to the same symbol table as this symbol.
    Specified by:
      `isValidParent` in interface `Symbol`
    Overrides:
      `isValidParent` in class `VariableSymbolDB`
    Parameters:
      `parent` - prospective parent namespace for this symbol
    Returns:
      true if parent is valid
    See Also:
      - `Symbol.isValidParent(ghidra.program.model.symbol.Namespace)`

  - ### getObject

    public Object getObject()
    Specified by:
      `getObject` in interface `Symbol`
    Overrides:
      `getObject` in class `VariableSymbolDB`
    Returns:
      object associated with this symbol or null if symbol has been deleted
    See Also:
      - `Symbol.getObject()`

  - ### doGetName

    protected String doGetName()
    Description copied from class: `SymbolDB`
    The code for creating the name content for this symbol. This code will be called with the symbol's lock.
    Overrides:
      `doGetName` in class `VariableSymbolDB`
    Returns:
      the name