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) Returns the list of expressions from a case expression.static @Nullable ExpressionTreeReturns the guard, the expression afterwhen, ofcaseTree.Returns the list of labels from a case expression.static booleanisCaseRule(CaseTree caseTree) Returns true if this is a case rule (as opposed to a case statement).static booleanisDefaultCaseLabelTree(Tree tree) Returns true iftreeis aDefaultCaseLabelTree.static booleanisDefaultCaseTree(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
caseTreeis 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 ifcaseTreeiscase null, default:.)- Parameters:
caseTree- a case tree- Returns:
- true if
caseTreeis the default case for a switch statement or expression
-
isDefaultCaseLabelTree
Returns true iftreeis aDefaultCaseLabelTree.- Parameters:
tree- a tree to check- Returns:
- true if
treeis aDefaultCaseLabelTree
-
getLabels
Returns 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
Returns 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#getGuardthat 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
-