Package net.bytebuddy.asm
Class MemberSubstitution.Replacement.Binding.ForDynamicInvocation
java.lang.Object
net.bytebuddy.asm.MemberSubstitution.Replacement.Binding.ForDynamicInvocation
- All Implemented Interfaces:
MemberSubstitution.Replacement.Binding
- Enclosing interface:
MemberSubstitution.Replacement.Binding
@Enhance
public static class MemberSubstitution.Replacement.Binding.ForDynamicInvocation
extends Object
implements MemberSubstitution.Replacement.Binding
A binding that was resolved for an invokedynamic expression.
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.bytebuddy.asm.MemberSubstitution.Replacement.Binding
MemberSubstitution.Replacement.Binding.ForDynamicInvocation, MemberSubstitution.Replacement.Binding.ForMember, MemberSubstitution.Replacement.Binding.Unresolved -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final List<JavaConstant> The constant arguments supplied to the bootstrap method.private final JavaConstant.MethodTypeThe type of the lambda expression that is to be bound.private final StringThe name of the lambda expression target.private final MemberSubstitution.SubstitutionThe substitution to apply. -
Constructor Summary
ConstructorsConstructorDescriptionForDynamicInvocation(JavaConstant.MethodType methodType, String name, List<JavaConstant> arguments, MemberSubstitution.Substitution substitution) Creates a resolved binding for an invokedynamic expression. -
Method Summary
Modifier and TypeMethodDescriptionbooleanisBound()Returnstrueif this binding is resolved.make(TypeList.Generic parameters, TypeDescription.Generic result, JavaConstant.MethodHandle methodHandle, StackManipulation stackManipulation, int freeOffset) Creates a stack manipulation that represents the substitution.
-
Field Details
-
methodType
The type of the lambda expression that is to be bound. -
name
The name of the lambda expression target. -
arguments
The constant arguments supplied to the bootstrap method. -
substitution
The substitution to apply.
-
-
Constructor Details
-
ForDynamicInvocation
public ForDynamicInvocation(JavaConstant.MethodType methodType, String name, List<JavaConstant> arguments, MemberSubstitution.Substitution substitution) Creates a resolved binding for an invokedynamic expression.- Parameters:
methodType- The type of the lambda expression that is to be bound.name- The name of the lambda expression target.arguments- The constant arguments supplied to the bootstrap method.substitution- The substitution to apply.
-
-
Method Details
-
isBound
public boolean isBound()Returnstrueif this binding is resolved.- Specified by:
isBoundin interfaceMemberSubstitution.Replacement.Binding- Returns:
trueif this binding is resolved.
-
make
public StackManipulation make(TypeList.Generic parameters, TypeDescription.Generic result, JavaConstant.MethodHandle methodHandle, StackManipulation stackManipulation, int freeOffset) Creates a stack manipulation that represents the substitution. This method can only be called for actually bound bindings.- Specified by:
makein interfaceMemberSubstitution.Replacement.Binding- Parameters:
parameters- The parameters that are accessible to the substitution target.result- The result that is expected from the substitution target orvoidif none is expected.methodHandle- A method handle that represents the original expression that is being substituted.stackManipulation- The original byte code expression that is being substituted.freeOffset- The first offset that can be used for storing local variables.- Returns:
- A stack manipulation that represents the replacement.
-