| Thanks now i got the idea. I had some misconceptions. Thanks Simone.. 
 --- On Fri, 10/10/08, Simone Gianni <simoneg@xxxxxxxxxx> wrote:
 
 From: Simone Gianni <simoneg@xxxxxxxxxx>Subject: Re: [aspectj-users] Logging variables
 To: rashid_m180@xxxxxxxxx, aspectj-users@xxxxxxxxxxx
 Date: Friday, October 10, 2008, 7:12 AM
 
 
 Hi Rashid,you should have a look at the complete list of pointcuts in AspectJ and
 relative join points [1]. Access (both in read and write) to a member
 variable IS a join point, and can be intercepted using the get() and
 set() pointcuts [2], while calling a getter and setter is a method call,
 so it IS a join point and can be matched both with execution() and
 call() pointcuts
 [2].
 
 Assignment and read of a local variable is not a join point, so cannot
 be intercepted by any pointcut. This is because variables internal to a
 method may exist only in code, and can be completely removed by the
 compiler, their name is not retained in the class file, and more
 generally is a bad idea to anchor your logic to an internal variable.
 
 In you case, like A obj = new B(); you can intercept the call to new B()
 (as it is a method/constructor call) using the execution() and the
 call() pointcuts. [3] Using an after advice you can modify properties of
 the newly created B instance, and using an around advice you can even
 return another class (as long as it is a subclass of B)
 
 Hope this helps,
 Simone
 
 [1] Join points :
 http://www.eclipse.org/aspectj/doc/released/progguide/semantics-joinPoints.html
 [2] get() and set(), call() and execution()
 :
 http://www.eclipse.org/aspectj/doc/released/progguide/semantics-pointcuts.html#primitive-pointcuts
 [3] constructors :
 http://www.eclipse.org/aspectj/doc/released/progguide/semantics-pointcuts.html#type-patterns
 (the last section)
 
 Rashid Mahmood wrote:
 > Thanks Jochen.
 >
 > By Late binding means dynamic binding like
 >           A obj = new B();
 >
 > So there is no possibility to weave local variables assignments with
 > AspectJ.
 >
 > And for member variables, Advicing Setter method is the only way?
 >
 > --- On *Fri, 10/10/08, Jochen Wuttke /<jochen.wuttke@xxxxxx>/*
 wrote:
 >
 >     From: Jochen Wuttke <jochen.wuttke@xxxxxx>
 >     Subject: Re: [aspectj-users] Logging variables
 >     To: aspectj-users@xxxxxxxxxxx
 >     Date: Friday, October 10, 2008, 6:32 AM
 >
 >     On Oct 10, 2008, at 2:41 PM, rmahmood
 wrote:
 >
 >     >
 >     > Hi All,
 >     >
 >     > i am looking for some way to weave variable assignment
 statements.
 >     >>> From different
 >      discussions it seems that the only possibility is
 >     to
 >     > advice Setter methods for member variable assignment.
 >     >
 >     > But what about local variables within a method or assignment to
 >     > a variable by a method return value.
 >     >
 >     > For assignments with late bindings it looks that this is not
 possible
 >     > with AspectJ as it provides load time weaving.
 >
 >     I'm not sure what you mean by "late bindings". But the
 problem
 >     with AJ
 >     is, AFAIK, that the names of local variables are not stored in class
 >     files, i.e. they are not available for weaving. Instead the Java
 >     compiler
 assigns them numbers (which show up in the class file for
 >     LOAD instructions), but since there is no mapping between these
 >     numbers and the named variables in the source that the AspectJ weaver
 
 >     has access to, it is not possible to weave into local variable
 >      accesses.
 >
 >     Jochen
 >     _______________________________________________
 >     aspectj-users mailing list
 >     aspectj-users@xxxxxxxxxxx
 >     https://dev.eclipse.org/mailman/listinfo/aspectj-users
 >
 >
 >
 > ------------------------------------------------------------------------
 >
 > _______________________________________________
 > aspectj-users mailing list
 > aspectj-users@xxxxxxxxxxx
 > https://dev.eclipse.org/mailman/listinfo/aspectj-users
 >
 
 
 --
 Simone Gianni            CEO Semeru s.r.l.           Apache
 Committer
 MALE human being programming a computer   http://www.simonegianni.it/
 
 
 |