public final class TreeUtils extends Object
Tree.TreePathUtil| Modifier and Type | Field and Description |
|---|---|
static org.plumelib.util.UniqueIdMap<Tree> |
treeUids
Unique IDs for trees.
|
| Modifier and Type | Method and Description |
|---|---|
static AnnotationMirror |
annotationFromAnnotationTree(AnnotationTree tree)
Converts the given AnnotationTree to an AnnotationMirror.
|
static List<? extends AnnotationMirror> |
annotationsFromArrayCreation(NewArrayTree tree,
int level)
Converts the given NewArrayTree to a list of AnnotationMirrors.
|
static List<? extends AnnotationMirror> |
annotationsFromTree(AnnotatedTypeTree tree)
Converts the given AnnotatedTypeTree to a list of AnnotationMirrors.
|
static List<? extends AnnotationMirror> |
annotationsFromTree(TypeParameterTree tree)
Converts the given TypeParameterTree to a list of AnnotationMirrors.
|
static List<AnnotationMirror> |
annotationsFromTypeAnnotationTrees(List<? extends AnnotationTree> annoTrees)
Converts the given AnnotationTrees to AnnotationMirrors.
|
static VariableTree |
bindingPatternTreeGetVariable(Tree bindingPatternTree)
Returns the binding variable of
bindingPatternTree. |
static boolean |
canHaveTypeAnnotation(Tree tree)
Return
true if and only if tree can have a type annotation. |
static @Nullable Tree |
caseTreeGetBody(CaseTree caseTree)
Returns the body of the case statement if it is of the form
case <expression> ->
<expression>. |
static List<? extends ExpressionTree> |
caseTreeGetExpressions(CaseTree caseTree)
Get the list of expressions from a case expression.
|
static Set<Tree.Kind> |
classTreeKinds()
Return the set of kinds that represent classes.
|
static ExecutableElement |
constructor(NewClassTree tree)
Determines the symbol for a constructor given an invocation via
new. |
static boolean |
containsThisConstructorInvocation(MethodTree node)
Returns true if the first statement in the body is a self constructor invocation within a
constructor.
|
static LiteralTree |
createLiteral(com.sun.tools.javac.code.TypeTag typeTag,
@Nullable Object value,
TypeMirror typeMirror,
ProcessingEnvironment processingEnv)
Creates a LiteralTree for the given value.
|
static TypeElement |
elementFromDeclaration(ClassTree node)
Gets the element for a class corresponding to a declaration.
|
static ExecutableElement |
elementFromDeclaration(MethodTree node)
Gets the element for a method corresponding to a declaration.
|
static VariableElement |
elementFromDeclaration(VariableTree node)
Gets the element for a variable corresponding to its declaration.
|
static @Nullable Element |
elementFromTree(Tree tree)
Gets the
Element for the given Tree API node. |
static @Nullable Element |
elementFromUse(ExpressionTree node)
Gets the element for the declaration corresponding to this use of an element.
|
static ExecutableElement |
elementFromUse(MethodInvocationTree node)
Returns the ExecutableElement for the called method, from a call.
|
static ExecutableElement |
elementFromUse(NewClassTree node)
Gets the ExecutableElement for the called constructor, from a constructor invocation.
|
static com.sun.tools.javac.code.Symbol |
findFunction(Tree tree,
ProcessingEnvironment env)
The type of the lambda or method reference tree is a functional interface type.
|
static Tree |
firstStatement(Tree tree)
Returns the first statement of the tree if it is a block.
|
static LiteralTree |
getDefaultValueTree(TypeMirror typeMirror,
ProcessingEnvironment processingEnv)
Return a tree for the default value of the given type.
|
static List<? extends AnnotationTree> |
getExplicitAnnotationTrees(@Nullable List<? extends AnnotationTree> annoTrees,
Tree typeTree)
Returns the annotations explicitly written on the given type.
|
static VariableElement |
getField(@FullyQualifiedName String typeName,
String fieldName,
ProcessingEnvironment env)
Returns the VariableElement for a field declaration.
|
static String |
getFieldName(Tree tree)
Compute the name of the field that the field access
tree accesses. |
static Tree.Kind |
getKindRecordAsClass(Tree tree)
Calls getKind() on the given tree, but returns CLASS if the Kind is RECORD.
|
static ExecutableElement |
getMethod(Class<?> type,
String methodName,
int params,
ProcessingEnvironment env)
Returns the ExecutableElement for a method declaration.
|
static ExecutableElement |
getMethod(Class<?> type,
String methodName,
ProcessingEnvironment env,
String... paramTypes)
Returns the ExecutableElement for a method declaration.
|
static ExecutableElement |
getMethod(@FullyQualifiedName String typeName,
String methodName,
int params,
ProcessingEnvironment env)
Returns the ExecutableElement for a method declaration.
|
static ExecutableElement |
getMethod(@FullyQualifiedName String typeName,
String methodName,
ProcessingEnvironment env,
String... paramTypes)
Returns the ExecutableElement for a method declaration.
|
static String |
getMethodName(Tree tree)
Compute the name of the method that the method access
tree accesses. |
static @Nullable ExecutableElement |
getMethodOrNull(@FullyQualifiedName String typeName,
String methodName,
int params,
ProcessingEnvironment env)
Returns the ExecutableElement for a method declaration.
|
static List<ExecutableElement> |
getMethods(@FullyQualifiedName String typeName,
String methodName,
int params,
ProcessingEnvironment env)
Returns all ExecutableElements for method declarations of methodName, in class typeName, with
params formal parameters.
|
static @Nullable ExpressionTree |
getReceiverTree(ExpressionTree expression)
Returns the receiver tree of a field access or a method invocation.
|
static ExecutableElement |
getSuperConstructor(NewClassTree newClassTree)
Returns the constructor invoked by
newClassTree unless newClassTree is creating
an anonymous class. |
static boolean |
hasExplicitConstructor(ClassTree node)
Determine whether the given class contains an explicit constructor.
|
static boolean |
hasSyntheticArgument(NewClassTree tree)
Returns true if
tree has a synthetic argument. |
static @Nullable Tree |
instanceOfGetPattern(InstanceOfTree instanceOfTree)
Returns the pattern of
instanceOfTree tree or null if the instanceof does not have a
pattern. |
static boolean |
isAnonymousConstructor(MethodTree method)
Determines whether or not the node referred to by the given
MethodTree is an anonymous
constructor (the constructor for an anonymous class. |
static boolean |
isArrayLengthAccess(Tree tree)
Returns whether or not tree is an access of array length.
|
static boolean |
isAutoGeneratedRecordMember(Tree member)
Returns true if the given
Tree is part of a record that has been automatically
generated by the compiler. |
static boolean |
isClassLiteral(Tree tree)
Determine whether
tree is a class literal, such as |
static boolean |
isClassTree(Tree tree)
Is the given tree kind a class, i.e.
|
static boolean |
isCompactCanonicalRecordConstructor(MethodTree method)
Returns true if the given
MethodTree is a compact canonical constructor (the
constructor for a record where the parameters are implicitly declared and implicitly assigned
to the record's fields). |
static boolean |
isCompileTimeString(ExpressionTree node)
Returns true if the node is a constant-time expression.
|
static boolean |
isConstructor(MethodTree tree)
Checks if the provided method is a constructor method or no.
|
static boolean |
isDiamondTree(Tree tree)
Returns true if the tree is of a diamond type.
|
static boolean |
isEnumSuper(MethodInvocationTree node)
Returns true if this is a super call to the
Enum constructor. |
static boolean |
isExplicitThisDereference(ExpressionTree tree)
Determine whether the given expression is either "this" or an outer "C.this".
|
static boolean |
isExprConstTrue(ExpressionTree node)
Determine whether an expression
ExpressionTree has the constant value true, according
to the compiler logic. |
static boolean |
isExpressionTree(Tree tree)
Determine whether the given tree represents an ExpressionTree.
|
static boolean |
isFieldAccess(Tree tree)
Determine whether
tree is a field access expression, such as |
static boolean |
isImplicitlyTypedLambda(Tree tree)
Returns true if
tree is an implicitly typed lambda. |
static boolean |
isLocalVariable(Tree tree)
Returns true if the tree is the declaration or use of a local variable.
|
static boolean |
isMethodAccess(Tree tree)
Determine whether
tree refers to a method element, such as. |
static boolean |
isMethodInvocation(Tree tree,
ExecutableElement method,
ProcessingEnvironment env)
Returns true if the given element is an invocation of the method, or of any method that
overrides that one.
|
static boolean |
isMethodInvocation(Tree methodTree,
List<ExecutableElement> methods,
ProcessingEnvironment processingEnv)
Returns true if the argument is an invocation of one of the given methods, or of any method
that overrides them.
|
static boolean |
isNullExpression(Tree t)
Returns true if the given tree evaluates to
null. |
static boolean |
isSelfAccess(ExpressionTree tree)
Returns true if the tree is a tree that 'looks like' either an access of a field or an
invocation of a method that are owned by the same accessing instance.
|
static boolean |
isSpecificFieldAccess(Tree tree,
VariableElement var)
Returns true if and only if the given
tree represents a field access of the given
VariableElement. |
static boolean |
isStringCompoundConcatenation(CompoundAssignmentTree tree)
Returns true if the compound assignment tree is a string concatenation.
|
static boolean |
isStringConcatenation(Tree tree)
Returns true if the tree represents a
String concatenation operation. |
static boolean |
isSuperConstructorCall(MethodInvocationTree tree)
Checks if the method invocation is a call to super.
|
static boolean |
isSynthetic(ExecutableElement ee)
Returns true if the given method is synthetic.
|
static boolean |
isSynthetic(MethodTree node)
Returns true if the given method is synthetic.
|
static boolean |
isThisConstructorCall(MethodInvocationTree tree)
Checks if the method invocation is a call to "this".
|
static boolean |
isTypeDeclaration(Tree node)
Determine whether the given tree represents a declaration of a type (including type
parameters).
|
static boolean |
isTypeTree(Tree tree)
Is the given tree a type instantiation?
|
static boolean |
isUseOfElement(ExpressionTree node)
Determine whether the given ExpressionTree has an underlying element.
|
static boolean |
isVarArgs(MethodInvocationTree invok)
Returns true if the given method invocation is a varargs invocation.
|
static boolean |
isVarArgs(NewClassTree newClassTree)
Returns true if the given constructor invocation is a varargs invocation.
|
static boolean |
isVarArgs(Tree tree)
Returns true if the given method/constructor invocation is a varargs invocation.
|
static boolean |
isWideningBinary(BinaryTree node)
Returns true if the binary operator may do a widening primitive conversion.
|
static Name |
methodName(MethodInvocationTree node)
Returns the name of the invoked method.
|
static String |
nameExpressionToString(ExpressionTree nameExpr)
Given a javac ExpressionTree representing a fully qualified name such as "java.lang.Object",
creates a String containing the name.
|
static boolean |
sameTree(ExpressionTree expr1,
ExpressionTree expr2)
Returns true if two expressions originating from the same scope are identical, i.e.
|
static List<? extends CaseTree> |
switchExpressionTreeGetCases(Tree switchExpressionTree)
Returns the cases of
switchExpressionTree. |
static ExpressionTree |
switchExpressionTreeGetExpression(Tree switchExpressionTree)
Returns the selector expression of
switchExpressionTree. |
static String |
toStringOneLine(Tree tree)
Return toString(), but without line separators.
|
static String |
toStringTruncated(Tree tree,
int length)
Return either
toStringOneLine(com.sun.source.tree.Tree) if it is no more than length characters, or
toStringOneLine(com.sun.source.tree.Tree) quoted and truncated. |
static TypeMirror |
typeOf(Tree tree)
Returns the type as a TypeMirror of
tree. |
static Set<Tree.Kind> |
typeTreeKinds() |
static @PolyInterned ExpressionTree |
withoutParens(@PolyInterned ExpressionTree tree)
If the given tree is a parenthesized tree, return the enclosed non-parenthesized tree.
|
static @PolyInterned ExpressionTree |
withoutParensOrCasts(@PolyInterned ExpressionTree tree)
If the given tree is a parenthesized tree or cast tree, return the enclosed non-parenthesized,
non-cast tree.
|
static ExpressionTree |
yieldTreeGetValue(Tree yieldTree)
Returns the value (expression) for
yieldTree. |
public static final org.plumelib.util.UniqueIdMap<Tree> treeUids
public static boolean isConstructor(MethodTree tree)
tree - a tree defining the methodpublic static boolean isSuperConstructorCall(MethodInvocationTree tree)
tree - a tree defining a method invocationpublic static boolean isThisConstructorCall(MethodInvocationTree tree)
tree - a tree defining a method invocationpublic static boolean isSelfAccess(ExpressionTree tree)
It would only return true if the access tree is of the form:
field this.field method() this.method()It does not perform any semantical check to differentiate between fields and local variables; local methods or imported static methods.
tree - expression tree representing an access to object membertrue iff the member is a member of this instancepublic static @PolyInterned ExpressionTree withoutParens(@PolyInterned ExpressionTree tree)
tree - an expression treepublic static @PolyInterned ExpressionTree withoutParensOrCasts(@PolyInterned ExpressionTree tree)
tree - an expression tree@Pure public static @Nullable Element elementFromTree(Tree tree)
Element for the given Tree API node. For an object instantiation returns the
value of the JCTree.JCNewClass.constructor field.tree - the Tree node to get the symbol forSymbol for the given tree, or null if one could not be foundIllegalArgumentException - if tree is null or is not a valid javac-internal tree
(JCTree)public static TypeElement elementFromDeclaration(ClassTree node)
node - class declarationpublic static ExecutableElement elementFromDeclaration(MethodTree node)
public static VariableElement elementFromDeclaration(VariableTree node)
@Pure public static @Nullable Element elementFromUse(ExpressionTree node)
elementFromDeclaration(ClassTree), elementFromDeclaration(MethodTree), or elementFromDeclaration(VariableTree) instead.
This method is just a wrapper around elementFromTree(Tree), but this class
might be the first place someone looks for this functionality.
node - the tree corresponding to a use of an elementnull otherwise@Pure public static ExecutableElement elementFromUse(MethodInvocationTree node)
node - a method call@Pure public static ExecutableElement elementFromUse(NewClassTree node)
node - a constructor invocationconstructor(NewClassTree)public static ExecutableElement getSuperConstructor(NewClassTree newClassTree)
newClassTree unless newClassTree is creating
an anonymous class. In which case, the super constructor is returned.newClassTree - the constructor invocationconstructor(NewClassTree) if newClassTree is not creating an anonymous classpublic static ExecutableElement constructor(NewClassTree tree)
new.tree - the constructor invocationExecutableElement corresponding to the constructor call in treeelementFromUse(NewClassTree)@EnsuresNonNullIf(result=true, expression="elementFromUse(#1)") @Pure public static boolean isUseOfElement(ExpressionTree node)
node - the ExpressionTree to testpublic static boolean hasSyntheticArgument(NewClassTree tree)
tree has a synthetic argument.
For some anonymous classes with an explicit enclosing expression, javac creates a synthetic argument to the constructor that is the enclosing expression of the NewClassTree. Suppose a programmer writes:
class Outer {
class Inner { }
void method() {
this.new Inner(){};
}
}
Java 9 javac creates the following synthetic tree for this.new Inner(){}:
new Inner(this) {
(.Outer x0) {
x0.super();
}
}
Java 11 javac creates a different tree without the synthetic argument for this.new
Inner(){}; the first line in the below code differs:
this.new Inner() {
(.Outer x0) {
x0.super();
}
}tree - a new class treetree has a synthetic argumentpublic static Name methodName(MethodInvocationTree node)
public static boolean containsThisConstructorInvocation(MethodTree node)
public static Tree firstStatement(Tree tree)
tree - any kind of treepublic static boolean hasExplicitConstructor(ClassTree node)
node - a class treepublic static boolean isSynthetic(ExecutableElement ee)
ee - a method or constructor elementpublic static boolean isSynthetic(MethodTree node)
node - a method declaration treepublic static boolean isDiamondTree(Tree tree)
TreeInfo.isDiamond(JCTree)public static boolean isStringConcatenation(Tree tree)
String concatenation operation.public static boolean isStringCompoundConcatenation(CompoundAssignmentTree tree)
public static boolean isCompileTimeString(ExpressionTree node)
A tree is a constant-time expression if it is:
public static @Nullable ExpressionTree getReceiverTree(ExpressionTree expression)
expression - a field access or a method invocationpublic static Set<Tree.Kind> classTreeKinds()
public static boolean isClassTree(Tree tree)
tree - the tree to testpublic static boolean isTypeTree(Tree tree)
TODO: this is an under-approximation: e.g. an identifier could be either a type use or an expression. How can we distinguish.
tree - the tree to testpublic static boolean isMethodInvocation(Tree tree, ExecutableElement method, ProcessingEnvironment env)
public static boolean isMethodInvocation(Tree methodTree, List<ExecutableElement> methods, ProcessingEnvironment processingEnv)
public static ExecutableElement getMethod(Class<?> type, String methodName, int params, ProcessingEnvironment env)
getMethod(String, String, ProcessingEnvironment, String...).type - the class that contains the methodmethodName - the name of the methodparams - the number of formal parametersenv - the processing environmentpublic static ExecutableElement getMethod(@FullyQualifiedName String typeName, String methodName, int params, ProcessingEnvironment env)
getMethod(String, String, ProcessingEnvironment, String...).typeName - the class that contains the methodmethodName - the name of the methodparams - the number of formal parametersenv - the processing environmentpublic static @Nullable ExecutableElement getMethodOrNull(@FullyQualifiedName String typeName, String methodName, int params, ProcessingEnvironment env)
getMethod(String, String, ProcessingEnvironment,
String...).typeName - the class that contains the methodmethodName - the name of the methodparams - the number of formal parametersenv - the processing environmentpublic static List<ExecutableElement> getMethods(@FullyQualifiedName String typeName, String methodName, int params, ProcessingEnvironment env)
typeName - the class that contains the methodmethodName - the name of the methodparams - the number of formal parametersenv - the processing environmentpublic static ExecutableElement getMethod(Class<?> type, String methodName, ProcessingEnvironment env, String... paramTypes)
type - the class that contains the methodmethodName - the name of the methodenv - the processing environmentparamTypes - the method's formal parameter typespublic static ExecutableElement getMethod(@FullyQualifiedName String typeName, String methodName, ProcessingEnvironment env, String... paramTypes)
typeName - the class that contains the methodmethodName - the name of the methodenv - the processing environmentparamTypes - the method's formal parameter typespublic static boolean isExplicitThisDereference(ExpressionTree tree)
TODO: Should this also handle "super"?
public static boolean isClassLiteral(Tree tree)
tree is a class literal, such as
Object . class
public static boolean isFieldAccess(Tree tree)
tree is a field access expression, such as
f obj . fThis method currently also returns true for class literals and qualified this.
tree - a tree that might be a field accesspublic static String getFieldName(Tree tree)
tree accesses. Requires tree to be a field access, as determined by isFieldAccess (which currently also
returns true for class literals and qualified this).tree - a field access treetreepublic static boolean isMethodAccess(Tree tree)
tree refers to a method element, such as.
m(...) obj . m(...)
public static String getMethodName(Tree tree)
tree accesses. Requires tree to be a method access, as determined by isMethodAccess.tree - a method access treetreepublic static boolean canHaveTypeAnnotation(Tree tree)
true if and only if tree can have a type annotation.true if and only if tree can have a type annotationpublic static boolean isSpecificFieldAccess(Tree tree, VariableElement var)
tree represents a field access of the given
VariableElement.public static VariableElement getField(@FullyQualifiedName String typeName, String fieldName, ProcessingEnvironment env)
typeName - the class where the field is declaredfieldName - the name of the fieldenv - the processing environmentpublic static boolean isExpressionTree(Tree tree)
tree - the Tree to testpublic static boolean isEnumSuper(MethodInvocationTree node)
Enum constructor.node - the method invocation to checkEnum constructorpublic static boolean isTypeDeclaration(Tree node)
node - the Tree to testpublic static boolean isArrayLengthAccess(Tree tree)
tree - tree to checkpublic static boolean isAnonymousConstructor(MethodTree method)
MethodTree is an anonymous
constructor (the constructor for an anonymous class.method - a method tree that may be an anonymous constructorpublic static boolean isCompactCanonicalRecordConstructor(MethodTree method)
MethodTree is a compact canonical constructor (the
constructor for a record where the parameters are implicitly declared and implicitly assigned
to the record's fields). This may be an explicitly declared compact canonical constructor or an
implicitly generated one.method - a method tree that may be a compact canonical constructorpublic static boolean isAutoGeneratedRecordMember(Tree member)
Tree is part of a record that has been automatically
generated by the compiler. This can be a field that is derived from the record's header field
list, or an automatically generated canonical constructor.member - the Tree for a member of a recordpublic static List<AnnotationMirror> annotationsFromTypeAnnotationTrees(List<? extends AnnotationTree> annoTrees)
annoTrees - list of annotation trees to convert to annotation mirrorspublic static AnnotationMirror annotationFromAnnotationTree(AnnotationTree tree)
tree - annotation tree to convert to an annotation mirrorpublic static List<? extends AnnotationMirror> annotationsFromTree(AnnotatedTypeTree tree)
tree - annotated type tree to convertpublic static List<? extends AnnotationMirror> annotationsFromTree(TypeParameterTree tree)
tree - type parameter tree to convertpublic static List<? extends AnnotationMirror> annotationsFromArrayCreation(NewArrayTree tree, int level)
tree - new array treepublic static boolean isLocalVariable(Tree tree)
tree - the tree to checkpublic static TypeMirror typeOf(Tree tree)
tree. To obtain tree's AnnotatedTypeMirror,
call AnnotatedTypeFactory.getAnnotatedType().treepublic static com.sun.tools.javac.code.Symbol findFunction(Tree tree, ProcessingEnvironment env)
tree - lambda or member reference treeenv - ProcessingEnvironmentpublic static boolean isImplicitlyTypedLambda(Tree tree)
tree is an implicitly typed lambda.
A lambda expression whose formal type parameters have inferred types is an implicitly typed lambda. (See JLS 15.27.1)
tree - any kind of treetree is an implicitly typed lambdapublic static boolean isExprConstTrue(ExpressionTree node)
ExpressionTree has the constant value true, according
to the compiler logic.node - the expression to be checkednode has the constant value truepublic static String toStringOneLine(Tree tree)
tree - a treepublic static String toStringTruncated(Tree tree, int length)
toStringOneLine(com.sun.source.tree.Tree) if it is no more than length characters, or
toStringOneLine(com.sun.source.tree.Tree) quoted and truncated.tree - a treelength - the maximum length for the result; must be at least 6length
characters longpublic static String nameExpressionToString(ExpressionTree nameExpr)
nameExpr - an ExpressionTree representing a fully qualified namepublic static boolean isWideningBinary(BinaryTree node)
node - a binary treepublic static List<? extends AnnotationTree> getExplicitAnnotationTrees(@Nullable List<? extends AnnotationTree> annoTrees, Tree typeTree)
annoTrees - annotations written before a variable/method declaration; null if this type is
not from such a location. This might contain type annotations that the Java parser attached
to the declaration rather than to the type.typeTree - the type whose annotations to returnpublic static LiteralTree getDefaultValueTree(TypeMirror typeMirror, ProcessingEnvironment processingEnv)
typeMirror - a typeprocessingEnv - the processing environmenttype's default valuepublic static LiteralTree createLiteral(com.sun.tools.javac.code.TypeTag typeTag, @Nullable Object value, TypeMirror typeMirror, ProcessingEnvironment processingEnv)
typeTag - the literal's type tagvalue - a wrapped primitive, null, or a StringtypeMirror - the typeMirror for the literalprocessingEnv - the processing environmentpublic static boolean isNullExpression(Tree t)
null.t - a treenullpublic static boolean sameTree(ExpressionTree expr1, ExpressionTree expr2)
If the expression includes one or more method calls, assumes the method calls are deterministic.
expr1 - the first expression to compareexpr2 - the second expression to compare; expr2 must originate from the same scope as
expr1public static List<? extends ExpressionTree> caseTreeGetExpressions(CaseTree caseTree)
caseTree - the case expression to get the expressions frompublic static @Nullable Tree caseTreeGetBody(CaseTree caseTree)
case <expression> ->
<expression>. This method should only be called if CaseTree.getStatements() returns
null.caseTree - the case expression to get the body frompublic static VariableTree bindingPatternTreeGetVariable(Tree bindingPatternTree)
bindingPatternTree.bindingPatternTree - the BindingPatternTree whose binding variable is returnedbindingPatternTreepublic static @Nullable Tree instanceOfGetPattern(InstanceOfTree instanceOfTree)
instanceOfTree tree or null if the instanceof does not have a
pattern.instanceOfTree - the InstanceOfTree whose pattern is returnedPatternTree of instanceOfTree or null if is doesn't existpublic static ExpressionTree switchExpressionTreeGetExpression(Tree switchExpressionTree)
switchExpressionTree. For example
switch ( expression ) { ... }
switchExpressionTree - the switch expression whose selector expression is returnedswitchExpressionTreepublic static List<? extends CaseTree> switchExpressionTreeGetCases(Tree switchExpressionTree)
switchExpressionTree. For example
switch ( expression ) {
cases
}
switchExpressionTree - the switch expression whose cases are returnedswitchExpressionTreepublic static ExpressionTree yieldTreeGetValue(Tree yieldTree)
yieldTree.yieldTree - the yield treeyieldTree.public static boolean isVarArgs(Tree tree)
tree - a method/constructor invocationpublic static boolean isVarArgs(MethodInvocationTree invok)
invok - the method invocationpublic static boolean isVarArgs(NewClassTree newClassTree)
newClassTree - the constructor invocationpublic static Tree.Kind getKindRecordAsClass(Tree tree)
tree - the tree to get the kind for