Module jdk.compiler

Class Trees

  • Direct Known Subclasses:
    DocTrees


    public abstract class Trees
    extends Object
    Bridges JSR 199, JSR 269, and the Tree API.
    • 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