Class SwitchCase


public class SwitchCase extends Statement
Switch case AST node type. A switch case is a special kind of node used only in switch statements. It is a Statement in name only.
 SwitchCase:
                case Expression  :
                default :

 Switch case allows multiple expressions and '->' as part of Java 12 preview feature (JEP 325)
                case [ Expression { , Expression } ]  { : | ->}
                default { : | ->}
 
Since:
2.0
Restriction:
This class is not intended to be instantiated by clients.
  • Field Details

    • EXPRESSION_PROPERTY

      public static final ChildPropertyDescriptor EXPRESSION_PROPERTY
      Deprecated.
      In the JLS 12 15.28.1 API, this property is replaced by EXPRESSIONS2_PROPERTY.
      The "expression" structural property of this node type (child type: Expression).
      Since:
      3.0
    • EXPRESSIONS2_PROPERTY

      public static final ChildListPropertyDescriptor EXPRESSIONS2_PROPERTY
      The "expression" structural property of this node type (child type: Expression). (added in JEP 325).
      Since:
      3.18
    • SWITCH_LABELED_RULE_PROPERTY

      public static final SimplePropertyDescriptor SWITCH_LABELED_RULE_PROPERTY
      The "switchLabeledRule" structural property of this node type (type: Boolean).
      Since:
      3.18
  • Method Details

    • propertyDescriptors

      public static List propertyDescriptors(int apiLevel)
      Returns a list of structural property descriptors for this node type. Clients must not modify the result.
      Parameters:
      apiLevel - the API level; one of the AST.JLS* constants
      Returns:
      a list of property descriptors (element type: StructuralPropertyDescriptor)
      Since:
      3.0
    • getExpression

      public Expression getExpression()
      Deprecated.
      use expressions() (see JLS 12)
      Returns the expression of this switch case, or null if there is none (the "default:" case).
      Returns:
      the expression node, or null if there is none
    • expressions

      public List expressions()
      Returns the list of expressions of this switch case, or empty if there is none (the "default:" case).
      Returns:
      the list of expression nodes (element type: Expression)
      Throws:
      UnsupportedOperationException - if this operation is used below JLS14
      Since:
      3.22
    • setExpression

      public void setExpression(Expression expression)
      Deprecated.
      see JLS 12
      Sets the expression of this switch case, or clears it (turns it into the "default:" case).
      Parameters:
      expression - the expression node, or null to turn it into the "default:" case
      Throws:
      IllegalArgumentException - if:
      • the node belongs to a different AST
      • the node already has a parent
      • a cycle in would be created
    • setSwitchLabeledRule

      public void setSwitchLabeledRule(boolean switchLabeledRule)
      Sets the switchLabeledRule of this switch case as true or false. true indicates "->" and false indicates ":".
      Parameters:
      switchLabeledRule - true or false
      Throws:
      UnsupportedOperationException - if this operation is used below JLS14
      Since:
      3.22
    • isSwitchLabeledRule

      public boolean isSwitchLabeledRule()
      Gets the switchLabeledRule of this switch case as true or false. true indicates "->" and false indicates ":".
      Returns:
      switchLabeledRule true or false
      Throws:
      UnsupportedOperationException - if this operation is used below JLS14
      Since:
      3.22
    • isDefault

      public boolean isDefault()
      Returns whether this switch case represents the "default:" case.

      This convenience method is equivalent to getExpression() == null or expressions().isEmpty().

      Returns:
      true if this is the default switch case, and false if this is a non-default switch case