org.springframework.aop.aspectj

## Class MethodInvocationProceedingJoinPoint

- java.lang.Object
- - org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint

- All Implemented Interfaces:
    org.aspectj.lang.JoinPoint, org.aspectj.lang.JoinPoint.StaticPart, org.aspectj.lang.ProceedingJoinPoint

      public class MethodInvocationProceedingJoinPoint
      extends Object
      implements org.aspectj.lang.ProceedingJoinPoint, org.aspectj.lang.JoinPoint.StaticPart

  Implementation of AspectJ ProceedingJoinPoint interface wrapping an AOP Alliance MethodInvocation.

  Note: the `getThis()` method returns the current Spring AOP proxy. The `getTarget()` method returns the current Spring AOP target (which may be `null` if there is no target), and is a plain POJO without any advice. If you want to call the object and have the advice take effect, use `getThis()`. A common example is casting the object to an introduced interface in the implementation of an introduction.

  Of course there is no such distinction between target and proxy in AspectJ.

  Since:
    2.0
  Author:
    Rod Johnson, Juergen Hoeller, Adrian Colyer, Ramnivas Laddad

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.aspectj.lang.JoinPoint

      `org.aspectj.lang.JoinPoint.EnclosingStaticPart, org.aspectj.lang.JoinPoint.StaticPart`

  - ### Field Summary

    - ### Fields inherited from interface org.aspectj.lang.JoinPoint

      `ADVICE_EXECUTION, CONSTRUCTOR_CALL, CONSTRUCTOR_EXECUTION, EXCEPTION_HANDLER, FIELD_GET, FIELD_SET, INITIALIZATION, METHOD_CALL, METHOD_EXECUTION, PREINITIALIZATION, STATICINITIALIZATION, SYNCHRONIZATION_LOCK, SYNCHRONIZATION_UNLOCK`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MethodInvocationProceedingJoinPoint(ProxyMethodInvocation methodInvocation)` Create a new MethodInvocationProceedingJoinPoint, wrapping the given Spring ProxyMethodInvocation object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object[]` | `getArgs()`
    `int` | `getId()`
    `String` | `getKind()`
    `org.aspectj.lang.Signature` | `getSignature()`
    `SourceLocation` | `getSourceLocation()`
    `org.aspectj.lang.JoinPoint.StaticPart` | `getStaticPart()`
    `Object` | `getTarget()` Returns the Spring AOP target.
    `Object` | `getThis()` Returns the Spring AOP proxy.
    `Object` | `proceed()`
    `Object` | `proceed(Object[] arguments)`
    `void` | `set$AroundClosure(org.aspectj.runtime.internal.AroundClosure aroundClosure)`
    `String` | `toLongString()`
    `String` | `toShortString()`
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### MethodInvocationProceedingJoinPoint

          public MethodInvocationProceedingJoinPoint(ProxyMethodInvocation methodInvocation)

      Create a new MethodInvocationProceedingJoinPoint, wrapping the given Spring ProxyMethodInvocation object.
      Parameters:
        `methodInvocation` - the Spring ProxyMethodInvocation object

  - ### Method Detail

    - #### set$AroundClosure

          public void set$AroundClosure(org.aspectj.runtime.internal.AroundClosure aroundClosure)

      Specified by:
        `set$AroundClosure` in interface `org.aspectj.lang.ProceedingJoinPoint`

    - #### proceed

          public Object proceed()
                         throws Throwable

      Specified by:
        `proceed` in interface `org.aspectj.lang.ProceedingJoinPoint`
      Throws:
        `Throwable`

    - #### proceed

          public Object proceed(Object[] arguments)
                         throws Throwable

      Specified by:
        `proceed` in interface `org.aspectj.lang.ProceedingJoinPoint`
      Throws:
        `Throwable`

    - #### getThis

          public Object getThis()

      Returns the Spring AOP proxy. Cannot be `null`.
      Specified by:
        `getThis` in interface `org.aspectj.lang.JoinPoint`

    - #### getTarget

          public Object getTarget()

      Returns the Spring AOP target. May be `null` if there is no target.
      Specified by:
        `getTarget` in interface `org.aspectj.lang.JoinPoint`

    - #### getArgs

          public Object[] getArgs()

      Specified by:
        `getArgs` in interface `org.aspectj.lang.JoinPoint`

    - #### getSignature

          public org.aspectj.lang.Signature getSignature()

      Specified by:
        `getSignature` in interface `org.aspectj.lang.JoinPoint`
      Specified by:
        `getSignature` in interface `org.aspectj.lang.JoinPoint.StaticPart`

    - #### getSourceLocation

          public SourceLocation getSourceLocation()

      Specified by:
        `getSourceLocation` in interface `org.aspectj.lang.JoinPoint`
      Specified by:
        `getSourceLocation` in interface `org.aspectj.lang.JoinPoint.StaticPart`

    - #### getKind

          public String getKind()

      Specified by:
        `getKind` in interface `org.aspectj.lang.JoinPoint`
      Specified by:
        `getKind` in interface `org.aspectj.lang.JoinPoint.StaticPart`

    - #### getId

          public int getId()

      Specified by:
        `getId` in interface `org.aspectj.lang.JoinPoint.StaticPart`

    - #### getStaticPart

          public org.aspectj.lang.JoinPoint.StaticPart getStaticPart()

      Specified by:
        `getStaticPart` in interface `org.aspectj.lang.JoinPoint`

    - #### toShortString

          public String toShortString()

      Specified by:
        `toShortString` in interface `org.aspectj.lang.JoinPoint`
      Specified by:
        `toShortString` in interface `org.aspectj.lang.JoinPoint.StaticPart`

    - #### toLongString

          public String toLongString()

      Specified by:
        `toLongString` in interface `org.aspectj.lang.JoinPoint`
      Specified by:
        `toLongString` in interface `org.aspectj.lang.JoinPoint.StaticPart`

    - #### toString

          public String toString()

      Specified by:
        `toString` in interface `org.aspectj.lang.JoinPoint`
      Specified by:
        `toString` in interface `org.aspectj.lang.JoinPoint.StaticPart`
      Overrides:
        `toString` in class `Object`