Bug #44365 is a request for just this kind of support for modifiers in type patterns. I think having support for modifiers and for type categories like isInterface or isAspect would still be a valuable enhancement.
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Wes Sent: Monday, June 26, 2006 11:54 PM To: AspectJ Mailing List Subject: Re: [aspectj-users] declare error Type patterns don't handle modifiers (like abstract), but otw see this pointcut in B.java below: // a class initialization join point, of // any Cluster subtype except Cluster itself staticinitialization(!Cluster && Cluster+) // that does not have an annotation && !staticinitialization(@DaoLink *) : Wes -------------------------------------------------- ----------------- $ aspectj-1.5 -1.5 B.java C:\home\wes\work\src\B.java:4 [error] Annotate concreate Cluster with @DaoLink static abstract class C implements Cluster { } staticinitialization(void B$C.<clinit>()) see also: C:\home\wes\work\src\B.java:10::0 C:\home\wes\work\src\B.java:5 [error] Annotate concreate Cluster with @DaoLink static class D extends C { } staticinitialization(void B$D.<clinit>()) see also: C:\home\wes\work\src\B.java:10::0 C:\home\wes\work\src\B.java:8 [error] Annotate concreate Cluster with @DaoLink static class DD extends C { } staticinitialization(void B$DD.<clinit>()) see also: C:\home\wes\work\src\B.java:10::0 3 errors ----------------- $ cat B.java public class B { interface Cluster {} static abstract class C implements Cluster { } static class D extends C { } @DaoLink // not inherited by CC static abstract class CC implements Cluster { } static class DD extends CC { } static aspect A { declare error: staticinitialization(!Cluster && Cluster+) && !staticinitialization(@DaoLink *) : "Annotate concreate Cluster with @DaoLink"; } @interface DaoLink {} } > ------------Original Message------------ > From: FaKod <[EMAIL PROTECTED]> > To: [email protected] > Date: Mon, Jun-26-2006 7:36 AM > Subject: [aspectj-users] declare error > > I want to declare an error on non abstract classes of type Cluster > without a specific annotation. > I cannot write something like this: within([EMAIL PROTECTED] !abstract > Cluster+); > > How can i do this? > > > > > I'm using this code: > > ... > pointcut clusterWithoutDAOAnno(): > execution(* *(..)) && > within([EMAIL PROTECTED] Cluster+); > > declare error: clusterWithoutDAOAnno(): > "please use @DaoLink Annotation for Cluster Objects"; > > ... > _______________________________________________ > aspectj-users mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/aspectj-users > _______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users _______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
