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

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      java.lang.Object get​(FieldAccess fieldRead)
      Do the stuff you want to do before and after the field is getted.
      java.lang.Object set​(FieldAccess fieldWrite)
      Do the stuff you want to do before and after the field is setted.
    • Method Detail

      • get

        java.lang.Object get​(FieldAccess fieldRead)
                      throws java.lang.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.
        Throws:
        java.lang.Throwable - if the interceptors or the target-object throws an exception.
      • set

        java.lang.Object set​(FieldAccess fieldWrite)
                      throws java.lang.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.
        Throws:
        java.lang.Throwable - if the interceptors or the target-object throws an exception.