Package 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.

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `Object` | `afterInvoke​(Object object, String methodName, Object[] arguments, Object result)` | This code is executed after the method is optionally called.
  `Object` | `beforeInvoke​(Object object, String methodName, Object[] arguments)` | This code is executed before the method is optionally called.
  `boolean` | `doInvoke()` |

- ## Method Details

  - ### beforeInvoke

    Object beforeInvoke​(Object object, String methodName, 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

    Object afterInvoke​(Object object, String methodName, Object[] arguments, 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.