Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Can I determine method objects or names in advice?

Russell Miles <russellmiles@xxxxxxx> writes:

> Hi John,
>
> Sounds fair enough. I think if I understand you correctly you want to
> know that the method aMethod was called and that bf is being accessed
> then the an approach is possibly like the following aspect definition?
> :
>
> public aspect TraceReadOfBf
> {
> 	public pointcut readingBfInaMethod() : execution(int A.aMethod());
> 	public pointcut readingbf() : call(int B.getBf()) &&
> 	cflow(readingBfInaMethod());
> 	
> 	before() : readingbf()
> 	{
> 		System.out.println("bf Accessed from: " +
> 		thisJoinPoint.getStaticPart().getSourceLocation());
> 		
> 	}
> }
>
> Give me a shout if there's something I've missed ... and good luck :-)
>
> You could also allow aspect oriented monitoring of the variable if you
> aren't doing that in a way that is intrusive?

Hi and thanks for the reply.  Getting the SourceLocation doesn't seem
very interesting as I need to reinvoke the method.

However, the JoinPoint Signature is interesting in this respect.  If I
inspect that in two advices, one at call and one at get, I think that
gives me what I need.

Thanks again,

>
> On 5 Feb 2004, at 21:03, John M. Adams wrote:
>
>> Dear Friends,
>>
>> Is it possible to access either the name of the calling method or the
>> method object in some advice?  I would like to implement something
>> like the following: Let a be an instance of A and b an instance B.
>> Let bf be a field of B.  and aMeth be method on A.  If aMethod reads
>> bf, I want to record that fact so as to reinvoke it later if bf is
>> updated.
>>

-- 
John M. Adams



Back to the top