For the original description of your problem, depending on whether I'm
interpreting it correctly, you could use declare @type:

declare @type: hasmethod(@LogMe * (!@LogMe *).*(..)) : @LogMe;

this means 'give the annotation @LogMe to a type if it has a method
marked @LogMe'

For the interface you might use:

declare parents: hasmethod(@LogMe * (!Intface+).*(..)) implements ILoggable;

I've only written these bits of syntax in a hurry in the email client,
they may need tweaking...

hasmethod is an experimental feature and you'll have to use
-XhasMember for the compiler to let it though.

> Is this the best way to enforce the desired semantics?

Yep, that can enforce it if you don't want to use the constructs above
to perform type changes.

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

Reply via email to