Annotation Interface AllArguments


@Documented @Retention(RUNTIME) @Target(PARAMETER) public @interface AllArguments

Parameters that are annotated with this annotation will be assigned an array of all arguments of the instrumented method.

By default, this annotation applies a AllArguments.Assignment.STRICT assignment of the source method's parameters to the array. This implies that parameters that are not assignable to the annotated array's component type make the method with this parameter unbindable. To avoid this, you can use a AllArguments.Assignment.SLACK assignment which simply skips non-assignable values instead.

Important: Don't confuse this annotation with Advice.AllArguments or MemberSubstitution.AllArguments. This annotation should be used with MethodDelegation only.

See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
    A directive for how an AllArguments annotation on an array is to be interpreted.
    static enum 
    A binder for handling the AllArguments annotation.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    boolean
    Determines if the array should contain the instance that defines the intercepted value when intercepting a non-static method.
    boolean
    Determines if a null value should be assigned if the instrumented method does not declare any parameters.
    Defines the type of AllArguments.Assignment type that is applied for filling the annotated array with values.
  • Element Details

    • value

      Defines the type of AllArguments.Assignment type that is applied for filling the annotated array with values.
      Returns:
      The assignment handling to be applied for the annotated parameter.
      Default:
      STRICT
    • includeSelf

      boolean includeSelf
      Determines if the array should contain the instance that defines the intercepted value when intercepting a non-static method.
      Returns:
      true if the instance on which the intercepted method should be invoked should be included in the array containing the arguments.
      Default:
      false
    • nullIfEmpty

      boolean nullIfEmpty
      Determines if a null value should be assigned if the instrumented method does not declare any parameters.
      Returns:
      true if a null value should be assigned if the instrumented method does not declare any parameters.
      Default:
      false