[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] New feature of Aspectj 1.6.11

I open a new thread to discuss the new feature of 1.6.11 about declare annotation

The M1 comes with the removal of an annotation of field like specified in the readme :

declare @field: int Foo.i: -@Anno;

It gives me an idea with the + sign as this :
declare @field: int Foo.i: +@Anno(param=<newValue>);

that means a force replace : if @Anno exists remove it and replaces with the new parametrized @Anno.If not already exists creates it with the parametrized Anno.

Without the - sign and without  the + sign, it creates the Annotation on field or if already exists throws an exception ( that is certainly the current behavior =>  Andy?).

What do you think about that ?

JL PASTUREL

<Andy_Post>

Hi,

I didn't write about using it in that way as we don't 100% yet define
the rules there - well I might define it as undefined right now:)   It
might work right now but I'd need to confirm I want that ordering to
remain reliable and stable.  Any values you specify for the removal
are actually not used right now, the removal is done based solely on
the name - this means you'll get what you want if the removal runs
first.  I might add value matching enforcement later.  Yes, at some
point it will be added across all the declare annotation forms for
consistency.

Andy
</Andy_Post>


On 9 December 2010 23:14,<jeanlouis.pasturel@xxxxxxxxxxxxxxxxxx> wrote:

 I see that 1.6.11M1 includes removal Annotation for field.
 Just a question :
 Is this kind of declare annotation below, supported in the same aspect : ?

 @Aspect
 public class MyAspect
 {
 declare @field: int Foo.i: -@Anno(init=0);
 declare @field: int Foo.i: @Anno(init=5);
 ...

 }