Class StackManipulation.Compound

java.lang.Object
net.bytebuddy.implementation.bytecode.StackManipulation.Compound
All Implemented Interfaces:
StackManipulation
Enclosing interface:
StackManipulation

@Enhance public static class StackManipulation.Compound extends Object implements StackManipulation
An immutable stack manipulation that aggregates a sequence of other stack manipulations.
  • Field Details

    • stackManipulations

      private final List<StackManipulation> stackManipulations
      The stack manipulations this compound operation represents in their application order.
  • Constructor Details

    • Compound

      public Compound(StackManipulation... stackManipulation)
      Creates a new compound stack manipulation.
      Parameters:
      stackManipulation - The stack manipulations to be composed in the order of their composition.
    • Compound

      public Compound(List<? extends StackManipulation> stackManipulations)
      Creates a new compound stack manipulation.
      Parameters:
      stackManipulations - The stack manipulations to be composed in the order of their composition.
  • Method Details

    • isValid

      public boolean isValid()
      Determines if this stack manipulation is valid.
      Specified by:
      isValid in interface StackManipulation
      Returns:
      If false, this manipulation cannot be applied and should throw an exception.
    • apply

      public StackManipulation.Size apply(org.objectweb.asm.MethodVisitor methodVisitor, Implementation.Context implementationContext)
      Applies the stack manipulation that is described by this instance.
      Specified by:
      apply in interface StackManipulation
      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.