@HashCodeAndEqualsPlugin.Enhance(includeSyntheticFields=true) protected class MethodInvocation.DynamicInvocation extends java.lang.Object implements StackManipulation
StackManipulation.Compound, StackManipulation.Illegal, StackManipulation.Size, StackManipulation.Trivial
Modifier and Type | Field and Description |
---|---|
private java.util.List<?> |
arguments
The list of arguments to be handed over to the bootstrap method.
|
private MethodDescription.InDefinedShape |
bootstrapMethod
The bootstrap method.
|
private java.lang.String |
methodName
The internal name of the method that is to be bootstrapped.
|
private java.util.List<? extends TypeDescription> |
parameterTypes
The parameter types of the method to be bootstrapped.
|
private TypeDescription |
returnType
The return type of the method to be bootstrapped.
|
Constructor and Description |
---|
DynamicInvocation(java.lang.String methodName,
TypeDescription returnType,
java.util.List<? extends TypeDescription> parameterTypes,
MethodDescription.InDefinedShape bootstrapMethod,
java.util.List<?> arguments)
Creates a new dynamic method invocation.
|
Modifier and Type | Method and Description |
---|---|
StackManipulation.Size |
apply(org.objectweb.asm.MethodVisitor methodVisitor,
Implementation.Context implementationContext)
Applies the stack manipulation that is described by this instance.
|
boolean |
isValid()
Determines if this stack manipulation is valid.
|
private final java.lang.String methodName
private final TypeDescription returnType
private final java.util.List<? extends TypeDescription> parameterTypes
private final MethodDescription.InDefinedShape bootstrapMethod
private final java.util.List<?> arguments
public DynamicInvocation(java.lang.String methodName, TypeDescription returnType, java.util.List<? extends TypeDescription> parameterTypes, MethodDescription.InDefinedShape bootstrapMethod, java.util.List<?> arguments)
methodName
- The internal name of the method that is to be bootstrapped.returnType
- The return type of the method to be bootstrapped.parameterTypes
- The type of the parameters to be bootstrapped.bootstrapMethod
- The bootstrap method.arguments
- The list of arguments to be handed over to the bootstrap method.public boolean isValid()
isValid
in interface StackManipulation
false
, this manipulation cannot be applied and should throw an exception.public StackManipulation.Size apply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext)
apply
in interface StackManipulation
methodVisitor
- The method visitor used to write the method implementation to.implementationContext
- The context of the current implementation.