TreePath (Java SE 14 & JDK 14)
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.