Class AsmVisitorWrapper.Compound

    • Field Detail

      • asmVisitorWrappers

        private final java.util.List<AsmVisitorWrapper> asmVisitorWrappers
        The class visitor wrappers that are represented by this chain in their order. This list must not be mutated.
    • Constructor Detail

      • Compound

        public Compound​(AsmVisitorWrapper... asmVisitorWrapper)
        Creates a new immutable chain based on an existing list of AsmVisitorWrappers where no copy of the received array is made.
        Parameters:
        asmVisitorWrapper - An array of AsmVisitorWrappers where elements at the beginning of the list are applied first, i.e. will be at the bottom of the generated ClassVisitor.
      • Compound

        public Compound​(java.util.List<? extends AsmVisitorWrapper> asmVisitorWrappers)
        Creates a new immutable chain based on an existing list of AsmVisitorWrappers where no copy of the received list is made.
        Parameters:
        asmVisitorWrappers - A list of AsmVisitorWrappers where elements at the beginning of the list are applied first, i.e. will be at the bottom of the generated ClassVisitor.
    • Method Detail

      • mergeWriter

        public int mergeWriter​(int flags)
        Defines the flags that are provided to any ClassWriter when writing a class. Typically, this gives opportunity to instruct ASM to compute stack map frames or the size of the local variables array and the operand stack. If no specific flags are required for applying this wrapper, the given value is to be returned.
        Specified by:
        mergeWriter in interface AsmVisitorWrapper
        Parameters:
        flags - The currently set flags. This value should be combined (e.g. flags | foo) into the value that is returned by this wrapper.
        Returns:
        The flags to be provided to the ASM ClassWriter.
      • mergeReader

        public int mergeReader​(int flags)
        Defines the flags that are provided to any ClassReader when reading a class if applicable. Typically, this gives opportunity to instruct ASM to expand or skip frames and to skip code and debug information. If no specific flags are required for applying this wrapper, the given value is to be returned.
        Specified by:
        mergeReader in interface AsmVisitorWrapper
        Parameters:
        flags - The currently set flags. This value should be combined (e.g. flags | foo) into the value that is returned by this wrapper.
        Returns:
        The flags to be provided to the ASM ClassReader.
      • wrap

        public org.objectweb.asm.ClassVisitor wrap​(TypeDescription instrumentedType,
                                                   org.objectweb.asm.ClassVisitor classVisitor,
                                                   Implementation.Context implementationContext,
                                                   TypePool typePool,
                                                   FieldList<FieldDescription.InDefinedShape> fields,
                                                   MethodList<?> methods,
                                                   int writerFlags,
                                                   int readerFlags)
        Applies a ClassVisitorWrapper to the creation of a DynamicType.
        Specified by:
        wrap in interface AsmVisitorWrapper
        Parameters:
        instrumentedType - The instrumented type.
        classVisitor - A ClassVisitor to become the new primary class visitor to which the created DynamicType is written to.
        implementationContext - The implementation context of the current instrumentation.
        typePool - The type pool that was provided for the class creation.
        fields - The instrumented type's fields.
        methods - The instrumented type's methods non-ignored declared and virtually inherited methods.
        writerFlags - The ASM ClassWriter flags to consider.
        readerFlags - The ASM ClassReader flags to consider.
        Returns:
        A new ClassVisitor that usually delegates to the ClassVisitor delivered in the argument.