Oops. Copy/paste error. I suppose to remove a member if present would look like
declare @field: int aField: @Foo(-i) On Tue, Dec 14, 2010 at 9:56 AM, <jeanlouis.pastu...@orange-ftgroup.com>wrote: > Certainly the top. > But what does "-i=5" mean? i() takes the default value ? > > > Cordialement / Best regards > > JL Pasturel > > ------------------------------ > *De :* aspectj-users-boun...@eclipse.org [mailto: > aspectj-users-boun...@eclipse.org] *De la part de* Matthew Adams > *Envoyé :* mardi 14 décembre 2010 16:16 > *À :* aspectj-users@eclipse.org > *Objet :* Re: [aspectj-users] New feature of Aspectj 1.6.11 > > I might suggest moving the + or - sign inside the annotation to indicate > the addition or removal of the annotation's member: > > declare @field: int aField: @Foo(+i=5) > > That way, you can add and remove annotation members all in one shot: > > declare @field: int aField: +...@bar(-i=5,+goo="messy") > > etc. > > -matthew > > On Tue, Dec 14, 2010 at 4:04 AM, <jeanlouis.pastu...@orange-ftgroup.com>wrote: > >> >> Because i am lazy ;-) and to avoid errors of orders of handling declare >> annotation ( order of + and - ). >> >> >> But I aggree it is a fallacious argument >> >> Cordialement / Best regards >> >> Jean-Louis Pasturel >> >> >> -----Message d'origine----- >> De : aspectj-users-boun...@eclipse.org >> [mailto:aspectj-users-boun...@eclipse.org] De la part de Frank Pavageau >> Envoyé : mardi 14 décembre 2010 10:30 >> À : aspectj-users@eclipse.org >> Objet : Re: [aspectj-users] New feature of Aspectj 1.6.11 >> >> Jean-Louis, >> >> why would adding / replacing @Foo remove @Bar at the same time, without an >> explicit -...@bar? I definitely want to have several annotations on the same >> field / method / whatever at the same time and only modify some of them >> :-) >> >> Frank >> >> On Tue, Dec 14, 2010 at 8:10 AM, <jeanlouis.pastu...@orange-ftgroup.com> >> wrote: >> > >> > Andy, >> > Your analysis is deeper than my first idea and more correct. >> > >> > <Andy> >> > @interface Foo { >> > String value() default "abc"; >> > int i() default 4; >> > } >> > >> > and this annotated target >> > >> > @Foo(value="hello") >> > int aField; >> > >> > declare @field: int aField: +...@foo(value,i=5) >> > >> > To 'preserve any value it might already have' >> > </Andy> >> > >> > Ok with this proposal and : >> > >> > if aField has @Bar annotation, @Bar is removed and replaced by @Foo, >> > with the statement above, the default value is set for value ( "abc") >> > or it can be overrided like : >> > declare @field: int aField: +...@foo(value="hello",i=5) >> > >> > >> > Do we have the same understanding of the behavior? >> > >> > Cordialement / Best regards >> > >> > Jean-Louis Pasturel >> > >> > >> > -----Message d'origine----- >> > De : aspectj-users-boun...@eclipse.org >> > [mailto:aspectj-users-boun...@eclipse.org] De la part de Andy Clement >> > Envoyé : lundi 13 décembre 2010 18:57 À : aspectj-users@eclipse.org >> > Objet : Re: [aspectj-users] New feature of Aspectj 1.6.11 >> > >> > Hi, >> > >> > I actually have a whiteboard covered in syntax proposals around this >> > topic >> > :) >> > >> > Yes, for compatibility reasons we have to maintain the existing >> > defined behaviour without inclusion of any special characters. It >> > will annotate the target or report an error if the target is already >> annotated. >> > >> > - removes them >> > >> > + could be used for replace. >> > >> > But then what would you use for augment? >> > >> > Suppose I have this annotation: >> > >> > @interface Foo { >> > String value() default "abc"; >> > int i() default 4; >> > } >> > >> > and this annotated target >> > >> > @Foo(value="hello") >> > int aField; >> > >> > What is the syntax for adding a value for 'i' to that annotation, >> > whilst keeping 'value="hello"' >> > >> > declare @field: int aField: +...@foo(i=5) >> > >> > according to your rules, that would replace the existing annotation >> > with yours, losing the 'value' of hello. It almost feels like '+' >> > should stand for augment (plus meaning 'additive'), but then what else >> > could we use for replace? >> > >> > Perhaps augment could be this? (not providing a new value for 'value' >> > - but specifying it to say 'preserve any value it might already have') >> > >> > declare @field: int aField: +...@foo(value,i=5) >> > >> > Andy >> > >> > On 11 December 2010 09:47, Pasturel <jean-louis.pastu...@orange.fr> >> wrote: >> >> 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.pastu...@orange-ftgroup.com> >> 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); >> >>> ... >> >>> >> >>> } >> >>> >> >> >> >> _______________________________________________ >> >> aspectj-users mailing list >> >> aspectj-users@eclipse.org >> >> https://dev.eclipse.org/mailman/listinfo/aspectj-users >> >> >> > _______________________________________________ >> > aspectj-users mailing list >> > aspectj-users@eclipse.org >> > https://dev.eclipse.org/mailman/listinfo/aspectj-users >> > >> > >> > >> > ********************************* >> > This message and any attachments (the "message") are confidential and >> intended solely for the addressees. >> > Any unauthorised use or dissemination is prohibited. >> > Messages are susceptible to alteration. >> > France Telecom Group shall not be liable for the message if altered, >> changed or falsified. >> > If you are not the intended addressee of this message, please cancel it >> immediately and inform the sender. >> > ******************************** >> > >> > _______________________________________________ >> > aspectj-users mailing list >> > aspectj-users@eclipse.org >> > https://dev.eclipse.org/mailman/listinfo/aspectj-users >> > >> _______________________________________________ >> aspectj-users mailing list >> aspectj-users@eclipse.org >> https://dev.eclipse.org/mailman/listinfo/aspectj-users >> >> >> >> ********************************* >> This message and any attachments (the "message") are confidential and >> intended solely for the addressees. >> Any unauthorised use or dissemination is prohibited. >> Messages are susceptible to alteration. >> France Telecom Group shall not be liable for the message if altered, >> changed or falsified. >> If you are not the intended addressee of this message, please cancel it >> immediately and inform the sender. >> ******************************** >> >> _______________________________________________ >> aspectj-users mailing list >> aspectj-users@eclipse.org >> https://dev.eclipse.org/mailman/listinfo/aspectj-users >> > > > > -- > mailto:matt...@matthewadams.me > skype:matthewadams12 > yahoo:matthewadams > aol:matthewadams12 > google-talk:matthewadam...@gmail.com<google-talk%3amatthewadam...@gmail.com> > msn:matt...@matthewadams.me <msn%3amatt...@matthewadams.me> > http://matthewadams.me > http://www.linkedin.com/in/matthewadams > > ********************************* > This message and any attachments (the "message") are confidential and > intended solely for the addressees. > Any unauthorised use or dissemination is prohibited. > Messages are susceptible to alteration. > France Telecom Group shall not be liable for the message if altered, changed > or falsified. > If you are not the intended addressee of this message, please cancel it > immediately and inform the sender. > ******************************** > > > _______________________________________________ > aspectj-users mailing list > aspectj-users@eclipse.org > https://dev.eclipse.org/mailman/listinfo/aspectj-users > > -- mailto:matt...@matthewadams.me skype:matthewadams12 yahoo:matthewadams aol:matthewadams12 google-talk:matthewadam...@gmail.com<google-talk%3amatthewadam...@gmail.com> msn:matt...@matthewadams.me <msn%3amatt...@matthewadams.me> http://matthewadams.me http://www.linkedin.com/in/matthewadams
_______________________________________________ aspectj-users mailing list aspectj-users@eclipse.org https://dev.eclipse.org/mailman/listinfo/aspectj-users