[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] problem retreiving from chain
|
that is a brain bender...
Can you supply a test driver and the shape of Context, and I'll apply
some more thinking. I do wonder if there is a simpler way to achieve
what you want.
Andy
2009/5/20 maverick_blr <naveenkumarmv@xxxxxxxxx>:
>
>
> I am trying to solve the following problem with aspectj and have run into a
> problem. Any help in fixing this will be highly appreciated.
>
> I have call stack in which one or more objects in the call chain implement
> an interface called IEnhancer
>
> public interface IEnhancer
> {
> public Context getFromCallStack();
> public Context getContext();
> }
>
> I need advice(s) to overwrite the getFromCallStack to fetch the context from
> the previous IEnhancer in the call stack.
>
> the getContext method is meant to retreive the Context from getFromCallStack
> and enhance it.
>
> for Example
>
> public Class MyEnhancer implements IEnhancer
> {
> public Context getFromCallStack()
> {
> return null;
> //will be overwritten by advice.
> }
>
> public Context getContext()
> {
> Context context = getFromCallStack();
> context.enhance(value);
> }
> }
>
> I want the around advice to retreive context from the previous enhancer and
> NOT the same object.
>
>
> I have written the following code.
>
> pointcut contextWormHoleEnhancerPointCut(IEnhancer enhancer)
> :execution(* IEnhancer+.*(..)) && this(enhancer);
>
> pointcut contextWormHoleEnhancerReadPointCut(IEnhancer enhancer)
> :execution(public * IEnhancer +.getFromCallStack(..))
> && this(enhancer);
>
>
> pointcut ContextEnhancerToEnhancer(IEnhancer interim, IEnhancer reader)
> :if(interim != reader)&& cflow(contextWormHoleEnhancerPointCut(interim))&&
> contextWormHoleEnhancerReadPointCut(reader);
>
>
> Context around(IEnhancer interim,IEnhancer reader):IEnhancer(interim,
> reader){
> return interim.getContext();
> };
>
> with the if pointcut in the ContextEnhancerToEnhancer point the around
> advice is not getting kicked in. If i exclude it the getFromCallStack is
> being invoked on this and it returns null.
>
>
> --
> View this message in context: http://www.nabble.com/problem-retreiving-from-chain-tp23596176p23596176.html
> Sent from the AspectJ - users mailing list archive at Nabble.com.
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>