Module jdk.compiler
Package com.sun.source.tree

## Interface CaseTree

- All Superinterfaces:
    `Tree`

      public interface CaseTree
      extends Tree

  A tree node for a `case` in a `switch` statement or expression. For example:

         case expression :
             statements

         default :
             statements

  Since:
    1.6
  See The Java™ Language Specification:
    section 14.11

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static class` | `CaseTree.CaseKind` | Deprecated, for removal: This API element is subject to removal in a future version. This enum is used to model a rule case, which is part of a preview feature and may be removed if the preview feature is removed.

    - ### Nested classes/interfaces declared in interface com.sun.source.tree.Tree

      `Tree.Kind`

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `default Tree` | `getBody()` | Deprecated, for removal: This API element is subject to removal in a future version. This method is modeling a rule case, which is part of a preview feature and may be removed if the preview feature is removed.
    `default CaseTree.CaseKind` | `getCaseKind()` | Deprecated, for removal: This API element is subject to removal in a future version. This method is used to model a rule case, which is part of a preview feature and may be removed if the preview feature is removed.
    `ExpressionTree` | `getExpression()` | Returns the expression for the case, or `null` if this is the default case.
    `List<? extends ExpressionTree>` | `getExpressions()` | Deprecated, for removal: This API element is subject to removal in a future version. This method is modeling a case with multiple labels, which is part of a preview feature and may be removed if the preview feature is removed.
    `List<? extends StatementTree>` | `getStatements()` | For case with kind CaseTree.CaseKind.STATEMENT, returns the statements labeled by the case.

    - ### Methods declared in interface com.sun.source.tree.Tree

      `accept, getKind`

- - ### Method Detail

    - #### getExpression

          ExpressionTree getExpression()

      Returns the expression for the case, or `null` if this is the default case. If this case has multiple lables, returns the first label.
      Returns:
        the expression for the case, or null

    - #### getExpressions

          @Deprecated(forRemoval=true,
                      since="12")
          List<? extends ExpressionTree> getExpressions()

      Deprecated, for removal: This API element is subject to removal in a future version.
      This method is modeling a case with multiple labels, which is part of a preview feature and may be removed if the preview feature is removed.
      Returns the labels for this case. For default case, returns an empty list.
      Returns:
        labels for this case
      Since:
        12

    - #### getStatements

          List<? extends StatementTree> getStatements()

      For case with kind CaseTree.CaseKind.STATEMENT, returns the statements labeled by the case. Returns `null` for case with kind CaseTree.CaseKind.RULE.
      Returns:
        the statements labeled by the case or null

    - #### getBody

          @Deprecated(forRemoval=true,
                      since="12")
          default Tree getBody()

      Deprecated, for removal: This API element is subject to removal in a future version.
      This method is modeling a rule case, which is part of a preview feature and may be removed if the preview feature is removed.
      For case with kind CaseTree.CaseKind.RULE, returns the statement or expression after the arrow. Returns `null` for case with kind CaseTree.CaseKind.STATEMENT.
      Returns:
        case value or null
      Since:
        12

    - #### getCaseKind

          @Deprecated(forRemoval=true,
                      since="12")
          default CaseTree.CaseKind getCaseKind()

      Deprecated, for removal: This API element is subject to removal in a future version.
      This method is used to model a rule case, which is part of a preview feature and may be removed if the preview feature is removed.
      Returns the kind of this case.
      Returns:
        the kind of this case
      Since:
        12