public class IfStatement extends Statement
IfStatement: if ( Expression ) Statement [ else Statement]Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.
Modifier and Type | Field and Description |
---|---|
static ChildPropertyDescriptor |
ELSE_STATEMENT_PROPERTY
The "elseStatement" structural property of this node type.
|
static ChildPropertyDescriptor |
EXPRESSION_PROPERTY
The "expression" structural property of this node type.
|
static ChildPropertyDescriptor |
THEN_STATEMENT_PROPERTY
The "thenStatement" structural property of this node type.
|
ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_NAME, ARRAY_TYPE, ARROW_FUNCTION_EXPRESSION, ASSIGNMENT, ASSIGNMENT_NAME, BLOCK, BLOCK_COMMENT, BOOLEAN_LITERAL, BREAK_STATEMENT, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, DEBUGGER_STATEMENT, DO_STATEMENT, EMPTY_EXPRESSION, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, EXPORT_DECLARATION, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_IN_STATEMENT, FOR_OF_STATEMENT, FOR_STATEMENT, FUNCTION_DECLARATION, FUNCTION_DECLARATION_STATEMENT, FUNCTION_EXPRESSION, FUNCTION_INVOCATION, FUNCTION_REF, FUNCTION_REF_PARAMETER, IF_STATEMENT, IMPORT_DECLARATION, INFERRED_TYPE, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, JAVASCRIPT_UNIT, JSDOC, LABELED_STATEMENT, LINE_COMMENT, LIST_EXPRESSION, MALFORMED, MEMBER_REF, META_PROPERTY, MODIFIER, MODULE_SPECIFIER, NULL_LITERAL, NUMBER_LITERAL, OBJECT_LITERAL, OBJECT_LITERAL_FIELD, OBJECT_NAME, ORIGINAL, PACKAGE_DECLARATION, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, REGULAR_EXPRESSION_LITERAL, REST_ELEMENT_NAME, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_VARIABLE_DECLARATION, SPREAD_ELEMENT, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SWITCH_CASE, SWITCH_STATEMENT, TAG_ELEMENT, TEMPLATE_ELEMENT, TEMPLATE_LITERAL, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_EXPRESSION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, UNDEFINED_LITERAL, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WITH_STATEMENT, YIELD_EXPRESSION
Modifier and Type | Method and Description |
---|---|
Statement |
getElseStatement()
Returns the "else" part of this if statement, or
null if
this if statement has no "else" part. |
Expression |
getExpression()
Returns the expression of this if statement.
|
Statement |
getThenStatement()
Returns the "then" part of this if statement.
|
static java.util.List |
propertyDescriptors(int apiLevel)
Returns a list of structural property descriptors for this node type.
|
void |
setElseStatement(Statement statement)
Sets or clears the "else" part of this if statement.
|
void |
setExpression(Expression expression)
Sets the condition of this if statement.
|
void |
setThenStatement(Statement statement)
Sets the "then" part of this if statement.
|
getLeadingComment, setLeadingComment
accept, copySubtree, copySubtrees, delete, equals, getAST, getBodyChild, getFlags, getLength, getLocationInParent, getNodeType, getParent, getProperty, getRoot, getStartPosition, getStructuralProperty, hashCode, nodeClassForType, properties, setFlags, setProperty, setSourceRange, setStructuralProperty, structuralPropertiesForType, subtreeBytes, subtreeMatch, toString
public static final ChildPropertyDescriptor EXPRESSION_PROPERTY
public static final ChildPropertyDescriptor THEN_STATEMENT_PROPERTY
public static final ChildPropertyDescriptor ELSE_STATEMENT_PROPERTY
public static java.util.List propertyDescriptors(int apiLevel)
apiLevel
- the API level; one of the
AST.JLS*
constantsStructuralPropertyDescriptor
)public Expression getExpression()
public void setExpression(Expression expression)
expression
- the expression nodejava.lang.IllegalArgumentException
- if:
public Statement getThenStatement()
public void setThenStatement(Statement statement)
Special note: The JavaScript language does not allow a local variable declaration
to appear as the "then" part of an if statement (they may only appear within a
block). However, the AST will allow a VariableDeclarationStatement
as the thenStatement of a IfStatement
. To get something that will
compile, be sure to embed the VariableDeclarationStatement
inside a Block
.
statement
- the "then" statement nodejava.lang.IllegalArgumentException
- if:
public Statement getElseStatement()
null
if
this if statement has no "else" part.
Note that there is a subtle difference between having no else statement and having an empty statement ("{}") or null statement (";").
null
if nonepublic void setElseStatement(Statement statement)
Note that there is a subtle difference between having no else part
(as in "if(true){}"
) and having an empty block (as in
"if(true){}else{}") or null statement (as in "if(true){}else;").
Special note: The JavaScript language does not allow a local variable declaration
to appear as the "else" part of an if statement (they may only appear within a
block). However, the AST will allow a VariableDeclarationStatement
as the elseStatement of a IfStatement
. To get something that will
compile, be sure to embed the VariableDeclarationStatement
inside a Block
.
statement
- the "else" statement node, or null
if
there is nonejava.lang.IllegalArgumentException
- if:
Copyright (c) IBM Corp. and others 2000, 2010. All Rights Reserved.