Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Which field is being accessed

You have to use the AspectJ reflection API. Here's a snippet of code from Contract4J (InvariantFieldConditions.aj, to be specific). This would appear in your advice:

		Signature sig = thisJoinPoint.getSignature();
		String fieldName     = sig.getName();
		Class<?> clazz       = sig.getDeclaringType();
		SourceLocation loc   = thisJoinPoint.getSourceLocation();
		// Get the "old" value of the field.
		Field  field        = ((FieldSignature) sig).getField();
		Class<?> fieldClass = field.getType();

H.T.H.

dean

On Jun 24, 2008, at 1:37 PM, joel@xxxxxxxxxxx wrote:

I want to intercept all field modifications on a class:

pointcut fieldMutator(TestObject o, Object v): set(* TestObject.*) &&
this(o) && args(v);

This gets me the object and the new value, but how do I get which
field is being modified?

Thanks.
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Dean Wampler, Ph.D.
dean at objectmentor.com
http://www.objectmentor.com
See also:
http://www.aspectprogramming.com  AOP advocacy site
http://aquarium.rubyforge.org     AOP for Ruby
http://www.contract4j.org         Design by Contract for Java5






Back to the top