groovy.lang

## Class BenchmarkInterceptor

- java.lang.Object
- - groovy.lang.BenchmarkInterceptor

- All Implemented Interfaces:
    Interceptor

      public class BenchmarkInterceptor
      extends Object
      implements Interceptor

  Interceptor that registers the timestamp of each method call before and after invocation.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Map` | `calls`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BenchmarkInterceptor()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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()`
    `Map` | `getCalls()`
    `void` | `reset()`
    `List` | `statistic()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### calls

          protected Map calls

  - ### Constructor Detail

    - #### BenchmarkInterceptor

          public BenchmarkInterceptor()

  - ### Method Detail

    - #### getCalls

          public Map getCalls()

    - #### reset

          public void reset()

    - #### beforeInvoke

          public Object beforeInvoke(Object object,
                            String methodName,
                            Object[] arguments)

      Description copied from interface: `Interceptor`
      This code is executed before the method is optionally called.
      Specified by:
        `beforeInvoke` in interface `Interceptor`
      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

          public Object afterInvoke(Object object,
                           String methodName,
                           Object[] arguments,
                           Object result)

      Description copied from interface: `Interceptor`
      This code is executed after the method is optionally called.
      Specified by:
        `afterInvoke` in interface `Interceptor`
      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

          public boolean doInvoke()

      Specified by:
        `doInvoke` in interface `Interceptor`
      Returns:
        whether the target method should be invoked at all.

    - #### statistic

          public List statistic()

      Returns:
        a list of lines, each item is [methodname, numberOfCalls, accumulatedTime]