Class FieldAccessor.ForSetter<T>

java.lang.Object
net.bytebuddy.implementation.FieldAccessor
net.bytebuddy.implementation.FieldAccessor.ForSetter<T>
Type Parameters:
T - The type of the value that is initialized per instrumented type.
All Implemented Interfaces:
InstrumentedType.Prepareable, Implementation, Implementation.Composable
Direct Known Subclasses:
FieldAccessor.ForSetter.OfConstantValue, FieldAccessor.ForSetter.OfDefaultValue, FieldAccessor.ForSetter.OfFieldValue, FieldAccessor.ForSetter.OfParameterValue, FieldAccessor.ForSetter.OfReferenceValue
Enclosing class:
FieldAccessor

@Enhance protected abstract static class FieldAccessor.ForSetter<T> extends FieldAccessor implements Implementation.Composable
A field accessor for a field setter.
  • Field Details

  • Constructor Details

    • ForSetter

      protected ForSetter(FieldAccessor.FieldLocation fieldLocation, Assigner assigner, Assigner.Typing typing, FieldAccessor.ForSetter.TerminationHandler terminationHandler)
      Creates a new field accessor for a setter instrumentation.
      Parameters:
      fieldLocation - The field's location.
      assigner - The assigner to use.
      typing - Indicates if dynamic type castings should be attempted for incompatible assignments.
      terminationHandler - The termination handler to apply.
  • Method Details

    • 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).
    • initialize

      @MaybeNull protected abstract T initialize(TypeDescription instrumentedType)
      Initializes a value to be used during method instrumentation.
      Parameters:
      instrumentedType - The instrumented type.
      Returns:
      The initialized value.
    • resolve

      protected abstract StackManipulation resolve(@MaybeNull T initialized, FieldDescription fieldDescription, TypeDescription instrumentedType, MethodDescription instrumentedMethod)
      Resolves the stack manipulation to load the value being set.
      Parameters:
      initialized - The method that was initialized for the instrumented type.
      fieldDescription - The field to set the value for.
      instrumentedType - The instrumented type.
      instrumentedMethod - The instrumented method.
      Returns:
      The stack manipulation to apply.