Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Matching on parameter annotations

Thanks for the information about the compiler flag and the status of the parameter annotations. If I could I'd like to add to whatever vote for parameter annotation matching there is. It would be extremely useful in adding profiling information to code.

Thanks,

Andy Clement <andrew.clement@xxxxxxxxx> wrote:
>From the AspectJ documentation:

"Matching on package and parameter annotations is not supported in
AspectJ 1.5. Support for this capability may be considered in a future
release."

We currently don't provide any kind of matching on the annotations
attached to parameters at the moment.

cheers,
Andy.

On 07/08/06, Eric Crahen wrote:
> Almost, I want to select annotations that are method parameter annotations,
> not annotations on the formal types of the method parameters themselves.
>
> I've modified your example slightly to show you what I mean
>
>
> import java.lang.annotation.Retention;
> import java.lang.annotation.RetentionPolicy;
>
> public class AnnotationBinding {
> @Retention(RetentionPolicy.RUNTIME)
> public @interface TestAnnotation {
> }
> public static class Foo {}
> public static class Bar {}
> public void x(@TestAnnotation Foo foo) {} // error here
>
> public void x(Bar bar) {} // no error here
> static aspect A {
> declare error: execution(void AnnotationBinding.x(@TestAnnotation *))
> : "parameter annotated with @TestAnnotation";
> }
> }
>
>
> Wes wrote:
>
> Hi Eric -
>
> I'm not sure what kind of static checking happens or is possible using
> @args(..),
> but you can staticly pick them out using the method-execution join point
> signature:
>
> execution(* *(@Annotation *)) // for any method with one parameter so
> annotated
>
> In the test below, only the annotation-laden shadow x(..) is flagged as an
> error.
> Would that help?
>
> Wes
>
> --------------------- annot/AnnotationBinding.java
> package annot;
>
> import java.lang.annotation.Retention;
> import java.lang.annotation.RetentionPolicy;
>
> public class AnnotationBinding {
> @Retention(RetentionPolicy.RUNTIME)
> public @interface TestAnnotation {
> }
> @TestAnnotation
> public static class Foo {}
> public static class Bar {}
> public void x(Foo foo) {} // error here
> public void x(Bar bar) {} // no error here
> static aspect A {
> declare error: execution(void AnnotationBinding.x(@TestAnnotation *))
> : "parameter annotated with @TestAnnotation";
> }
> }
>
>
> ------------Original Message------------
> From: Eric Crahen
> To: aspectj-users@xxxxxxxxxxx
> Date: Sun, Aug-6-2006 3:33 PM
> Subject: [aspectj-users] Matching on parameter annotations
> Is there any upcoming work being done to allow for parameter annotations to
> be matched more efficently?
>
> So far I've found that using @args() inserts bytecodes that check the
> annotations of the object passed in to see if an annotation is present and
> its not quite what I wanted. And using the static parts of a join point also
> inserts bytecode into each method. This works, but if you weave 100 methods
> and only 1 contains a parameter annotation, thats alot of extra code
> inserted into 99 methods that wouldn't behave any differently.
>
>
> - Eric
>
>
> Do you Yahoo!?
> Everyone is raving about the all-new Yahoo! Mail
> Beta._______________________________________________
> 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
>
>
>
>
> - Eric
>
>
> ________________________________
> Do you Yahoo!?
> Get on board. You're invited to try the new Yahoo! Mail Beta.
>
>
>
> _______________________________________________
> 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



- Eric


Groups are talking. We´re listening. Check out the handy changes to Yahoo! Groups.

Back to the top