Package org.eclipse.jdt.core.dom
Class SwitchCase
java.lang.Object
org.eclipse.jdt.core.dom.ASTNode
org.eclipse.jdt.core.dom.Statement
org.eclipse.jdt.core.dom.SwitchCase
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 Summary
Modifier and TypeFieldDescriptionstatic final ChildPropertyDescriptor
Deprecated.static final ChildListPropertyDescriptor
The "expression" structural property of this node type (child type:Expression
).static final SimplePropertyDescriptor
The "switchLabeledRule" structural property of this node type (type:Boolean
).Fields inherited from class org.eclipse.jdt.core.dom.ASTNode
ANNOTATION_TYPE_DECLARATION, ANNOTATION_TYPE_MEMBER_DECLARATION, ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_TYPE, ASSERT_STATEMENT, ASSIGNMENT, BLOCK, BLOCK_COMMENT, BOOLEAN_LITERAL, BREAK_STATEMENT, CASE_DEFAULT_EXPRESSION, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EitherOr_MultiPattern, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, GUARDED_PATTERN, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, JAVADOC_REGION, JAVADOC_TEXT_ELEMENT, LABELED_STATEMENT, LAMBDA_EXPRESSION, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, MODULE_DECLARATION, MODULE_MODIFIER, MODULE_QUALIFIED_NAME, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NULL_PATTERN, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, PATTERN_INSTANCEOF_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECORD_DECLARATION, RECORD_PATTERN, RECOVERED, REQUIRES_DIRECTIVE, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SUPER_METHOD_REFERENCE, SWITCH_CASE, SWITCH_EXPRESSION, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TAG_PROPERTY, TEXT_BLOCK, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, TYPE_PATTERN, UNION_TYPE, UNNAMED_CLASS, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, YIELD_STATEMENT
-
Method Summary
Modifier and TypeMethodDescriptionReturns the list of expressions of this switch case, orempty
if there is none (the "default:" case).Deprecated.use expressions() (see JLS 12)boolean
Returns whether this switch case represents the "default:" case.boolean
Gets the switchLabeledRule of this switch case astrue
orfalse
.static List
propertyDescriptors
(int apiLevel) Returns a list of structural property descriptors for this node type.void
setExpression
(Expression expression) Deprecated.see JLS 12void
setSwitchLabeledRule
(boolean switchLabeledRule) Sets the switchLabeledRule of this switch case astrue
orfalse
.Methods inherited from class org.eclipse.jdt.core.dom.Statement
getLeadingComment, setLeadingComment
Methods inherited from class org.eclipse.jdt.core.dom.ASTNode
accept, copySubtree, copySubtrees, delete, equals, getAST, getFlags, getLength, getLocationInParent, getNodeType, getParent, getProperty, getRoot, getStartPosition, getStructuralProperty, hashCode, nodeClassForType, properties, setFlags, setProperty, setSourceRange, setStructuralProperty, structuralPropertiesForType, subtreeBytes, subtreeMatch, toString
-
Field Details
-
EXPRESSION_PROPERTY
Deprecated.In the JLS 12 15.28.1 API, this property is replaced byEXPRESSIONS2_PROPERTY
.The "expression" structural property of this node type (child type:Expression
).- Since:
- 3.0
-
EXPRESSIONS2_PROPERTY
The "expression" structural property of this node type (child type:Expression
). (added in JEP 325).- Since:
- 3.18
-
SWITCH_LABELED_RULE_PROPERTY
The "switchLabeledRule" structural property of this node type (type:Boolean
).- Since:
- 3.18
-
-
Method Details
-
propertyDescriptors
Returns a list of structural property descriptors for this node type. Clients must not modify the result.- Parameters:
apiLevel
- the API level; one of theAST.JLS*
constants- Returns:
- a list of property descriptors (element type:
StructuralPropertyDescriptor
) - Since:
- 3.0
-
getExpression
Deprecated.use expressions() (see JLS 12)Returns the expression of this switch case, ornull
if there is none (the "default:" case).- Returns:
- the expression node, or
null
if there is none
-
expressions
Returns the list of expressions of this switch case, orempty
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
Deprecated.see JLS 12Sets the expression of this switch case, or clears it (turns it into the "default:" case).- Parameters:
expression
- the expression node, ornull
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 astrue
orfalse
.true
indicates "->" andfalse
indicates ":".- Parameters:
switchLabeledRule
-true
orfalse
- Throws:
UnsupportedOperationException
- if this operation is used below JLS14- Since:
- 3.22
-
isSwitchLabeledRule
public boolean isSwitchLabeledRule()Gets the switchLabeledRule of this switch case astrue
orfalse
.true
indicates "->" andfalse
indicates ":".- Returns:
- switchLabeledRule
true
orfalse
- 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
orexpressions().isEmpty()
.- Returns:
true
if this is the default switch case, andfalse
if this is a non-default switch case
-
EXPRESSIONS2_PROPERTY
.