Package org.apache.tapestry5.ioc.internal

## Class OperationTrackerImpl

- java.lang.Object
- - org.apache.tapestry5.ioc.internal.OperationTrackerImpl

- All Implemented Interfaces:
    `OperationTracker`

      public class OperationTrackerImpl
      extends java.lang.Object
      implements OperationTracker

  Core implementation that manages a logger and catches and reports exception.
  See Also:
    `PerThreadOperationTracker`

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.tapestry5.ioc.OperationTracker

      `OperationTracker.NonLoggableException`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `OperationTrackerImpl​(org.slf4j.Logger logger)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `<T> T` | `invoke​(java.lang.String description, Invokable<T> operation)` | As with `OperationTracker.run(String, Runnable)`, but the operation may return a value.
    `<T> T` | `perform​(java.lang.String description, IOOperation<T> operation)` | As with `OperationTracker.invoke(String, Invokable)`, but the operation may throw an `IOException`.
    `void` | `run​(java.lang.String description, java.lang.Runnable operation)` | Executes the operation.

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

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

- - ### Constructor Detail

    - #### OperationTrackerImpl

          public OperationTrackerImpl​(org.slf4j.Logger logger)

  - ### Method Detail

    - #### run

          public void run​(java.lang.String description,
                          java.lang.Runnable operation)

      Description copied from interface: `OperationTracker`
      Executes the operation. If the operation throws a `RuntimeException` it will be logged and rethrown wrapped as a `OperationException`.
      Specified by:
        `run` in interface `OperationTracker`
      Parameters:
        `description` - used if there is an exception
        `operation` - to execute

    - #### invoke

          public <T> T invoke​(java.lang.String description,
                              Invokable<T> operation)

      Description copied from interface: `OperationTracker`
      As with `OperationTracker.run(String, Runnable)`, but the operation may return a value.
      Specified by:
        `invoke` in interface `OperationTracker`
      Parameters:
        `description` - used if there is an exception
        `operation` - to invoke
      Returns:
        result of operation

    - #### perform

          public <T> T perform​(java.lang.String description,
                               IOOperation<T> operation)
                        throws java.io.IOException

      Description copied from interface: `OperationTracker`
      As with `OperationTracker.invoke(String, Invokable)`, but the operation may throw an `IOException`.
      Specified by:
        `perform` in interface `OperationTracker`
      Parameters:
        `description` - used if there is an exception (outside of IOException)
        `operation` - to perform
      Returns:
        result of operation
      Throws:
        `java.io.IOException`