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 NamespacePathROOT
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringasCategoryPathString()Converts this namespace path into aCategoryPathstyle string.java.lang.StringasFormattedString()Converts this namespace path into aNamespacestyle string without the ROOT namespace included.java.lang.StringasNamespaceString()Converts this namespace path into aNamespacestyle string.intcompareTo(NamespacePath otherPath)static NamespacePathcreate(NamespacePath parent, java.lang.String name, SymbolType type)Creates a newNamespacePathinstance.booleanequals(java.lang.Object obj)java.lang.StringgetName()Returns the name of this namespace element, ie.NamespacegetNamespace(Program program)NamespacePathgetParent()Returns a reference to the parent NamespacePath.SymbolTypegetType()Returns theSymbolTypeof this namespace element (ie.inthashCode()booleanisRoot()Returns true if this namespace path points to the root of the namespace space.java.lang.StringtoString()
-
-
-
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 newNamespacePathinstance.- Parameters:
parent- optional - parentNamespacePathinstance, default toROOTif null.name- string name of the new namespace.type-SymbolTypeof 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 theSymbolTypeof 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 aCategoryPathstyle string.- Returns:
- string path "/namespace1/namespace2"
-
asNamespaceString
public java.lang.String asNamespaceString()
Converts this namespace path into aNamespacestyle string.- Returns:
- string path "ROOT::namespace1::namespace2"
-
asFormattedString
public java.lang.String asFormattedString()
Converts this namespace path into aNamespacestyle string without the ROOT namespace included.- Returns:
- string path "namespace1::namespace2"
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
compareTo
public int compareTo(NamespacePath otherPath)
- Specified by:
compareToin interfacejava.lang.Comparable<NamespacePath>
-
-