Package com.strobel.expressions
Class TypeBinaryExpression
- java.lang.Object
-
- com.strobel.expressions.Expression
-
- com.strobel.expressions.TypeBinaryExpression
-
public final class TypeBinaryExpression extends Expression
-
-
Field Summary
Fields Modifier and Type Field Description private ExpressionType
_nodeType
private Expression
_operand
private Type
_typeOperand
-
Constructor Summary
Constructors Constructor Description TypeBinaryExpression(Expression operand, Type typeOperand, ExpressionType nodeType)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Expression
accept(ExpressionVisitor visitor)
Dispatches to the specific visit method for this node type.boolean
canReduce()
Indicates that the node can be reduced to a simpler node.ExpressionType
getNodeType()
Returns the node type of thisExpression
.Expression
getOperand()
Type<?>
getType()
Gets the static type of the expression that thisExpression
represents.Type
getTypeOperand()
Expression
reduce()
Reduces this node to a simpler expression.private Expression
reduceConstantTypeEqual()
private Expression
reduceParameterTypeEqual(ParameterExpression value)
(package private) Expression
reduceTypeEqual()
TypeBinaryExpression
update(Expression operand)
-
Methods inherited from class com.strobel.expressions.Expression
add, add, addAssign, addAssign, addAssign, and, and, andAlso, andAlso, andAlso, andAssign, andAssign, andAssign, arrayIndex, arrayLength, arrayToList, arrayToList, arrayToReadOnlyList, assign, base, block, block, block, block, block, block, block, block, block, block, block, block, block, block, box, call, call, call, call, call, call, call, call, call, call, classConstant, coalesce, coalesce, concat, concat, concat, condition, condition, constant, constant, convert, convert, decrement, decrement, defaultValue, divide, divide, divideAssign, divideAssign, divideAssign, empty, ensureUnmodifiable, equal, equal, exclusiveOr, exclusiveOr, exclusiveOrAssign, exclusiveOrAssign, exclusiveOrAssign, field, field, field, field, forEach, forEach, forEach, getDebugView, getInvokeMethod, getInvokeMethod, getMethodValidated, greaterThan, greaterThan, greaterThanOrEqual, greaterThanOrEqual, ifThen, ifThenElse, increment, increment, instanceOf, invoke, invoke, isFalse, isFalse, isNotNull, isNull, isTrue, isTrue, label, label, label, label, label, label, lambda, lambda, lambda, lambda, lambda, lambda, lambda, lambda, lambda, lambda, lambda, lambda, lambda, leftShift, leftShift, leftShiftAssign, leftShiftAssign, leftShiftAssign, lessThan, lessThan, lessThanOrEqual, lessThanOrEqual, loop, loop, loop, makeBinary, makeBinary, makeBinary, makeBinary, makeBinary, makeBreak, makeBreak, makeBreak, makeBreak, makeCatch, makeCatch, makeCatch, makeCatch, makeCatch, makeCatch, makeContinue, makeContinue, makeFor, makeFor, makeFor, makeGoto, makeGoto, makeGoto, makeGoto, makeGoto, makeMemberAccess, makeNew, makeNew, makeNew, makeNew, makeReturn, makeReturn, makeReturn, makeReturn, makeSwitch, makeSwitch, makeSwitch, makeSwitch, makeSwitch, makeSwitch, makeSwitch, makeSwitch, makeSwitch, makeSwitch, makeSwitch, makeSwitch, makeSwitch, makeThrow, makeThrow, makeTry, makeTry, makeTry, makeUnary, makeUnary, methodArgumentsMatch, modulo, modulo, moduloAssign, moduloAssign, moduloAssign, multiply, multiply, multiplyAssign, multiplyAssign, multiplyAssign, negate, negate, newArrayBounds, newArrayInit, newArrayInit, not, not, notEqual, notEqual, onesComplement, onesComplement, or, or, orAssign, orAssign, orAssign, orElse, orElse, orElse, parameter, parameter, parameterIsAssignable, parameters, performBinaryNumericPromotion, postDecrementAssign, postDecrementAssign, postIncrementAssign, postIncrementAssign, preDecrementAssign, preDecrementAssign, preIncrementAssign, preIncrementAssign, reduceAndCheck, reduceExtensions, referenceEqual, referenceNotEqual, returnObject, rightShift, rightShift, rightShiftAssign, rightShiftAssign, rightShiftAssign, runtimeVariables, runtimeVariables, self, subtract, subtract, subtractAssign, subtractAssign, subtractAssign, switchCase, switchCase, toString, tryCatch, tryCatchFinally, tryFinally, typeEqual, unaryPlus, unaryPlus, unbox, unbox, unsignedRightShift, unsignedRightShift, unsignedRightShiftAssign, unsignedRightShiftAssign, unsignedRightShiftAssign, validateVariables, variable, variable, variables, visitChildren
-
-
-
-
Field Detail
-
_operand
private final Expression _operand
-
_typeOperand
private final Type _typeOperand
-
_nodeType
private final ExpressionType _nodeType
-
-
Constructor Detail
-
TypeBinaryExpression
TypeBinaryExpression(Expression operand, Type typeOperand, ExpressionType nodeType)
-
-
Method Detail
-
getOperand
public final Expression getOperand()
-
getTypeOperand
public final Type getTypeOperand()
-
getNodeType
public final ExpressionType getNodeType()
Description copied from class:Expression
Returns the node type of thisExpression
.- Overrides:
getNodeType
in classExpression
- Returns:
- the
ExpressionType
that represents this expression.
-
getType
public final Type<?> getType()
Description copied from class:Expression
Gets the static type of the expression that thisExpression
represents.- Overrides:
getType
in classExpression
- Returns:
- the
Type
that represents the static type of the expression.
-
canReduce
public final boolean canReduce()
Description copied from class:Expression
Indicates that the node can be reduced to a simpler node. If this returnstrue
,reduce()
can be called to produce the reduced form.- Overrides:
canReduce
in classExpression
- Returns:
true
if the node can be reduced; otherwise,false
.
-
reduce
public final Expression reduce()
Description copied from class:Expression
Reduces this node to a simpler expression. IfcanReduce()
returnstrue
, this should return a valid expression. This method is allowed to return another node which itself must be reduced.- Overrides:
reduce
in classExpression
- Returns:
- the reduced expression.
-
reduceConstantTypeEqual
private Expression reduceConstantTypeEqual()
-
reduceParameterTypeEqual
private Expression reduceParameterTypeEqual(ParameterExpression value)
-
reduceTypeEqual
final Expression reduceTypeEqual()
-
accept
protected final Expression accept(ExpressionVisitor visitor)
Description copied from class:Expression
Dispatches to the specific visit method for this node type. For example,BinaryExpression
will call intoExpressionVisitor.visitBinary()
.- Overrides:
accept
in classExpression
- Parameters:
visitor
- the visitor to visit this node.- Returns:
- the result of visiting this node.
-
update
public final TypeBinaryExpression update(Expression operand)
-
-