Thank you for you reply!

I read the doc now and it clearly says that "this" is the interface
type. Sorry for that, I didn't read it before :-(

But I have an other question now:
If "this" is the interface type, and casting "this" to target is bad
programming technique (and I agree!!!), how can I get the annotations of
the target (as this.getClass().getAnnotations() will not work.....)

Is there any solution to this?

Thanks for your help.
Roland 


On Mon, 2007-04-02 at 14:45 +0100, Matthew Webster wrote:
> 
> Roland, 
> 
> With "declare parents implements" in an ITD method "this" will refer
> to the interface type. That behaviour _is_ the same between the two
> programming styles. However, that is the only guarantee we can make
> (please read
> http://www.eclipse.org/aspectj/doc/released/adk15notebook/ataspectj-itds.html).
>  With code style "this" can also refer to the "declare parents implements" 
> target but only by casting to the correct type. In general though this is 
> probably not good programming technique. 
> 
> Matthew Webster
> AOSD Project
> Java Technology Centre, MP146
> IBM United Kingdom Limited
> Hursley Park, Winchester,  SO21 2JN, England
> Telephone: +44 196 2816139 (external) 246139 (internal) 
> 
> 
> Roland Reckel <[EMAIL PROTECTED]> 
> Sent by:
> [EMAIL PROTECTED] 
> 
> 30/03/2007 07:37 
>          Please respond to
>      aspectj-users@eclipse.org
> 
> 
> 
> 
>                To
> aspectj-users@eclipse.org 
>                cc
> 
>           Subject
> Re:
> [aspectj-users]
> @DeclareParents
> and
> this.getClass()
> 
> 
> 
> 
> 
> 
> 
> 
> I tried to do exactly the same aspect using "code style" and it worked
> perfectly. But in the doc I found this:
> "Whichever style you use, the AspectJ weaver ensures that your program
> has exactly the same semantics."
> 
> I think this is not true! "this" returns different instances in the
> different styles.
> 
> Is this a bug in the annotation style or is this intended?!?!?
> 
> I really like the annotation style with the LTW (very flexible and
> dynamic, can even compile in Continuum without ajc etc......), but for
> now it is unusable to me :-((
> 
> Please help!
> 
> Thanks
> 
> On Wed, 2007-03-28 at 14:50 +0200, Roland Reckel wrote:
> > Hi
> > 
> > I have a problem with the @DeclareParents annotation:
> > this.getClass() returns the implementation class of the Aspect and
> not
> > the "aspected" class.
> > 
> > Is this a bug? Or does any other method exist to get the aspected
> class?
> > BTW: I use AspectJ 1.5.3
> > 
> > Here an example:
> > 
> > @Aspect
> > public class PersistenceAspect {
> > 
> >     public interface IPersistentObject {
> >         void store();
> > 
> >         void delete();
> >     }
> > 
> >     public static class PersistentObjectImpl implements
> > IPersistentObject {
> > 
> >         public void store() {
> >         }
> > 
> >         public void delete() {
> >                                   System.out.println("Class: " +
> this.getClass())  // Does return
> > PersistentAspect$PersistentObjectImpl  !?!?!?!?
> >         }
> >     }
> > 
> >     @DeclareParents(value =
> "@lu.vdl.trasal.annotation.PersistentObject
> > *", defaultImpl = PersistentObjectImpl.class)
> >     private IPersistentObject implementedInterface;
> > 
> > }
> > 
> > 
> > Does anybody have the same problem? (I found some mails with the
> same
> > problem but no answer or bug report :-((
> > 
> > Thx for your help
> > 
> > 
> > _______________________________________________
> > 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
> 
> 
> 
> 
> 
> ______________________________________________________________________
> 
> 
> 
> 
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with
> number 741598. 
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
> 3AU 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> 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

Reply via email to