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
FieldsModifier and TypeFieldDescriptionstatic final ChildPropertyDescriptorDeprecated.static final ChildListPropertyDescriptorThe "expression" structural property of this node type (child type:Expression).static final SimplePropertyDescriptorThe "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, oremptyif there is none (the "default:" case).Deprecated.use expressions() (see JLS 12)booleanReturns whether this switch case represents the "default:" case.booleanGets the switchLabeledRule of this switch case astrueorfalse.static ListpropertyDescriptors(int apiLevel) Returns a list of structural property descriptors for this node type.voidsetExpression(Expression expression) Deprecated.see JLS 12voidsetSwitchLabeledRule(boolean switchLabeledRule) Sets the switchLabeledRule of this switch case astrueorfalse.Methods inherited from class org.eclipse.jdt.core.dom.Statement
getLeadingComment, setLeadingCommentMethods 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, ornullif there is none (the "default:" case).- Returns:
- the expression node, or
nullif there is none
-
expressions
Returns the list of expressions of this switch case, oremptyif 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, ornullto 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 astrueorfalse.trueindicates "->" andfalseindicates ":".- Parameters:
switchLabeledRule-trueorfalse- Throws:
UnsupportedOperationException- if this operation is used below JLS14- Since:
- 3.22
-
isSwitchLabeledRule
public boolean isSwitchLabeledRule()Gets the switchLabeledRule of this switch case astrueorfalse.trueindicates "->" andfalseindicates ":".- Returns:
- switchLabeledRule
trueorfalse - 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() == nullorexpressions().isEmpty().- Returns:
trueif this is the default switch case, andfalseif this is a non-default switch case
-
EXPRESSIONS2_PROPERTY.