Package ghidra.program.util

# Class GroupPath

java.lang.Object
ghidra.program.util.GroupPath

All Implemented Interfaces:
  `Serializable`

public class GroupPath extends Object implements Serializable
The `GroupPath` is a class to represent a unique path in a tree for a Group.

See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GroupPath(String groupName)`
  Construct a new GroupPath that is only a single level.
  `GroupPath(String[] groupNames)`
  Construct a new GroupPath with the given names.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  `Group`
  `getGroup(Program program, String treeName)`
  Get the Group for this group path object.
  `String`
  `getLastPathComponent()`
  Get the last name in the path.
  `GroupPath`
  `getParentPath()`
  Get the parent path for this group.
  `String[]`
  `getPath()`
  Return the array of names that make up this group's path.
  `String`
  `getPathComponent(int index)`
  Get the name at the given index into this group's path.
  `int`
  `getPathCount()`
  Get the number of names (levels) that make up this path.
  `int`
  `hashCode()`
  `boolean`
  `isDescendant(GroupPath grpPath)`
  Return true if the indicated group path is a descendant of this group path.
  `GroupPath`
  `pathByAddingChild(String child)`
  Create a new GroupPath object by adding the given child name to this group path.
  `String`
  `toString()`
  Returns a string representation of this group path.
  `void`
  `updateGroupPath(String oldname, String newname)`
  Update this group path with the new group name wherever the old group name is found.

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### GroupPath

    public GroupPath(String groupName)
    Construct a new GroupPath that is only a single level.
    Parameters:
      `groupName` - name of group

  - ### GroupPath

    public GroupPath(String[] groupNames)
    Construct a new GroupPath with the given names.
    Parameters:
      `groupNames` - group names. The first name is the oldest ancestor and the last name is the youngest descendant in the path.

- ## Method Details

  - ### updateGroupPath

    public void updateGroupPath(String oldname, String newname)
    Update this group path with the new group name wherever the old group name is found.
    Parameters:
      `oldname` - old name
      `newname` - new name

  - ### equals

    public boolean equals(Object obj)
    Overrides:
      `equals` in class `Object`
    See Also:
      - `Object.equals(Object)`

  - ### getLastPathComponent

    public String getLastPathComponent()
    Get the last name in the path.
    Returns:
      String

  - ### getGroup

    public Group getGroup(Program program, String treeName)
    Get the Group for this group path object.
    Returns:
      null if there is no group with the name in this group path.

  - ### getParentPath

    public GroupPath getParentPath()
    Get the parent path for this group.

  - ### getPath

    public String[] getPath()
    Return the array of names that make up this group's path.

  - ### getPathCount

    public int getPathCount()
    Get the number of names (levels) that make up this path.

  - ### getPathComponent

    public String getPathComponent(int index)
    Get the name at the given index into this group's path.
    Parameters:
      `index` - the index in the group path

  - ### isDescendant

    public boolean isDescendant(GroupPath grpPath)
    Return true if the indicated group path is a descendant of this group path.
    Parameters:
      `grpPath` - the group path

  - ### pathByAddingChild

    public GroupPath pathByAddingChild(String child)
    Create a new GroupPath object by adding the given child name to this group path.
    Parameters:
      `child` - name of child to add to path

  - ### toString

    public String toString()
    Returns a string representation of this group path.
    Overrides:
      `toString` in class `Object`

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`
    See Also:
      - `Object.hashCode()`