Package org.checkerframework.javacutil
Class TreeUtilsAfterJava11.CaseUtils
java.lang.Object
org.checkerframework.javacutil.TreeUtilsAfterJava11.CaseUtils
- Enclosing class:
- TreeUtilsAfterJava11
Utility methods for accessing
CaseTree
methods.-
Method Summary
Modifier and TypeMethodDescriptionReturns the body of the case statement if it is of the formcase <expression> -> <expression>
.static List<? extends ExpressionTree>
getExpressions
(CaseTree caseTree) Get the list of expressions from a case expression.static @Nullable ExpressionTree
Returns the guard, the expression afterwhen
, ofcaseTree
.Get the list of labels from a case expression.static boolean
isCaseRule
(CaseTree caseTree) Returns true if this is a case rule (as opposed to a case statement).static boolean
isDefaultCaseLabelTree
(Tree tree) Returns true iftree
is aDefaultCaseLabelTree
.static boolean
isDefaultCaseTree
(CaseTree caseTree) Returns true if this is the default case for a switch statement or expression.
-
Method Details
-
isCaseRule
Returns true if this is a case rule (as opposed to a case statement).- Parameters:
caseTree
- a case tree- Returns:
- true if
caseTree
is a case rule
-
getBody
Returns the body of the case statement if it is of the formcase <expression> -> <expression>
. This method should only be called ifCaseTree.getStatements()
returns null.- Parameters:
caseTree
- the case expression to get the body from- Returns:
- the body of the case tree
-
isDefaultCaseTree
Returns true if this is the default case for a switch statement or expression. (Also, returns true ifcaseTree
iscase null, default:
.)- Parameters:
caseTree
- a case tree- Returns:
- true if
caseTree
is the default case for a switch statement or expression
-
isDefaultCaseLabelTree
Returns true iftree
is aDefaultCaseLabelTree
.- Parameters:
tree
- a tree to check- Returns:
- true if
tree
is aDefaultCaseLabelTree
-
getLabels
Get the list of labels from a case expression. Fordefault
, this is empty. Forcase null, default
, the list containsnull
. Otherwise, in JDK 11 and earlier, this is a list of a single expression tree. In JDK 12+, the list may have multiple expression trees. In JDK 21+, the list might contain a single pattern tree.- Parameters:
caseTree
- the case expression to get the labels from- Returns:
- the list of case labels in the case
-
getExpressions
Get the list of expressions from a case expression. For the default case, this is empty. Otherwise, in JDK 11 and earlier, this is a singleton list. In JDK 12 onwards, there can be multiple expressions per case.- Parameters:
caseTree
- the case expression to get the expressions from- Returns:
- the list of expressions in the case
-
getGuard
Returns the guard, the expression afterwhen
, ofcaseTree
. Wrapper aroundCaseTree#getGuard
that can be called on any version of Java.- Parameters:
caseTree
- the case tree- Returns:
- the guard on the case tree or null if one does not exist
-