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 Summary
Fields Modifier and Type Field Description protected NodeconditionNode representing the condition checked by the expressionprotected NodeelseOperandNode representing the "else" case of the expressionprotected NodethenOperandNode representing the "then" case of the expressionprotected com.sun.source.tree.ConditionalExpressionTreetreeTheConditionalExpressionTreecorresponding to this node
-
Constructor Summary
Constructors Constructor Description TernaryExpressionNode(com.sun.source.tree.ConditionalExpressionTree tree, Node condition, Node thenOperand, Node elseOperand, LocalVariableNode ternaryExpressionVar)Creates a new TernaryExpressionNode.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <R,P>
Raccept(NodeVisitor<R,P> visitor, P p)Accept method of the visitor pattern.booleanequals(@Nullable java.lang.Object obj)NodegetConditionOperand()Gets the node representing the conditional operand for this nodeNodegetElseOperand()Gets the node representing the "else" operand for this nodejava.util.Collection<Node>getOperands()LocalVariableNodegetTernaryExpressionVar()This is a variable created by dataflow to which each case expression of the ternary expression is assigned.NodegetThenOperand()Gets the node representing the "then" operand for this nodecom.sun.source.tree.ConditionalExpressionTreegetTree()Returns theTreein the abstract syntax tree, ornullif no corresponding tree exists.inthashCode()java.lang.StringtoString()-
Methods inherited from class org.checkerframework.dataflow.cfg.node.Node
getBlock, getInSource, getTransitiveOperands, getType, getUid, isLValue, nodeCollectionToString, setBlock, setInSource, setLValue, toStringDebug
-
-
-
-
Field Detail
-
tree
protected final com.sun.source.tree.ConditionalExpressionTree tree
TheConditionalExpressionTreecorresponding 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- theConditionalExpressionTreefor the nodecondition- node representing the condition checked by the expressionthenOperand- node representing the "then" case of the expressionelseOperand- node representing the "else" case of the expressionternaryExpressionVar- 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:NodeReturns theTreein the abstract syntax tree, ornullif no corresponding tree exists. For instance, this is the case for anImplicitThisNode.
-
accept
public <R,P> R accept(NodeVisitor<R,P> visitor, P p)
Description copied from class:NodeAccept method of the visitor pattern.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
equals
public boolean equals(@Nullable java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
getOperands
@SideEffectFree public java.util.Collection<Node> getOperands()
Description copied from class:Node- Specified by:
getOperandsin classNode- Returns:
- a collection containing all of the operand
Nodes of thisNode
-
-