Class NamespacePath
- java.lang.Object
-
- ghidra.app.util.bin.format.dwarf4.next.NamespacePath
-
- All Implemented Interfaces:
java.lang.Comparable<NamespacePath>
public class NamespacePath extends java.lang.Object implements java.lang.Comparable<NamespacePath>
Represents a hierarchical path of containers that hold names of objects.Each container of names (lets call them a namespace for short) can have a type that distinguishes it from other containers: classes, functions, c++ namespaces, etc.
A NamespacePath does not correlate directly to a Ghidra
Namespace
, as a Ghidra Namespace is tied to a Program and has rules about what can be placed inside of it.NamespacePath instances can be created without referring to a Ghidra Program and without concern as to what will be valid or have collisions.
Use a NamespacePath to represent and hold forward-engineering namespace nesting information (ie. namespace info recovered from debug info), and when a Ghidra Namespace is needed, convert to or lookup the live/'real' Ghidra Namespace.
-
-
Field Summary
Fields Modifier and Type Field Description static NamespacePath
ROOT
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
asCategoryPathString()
Converts this namespace path into aCategoryPath
style string.java.lang.String
asFormattedString()
Converts this namespace path into aNamespace
style string without the ROOT namespace included.java.lang.String
asNamespaceString()
Converts this namespace path into aNamespace
style string.int
compareTo(NamespacePath otherPath)
static NamespacePath
create(NamespacePath parent, java.lang.String name, SymbolType type)
Creates a newNamespacePath
instance.boolean
equals(java.lang.Object obj)
java.lang.String
getName()
Returns the name of this namespace element, ie.Namespace
getNamespace(Program program)
NamespacePath
getParent()
Returns a reference to the parent NamespacePath.SymbolType
getType()
Returns theSymbolType
of this namespace element (ie.int
hashCode()
boolean
isRoot()
Returns true if this namespace path points to the root of the namespace space.java.lang.String
toString()
-
-
-
Field Detail
-
ROOT
public static final NamespacePath ROOT
-
-
Method Detail
-
create
public static NamespacePath create(NamespacePath parent, java.lang.String name, SymbolType type)
Creates a newNamespacePath
instance.- Parameters:
parent
- optional - parentNamespacePath
instance, default toROOT
if null.name
- string name of the new namespace.type
-SymbolType
of the named space - ie. a "namespace", a class,- Returns:
- new
NamespacePath
-
isRoot
public boolean isRoot()
Returns true if this namespace path points to the root of the namespace space.- Returns:
- boolean true if ROOT
-
getName
public java.lang.String getName()
Returns the name of this namespace element, ie. the last thing on the path.- Returns:
- string name.
-
getParent
public NamespacePath getParent()
Returns a reference to the parent NamespacePath.- Returns:
- parent NamespacePath
-
getType
public SymbolType getType()
Returns theSymbolType
of this namespace element (ie. the symbol type of the last thing on the path).- Returns:
SymbolType
-
asCategoryPathString
public java.lang.String asCategoryPathString()
Converts this namespace path into aCategoryPath
style string.- Returns:
- string path "/namespace1/namespace2"
-
asNamespaceString
public java.lang.String asNamespaceString()
Converts this namespace path into aNamespace
style string.- Returns:
- string path "ROOT::namespace1::namespace2"
-
asFormattedString
public java.lang.String asFormattedString()
Converts this namespace path into aNamespace
style string without the ROOT namespace included.- Returns:
- string path "namespace1::namespace2"
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
compareTo
public int compareTo(NamespacePath otherPath)
- Specified by:
compareTo
in interfacejava.lang.Comparable<NamespacePath>
-
-