Package ghidra.program.model.symbol

# 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
  Modifier and Type
  Field
  Description
  `static final String`
  `DELIMITER`
  The delimiter that is used to separate namespace nodes in a namespace string.
  `static final long`
  `GLOBAL_NAMESPACE_ID`
  `static final String`
  `NAMESPACE_DELIMITER`
  Deprecated.
  use `DELIMITER`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `AddressSetView`
  `getBody()`
  Get the address set for this namespace.
  `long`
  `getID()`
  Return the namespace id
  `String`
  `getName()`
  Get the name of the symbol for this scope
  `String`
  `getName(boolean includeNamespacePath)`
  Returns the fully qualified name
  `Namespace`
  `getParentNamespace()`
  Get the parent scope.
  `default List<String>`
  `getPathList(boolean omitLibrary)`
  Get the namespace path as a list of namespace names.
  `Symbol`
  `getSymbol()`
  Get the symbol for this namespace.
  `boolean`
  `isExternal()`
  Returns true if this namespace is external (i.e., associated with a Library)
  `default boolean`
  `isGlobal()`
  Return true if this is the global namespace
  `default boolean`
  `isLibrary()`
  Return true if this is a library
  `void`
  `setParentNamespace(Namespace parentNamespace)`
  Set the parent namespace for this namespace.

- ## Field Details

  - ### GLOBAL_NAMESPACE_ID

    static final long GLOBAL_NAMESPACE_ID
    See Also:
      - Constant Field Values

  - ### DELIMITER

    static final String DELIMITER
    The delimiter that is used to separate namespace nodes in a namespace string. For example, "Global::child1::symbolName"
    See Also:
      - Constant Field Values

  - ### NAMESPACE_DELIMITER

    @Deprecated static final String NAMESPACE_DELIMITER
    Deprecated.
    use `DELIMITER`
    Replaced by `DELIMITER`
    See Also:
      - Constant Field Values

- ## 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

    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

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