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
    Constructor | Description
    --- | ---
    `Trees()` |

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `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