Class FieldAccessor.ForSetter.OfParameterValue

All Implemented Interfaces:
InstrumentedType.Prepareable, Implementation, Implementation.Composable
Enclosing class:
FieldAccessor.ForSetter<T>

@Enhance protected static class FieldAccessor.ForSetter.OfParameterValue extends FieldAccessor.ForSetter<Void>
A setter instrumentation for a parameter value.
  • Field Details

    • index

      private final int index
      The parameter's index.
  • Constructor Details

    • OfParameterValue

      protected OfParameterValue(FieldAccessor.FieldLocation fieldLocation, Assigner assigner, Assigner.Typing typing, FieldAccessor.ForSetter.TerminationHandler terminationHandler, int index)
      Creates a new setter instrumentation for a parameter value.
      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.
      index - The parameter's index.
  • Method Details

    • prepare

      public InstrumentedType prepare(InstrumentedType instrumentedType)
      Prepares a given instrumented type.
      Parameters:
      instrumentedType - The instrumented type in its current form.
      Returns:
      The prepared instrumented type.
    • initialize

      @AlwaysNull protected Void initialize(TypeDescription instrumentedType)
      Initializes a value to be used during method instrumentation.
      Specified by:
      initialize in class FieldAccessor.ForSetter<Void>
      Parameters:
      instrumentedType - The instrumented type.
      Returns:
      The initialized value.
    • resolve

      protected StackManipulation resolve(@MaybeNull Void unused, FieldDescription fieldDescription, TypeDescription instrumentedType, MethodDescription instrumentedMethod)
      Resolves the stack manipulation to load the value being set.
      Specified by:
      resolve in class FieldAccessor.ForSetter<Void>
      Parameters:
      unused - 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.
    • andThen

      public Implementation andThen(Implementation implementation)
      Appends the supplied implementation to this implementation.
      Parameters:
      implementation - The subsequent implementation.
      Returns:
      An implementation that combines this implementation with the provided one.
    • andThen

      public Implementation.Composable andThen(Implementation.Composable implementation)
      Appends the supplied composable implementation to this implementation.
      Parameters:
      implementation - The subsequent composable implementation.
      Returns:
      A composable implementation that combines this implementation with the provided one.