Package net.bytebuddy.implementation
Interface MethodCall.TargetHandler
-
- All Superinterfaces:
InstrumentedType.Prepareable
- All Known Implementing Classes:
MethodCall.TargetHandler.ForConstructingInvocation
,MethodCall.TargetHandler.ForField
,MethodCall.TargetHandler.ForMethodCall
,MethodCall.TargetHandler.ForMethodParameter
,MethodCall.TargetHandler.ForSelfOrStaticInvocation
,MethodCall.TargetHandler.ForValue
- Enclosing class:
- MethodCall
protected static interface MethodCall.TargetHandler extends InstrumentedType.Prepareable
A target handler is responsible for invoking a method for aMethodCall
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
MethodCall.TargetHandler.ForConstructingInvocation
Invokes a method in order to construct a new instance.static class
MethodCall.TargetHandler.ForField
Creates a target handler that stores the instance to invoke a method on in an instance field.static class
MethodCall.TargetHandler.ForMethodCall
A target handler that executes the method and uses it's return value as the target object.static class
MethodCall.TargetHandler.ForMethodParameter
A target handler that loads the parameter of the given index as the target object.static class
MethodCall.TargetHandler.ForSelfOrStaticInvocation
A target handler that invokes a method either on the instance of the instrumented type or as a static method.static class
MethodCall.TargetHandler.ForValue
A target handler that invokes a method on an instance that is stored in a static field.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description TypeDescription
resolve(TypeDescription instrumentedType, MethodDescription instrumentedMethod)
Resolves the method call's target.StackManipulation
resolve(Implementation.Target implementationTarget, MethodDescription invokedMethod, MethodDescription instrumentedMethod, TypeDescription instrumentedType, Assigner assigner, Assigner.Typing typing)
Creates a stack manipulation that represents the method's invocation.-
Methods inherited from interface net.bytebuddy.dynamic.scaffold.InstrumentedType.Prepareable
prepare
-
-
-
-
Method Detail
-
resolve
StackManipulation resolve(Implementation.Target implementationTarget, MethodDescription invokedMethod, MethodDescription instrumentedMethod, TypeDescription instrumentedType, Assigner assigner, Assigner.Typing typing)
Creates a stack manipulation that represents the method's invocation.- Parameters:
implementationTarget
- The implementation target.invokedMethod
- The method to be invoked.instrumentedMethod
- The instrumented method.instrumentedType
- The instrumented type. @return A stack manipulation that invokes the method.assigner
- The assigner to use.typing
- The typing to apply.- Returns:
- A stack manipulation that loads the method target onto the operand stack.
-
resolve
TypeDescription resolve(TypeDescription instrumentedType, MethodDescription instrumentedMethod)
Resolves the method call's target.- Parameters:
instrumentedType
- The instrumented type.instrumentedMethod
- The instrumented method.- Returns:
- method call's target
-
-