Class LambdaExpression<T>
java.lang.Object
com.strobel.expressions.Expression
com.strobel.expressions.LambdaExpression<T>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Expressionprivate Class<?> private final Stringprivate final ParameterExpressionListprivate final Typeprivate final boolean -
Constructor Summary
ConstructorsConstructorDescriptionLambdaExpression(Type<T> interfaceType, String name, Expression body, boolean tailCall, ParameterExpressionList parameters) -
Method Summary
Modifier and TypeMethodDescriptionprotected Expressionaccept(ExpressionVisitor visitor) Dispatches to the specific visit method for this node type.(package private) final LambdaExpression<T> accept(StackSpiller spiller) final Tcompile()final MethodHandlefinal voidcompileToMethod(MethodBuilder methodBuilder) final MethodInfocompileToMethod(TypeBuilder<?> typeBuilder) final MethodInfocompileToMethod(TypeBuilder<?> typeBuilder, String name) final MethodInfocompileToMethod(TypeBuilder<?> typeBuilder, String name, int modifiers) final ExpressiongetBody()(package private) final Class<?> final StringgetName()Returns the node type of thisExpression.final ParameterExpressionListfinal TypegetType()Gets the static type of the expression that thisExpressionrepresents.final booleanprivate static <T> Type<T> resolveDelegateType(Expression body, ParameterExpressionList parameters) final LambdaExpression<T> update(Expression body, ParameterExpressionList parameters) Methods inherited from class 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 Details
-
_name
-
_body
-
_parameters
-
_interfaceType
-
_tailCall
private final boolean _tailCall -
_returnType
-
_creationContext
-
-
Constructor Details
-
LambdaExpression
LambdaExpression(Type<T> interfaceType, String name, Expression body, boolean tailCall, ParameterExpressionList parameters)
-
-
Method Details
-
resolveDelegateType
-
getType
Description copied from class:ExpressionGets the static type of the expression that thisExpressionrepresents.- Overrides:
getTypein classExpression- Returns:
- the
Typethat represents the static type of the expression.
-
getNodeType
Description copied from class:ExpressionReturns the node type of thisExpression.- Overrides:
getNodeTypein classExpression- Returns:
- the
ExpressionTypethat represents this expression.
-
getName
-
getBody
-
getParameters
-
getReturnType
-
isTailCall
public final boolean isTailCall() -
update
-
accept
Description copied from class:ExpressionDispatches to the specific visit method for this node type. For example,BinaryExpressionwill call intoExpressionVisitor.visitBinary().- Overrides:
acceptin classExpression- Parameters:
visitor- the visitor to visit this node.- Returns:
- the result of visiting this node.
-
accept
-
getCreationContext
-
compile
-
compileDelegate
-
compileHandle
-
compileToMethod
-
compileToMethod
-
compileToMethod
-
compileToMethod
-