Class TernaryExpressionNode

  • All Implemented Interfaces:
    org.plumelib.util.UniqueId

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

      • tree

        protected final com.sun.source.tree.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 Detail

      • TernaryExpressionNode

        public TernaryExpressionNode​(com.sun.source.tree.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 Detail

      • 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 com.sun.source.tree.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 java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • equals

        public boolean equals​(@Nullable java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

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

        @SideEffectFree
        public java.util.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