checkers.util
Class InternalUtils

java.lang.Object
  extended by checkers.util.InternalUtils

public class InternalUtils
extends Object

Static utility methods used by annotation abstractions in this package. Some methods in this class depend on the use of Sun javac internals; any procedure in the Checker Framework that uses a non-public API should be placed here.


Method Summary
Modifier and Type Method and Description
static List<? extends AnnotationMirror> annotationsFromArrayCreation(NewArrayTree node, int level)
           
static List<? extends AnnotationMirror> annotationsFromTree(AnnotatedTypeTree node)
           
static List<? extends AnnotationMirror> annotationsFromTree(TypeParameterTree node)
           
static List<AnnotationMirror> annotationsFromTypeAnnotationTrees(List<? extends AnnotationTree> annos)
           
static ExecutableElement constructor(NewClassTree tree)
          Determines the symbol for a constructor given an invocation via new.
static boolean isAnonymousConstructor(MethodTree method)
          Determines whether or not the node referred to by the given TreePath is an anonymous constructor (the constructor for an anonymous class.
static @Nullable Element symbol(@Nullable Tree tree)
          Gets the Element ("symbol") for the given Tree API node.
static TypeMirror typeOf(Tree tree)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

symbol

@Nullable
public static @Nullable Element symbol(@Nullable
                                                                                                                                                                 @Nullable Tree tree)
Gets the Element ("symbol") for the given Tree API node.

Parameters:
tree - the Tree node to get the symbol for
Returns:
the {@link Symbol} for the given tree, or null if one could not be found
Throws:
IllegalArgumentException - if tree is null or is not a valid javac-internal tree (JCTree)

isAnonymousConstructor

public static boolean isAnonymousConstructor(MethodTree method)
Determines whether or not the node referred to by the given TreePath is an anonymous constructor (the constructor for an anonymous class.

Parameters:
method - the TreePath for a node that may be an anonymous constructor
Returns:
true if the given path points to an anonymous constructor, false if it does not

constructor

public static ExecutableElement constructor(NewClassTree tree)
Determines the symbol for a constructor given an invocation via new. If the tree is a declaration of an anonymous class, then method returns constructor that gets invoked in the extended class, rather than the anonymous constructor implicitly added by the constructor (JLS 15.9.5.1)

Parameters:
tree - the constructor invocation
Returns:
the ExecutableElement corresponding to the constructor call in tree

annotationsFromTypeAnnotationTrees

public static final List<AnnotationMirror> annotationsFromTypeAnnotationTrees(List<? extends AnnotationTree> annos)

annotationsFromTree

public static final List<? extends AnnotationMirror> annotationsFromTree(AnnotatedTypeTree node)

annotationsFromTree

public static final List<? extends AnnotationMirror> annotationsFromTree(TypeParameterTree node)

annotationsFromArrayCreation

public static final List<? extends AnnotationMirror> annotationsFromArrayCreation(NewArrayTree node,
                                                                                  int level)

typeOf

public static TypeMirror typeOf(Tree tree)