org.eclipse.jdt.core.dom
Class IfStatement

java.lang.Object
  extended by org.eclipse.jdt.core.dom.ASTNode
      extended by org.eclipse.jdt.core.dom.Statement
          extended by org.eclipse.jdt.core.dom.IfStatement

public class IfStatement
extends Statement

If statement AST node type.

 IfStatement:
    if ( Expression ) Statement [ else Statement]
 

Since:
2.0

Field Summary
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.
 
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, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, DO_STATEMENT, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, JAVADOC, LABELED_STATEMENT, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SWITCH_CASE, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_PARAMETER, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE
 
Method Summary
 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.
 
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
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

EXPRESSION_PROPERTY

public static final ChildPropertyDescriptor EXPRESSION_PROPERTY
The "expression" structural property of this node type.

Since:
3.0

THEN_STATEMENT_PROPERTY

public static final ChildPropertyDescriptor THEN_STATEMENT_PROPERTY
The "thenStatement" structural property of this node type.

Since:
3.0

ELSE_STATEMENT_PROPERTY

public static final ChildPropertyDescriptor ELSE_STATEMENT_PROPERTY
The "elseStatement" structural property of this node type.

Since:
3.0
Method Detail

propertyDescriptors

public static java.util.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()
Returns the expression of this if statement.

Returns:
the expression node

setExpression

public void setExpression(Expression expression)
Sets the condition of this if statement.

Parameters:
expression - the expression node
Throws:
java.lang.IllegalArgumentException - if:
  • the node belongs to a different AST
  • the node already has a parent
  • a cycle in would be created

getThenStatement

public Statement getThenStatement()
Returns the "then" part of this if statement.

Returns:
the "then" statement node

setThenStatement

public void setThenStatement(Statement statement)
Sets the "then" part of this if statement.

Special note: The Java 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.

Parameters:
statement - the "then" statement node
Throws:
java.lang.IllegalArgumentException - if:
  • the node belongs to a different AST
  • the node already has a parent
  • a cycle in would be created

getElseStatement

public Statement getElseStatement()
Returns the "else" part of this if statement, or 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 (";").

Returns:
the "else" statement node, or null if none

setElseStatement

public void setElseStatement(Statement statement)
Sets or clears the "else" part of this if 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 Java 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.

Parameters:
statement - the "else" statement node, or null if there is none
Throws:
java.lang.IllegalArgumentException - if:
  • the node belongs to a different AST
  • the node already has a parent
  • a cycle in would be created