Hello Simone, This is exactly what I was looking for. Now that different people have given me vastly different responses I don't feel so bad in asking something I thought should have been fairly common.
Thanks so much for the response. Much appreciated. Cheers Tom On Mon, Jan 10, 2011 at 10:50 AM, Simone Gianni <simo...@apache.org> wrote: > I'm pretty sure this should work : > > after() returning(boolean b) : get(....) { > > } > > that's valid for an "after", no way of doing it in a "before" is not using > an around. > > Simone > > > Get the actual value on access on a field? without using reflection or > similar? > > 2011/1/7 Andy Clement <andrew.clem...@gmail.com> > >> I feel there ought to be a neater way I can't quite think of, but >> these are options: >> >> import org.aspectj.lang.reflect.*; >> >> public aspect Foo { >> boolean around(): get(boolean value) { >> boolean b = proceed(); >> System.out.println("around advice: "+b); >> return b; >> } >> >> after(C target): get(boolean C.value) && target(target) { >> try { >> boolean b = >> >> ((FieldSignature)thisJoinPoint.getSignature()).getField().getBoolean(target); >> System.out.println("before advice: "+b); >> } catch (Exception e) {} >> } >> >> public static void main(String []argv) { >> new C().run(); >> } >> } >> >> class C { >> boolean value = true; >> >> public void run() { >> boolean b = value; >> value= false; >> b = value; >> } >> } >> >> Andy >> >> On 7 January 2011 08:10, tomansley <tomans...@gmail.com> wrote: >> > >> > (NOTE: If anybody has a way of being able to do meaningful searches on >> "get" >> > and "set" then let me know. I have searched the web for my question >> below >> > and am stymied by how to actually perform the search) >> > >> > Hi all, >> > >> > I am playing around with the "get" and "set" primitives and am not >> having >> > luck gaining access to the variable that is being retrieved with the >> "get". >> > The set works fine. The following code allows me to gain access to the >> > variable (isCacheEnabled) that is being set along with the new value >> that >> > the value is being set to. >> > >> > before(Boolean newval): set(Boolean ReferenceDataWorker+.isCacheEnabled) >> && >> > args(newval) { >> > System.out.println("isCacheEnabled has been set and the new value >> is " + >> > newval); >> > } >> > >> > This works great and I am able to print out the new value that >> > isCacheEnabled is being set to. The same cannot be said for when I use >> the >> > "get" primitive. Obviously I do not have the argument available since >> there >> > is no argument. I am trying to print out the value of isCacheEnabled >> before >> > (or after for that matter) its retrieved. >> > >> > before(): get(Boolean ReferenceDataWorker+.isCacheEnabled) { >> > System.out.println("isCacheEnabled has been retrieved and the >> value is " + >> > isCacheEnabled); >> > } >> > >> > My question is: How do I gain access to the "isCacheEnabled" variable >> when >> > using the "get" primitive? If anyone has anymore useful tips on gaining >> > access to variables then that would be great as well. I have tried >> > understanding "this", "target" etc but I think I am missing something >> > fundamental. >> > >> > Any help greatly appreciated. >> > >> > Cheers >> > Tom >> > -- >> > View this message in context: >> http://aspectj.2085585.n4.nabble.com/Retrieving-value-whilst-using-the-get-primitive-tp3179362p3179362.html >> > Sent from the AspectJ - users mailing list archive at Nabble.com. >> > _______________________________________________ >> > 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 >> > > > _______________________________________________ > 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