Interface OrElseBlock

  • All Superinterfaces:
    MultiverseConstants
    All Known Implementing Classes:
    GammaOrElseBlock

    public interface OrElseBlock
    extends MultiverseConstants
    The OrElse is responsible for executing the either block, or in case of a retry, the orelse block is executed.

    Another useful features of this design is that for certain primitives it doesn't require any form of boxing. It also provides an atomicChecked for a TxnVoidCallable which doesn't force a developer to return something when nothing needs to be returned.

    Author:
    Peter Veentjer.
    • Method Detail

      • execute

        <E> E execute​(TxnCallable<E> either,
                      TxnCallable<E> orelse)
        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.

        Parameters:
        either -
        orelse -
        Returns:
        the result of the execution.
        Throws:
        NullPointerException - if either or orelse is null.
        TxnMandatoryException - if no transaction is found on the TxnThreadLocal.
        InvisibleCheckedException - if a checked exception is thrown by the closure.
      • executeChecked

        <E> E executeChecked​(TxnCallable<E> either,
                             TxnCallable<E> orelse)
                      throws Exception
        Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.
        Parameters:
        either -
        orelse -
        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

        int execute​(TxnIntCallable either,
                    TxnIntCallable orelse)
        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.

        Parameters:
        either -
        orelse -
        Returns:
        the result of the execution.
        Throws:
        NullPointerException - if either or orelse is null.
        TxnMandatoryException - if no transaction is found on the TxnThreadLocal.
        InvisibleCheckedException - if a checked exception is thrown by the closure.
      • executeChecked

        int executeChecked​(TxnIntCallable either,
                           TxnIntCallable orelse)
                    throws Exception
        Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.
        Parameters:
        either -
        orelse -
        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

        long execute​(TxnLongCallable either,
                     TxnLongCallable orelse)
        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.

        Parameters:
        either -
        orelse -
        Returns:
        the result of the execution.
        Throws:
        NullPointerException - if either or orelse is null.
        TxnMandatoryException - if no transaction is found on the TxnThreadLocal.
        InvisibleCheckedException - if a checked exception is thrown by the closure.
      • executeChecked

        long executeChecked​(TxnLongCallable either,
                            TxnLongCallable orelse)
                     throws Exception
        Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.
        Parameters:
        either -
        orelse -
        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

        double execute​(TxnDoubleCallable either,
                       TxnDoubleCallable orelse)
        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.

        Parameters:
        either -
        orelse -
        Returns:
        the result of the execution.
        Throws:
        NullPointerException - if either or orelse is null.
        TxnMandatoryException - if no transaction is found on the TxnThreadLocal.
        InvisibleCheckedException - if a checked exception is thrown by the closure.
      • executeChecked

        double executeChecked​(TxnDoubleCallable either,
                              TxnDoubleCallable orelse)
                       throws Exception
        Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.
        Parameters:
        either -
        orelse -
        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

        boolean execute​(TxnBooleanCallable either,
                        TxnBooleanCallable orelse)
        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.

        Parameters:
        either -
        orelse -
        Returns:
        the result of the execution.
        Throws:
        NullPointerException - if either or orelse is null.
        TxnMandatoryException - if no transaction is found on the TxnThreadLocal.
        InvisibleCheckedException - if a checked exception is thrown by the closure.
      • executeChecked

        boolean executeChecked​(TxnBooleanCallable either,
                               TxnBooleanCallable orelse)
                        throws Exception
        Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.
        Parameters:
        either -
        orelse -
        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

        void execute​(TxnVoidCallable either,
                     TxnVoidCallable orelse)
        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.

        Parameters:
        either -
        orelse -
        Throws:
        NullPointerException - if either or orelse is null.
        TxnMandatoryException - if no transaction is found on the TxnThreadLocal.
        InvisibleCheckedException - if a checked exception is thrown by the closure.
      • executeChecked

        void executeChecked​(TxnVoidCallable either,
                            TxnVoidCallable orelse)
                     throws Exception
        Executes the either, or when it is retried, the orelse block. This operation makes composable blocking operations possible.
        Parameters:
        either -
        orelse -
        Throws:
        NullPointerException - if either or orelse is null.
        TxnMandatoryException - if no transaction is found on the TxnThreadLocal.
        Exception - if the atomicChecked call fails.