Monal,

Thanks for your suggestions! I had considered your second suggestion but found 
the cost iterating through the interface definition and class definition for 
the appropriate method annotation to be too expensive on each joinpoint. 

However, I do like your first suggestion. I had not thought of using the 
distinction between call pointcut designators and execution designators to 
differentiate between an implementation call and a call against an interface. 
My only concern with this option is the cost of having two joinpoints evaluate 
against each intercepted (proper terminology?) call. 

When it comes to byte-code weaving if I follow your suggestion, would each 
intercepted method now perform two checks to see if it an annotation is 
present?... or would this check happen only during weaving and any subsequent 
calls to these methods  would only trigger the appropriate advice logic?

In any case, thanks again for your advice!

-Kyle

----- Original Message ----
From: Monal Daxini <[EMAIL PROTECTED]>
To: [email protected]
Sent: Monday, January 29, 2007 3:08:25 PM
Subject: Re: [aspectj-users] Interfaces vs Concrete Classes?

Kyle,

As you may know the annotations on methods are not inherited by
implementing or overriding methods. You could:

1. Use an execution pointcut designator, and then access the signature
and check for the annotation on the implementation method, and also
use a call pointcut designator for the calls on the interface method
and check on the annotation. You could use a variable to track if the
annotation exists on either in your aspect.
Note: This may not be an option if you cannot use execution pointcut designator.

2 In adition to the code in MethodAnnotationAspect, you could use
thisJoinPoint.getTarget (I think this returns the object implementing
the interface)  and then check the annotation.
Note: This is similar to 1 above except that it does not use the
execution pointcut designator.

3. you can use the target pointcut designator
http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html#pointcuts

Monal
http://www.goi18n.com/
http://goi18n.com/

_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users







 
____________________________________________________________________________________
Looking for earth-friendly autos? 
Browse Top Cars by "Green Rating" at Yahoo! Autos' Green Center.
http://autos.yahoo.com/green_center/
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to