Class LibrarySymbol

All Implemented Interfaces:
Symbol

public class LibrarySymbol extends SymbolDB
Class for library symbols. Symbol data usage: String stringData - associated program project file path
  • Constructor Details

    • LibrarySymbol

      public LibrarySymbol(SymbolManager symbolMgr, DBObjectCache<SymbolDB> cache, Address address, DBRecord record)
      Constructs a new Library Symbol
      Parameters:
      symbolMgr - the symbol manager
      cache - symbol object cache
      address - the address for this symbol
      record - the record for this symbol
  • Method Details

    • setName

      public void setName(String newName, SourceType source) throws DuplicateNameException, InvalidInputException
      Description copied from interface: Symbol
      Sets the name this symbol. If this symbol is dynamic, then the name is set and the symbol is no longer dynamic.
      Specified by:
      setName in interface Symbol
      Overrides:
      setName in class SymbolDB
      Parameters:
      newName - the new name for this symbol.
      source - the source of this symbol
      Some symbol types, such as function symbols, can set the source to Symbol.DEFAULT.
      Throws:
      DuplicateNameException - if name already exists as the name of another symbol or alias.
      InvalidInputException - if alias contains blank characters, is zero length, or is null
    • setNameAndNamespace

      public void setNameAndNamespace(String newName, Namespace newNamespace, SourceType source) throws DuplicateNameException, InvalidInputException, CircularDependencyException
      Description copied from interface: Symbol
      Sets the symbols name and namespace. This is provided to allow the caller to avoid a name conflict by creating an autonomous action.
      Specified by:
      setNameAndNamespace in interface Symbol
      Overrides:
      setNameAndNamespace in class SymbolDB
      Parameters:
      newName - new symbol name
      newNamespace - new parent namespace
      source - the source of this symbol
      Some symbol types, such as function symbols, can set the source to Symbol.DEFAULT.
      Throws:
      DuplicateNameException - if newNamespace already contains a symbol with this symbol's name
      InvalidInputException - is newNamespace is not a valid parent for this symbol
      CircularDependencyException - if this symbol is an ancestor of newNamespace
    • setSymbolStringData

      public void setSymbolStringData(String newPath)
      Description copied from class: SymbolDB
      Sets the symbol's string data field. This field's data has different uses depending on the symbol type and whether or not it is external.
      Overrides:
      setSymbolStringData in class SymbolDB
      Parameters:
      newPath - the string to store in the string data field
    • getSymbolType

      public SymbolType getSymbolType()
      Description copied from interface: Symbol
      Returns this symbol's type
      Returns:
      symbol type
    • 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:
    • getObject

      public Object getObject()
      Returns:
      object associated with this symbol or null if symbol has been deleted
    • isPrimary

      public boolean isPrimary()
      Specified by:
      isPrimary in interface Symbol
      Specified by:
      isPrimary in class SymbolDB
      Returns:
      true if this symbol is primary
    • getProgramLocation

      public ProgramLocation getProgramLocation()
      Returns:
      a program location corresponding to this symbol
      See Also:
    • 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