org.springframework.aop.interceptor
Class ExposeInvocationInterceptor

java.lang.Object
  extended by org.springframework.aop.interceptor.ExposeInvocationInterceptor
All Implemented Interfaces:
Serializable, Advice, Interceptor, MethodInterceptor

public class ExposeInvocationInterceptor
extends Object
implements MethodInterceptor, Serializable

Interceptor that exposes the current MethodInvocation. We occasionally need to do this--for example, when a pointcut or target object needs to know the Invocation context.

Don't use this interceptor unless this is really necessary. Target objects should not normally know about Spring AOP, as this creates a dependency on Spring. Target objects should be plain POJOs as far as possible.

If used, this interceptor will normally be the first in the interceptor chain.

Author:
Rod Johnson
See Also:
Serialized Form

Field Summary
static ExposeInvocationInterceptor INSTANCE
          Singleton instance of this class
 
Method Summary
static MethodInvocation currentInvocation()
          Return the AOP Alliance MethodInvocation object associated with the current invocation.
 Object invoke(MethodInvocation mi)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INSTANCE

public static final ExposeInvocationInterceptor INSTANCE
Singleton instance of this class

Method Detail

currentInvocation

public static MethodInvocation currentInvocation()
                                          throws AspectException
Return the AOP Alliance MethodInvocation object associated with the current invocation.

Returns:
the invocation object associated with the current invocation
Throws:
AspectException - if there is no AOP invocation in progress, or if the ExposeInvocationInterceptor was not added to this interceptor chain.

invoke

public Object invoke(MethodInvocation mi)
              throws Throwable
Specified by:
invoke in interface MethodInterceptor
Throws:
Throwable


Copyright (c) 2002-2006 The Spring Framework Project.