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.