TreePath (Java SE 17 & JDK 17)
Description: declaration: module: jdk.compiler, package: com.sun.source.util, class: TreePath
Keywords: com.sun.source.util.TreePath class

Module jdk.compiler
Package com.sun.source.util

# Class TreePath

java.lang.Object
com.sun.source.util.TreePath

All Implemented Interfaces:
  `Iterable<Tree>`

public class TreePath extends Object implements Iterable<Tree>
A path of tree nodes, typically used to represent the sequence of ancestor nodes of a tree node up to the top-level `CompilationUnitTree` node.

Since:
  1.6

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TreePath(CompilationUnitTree node)`
  Creates a TreePath for a root node.
  `TreePath(TreePath path, Tree tree)`
  Creates a TreePath for a child node.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `CompilationUnitTree`
  `getCompilationUnit()`
  Returns the compilation unit associated with this path.
  `Tree`
  `getLeaf()`
  Returns the leaf node for this path.
  `TreePath`
  `getParentPath()`
  Returns the path for the enclosing node, or `null` if there is no enclosing node.
  `static TreePath`
  `getPath(CompilationUnitTree unit, Tree target)`
  Returns a tree path for a tree node within a compilation unit, or `null` if the node is not found.
  `static TreePath`
  `getPath(TreePath path, Tree target)`
  Returns a tree path for a tree node within a subtree identified by a TreePath object.
  `Iterator<Tree>`
  `iterator()`
  Iterates from leaves to root.

  ### Methods declared in class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods declared in interface java.lang.Iterable

  `forEach, spliterator`

- ## Constructor Details

  - ### TreePath

    public TreePath(CompilationUnitTree node)
    Creates a TreePath for a root node.
    Parameters:
      `node` - the root node

  - ### TreePath

    public TreePath(TreePath path, Tree tree)
    Creates a TreePath for a child node.
    Parameters:
      `path` - the parent path
      `tree` - the child node

- ## Method Details

  - ### getPath

    public static TreePath getPath(CompilationUnitTree unit, Tree target)
    Returns a tree path for a tree node within a compilation unit, or `null` if the node is not found.
    Parameters:
      `unit` - the compilation unit to search
      `target` - the node to locate
    Returns:
      the tree path

  - ### getPath

    public static TreePath getPath(TreePath path, Tree target)
    Returns a tree path for a tree node within a subtree identified by a TreePath object. Returns `null` if the node is not found.
    Parameters:
      `path` - the path in which to search
      `target` - the node to locate
    Returns:
      the tree path of the target node

  - ### getCompilationUnit

    public CompilationUnitTree getCompilationUnit()
    Returns the compilation unit associated with this path.
    Returns:
      the compilation unit

  - ### getLeaf

    public Tree getLeaf()
    Returns the leaf node for this path.
    Returns:
      the leaf node

  - ### getParentPath

    public TreePath getParentPath()
    Returns the path for the enclosing node, or `null` if there is no enclosing node.
    Returns:
      the path for the enclosing node

  - ### iterator

    public Iterator<Tree> iterator()
    Iterates from leaves to root.
    Specified by:
      `iterator` in interface `Iterable<Tree>`
    Returns:
      an Iterator.