Class RebaseImplementationTarget.RebasedMethodInvocation
java.lang.Object
net.bytebuddy.implementation.bytecode.StackManipulation.AbstractBase
net.bytebuddy.implementation.Implementation.SpecialMethodInvocation.AbstractBase
net.bytebuddy.dynamic.scaffold.inline.RebaseImplementationTarget.RebasedMethodInvocation
- All Implemented Interfaces:
StackManipulation
,Implementation.SpecialMethodInvocation
- Enclosing class:
- RebaseImplementationTarget
protected static class RebaseImplementationTarget.RebasedMethodInvocation
extends Implementation.SpecialMethodInvocation.AbstractBase
A
Implementation.SpecialMethodInvocation
which invokes a rebased method
as given by a MethodRebaseResolver
.-
Nested Class Summary
Nested classes/interfaces inherited from interface net.bytebuddy.implementation.Implementation.SpecialMethodInvocation
Implementation.SpecialMethodInvocation.AbstractBase, Implementation.SpecialMethodInvocation.Illegal, Implementation.SpecialMethodInvocation.Simple
Nested classes/interfaces inherited from interface net.bytebuddy.implementation.bytecode.StackManipulation
StackManipulation.AbstractBase, StackManipulation.Compound, StackManipulation.Illegal, StackManipulation.Simple, StackManipulation.Size, StackManipulation.Trivial
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final TypeDescription
The instrumented type on which the method should be invoked on.private final MethodDescription
The method to invoke via a special method invocation.private final TypeList
Any additional arguments that are to be provided to the rebased method.private final StackManipulation
The stack manipulation to execute in order to invoke the rebased method. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
RebasedMethodInvocation
(MethodDescription methodDescription, TypeDescription instrumentedType, StackManipulation stackManipulation, TypeList prependedParameters) Creates a new rebased method invocation. -
Method Summary
Modifier and TypeMethodDescriptionapply
(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext) Applies the stack manipulation that is described by this instance.Returns the method that represents this special method invocation.Returns the target type the represented method is invoked on.protected static Implementation.SpecialMethodInvocation
of
(MethodDescription resolvedMethod, TypeDescription instrumentedType, TypeList prependedParameters) Creates a special method invocation for the given method.Checks that this special method invocation is compatible with the supplied type representation.Methods inherited from class net.bytebuddy.implementation.Implementation.SpecialMethodInvocation.AbstractBase
equals, hashCode
Methods inherited from class net.bytebuddy.implementation.bytecode.StackManipulation.AbstractBase
isValid
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.bytebuddy.implementation.bytecode.StackManipulation
isValid
-
Field Details
-
methodDescription
The method to invoke via a special method invocation. -
instrumentedType
The instrumented type on which the method should be invoked on. -
stackManipulation
The stack manipulation to execute in order to invoke the rebased method. -
prependedParameters
Any additional arguments that are to be provided to the rebased method.
-
-
Constructor Details
-
RebasedMethodInvocation
protected RebasedMethodInvocation(MethodDescription methodDescription, TypeDescription instrumentedType, StackManipulation stackManipulation, TypeList prependedParameters) Creates a new rebased method invocation.- Parameters:
methodDescription
- The method to invoke via a special method invocation.instrumentedType
- The instrumented type on which the method should be invoked on.stackManipulation
- The stack manipulation to execute in order to invoke the rebased method.prependedParameters
- Any additional arguments that are to be provided to the rebased method.
-
-
Method Details
-
of
protected static Implementation.SpecialMethodInvocation of(MethodDescription resolvedMethod, TypeDescription instrumentedType, TypeList prependedParameters) Creates a special method invocation for the given method.- Parameters:
resolvedMethod
- The rebased method to be invoked.instrumentedType
- The instrumented type on which the method is to be invoked if it is non-static.prependedParameters
- Any additional arguments that are to be provided to the rebased method.- Returns:
- A special method invocation of the rebased method.
-
getMethodDescription
Returns the method that represents this special method invocation. This method can be different even for equal special method invocations, dependant on the method that was used to request such an invocation by the means of aImplementation.Target
.- Returns:
- The method description that describes this instances invocation target.
-
getTypeDescription
Returns the target type the represented method is invoked on.- Returns:
- The type the represented method is invoked on.
-
apply
public StackManipulation.Size apply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext) Applies the stack manipulation that is described by this instance.- Parameters:
methodVisitor
- The method visitor used to write the method implementation to.implementationContext
- The context of the current implementation.- Returns:
- The changes to the size of the operand stack that are implied by this stack manipulation.
-
withCheckedCompatibilityTo
public Implementation.SpecialMethodInvocation withCheckedCompatibilityTo(MethodDescription.TypeToken token) Checks that this special method invocation is compatible with the supplied type representation.- Parameters:
token
- The type token to check against.- Returns:
- This special method invocation or an illegal invocation if the method invocation is not applicable.
-