Class IfStatement


  • public class IfStatement
    extends Statement
    If statement AST node type.
     IfStatement:
        if ( Expression ) Statement [ else Statement]
     
    Since:
    2.0
    Restriction:
    This class is not intended to be instantiated by clients.
    • Field Detail

      • EXPRESSION_PROPERTY

        public static final ChildPropertyDescriptor EXPRESSION_PROPERTY
        The "expression" structural property of this node type (child type: Expression).
        Since:
        3.0
      • THEN_STATEMENT_PROPERTY

        public static final ChildPropertyDescriptor THEN_STATEMENT_PROPERTY
        The "thenStatement" structural property of this node type (child type: Statement).
        Since:
        3.0
      • ELSE_STATEMENT_PROPERTY

        public static final ChildPropertyDescriptor ELSE_STATEMENT_PROPERTY
        The "elseStatement" structural property of this node type (child type: Statement).
        Since:
        3.0
    • Method Detail

      • 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()
        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:
        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:
        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:
        IllegalArgumentException - if:
        • the node belongs to a different AST
        • the node already has a parent
        • a cycle in would be created