public class TernaryExpression extends AbstractExpression implements BoxingProcessor
Modifier and Type | Field and Description |
---|---|
private ConditionalExpression |
condition |
private Expression |
lhs |
private Expression |
rhs |
Constructor and Description |
---|
TernaryExpression(BytecodeLoc loc,
ConditionalExpression condition,
Expression lhs,
Expression rhs) |
TernaryExpression(BytecodeLoc loc,
InferredJavaType type,
ConditionalExpression condition,
Expression lhs,
Expression rhs) |
addLoc, canPushDownInto, canThrow, dump, dumpWithOuterPrecedence, getComputedLiteral, getInferredJavaType, getLoc, isSimple, isValidStatement, outerDeepClone, pushDown, toString
private ConditionalExpression condition
private Expression lhs
private Expression rhs
public TernaryExpression(BytecodeLoc loc, ConditionalExpression condition, Expression lhs, Expression rhs)
public TernaryExpression(BytecodeLoc loc, InferredJavaType type, ConditionalExpression condition, Expression lhs, Expression rhs)
public BytecodeLoc getCombinedLoc()
getCombinedLoc
in interface HasByteCodeLoc
public void collectTypeUsages(TypeUsageCollector collector)
collectTypeUsages
in interface TypeUsageCollectable
collectTypeUsages
in class AbstractExpression
public Expression deepClone(CloneHelper cloneHelper)
deepClone
in interface DeepCloneable<Expression>
private static InferredJavaType inferredType(InferredJavaType a, InferredJavaType b)
public ConditionalExpression getCondition()
public Expression getLhs()
public Expression getRhs()
public Precedence getPrecedence()
getPrecedence
in interface DumpableWithPrecedence
getPrecedence
in class AbstractExpression
public Dumper dumpInner(Dumper d)
dumpInner
in class AbstractExpression
public Expression replaceSingleUsageLValues(LValueRewriter lValueRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer)
replaceSingleUsageLValues
in interface Expression
public Expression applyExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
applyExpressionRewriter
in interface Expression
public Expression applyReverseExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
applyReverseExpressionRewriter
in interface Expression
public Expression applyConditionOnlyExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
public void collectUsedLValues(LValueUsageCollector lValueUsageCollector)
collectUsedLValues
in interface Expression
public boolean rewriteBoxing(PrimitiveBoxingRewriter boxingRewriter)
rewriteBoxing
in interface BoxingProcessor
public void applyNonArgExpressionRewriter(ExpressionRewriter expressionRewriter, SSAIdentifiers ssaIdentifiers, StatementContainer statementContainer, ExpressionRewriterFlags flags)
applyNonArgExpressionRewriter
in interface BoxingProcessor
public <T> T visit(ExpressionVisitor<T> visitor)
visit
in interface Expression
visit
in class AbstractExpression
public boolean equals(java.lang.Object o)
equals
in class AbstractExpression
public final boolean equivalentUnder(java.lang.Object o, EquivalenceConstraint constraint)
equivalentUnder
in interface Expression
equivalentUnder
in interface ComparableUnderEC