Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] pointcut for overriden or implemented methods

I do not want to declare annotation on a type based on methods.  I am
looking at finding all methods that override or implement a
method-having-MyAnnotation.
hasmethod does not help in my case because the implemented and
overriden methods do not inherit the annotation. What I need are
"implementsMethod" pointcut and "overridesMethod" pointcut -- Is there
anything similar available or is it possible to achieve something
similar?

Thank you
Monal

On 9/29/06, Eric Bodden <eric.bodden@xxxxxxxxxxxxxx> wrote:
Hi.

I think you can use "declare annotation" with a hasmethod-pointcut in
order to declare an annotation on all types that have a method with
@MyAnnotation. This annotation on the type can then be inherited.

(see here for hasmethod:
http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg06671.html)


Eric


> -----Original Message-----
> From: aspectj-users-bounces@xxxxxxxxxxx [mailto:aspectj-users-
> bounces@xxxxxxxxxxx] On Behalf Of Monal Daxini
> Sent: Friday, September 29, 2006 4:33 PM
> To: aspectj-users@xxxxxxxxxxx
> Subject: [aspectj-users] pointcut for overriden or implemented methods
>
> Hi,
>
> Is it possible to write a pointcut with the following requirements:
>
> Match all methods in classes that override or implement methods with
> @MyAnnotation defined in the super class or the interface. So in the
> following example the pointcut should match both methds in the
> WorkPlace class.
>
> @Retention(RetentionPolicy.RUNTIME)
> @Inherited
> public @interface MyAnnotation {
> }
>
> public interface Work {
>      @MyAnnotation
>       public void doSomething();
> }
>
> public abstract class AbstractPlace {
>      @MyAnnotation
>       public void getPlace();
> }
>
> public class WorkPlace extends AbstractPlace implements Work {
>     public void doSomething() {
>         ...
>     }
>
>     public void getPlace() {
>         ...
>     }
> }
>
> Note: the annotation on the method are not inherited.
>
> Thank you
> Monal
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users



Back to the top