Package org.multiverse.stms.gamma

## Class GammaOrElseBlock

- java.lang.Object
- - org.multiverse.stms.gamma.GammaOrElseBlock

- All Implemented Interfaces:
    `OrElseBlock`, `MultiverseConstants`

      public class GammaOrElseBlock
      extends Object
      implements OrElseBlock

- - ### Field Summary

    - ### Fields inherited from interface org.multiverse.MultiverseConstants

      `LOCKMODE_EXCLUSIVE, LOCKMODE_NONE, LOCKMODE_READ, LOCKMODE_WRITE, SHAKE_BUGS, SPIN_YIELD, TRACING_ENABLED`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `GammaOrElseBlock()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `execute​(TxnBooleanCallable either, TxnBooleanCallable orelse)` | Executes the either, or when it is retried, the orelse block.
    `<E> E` | `execute​(TxnCallable<E> either, TxnCallable<E> orelse)` | Executes the either, or when it is retried, the orelse block.
    `double` | `execute​(TxnDoubleCallable either, TxnDoubleCallable orelse)` | Executes the either, or when it is retried, the orelse block.
    `int` | `execute​(TxnIntCallable either, TxnIntCallable orelse)` | Executes the either, or when it is retried, the orelse block.
    `long` | `execute​(TxnLongCallable either, TxnLongCallable orelse)` | Executes the either, or when it is retried, the orelse block.
    `void` | `execute​(TxnVoidCallable either, TxnVoidCallable orelse)` | Executes the either, or when it is retried, the orelse block.
    `boolean` | `executeChecked​(TxnBooleanCallable either, TxnBooleanCallable orelse)` | Executes the either, or when it is retried, the orelse block.
    `<E> E` | `executeChecked​(TxnCallable<E> either, TxnCallable<E> orelse)` | Executes the either, or when it is retried, the orelse block.
    `double` | `executeChecked​(TxnDoubleCallable either, TxnDoubleCallable orelse)` | Executes the either, or when it is retried, the orelse block.
    `int` | `executeChecked​(TxnIntCallable either, TxnIntCallable orelse)` | Executes the either, or when it is retried, the orelse block.
    `long` | `executeChecked​(TxnLongCallable either, TxnLongCallable orelse)` | Executes the either, or when it is retried, the orelse block.
    `void` | `executeChecked​(TxnVoidCallable either, TxnVoidCallable orelse)` | Executes the either, or when it is retried, the orelse block.

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

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

- - ### Constructor Detail

    - #### GammaOrElseBlock

          public GammaOrElseBlock()

  - ### Method Detail

    - #### execute

          public <E> E execute​(TxnCallable<E> either,
                               TxnCallable<E> orelse)

      Description copied from interface: `OrElseBlock`
      Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.

      If in the execution of the closure a checked exception is thrown, the exception is wrapped in a InvisibleCheckedException. The original exception can be retrieved by calling the getCause method.
      Specified by:
        `execute` in interface `OrElseBlock`
      Returns:
        the result of the execution.

    - #### executeChecked

          public <E> E executeChecked​(TxnCallable<E> either,
                                      TxnCallable<E> orelse)
                               throws Exception

      Description copied from interface: `OrElseBlock`
      Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.
      Specified by:
        `executeChecked` in interface `OrElseBlock`
      Returns:
        the result of the execution.
      Throws:
        `NullPointerException` - if either or orelse is null.
        `TxnMandatoryException` - if no transaction is found on the TxnThreadLocal.
        `Exception` - if the atomicChecked call fails.

    - #### execute

          public int execute​(TxnIntCallable either,
                             TxnIntCallable orelse)

      Description copied from interface: `OrElseBlock`
      Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.

      If in the execution of the closure a checked exception is thrown, the exception is wrapped in a InvisibleCheckedException. The original exception can be retrieved by calling the getCause method.
      Specified by:
        `execute` in interface `OrElseBlock`
      Returns:
        the result of the execution.

    - #### executeChecked

          public int executeChecked​(TxnIntCallable either,
                                    TxnIntCallable orelse)
                             throws Exception

      Description copied from interface: `OrElseBlock`
      Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.
      Specified by:
        `executeChecked` in interface `OrElseBlock`
      Returns:
        the result of the execution.
      Throws:
        `NullPointerException` - if either or orelse is null.
        `Exception` - if the atomicChecked call fails.

    - #### execute

          public long execute​(TxnLongCallable either,
                              TxnLongCallable orelse)

      Description copied from interface: `OrElseBlock`
      Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.

      If in the execution of the closure a checked exception is thrown, the exception is wrapped in a InvisibleCheckedException. The original exception can be retrieved by calling the getCause method.
      Specified by:
        `execute` in interface `OrElseBlock`
      Returns:
        the result of the execution.

    - #### executeChecked

          public long executeChecked​(TxnLongCallable either,
                                     TxnLongCallable orelse)
                              throws Exception

      Description copied from interface: `OrElseBlock`
      Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.
      Specified by:
        `executeChecked` in interface `OrElseBlock`
      Returns:
        the result of the execution.
      Throws:
        `NullPointerException` - if either or orelse is null.
        `Exception` - if the atomicChecked call fails.

    - #### execute

          public double execute​(TxnDoubleCallable either,
                                TxnDoubleCallable orelse)

      Description copied from interface: `OrElseBlock`
      Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.

      If in the execution of the closure a checked exception is thrown, the exception is wrapped in a InvisibleCheckedException. The original exception can be retrieved by calling the getCause method.
      Specified by:
        `execute` in interface `OrElseBlock`
      Returns:
        the result of the execution.

    - #### executeChecked

          public double executeChecked​(TxnDoubleCallable either,
                                       TxnDoubleCallable orelse)
                                throws Exception

      Description copied from interface: `OrElseBlock`
      Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.
      Specified by:
        `executeChecked` in interface `OrElseBlock`
      Returns:
        the result of the execution.
      Throws:
        `NullPointerException` - if either or orelse is null.
        `Exception` - if the atomicChecked call fails.

    - #### execute

          public boolean execute​(TxnBooleanCallable either,
                                 TxnBooleanCallable orelse)

      Description copied from interface: `OrElseBlock`
      Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.

      If in the execution of the closure a checked exception is thrown, the exception is wrapped in a InvisibleCheckedException. The original exception can be retrieved by calling the getCause method.
      Specified by:
        `execute` in interface `OrElseBlock`
      Returns:
        the result of the execution.

    - #### executeChecked

          public boolean executeChecked​(TxnBooleanCallable either,
                                        TxnBooleanCallable orelse)
                                 throws Exception

      Description copied from interface: `OrElseBlock`
      Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.
      Specified by:
        `executeChecked` in interface `OrElseBlock`
      Returns:
        the result of the execution.
      Throws:
        `NullPointerException` - if either or orelse is null.
        `Exception` - if the atomicChecked call fails.

    - #### execute

          public void execute​(TxnVoidCallable either,
                              TxnVoidCallable orelse)

      Description copied from interface: `OrElseBlock`
      Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.

      If in the execution of the closure a checked exception is thrown, the exception is wrapped in a InvisibleCheckedException. The original exception can be retrieved by calling the getCause method.
      Specified by:
        `execute` in interface `OrElseBlock`

    - #### executeChecked

          public void executeChecked​(TxnVoidCallable either,
                                     TxnVoidCallable orelse)
                              throws Exception

      Description copied from interface: `OrElseBlock`
      Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.
      Specified by:
        `executeChecked` in interface `OrElseBlock`
      Throws:
        `NullPointerException` - if either or orelse is null.
        `Exception` - if the atomicChecked call fails.