org.springframework.aop.aspectj
Class MethodInvocationProceedingJoinPoint

java.lang.Object
  extended by 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 java.lang.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
private  class MethodInvocationProceedingJoinPoint.MethodSignatureImpl
          Lazily initialized MethodSignature.
private  class MethodInvocationProceedingJoinPoint.SourceLocationImpl
          Lazily initialized SourceLocation.
 
Nested classes/interfaces inherited from interface org.aspectj.lang.JoinPoint
org.aspectj.lang.JoinPoint.EnclosingStaticPart, org.aspectj.lang.JoinPoint.StaticPart
 
Field Summary
private  java.lang.Object[] defensiveCopyOfArgs
           
private  ProxyMethodInvocation methodInvocation
           
private  org.aspectj.lang.Signature signature
          Lazily initialized signature object
private  org.aspectj.lang.reflect.SourceLocation sourceLocation
          Lazily initialized source location object
 
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
MethodInvocationProceedingJoinPoint(ProxyMethodInvocation methodInvocation)
          Create a new MethodInvocationProceedingJoinPoint, wrapping the given Spring ProxyMethodInvocation object.
 
Method Summary
 java.lang.Object[] getArgs()
           
 int getId()
           
 java.lang.String getKind()
           
 org.aspectj.lang.Signature getSignature()
           
 org.aspectj.lang.reflect.SourceLocation getSourceLocation()
           
 org.aspectj.lang.JoinPoint.StaticPart getStaticPart()
           
 java.lang.Object getTarget()
          Returns the Spring AOP target.
 java.lang.Object getThis()
          Returns the Spring AOP proxy.
 java.lang.Object proceed()
           
 java.lang.Object proceed(java.lang.Object[] arguments)
           
 void set$AroundClosure(org.aspectj.runtime.internal.AroundClosure aroundClosure)
           
 java.lang.String toLongString()
           
 java.lang.String toShortString()
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

methodInvocation

private final ProxyMethodInvocation methodInvocation

defensiveCopyOfArgs

private java.lang.Object[] defensiveCopyOfArgs

signature

private org.aspectj.lang.Signature signature
Lazily initialized signature object


sourceLocation

private org.aspectj.lang.reflect.SourceLocation sourceLocation
Lazily initialized source location object

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 java.lang.Object proceed()
                         throws java.lang.Throwable
Specified by:
proceed in interface org.aspectj.lang.ProceedingJoinPoint
Throws:
java.lang.Throwable

proceed

public java.lang.Object proceed(java.lang.Object[] arguments)
                         throws java.lang.Throwable
Specified by:
proceed in interface org.aspectj.lang.ProceedingJoinPoint
Throws:
java.lang.Throwable

getThis

public java.lang.Object getThis()
Returns the Spring AOP proxy. Cannot be null.

Specified by:
getThis in interface org.aspectj.lang.JoinPoint

getTarget

public java.lang.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 java.lang.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 org.aspectj.lang.reflect.SourceLocation getSourceLocation()
Specified by:
getSourceLocation in interface org.aspectj.lang.JoinPoint
Specified by:
getSourceLocation in interface org.aspectj.lang.JoinPoint.StaticPart

getKind

public java.lang.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 java.lang.String toShortString()
Specified by:
toShortString in interface org.aspectj.lang.JoinPoint
Specified by:
toShortString in interface org.aspectj.lang.JoinPoint.StaticPart

toLongString

public java.lang.String toLongString()
Specified by:
toLongString in interface org.aspectj.lang.JoinPoint
Specified by:
toLongString in interface org.aspectj.lang.JoinPoint.StaticPart

toString

public java.lang.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 java.lang.Object