org.aopalliance.intercept

Interface FieldInterceptor

All Superinterfaces:
Advice, Interceptor

public interface FieldInterceptor
extends Interceptor

Intercepts field access on a target object.

The user should implement the set(FieldAccess) and get(FieldAccess) methods to modify the original behavior. E.g. the following class implements a tracing interceptor (traces the accesses to the intercepted field(s)):

 class TracingInterceptor implements FieldInterceptor {

   Object set(FieldAccess fa) throws Throwable {
     System.out.println("field "+fa.getField()+" is set with value "+
                        fa.getValueToSet());
     Object ret=fa.proceed();
     System.out.println("field "+fa.getField()+" was set to value "+ret);
     return ret;
   }

   Object get(FieldAccess fa) throws Throwable {
     System.out.println("field "+fa.getField()+" is about to be read");
     Object ret=fa.proceed();
     System.out.println("field "+fa.getField()+" was read; value is "+ret);
     return ret;
   }
 }
 

Method Summary

Object
get(FieldAccess fieldRead)
Do the stuff you want to do before and after the field is getted.
Object
set(FieldAccess fieldWrite)
Do the stuff you want to do before and after the field is setted.

Method Details

get

public Object get(FieldAccess fieldRead)
            throws Throwable
Do the stuff you want to do before and after the field is getted.

Polite implementations would certainly like to call Joinpoint.proceed().

Parameters:
fieldRead - the joinpoint that corresponds to the field read
Returns:
the result of the field read Joinpoint.proceed(), might be intercepted by the interceptor.

set

public Object set(FieldAccess fieldWrite)
            throws Throwable
Do the stuff you want to do before and after the field is setted.

Polite implementations would certainly like to implement Joinpoint.proceed().

Parameters:
fieldWrite - the joinpoint that corresponds to the field write
Returns:
the result of the field set Joinpoint.proceed(), might be intercepted by the interceptor.