Package net.bytebuddy.implementation
Class DefaultMethodCall.Appender
java.lang.Object
net.bytebuddy.implementation.DefaultMethodCall.Appender
- All Implemented Interfaces:
ByteCodeAppender
- Enclosing class:
DefaultMethodCall
@Enhance
protected static class DefaultMethodCall.Appender
extends Object
implements ByteCodeAppender
The appender for implementing a
DefaultMethodCall.-
Nested Class Summary
Nested classes/interfaces inherited from interface net.bytebuddy.implementation.bytecode.ByteCodeAppender
ByteCodeAppender.Compound, ByteCodeAppender.Simple, ByteCodeAppender.Size -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Implementation.TargetThe implementation target of this appender.private final Set<TypeDescription> The relevant non-prioritized interfaces to be considered by this appender.private final List<TypeDescription> The relevant prioritized interfaces to be considered by this appender. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAppender(Implementation.Target implementationTarget, List<TypeDescription> prioritizedInterfaces) Creates a new appender for implementing aDefaultMethodCall. -
Method Summary
Modifier and TypeMethodDescriptionapply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, MethodDescription instrumentedMethod) Applies this byte code appender to a type creation process.private StackManipulationlocateDefault(MethodDescription methodDescription) Locates a special method invocation to be invoked from a given method.
-
Field Details
-
implementationTarget
The implementation target of this appender. -
prioritizedInterfaces
The relevant prioritized interfaces to be considered by this appender. -
nonPrioritizedInterfaces
The relevant non-prioritized interfaces to be considered by this appender.
-
-
Constructor Details
-
Appender
protected Appender(Implementation.Target implementationTarget, List<TypeDescription> prioritizedInterfaces) Creates a new appender for implementing aDefaultMethodCall.- Parameters:
implementationTarget- The implementation target of this appender.prioritizedInterfaces- The relevant prioritized interfaces to be considered by this appender.
-
-
Method Details
-
apply
public ByteCodeAppender.Size apply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext, MethodDescription instrumentedMethod) Applies this byte code appender to a type creation process.- Specified by:
applyin interfaceByteCodeAppender- Parameters:
methodVisitor- The method visitor to which the byte code appender writes its code to.implementationContext- The implementation context of the current type creation process.instrumentedMethod- The method that is the target of the instrumentation.- Returns:
- The required size for the applied byte code to run.
-
locateDefault
Locates a special method invocation to be invoked from a given method.- Parameters:
methodDescription- The method that is currently instrumented.- Returns:
- A potentially illegal stack manipulation representing the default method invocation for the given method.
-