Package com.strobel.expressions
Class InvocationExpression
- java.lang.Object
-
- com.strobel.expressions.Expression
-
- com.strobel.expressions.InvocationExpression
-
- All Implemented Interfaces:
IArgumentProvider
public final class InvocationExpression extends Expression implements IArgumentProvider
-
-
Field Summary
Fields Modifier and Type Field Description private ExpressionList<? extends Expression>
_arguments
private Expression
_lambda
private Type
_returnType
-
Constructor Summary
Constructors Constructor Description InvocationExpression(Expression lambda, ExpressionList<? extends Expression> arguments, Type returnType)
-
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.Expression
getArgument(int index)
int
getArgumentCount()
ExpressionList<? extends Expression>
getArguments()
Expression
getExpression()
(package private) LambdaExpression<?>
getLambdaOperand()
ExpressionType
getNodeType()
Returns the node type of thisExpression
.Type<?>
getType()
Gets the static type of the expression that thisExpression
represents.(package private) InvocationExpression
rewrite(LambdaExpression lambda, ExpressionList<? extends Expression> arguments)
InvocationExpression
update(LambdaExpression lambda, ExpressionList<? extends Expression> arguments)
-
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, canReduce, 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, reduce, 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
-
_arguments
private final ExpressionList<? extends Expression> _arguments
-
_lambda
private final Expression _lambda
-
_returnType
private final Type _returnType
-
-
Constructor Detail
-
InvocationExpression
InvocationExpression(Expression lambda, ExpressionList<? extends Expression> arguments, Type returnType)
-
-
Method Detail
-
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.
-
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.
-
getExpression
public Expression getExpression()
-
getArguments
public ExpressionList<? extends Expression> getArguments()
-
getArgumentCount
public int getArgumentCount()
- Specified by:
getArgumentCount
in interfaceIArgumentProvider
-
getArgument
public Expression getArgument(int index)
- Specified by:
getArgument
in interfaceIArgumentProvider
-
update
public InvocationExpression update(LambdaExpression lambda, ExpressionList<? extends Expression> arguments)
-
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.
-
rewrite
InvocationExpression rewrite(LambdaExpression lambda, ExpressionList<? extends Expression> arguments)
-
getLambdaOperand
LambdaExpression<?> getLambdaOperand()
-
-