com.hammurapi.common

## Class InvocationRecordingProxyFactory

- java.lang.Object
- - com.hammurapi.common.InvocationRecordingProxyFactory

-     public class InvocationRecordingProxyFactory
      extends Object

  This class creates a proxy which record all invocations of the methods of the target object with stack traces, calling threads, timestamps, and arguments. These records can be used for troubleshooing of concurrency problems.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `InvocationRecordingProxyFactory.InvocationRecord`
    `static interface` | `InvocationRecordingProxyFactory.ProblemListener` Callback interface to receive problem notifications.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `InvocationRecordingProxyFactory()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static List<InvocationRecordingProxyFactory.InvocationRecord>` | `getInvocationRecords(Object proxy)`
    `static <I,T extends I> I` | `wrap(Class<I> proxyType, T target, InvocationRecordingProxyFactory.ProblemListener problemListener)` Wraps target into a proxy for method call recording.

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

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

- - ### Constructor Detail

    - #### InvocationRecordingProxyFactory

          public InvocationRecordingProxyFactory()

  - ### Method Detail

    - #### wrap

          public static <I,T extends I> I wrap(Class<I> proxyType,
                               T target,
                               InvocationRecordingProxyFactory.ProblemListener problemListener)

      Wraps target into a proxy for method call recording.
      Type Parameters:
        `I` -
        `T` -
      Parameters:
        `target` -
        `problemListener` -
      Returns:

    - #### getInvocationRecords

          public static List<InvocationRecordingProxyFactory.InvocationRecord> getInvocationRecords(Object proxy)