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.