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.
  • Field Details

    • implementationTarget

      private final Implementation.Target implementationTarget
      The implementation target of this appender.
    • prioritizedInterfaces

      private final List<TypeDescription> prioritizedInterfaces
      The relevant prioritized interfaces to be considered by this appender.
    • nonPrioritizedInterfaces

      @ValueHandling(IGNORE) private final Set<TypeDescription> 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 a DefaultMethodCall.
      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:
      apply in interface ByteCodeAppender
      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

      private StackManipulation locateDefault(MethodDescription methodDescription)
      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.