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, DBRecord record)
      Constructs a new Library Symbol
      Parameters:
      symbolMgr - the symbol manager
      cache - symbol object cache
      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 conflicts with another symbol.
      InvalidInputException - if an invalid or null name specified (see SymbolUtilities.validateName(java.lang.String)).
    • 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
    • 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 Library 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
    • 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
    • getExternalLibraryPath

      public String getExternalLibraryPath()
      Returns the library program path within the project (may be null).
      Returns:
      the library program path within the project (may be null)
    • setExternalLibraryPath

      public void setExternalLibraryPath(String libraryPath)
      Set the library program path within the project.
      Parameters:
      libraryPath - library program path or null to clear