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
`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`