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

    All Methods Static Methods Instance Methods Concrete Methods
    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 inherited from interface java.lang.Iterable

      `forEach, spliterator`

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

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

- - ### Constructor Detail

    - #### 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 Detail

    - #### 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.