Interface Namespace

All Known Subinterfaces:
Function, GhidraClass, Library, ThunkFunction
All Known Implementing Classes:
FunctionDB, GlobalNamespace, UndefinedFunction

public interface Namespace
The Namespace interface
  • Field Summary

    Fields
    Change
    Modifier and Type
    Field
    Description
    static final String
    The delimiter that is used to separate namespace nodes in a namespace string.
    static final long
     
    static final String
    Deprecated.
  • Method Summary

    Change
    Modifier and Type
    Method
    Description
    Get the address set for this namespace.
    long
    Return the namespace id
    Get the name of the symbol for this scope
    getName(boolean includeNamespacePath)
    Returns the fully qualified name
    Get the parent scope.
    NEW
    default List<String>
    getPathList(boolean omitLibrary)
    Get the namespace path as a list of namespace names.
    Get the symbol for this namespace.
    boolean
    Returns true if this namespace is external (i.e., associated with a Library)
    default boolean
    Return true if this is the global namespace
    NEW
    default boolean
    Return true if this is a library
    void
    setParentNamespace(Namespace parentNamespace)
    Set the parent namespace for this namespace.
  • Field Details

  • Method Details

    • getSymbol

      Symbol getSymbol()
      Get the symbol for this namespace.
      Returns:
      the symbol for this namespace.
    • isExternal

      boolean isExternal()
      Returns true if this namespace is external (i.e., associated with a Library)
      Returns:
      true if this namespace is external (i.e., associated with a Library)
    • getName

      String getName()
      Get the name of the symbol for this scope
      Returns:
      the name of the symbol for this scope
    • getName

      String getName(boolean includeNamespacePath)
      Returns the fully qualified name
      Parameters:
      includeNamespacePath - true to include the namespace in the returned name
      Returns:
      the fully qualified name
    • getPathList NEW

      default List<String> getPathList(boolean omitLibrary)
      Get the namespace path as a list of namespace names.
      Parameters:
      omitLibrary - if true Library name (if applicable) will be omitted from returned list and treated same as global namespace.
      Returns:
      namespace path list or empty list for global namespace
    • getID

      long getID()
      Return the namespace id
      Returns:
      the namespace id
    • getParentNamespace

      Namespace getParentNamespace()
      Get the parent scope.
      Returns:
      null if this scope is the global scope.
    • getBody

      AddressSetView getBody()
      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.
      Returns:
      the address set for this namespace
    • setParentNamespace

      void setParentNamespace(Namespace parentNamespace) throws DuplicateNameException, InvalidInputException, CircularDependencyException
      Set the parent namespace for this namespace. Restrictions may apply.
      Parameters:
      parentNamespace - the namespace to use as this namespace's parent.
      Throws:
      InvalidInputException - if the parent namespace is not applicable for this namespace.
      DuplicateNameException - if another symbol exists in the parent namespace with the same name as this namespace
      CircularDependencyException - if the parent namespace is a descendent of this namespace.
    • isGlobal

      default boolean isGlobal()
      Return true if this is the global namespace
      Returns:
      true if this is the global namespace
    • isLibrary NEW

      default boolean isLibrary()
      Return true if this is a library
      Returns:
      true if this is a library