Class FixedValue.ForPoolValue

    • Field Detail

      • valueLoadInstruction

        private final StackManipulation valueLoadInstruction
        The stack manipulation which is responsible for loading the fixed value onto the operand stack.
      • loadedType

        private final TypeDescription loadedType
        The type of the fixed value.
    • Constructor Detail

      • ForPoolValue

        protected ForPoolValue​(StackManipulation valueLoadInstruction,
                               java.lang.Class<?> loadedType)
        Creates a new constant pool fixed value implementation.
        Parameters:
        valueLoadInstruction - The instruction that is responsible for loading the constant pool value onto the operand stack.
        loadedType - A type description representing the loaded type.
      • ForPoolValue

        protected ForPoolValue​(StackManipulation valueLoadInstruction,
                               TypeDescription loadedType)
        Creates a new constant pool fixed value implementation.
        Parameters:
        valueLoadInstruction - The instruction that is responsible for loading the constant pool value onto the operand stack.
        loadedType - A type description representing the loaded type.
      • ForPoolValue

        private ForPoolValue​(Assigner assigner,
                             Assigner.Typing typing,
                             StackManipulation valueLoadInstruction,
                             TypeDescription loadedType)
        Creates a new constant pool fixed value implementation.
        Parameters:
        valueLoadInstruction - The instruction that is responsible for loading the constant pool value onto the operand stack.
        loadedType - A type description representing the loaded type.
        assigner - The assigner to use for assigning the fixed value to the return type of the instrumented value.
        typing - Indicates if dynamic type castings should be attempted for incompatible assignments.
    • Method Detail

      • withAssigner

        public Implementation withAssigner​(Assigner assigner,
                                           Assigner.Typing typing)
        Defines an explicit assigner to this fixed value implementation.
        Specified by:
        withAssigner in interface FixedValue.AssignerConfigurable
        Parameters:
        assigner - The assigner to use for assigning the fixed value to the return type of the instrumented value.
        typing - Indicates if dynamic type castings should be attempted for incompatible assignments.
        Returns:
        A fixed value implementation that makes use of the given assigner.
      • appender

        public ByteCodeAppender appender​(Implementation.Target implementationTarget)
        Creates a byte code appender that determines the implementation of the instrumented type's methods.
        Specified by:
        appender in interface Implementation
        Parameters:
        implementationTarget - The target of the current implementation.
        Returns:
        A byte code appender for implementing methods delegated to this implementation. This byte code appender is also responsible for handling methods that were added by this implementation on the call to InstrumentedType.Prepareable.prepare(InstrumentedType).
      • 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.