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 and 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
`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.