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 Node
condition
Node representing the condition checked by the expressionprotected Node
elseOperand
Node representing the "else" case of the expressionprotected Node
thenOperand
Node representing the "then" case of the expressionprotected com.sun.source.tree.ConditionalExpressionTree
tree
TheConditionalExpressionTree
corresponding 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.boolean
equals(@Nullable java.lang.Object obj)
Node
getConditionOperand()
Gets the node representing the conditional operand for this nodeNode
getElseOperand()
Gets the node representing the "else" operand for this nodejava.util.Collection<Node>
getOperands()
LocalVariableNode
getTernaryExpressionVar()
This is a variable created by dataflow to which each case expression of the ternary expression is assigned.Node
getThenOperand()
Gets the node representing the "then" operand for this nodecom.sun.source.tree.ConditionalExpressionTree
getTree()
Returns theTree
in the abstract syntax tree, ornull
if no corresponding tree exists.int
hashCode()
java.lang.String
toString()
-
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
TheConditionalExpressionTree
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
- theConditionalExpressionTree
for 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:Node
Returns theTree
in the abstract syntax tree, ornull
if 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:Node
Accept method of the visitor pattern.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
equals
public boolean equals(@Nullable java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
getOperands
@SideEffectFree public java.util.Collection<Node> getOperands()
Description copied from class:Node
- Specified by:
getOperands
in classNode
- Returns:
- a collection containing all of the operand
Node
s of thisNode
-
-