Package ghidra.program.database.symbol

# Class ClassSymbol

java.lang.Object
ghidra.program.database.DatabaseObject
ghidra.program.database.symbol.SymbolDB
ghidra.program.database.symbol.ClassSymbol

All Implemented Interfaces:
  `Symbol`

public class ClassSymbol extends SymbolDB
Symbols that represent "classes"

- ## 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
  `ClassSymbol(SymbolManager symbolMgr, DBObjectCache<SymbolDB> cache, Address address, DBRecord record)`
  Construct a new Class Symbol

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `getObject()`
  `ProgramLocation`
  `getProgramLocation()`
  `SymbolType`
  `getSymbolType()`
  Returns this symbol's type
  `boolean`
  `isExternal()`
  Returns true if this an external symbol.
  `boolean`
  `isPrimary()`
  `boolean`
  `isValidParent(Namespace parent)`
  Determines if the given parent is valid for this Symbol.

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

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

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

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

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

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

- ## Constructor Details

  - ### ClassSymbol

    public ClassSymbol(SymbolManager symbolMgr, DBObjectCache<SymbolDB> cache, Address address, DBRecord record)
    Construct a new Class Symbol
    Parameters:
      `symbolMgr` - the symbol manager
      `cache` - symbol object cache
      `address` - the address to associate with the symbol
      `record` - the record associated with the symbol.

- ## Method Details

  - ### getSymbolType

    public SymbolType getSymbolType()
    Description copied from interface: `Symbol`
    Returns this symbol's type
    Returns:
      symbol type
    See Also:
      - `Symbol.getSymbolType()`

  - ### getObject

    public Object getObject()
    Returns:
      object associated with this symbol or null if symbol has been deleted
    See Also:
      - `Symbol.getObject()`

  - ### isPrimary

    public boolean isPrimary()
    Specified by:
      `isPrimary` in interface `Symbol`
    Specified by:
      `isPrimary` in class `SymbolDB`
    Returns:
      true if this symbol is primary
    See Also:
      - `Symbol.isPrimary()`

  - ### isExternal

    public boolean isExternal()
    Description copied from interface: `Symbol`
    Returns true if this an external symbol.
    Returns:
      true if this an external symbol.
    See Also:
      - `Address.isExternalAddress()`

  - ### getProgramLocation

    public ProgramLocation getProgramLocation()
    Returns:
      a program location corresponding to this symbol
    See Also:
      - `Symbol.getProgramLocation()`

  - ### 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 `SymbolDB`
    Parameters:
      `parent` - prospective parent namespace for this symbol
    Returns:
      true if parent is valid
    See Also:
      - `Symbol.isValidParent(ghidra.program.model.symbol.Namespace)`