Interface ProceedingJoinPoint
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.aspectj.lang.JoinPoint
JoinPoint.EnclosingStaticPart, 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
-
Method Summary
Modifier and TypeMethodDescriptionproceed()
Proceed with the next advice or target method invocationProceed with the next advice or target method invocation.void
The joinpoint needs to know about its closure so that proceed can delegate to closure.run().default void
The joinpoint needs to know about its closure so that proceed can delegate to closure.run().Methods inherited from interface org.aspectj.lang.JoinPoint
getArgs, getKind, getSignature, getSourceLocation, getStaticPart, getTarget, getThis, toLongString, toShortString, toString
-
Method Details
-
set$AroundClosure
The joinpoint needs to know about its closure so that proceed can delegate to closure.run(). This internal method should not be called directly, and won't be visible to the end-user when packed in a jar (synthetic method).- Parameters:
arc
- the around closure to associate with this joinpoint
-
stack$AroundClosure
The joinpoint needs to know about its closure so that proceed can delegate to closure.run(). This internal method should not be called directly, and won't be visible to the end-user when packed in a jar (synthetic method). This should maintain a stack of closures as multiple around advice with proceed are targeting a joinpoint and the stack will need to be unwound when exiting nested advice. Passing a non null arc indicates a push, passing null indicates a pop.- Parameters:
arc
- the around closure to associate with this joinpoint
-
proceed
-
proceed
Proceed with the next advice or target method invocation. Unlike code style, proceed(..) in annotation style places different requirements on the parameters passed to it. The proceed(..) call takes, in this order:- If 'this()' was used in the pointcut for binding, it must be passed first in proceed(..).
- If 'target()' was used in the pointcut for binding, it must be passed next in proceed(..) - it will be the first argument to proceed(..) if this() was not used for binding.
- Finally come all the arguments expected at the join point, in the order they are supplied at the join point. Effectively the advice signature is ignored - it doesn't matter if a subset of arguments were bound or the ordering was changed in the advice signature, the proceed(..) calls takes all of them in the right order for the join point.
- Parameters:
args
- the arguments to proceed with- Returns:
- the result of proceeding
- Throws:
Throwable
- if the invoked proceed throws anything
-