Class ConditionalExpression

java.lang.Object
org.mozilla.javascript.Node
org.mozilla.javascript.ast.AstNode
org.mozilla.javascript.ast.ConditionalExpression
All Implemented Interfaces:
Comparable<AstNode>, Iterable<Node>

public class ConditionalExpression extends AstNode
AST node representing the ternary operator. Node type is Token.HOOK.
ConditionalExpression :
        LogicalORExpression
        LogicalORExpression ? AssignmentExpression
                            : AssignmentExpression

 ConditionalExpressionNoIn :
        LogicalORExpressionNoIn
        LogicalORExpressionNoIn ? AssignmentExpression
                                : AssignmentExpressionNoIn
  • Constructor Details

    • ConditionalExpression

      public ConditionalExpression()
    • ConditionalExpression

      public ConditionalExpression(int pos)
    • ConditionalExpression

      public ConditionalExpression(int pos, int len)
  • Method Details

    • getTestExpression

      public AstNode getTestExpression()
      Returns test expression
    • setTestExpression

      public void setTestExpression(AstNode testExpression)
      Sets test expression, and sets its parent.
      Parameters:
      testExpression - test expression
      Throws:
      IllegalArgumentException - if testExpression is null
    • getTrueExpression

      public AstNode getTrueExpression()
      Returns expression to evaluate if test is true
    • setTrueExpression

      public void setTrueExpression(AstNode trueExpression)
      Sets expression to evaluate if test is true, and sets its parent to this node.
      Parameters:
      trueExpression - expression to evaluate if test is true
      Throws:
      IllegalArgumentException - if expression is null
    • getFalseExpression

      public AstNode getFalseExpression()
      Returns expression to evaluate if test is false
    • setFalseExpression

      public void setFalseExpression(AstNode falseExpression)
      Sets expression to evaluate if test is false, and sets its parent to this node.
      Parameters:
      falseExpression - expression to evaluate if test is false
      Throws:
      IllegalArgumentException - if falseExpression is null
    • getQuestionMarkPosition

      public int getQuestionMarkPosition()
      Returns position of ? token
    • setQuestionMarkPosition

      public void setQuestionMarkPosition(int questionMarkPosition)
      Sets position of ? token
      Parameters:
      questionMarkPosition - position of ? token
    • getColonPosition

      public int getColonPosition()
      Returns position of : token
    • setColonPosition

      public void setColonPosition(int colonPosition)
      Sets position of : token
      Parameters:
      colonPosition - position of : token
    • hasSideEffects

      public boolean hasSideEffects()
      Overrides:
      hasSideEffects in class AstNode
    • toSource

      public String toSource(int depth)
      Description copied from class: AstNode
      Emits source code for this node. Callee is responsible for calling this function recursively on children, incrementing indent as appropriate.

      Note: if the parser was in error-recovery mode, some AST nodes may have null children that are expected to be non-null when no errors are present. In this situation, the behavior of the toSource method is undefined: toSource implementations may assume that the AST node is error-free, since it is intended to be invoked only at runtime after a successful parse.

      Specified by:
      toSource in class AstNode
      Parameters:
      depth - the current recursion depth, typically beginning at 0 when called on the root node.
    • visit

      public void visit(NodeVisitor v)
      Visits this node, then the test-expression, the true-expression, and the false-expression.
      Specified by:
      visit in class AstNode
      Parameters:
      v - the object to call with this node and its children