Class TernaryExpressionNode

java.lang.Object
org.checkerframework.dataflow.cfg.node.Node
org.checkerframework.dataflow.cfg.node.TernaryExpressionNode
All Implemented Interfaces:
org.plumelib.util.UniqueId

public class TernaryExpressionNode extends Node
A node for a conditional expression:
   expression ? expression : expression
 
  • Field Details

    • tree

      protected final ConditionalExpressionTree tree
      The ConditionalExpressionTree corresponding to this node
    • condition

      protected final Node condition
      Node representing the condition checked by the expression
    • thenOperand

      protected final Node thenOperand
      Node representing the "then" case of the expression
    • elseOperand

      protected final Node elseOperand
      Node representing the "else" case of the expression
  • Constructor Details

    • TernaryExpressionNode

      public TernaryExpressionNode(ConditionalExpressionTree tree, Node condition, Node thenOperand, Node elseOperand, LocalVariableNode ternaryExpressionVar)
      Creates a new TernaryExpressionNode.
      Parameters:
      tree - the ConditionalExpressionTree for the node
      condition - node representing the condition checked by the expression
      thenOperand - node representing the "then" case of the expression
      elseOperand - node representing the "else" case of the expression
      ternaryExpressionVar - a variable created by dataflow to which each case expression of the ternary expression is assigned. Its value should be used for the value of the switch expression.
  • Method Details

    • getConditionOperand

      public Node getConditionOperand()
      Gets the node representing the conditional operand for this node
      Returns:
      the condition operand node
    • getThenOperand

      public Node getThenOperand()
      Gets the node representing the "then" operand for this node
      Returns:
      the "then" operand node
    • getElseOperand

      public Node getElseOperand()
      Gets the node representing the "else" operand for this node
      Returns:
      the "else" operand node
    • getTernaryExpressionVar

      public LocalVariableNode getTernaryExpressionVar()
      This is a variable created by dataflow to which each case expression of the ternary expression is assigned. Its value should be used for the value of the switch expression.
      Returns:
      the variable for this ternary expression
    • getTree

      public ConditionalExpressionTree getTree()
      Description copied from class: Node
      Returns the Tree in the abstract syntax tree, or null if no corresponding tree exists. For instance, this is the case for an ImplicitThisNode.
      Specified by:
      getTree in class Node
      Returns:
      the corresponding Tree or null
    • accept

      public <R, P> R accept(NodeVisitor<R,P> visitor, P p)
      Description copied from class: Node
      Accept method of the visitor pattern.
      Specified by:
      accept in class Node
      Type Parameters:
      R - result type of the operation
      P - parameter type
      Parameters:
      visitor - the visitor to be applied to this node
      p - the parameter for this operation
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(@Nullable Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getOperands

      @SideEffectFree public Collection<Node> getOperands()
      Description copied from class: Node
      Returns a collection containing all of the operand Nodes of this Node.
      Specified by:
      getOperands in class Node
      Returns:
      a collection containing all of the operand Nodes of this Node