Hi, I'm afraid you can't do that with AspectJ right now, you can't pass a piece of the matched information to the new annotation. I can perhaps imagine some hypothetical syntax:
declare @field: @SortedOneToMany(sort=SortType.COMPARATOR,comparator={1}) * * : @Sort(type=SortType.COMPARATOR,comparator={1}); which would seem to achieve what you want. Maybe raise an enhancement request for it: https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ sorry I don't have better news. cheers Andy On 11 May 2011 13:55, Adam Howard <howard.a...@gmail.com> wrote: > I've asked this question on StackOverflow and have not gotten an answer > after 115 views so I thought > I would ask here. You can post your answer on SO too if you'd like the rep. > http://stackoverflow.com/questions/5901690/turning-one-annotation-into-many-annotations-with-aspectj > I have discovered a pattern in my JPA mappings that I would like to codify. > A simple example follows: > @OneToMany(fetch=FetchType.EAGER) > @Sort(type=SortType.NATURAL) > private SortedSet<Item> items; > I would like to create a single annotation called SortedOneToMany that I can > apply to the above set: > public @interface SortedOneToMany { > FetchType fetch() default EAGER; > SortType sort() default NATURAL; > Class comparator() default void.class; > } > I have written the following aspect to "attach" the JPA annotations whenever > it sees my annotation: > public aspect SortedOneToManyAspect { > declare @field: @SortedOneToMany * * : > @OneToMany(fetch=FetchType.EAGER); > declare @field: @SortedOneToMany * * : @Sort(type=SortType.NATURAL); > } > But I don't know how can I access the values of the SortedOneToMany > annotation parameters and use them when defining the OneToMany and Sort > annotations. There may be cases where I want to change one of the default > values like so: > > @SortedOneToMany(sort=SortType.COMPARATOR,comparator=ItemComparator.class) > private SortedSet<Item> items; > So how can I pass the annotation values from SortedOneToMany to the Sort > annotation? > Thanks. > -- > Adam > > _______________________________________________ > 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