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
`protected Map` `calls`

### Constructor Summary

Constructors
Constructor and Description
`BenchmarkInterceptor()`

### Method Summary

Methods
`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]