groovy.lang

## Interface Interceptor

All Known Subinterfaces:
  PropertyAccessInterceptor

All Known Implementing Classes:
  BenchmarkInterceptor, TracingInterceptor

    public interface Interceptor

Implementers of this interface can be registered in the ProxyMetaClass for notifications about method calls for objects managed by the ProxyMetaClass. See groovy/lang/InterceptorTest.groovy for details.

Author:
  Dierk Koenig

### Method Summary

All Methods Instance Methods Abstract Methods
`java.lang.Object` `afterInvoke(java.lang.Object object, java.lang.String methodName, java.lang.Object[] arguments, java.lang.Object result)` This code is executed after the method is optionally called.
`java.lang.Object` `beforeInvoke(java.lang.Object object, java.lang.String methodName, java.lang.Object[] arguments)` This code is executed before the method is optionally called.
`boolean` `doInvoke()`

### Method Detail

#### beforeInvoke

    java.lang.Object beforeInvoke(java.lang.Object object,
                                  java.lang.String methodName,
                                  java.lang.Object[] arguments)

This code is executed before the method is optionally called.

Parameters:
  `object` - receiver object for the method call
  `methodName` - name of the method to call
  `arguments` - arguments to the method call
Returns:
  any arbitrary result that replaces the result of the original method call only if doInvoke() returns false and afterInvoke() relays this result.

#### afterInvoke

    java.lang.Object afterInvoke(java.lang.Object object,
                                 java.lang.String methodName,
                                 java.lang.Object[] arguments,
                                 java.lang.Object result)

This code is executed after the method is optionally called.

Parameters:
  `object` - receiver object for the called method
  `methodName` - name of the called method
  `arguments` - arguments to the called method
  `result` - result of the executed method call or result of beforeInvoke if method was not called
Returns:
  any arbitrary result that can replace the result of the original method call. Typically, the result parameter is returned.

#### doInvoke

    boolean doInvoke()

Returns:
  whether the target method should be invoked at all.