Package com.strobel.expressions
Class ConcatExpression
- java.lang.Object
-
- com.strobel.expressions.Expression
-
- com.strobel.expressions.ConcatExpression
-
public final class ConcatExpression extends Expression
-
-
Field Summary
Fields Modifier and Type Field Description private ExpressionList<? extends Expression>
_operands
-
Constructor Summary
Constructors Constructor Description ConcatExpression(ExpressionList<? extends Expression> operands)
-
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.protected void
flattenOperands(ListBuffer<Expression> operands)
ExpressionType
getNodeType()
Returns the node type of thisExpression
.ExpressionList<? extends Expression>
getOperands()
Type<?>
getType()
Gets the static type of the expression that thisExpression
represents.Expression
reduce()
Reduces this node to a simpler expression.(package private) Expression
rewrite(ExpressionList<? extends Expression> operands)
ConcatExpression
update(ExpressionList<? extends Expression> operands)
protected Expression
visitChildren(ExpressionVisitor visitor)
Reduces the node and then calls the visitor on the reduced expression.-
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
-
-
-
-
Field Detail
-
_operands
private final ExpressionList<? extends Expression> _operands
-
-
Constructor Detail
-
ConcatExpression
public ConcatExpression(ExpressionList<? extends Expression> operands)
-
-
Method Detail
-
getOperands
public ExpressionList<? extends Expression> getOperands()
-
getNodeType
public 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 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.
-
accept
protected 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 ConcatExpression update(ExpressionList<? extends Expression> operands)
-
rewrite
final Expression rewrite(ExpressionList<? extends Expression> operands)
-
visitChildren
protected Expression visitChildren(ExpressionVisitor visitor)
Description copied from class:Expression
Reduces the node and then calls the visitor on the reduced expression. Throws an exception if the node isn't reducible.- Overrides:
visitChildren
in classExpression
- Parameters:
visitor
- an expression visitor- Returns:
- the expression being visited, or an expression which should replace it in the tree.
-
canReduce
public 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
.
-
flattenOperands
protected void flattenOperands(ListBuffer<Expression> operands)
-
reduce
public 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.
-
-