Module jdk.compiler
Package com.sun.source.util

## Class Trees

- java.lang.Object
- - com.sun.source.util.Trees

Direct Known Subclasses:
  `DocTrees`

    public abstract class Trees
    extends Object

Bridges JSR 199, JSR 269, and the Tree API.

### Constructor Summary

Constructors
`Trees()`

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
`abstract String` `getDocComment​(TreePath path)` Returns the doc comment, if any, for the Tree node identified by a given TreePath.
`abstract Element` `getElement​(TreePath path)` Returns the Element for the Tree node identified by a given TreePath.
`abstract TypeMirror` `getLub​(CatchTree tree)` Returns the lub of an exception parameter declared in a catch clause.
`abstract TypeMirror` `getOriginalType​(ErrorType errorType)` Returns the original type from the ErrorType object.
`abstract TreePath` `getPath​(CompilationUnitTree unit, Tree node)` Returns the path to tree node within the specified compilation unit.
`abstract TreePath` `getPath​(Element e)` Returns the TreePath node for a given Element.
`abstract TreePath` `getPath​(Element e, AnnotationMirror a)` Returns the TreePath node for an AnnotationMirror on a given Element.
`abstract TreePath` `getPath​(Element e, AnnotationMirror a, AnnotationValue v)` Returns the TreePath node for an AnnotationValue for an AnnotationMirror on a given Element.
`abstract Scope` `getScope​(TreePath path)` Returns the Scope for the Tree node identified by a given TreePath.
`abstract SourcePositions` `getSourcePositions()` Returns a utility object for obtaining source positions.
`abstract Tree` `getTree​(Element element)` Returns the Tree node for a given Element.
`abstract Tree` `getTree​(Element e, AnnotationMirror a)` Returns the Tree node for an AnnotationMirror on a given Element.
`abstract Tree` `getTree​(Element e, AnnotationMirror a, AnnotationValue v)` Returns the Tree node for an AnnotationValue for an AnnotationMirror on a given Element.
`abstract MethodTree` `getTree​(ExecutableElement method)` Returns the MethodTree node for a given ExecutableElement.
`abstract ClassTree` `getTree​(TypeElement element)` Returns the ClassTree node for a given TypeElement.
`abstract TypeMirror` `getTypeMirror​(TreePath path)` Returns the TypeMirror for the Tree node identified by a given TreePath.
`static Trees` `instance​(ProcessingEnvironment env)` Returns a Trees object for a given ProcessingEnvironment.
`static Trees` `instance​(JavaCompiler.CompilationTask task)` Returns a Trees object for a given CompilationTask.
`abstract boolean` `isAccessible​(Scope scope, Element member, DeclaredType type)` Checks whether the given element is accessible as a member of the given type in a given scope.
`abstract boolean` `isAccessible​(Scope scope, TypeElement type)` Checks whether a given type is accessible in a given scope.
`abstract void` `printMessage​(Diagnostic.Kind kind, CharSequence msg, Tree t, CompilationUnitTree root)` Prints a message of the specified kind at the location of the tree within the provided compilation unit

### Methods declared in class java.lang.Object

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

### Constructor Detail

#### Trees

    public Trees()

### Method Detail

#### instance

    public static Trees instance​(JavaCompiler.CompilationTask task)

Returns a Trees object for a given CompilationTask.

Parameters:
  `task` - the compilation task for which to get the Trees object
Returns:
  the Trees object
Throws:
  `IllegalArgumentException` - if the task does not support the Trees API.

#### instance

    public static Trees instance​(ProcessingEnvironment env)

Returns a Trees object for a given ProcessingEnvironment.

Parameters:
  `env` - the processing environment for which to get the Trees object
Returns:
  the Trees object
Throws:
  `IllegalArgumentException` - if the env does not support the Trees API.

#### getSourcePositions

    public abstract SourcePositions getSourcePositions()

Returns a utility object for obtaining source positions.

Returns:
  the utility object for obtaining source positions

#### getTree

    public abstract Tree getTree​(Element element)

Returns the Tree node for a given Element. Returns `null` if the node can not be found.

Parameters:
  `element` - the element
Returns:
  the tree node

#### getTree

    public abstract ClassTree getTree​(TypeElement element)

Returns the ClassTree node for a given TypeElement. Returns `null` if the node can not be found.

Parameters:
  `element` - the element
Returns:
  the class tree node

#### getTree

    public abstract MethodTree getTree​(ExecutableElement method)

Returns the MethodTree node for a given ExecutableElement. Returns `null` if the node can not be found.

Parameters:
  `method` - the executable element
Returns:
  the method tree node

#### getTree

    public abstract Tree getTree​(Element e,
                                 AnnotationMirror a)

Returns the Tree node for an AnnotationMirror on a given Element. Returns `null` if the node can not be found.

Parameters:
  `e` - the element
  `a` - the annotation mirror
Returns:
  the tree node

#### getTree

    public abstract Tree getTree​(Element e,
                                 AnnotationMirror a,
                                 AnnotationValue v)

Returns the Tree node for an AnnotationValue for an AnnotationMirror on a given Element. Returns `null` if the node can not be found.

Parameters:
  `e` - the element
  `a` - the annotation mirror
  `v` - the annotation value
Returns:
  the tree node

#### getPath

    public abstract TreePath getPath​(CompilationUnitTree unit,
                                     Tree node)

Returns the path to tree node within the specified compilation unit.

Parameters:
  `unit` - the compilation unit
  `node` - the tree node
Returns:
  the tree path

#### getPath

    public abstract TreePath getPath​(Element e)

Returns the TreePath node for a given Element. Returns `null` if the node can not be found.

Parameters:
  `e` - the element
Returns:
  the tree path

#### getPath

    public abstract TreePath getPath​(Element e,
                                     AnnotationMirror a)

Returns the TreePath node for an AnnotationMirror on a given Element. Returns `null` if the node can not be found.

Parameters:
  `e` - the element
  `a` - the annotation mirror
Returns:
  the tree path

#### getPath

    public abstract TreePath getPath​(Element e,
                                     AnnotationMirror a,
                                     AnnotationValue v)

Returns the TreePath node for an AnnotationValue for an AnnotationMirror on a given Element. Returns `null` if the node can not be found.

Parameters:
  `e` - the element
  `a` - the annotation mirror
  `v` - the annotation value
Returns:
  the tree path

#### getElement

    public abstract Element getElement​(TreePath path)

Returns the Element for the Tree node identified by a given TreePath. Returns `null` if the element is not available.

Parameters:
  `path` - the tree path
Returns:
  the element
Throws:
  `IllegalArgumentException` - is the TreePath does not identify a Tree node that might have an associated Element.

#### getTypeMirror

    public abstract TypeMirror getTypeMirror​(TreePath path)

Returns the TypeMirror for the Tree node identified by a given TreePath. Returns `null` if the TypeMirror is not available.

Parameters:
  `path` - the tree path
Returns:
  the type mirror
Throws:
  `IllegalArgumentException` - is the TreePath does not identify a Tree node that might have an associated TypeMirror.

#### getScope

    public abstract Scope getScope​(TreePath path)

Returns the Scope for the Tree node identified by a given TreePath. Returns `null` if the Scope is not available.

Parameters:
  `path` - the tree path
Returns:
  the scope

#### getDocComment

    public abstract String getDocComment​(TreePath path)

Returns the doc comment, if any, for the Tree node identified by a given TreePath. Returns `null` if no doc comment was found.

Parameters:
  `path` - the tree path
Returns:
  the doc comment
See Also:
  `DocTrees.getDocCommentTree(TreePath)`

#### isAccessible

    public abstract boolean isAccessible​(Scope scope,
                                         TypeElement type)

Checks whether a given type is accessible in a given scope.

Parameters:
  `scope` - the scope to be checked
  `type` - the type to be checked
Returns:
  true if `type` is accessible

#### isAccessible

    public abstract boolean isAccessible​(Scope scope,
                                         Element member,
                                         DeclaredType type)

Checks whether the given element is accessible as a member of the given type in a given scope.

Parameters:
  `scope` - the scope to be checked
  `member` - the member to be checked
  `type` - the type for which to check if the member is accessible
Returns:
  true if `member` is accessible in `type`

#### getOriginalType

    public abstract TypeMirror getOriginalType​(ErrorType errorType)

Returns the original type from the ErrorType object.

Parameters:
  `errorType` - The errorType for which we want to get the original type.
Returns:
  javax.lang.model.type.TypeMirror corresponding to the original type, replaced by the ErrorType.

#### printMessage

    public abstract void printMessage​(Diagnostic.Kind kind,
                                      CharSequence msg,
                                      Tree t,
                                      CompilationUnitTree root)

Prints a message of the specified kind at the location of the tree within the provided compilation unit

Parameters:
  `kind` - the kind of message
  `msg` - the message, or an empty string if none
  `t` - the tree to use as a position hint
  `root` - the compilation unit that contains tree

#### getLub

    public abstract TypeMirror getLub​(CatchTree tree)

Returns the lub of an exception parameter declared in a catch clause.

Parameters:
  `tree` - the tree for the catch clause
Returns:
  The lub of the exception parameter