Interface ThrowingFunction<T,​R,​X extends Throwable>

  • Type Parameters:
    T - The type of the input to the function.
    R - The type of the result of the function.
    X - The type of checked exception that can be thrown.
    All Known Subinterfaces:
    ThrowingUnaryOperator<T,​X>
    Functional Interface:
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

    @FunctionalInterface
    public interface ThrowingFunction<T,​R,​X extends Throwable>
    Represents a function that accepts one argument and produces a result. This is a checked-exception throwing equivalent of Function.
    • Method Detail

      • apply

        R apply​(T t)
         throws X extends Throwable
        Applies this function to the given argument.
        Parameters:
        t - The function argument.
        Returns:
        The function result.
        Throws:
        X - If an error occurs.
        X extends Throwable
      • compose

        default <V> ThrowingFunction<V,​R,​X> compose​(ThrowingFunction<? super V,​? extends T,​? extends X> before)
        Returns a composed function that first applies the before function to its input, and then applies this function to the result. If evaluation of either function throws an exception, it is relayed to the caller of the composed function.
        Type Parameters:
        V - The type of input to the before function, and to the composed function.
        Parameters:
        before - The function to apply before this function is applied.
        Returns:
        A composed function that first applies the before function and then applies this function.
        Throws:
        NullPointerException - If before is null.
        See Also:
        andThen(ThrowingFunction)
      • andThen

        default <V> ThrowingFunction<T,​V,​X> andThen​(ThrowingFunction<? super R,​? extends V,​? extends X> after)
        Returns a composed function that first applies this function to its input, and then applies the after function to the result. If evaluation of either function throws an exception, it is relayed to the caller of the composed function.
        Type Parameters:
        V - The type of output of the after function, and of the composed function.
        Parameters:
        after - The function to apply after this function is applied.
        Returns:
        A composed function that first applies this function and then applies the after function.
        Throws:
        NullPointerException - If after is null.
        See Also:
        compose(ThrowingFunction)
      • onErrorThrowAsChecked

        default <E extends ThrowableThrowingFunction<T,​R,​E> onErrorThrowAsChecked​(Function<? super X,​? extends E> errorMapper)
        Returns a function that applies this function to its input. Any checked exception thrown by this function is transformed using the given error mapper, and the returned function throws the transformation result.
        Type Parameters:
        E - The type of checked exception to transform to.
        Parameters:
        errorMapper - The function to use to transform any checked exception thrown by this function.
        Returns:
        A function that transforms any thrown checked exception.
        Throws:
        NullPointerException - If errorMapper is null.
      • onErrorThrowAsUnchecked

        default <E extends RuntimeExceptionFunction<T,​R> onErrorThrowAsUnchecked​(Function<? super X,​? extends E> errorMapper)
        Returns a function that applies this function to its input. Any checked exception thrown by this function is transformed using the given error mapper, and the returned function throws the transformation result.
        Type Parameters:
        E - The type of unchecked exception to transform to.
        Parameters:
        errorMapper - The function to use to transform any checked exception thrown by this function.
        Returns:
        A function that transforms any thrown checked exception.
        Throws:
        NullPointerException - If errorMapper is null.
      • onErrorHandleChecked

        default <E extends ThrowableThrowingFunction<T,​R,​E> onErrorHandleChecked​(ThrowingFunction<? super X,​? extends R,​? extends E> errorHandler)
        Returns a function that applies this function to its input. Any checked exception thrown by this function is transformed using the given error handler, and the returned function returns the transformation result.
        Type Parameters:
        E - The type of checked exception that can be thrown by the given error handler.
        Parameters:
        errorHandler - The function to use to transform any checked exception thrown by this function.
        Returns:
        A function that transforms any thrown checked exception.
        Throws:
        NullPointerException - If errorHandler is null.
      • onErrorHandleUnchecked

        default Function<T,​R> onErrorHandleUnchecked​(Function<? super X,​? extends R> errorHandler)
        Returns a function that applies this function to its input. Any checked exception thrown by this function is transformed using the given error handler, and the returned function returns the transformation result.
        Parameters:
        errorHandler - The function to use to transform any checked exception thrown by this function.
        Returns:
        A function that transforms any thrown checked exception.
        Throws:
        NullPointerException - If errorHandler is null.
      • onErrorApplyChecked

        default <E extends ThrowableThrowingFunction<T,​R,​E> onErrorApplyChecked​(ThrowingFunction<? super T,​? extends R,​? extends E> fallback)
        Returns a function that applies this function to its input. If this function throws any checked exception, it is discarded and the given fallback function is invoked.
        Type Parameters:
        E - The type of checked exception that can be thrown by the given fallback function.
        Parameters:
        fallback - The function to invoke if this function throws any checked exception.
        Returns:
        A function that invokes the fallback function if this function throws any checked exception.
        Throws:
        NullPointerException - If fallback is null.
      • onErrorApplyUnchecked

        default Function<T,​R> onErrorApplyUnchecked​(Function<? super T,​? extends R> fallback)
        Returns a function that applies this function to its input. If this function throws any checked exception, it is discarded and the given fallback function is invoked.
        Parameters:
        fallback - The function to invoke if this function throws any checked exception.
        Returns:
        A function that invokes the fallback function if this function throws any checked exception.
        Throws:
        NullPointerException - If fallback is null.
      • onErrorGetChecked

        default <E extends ThrowableThrowingFunction<T,​R,​E> onErrorGetChecked​(ThrowingSupplier<? extends R,​? extends E> fallback)
        Returns a function that applies this function to its input. If this function throws any checked exception, it is discarded and the given fallback supplier is invoked.
        Type Parameters:
        E - The type of checked exception that can be thrown by the given fallback supplier.
        Parameters:
        fallback - The supplier to produce the value to return if this function throws any checked exception.
        Returns:
        A function that invokes the fallback supplier if this function throws any checked exception.
        Throws:
        NullPointerException - If fallback is null.
      • onErrorGetUnchecked

        default Function<T,​R> onErrorGetUnchecked​(Supplier<? extends R> fallback)
        Returns a function that applies this function to its input. If this function throws any checked exception, it is discarded and the given fallback supplier is invoked.
        Parameters:
        fallback - The supplier to produce the value to return if this function throws any checked exception.
        Returns:
        A function that invokes the fallback supplier if this function throws any checked exception.
        Throws:
        NullPointerException - If fallback is null.
      • onErrorReturn

        default Function<T,​R> onErrorReturn​(R fallback)
        Returns a function that applies this function to its input. If this function throws any checked exception, it is discarded and the given fallback value is returned.
        Parameters:
        fallback - The value to return if this function throws any checked exception.
        Returns:
        A function that returns the fallback value if this function throws any checked exception.
      • of

        static <T,​R,​X extends ThrowableThrowingFunction<T,​R,​X> of​(ThrowingFunction<T,​R,​X> function)
        Factory method for turning ThrowingFunction-shaped lambdas into ThrowingFunctions.
        Type Parameters:
        T - The type of the input to the function.
        R - The type of the result of the function.
        X - The type of checked exception that can be thrown.
        Parameters:
        function - The lambda to return as ThrowingFunction.
        Returns:
        The given lambda as a ThrowingFunction.
        Throws:
        NullPointerException - If function is null.
      • identity

        static <T,​X extends ThrowableThrowingFunction<T,​T,​X> identity()
        Returns a function that always returns its input argument.
        Type Parameters:
        T - The type of the input and output objects to the function.
        X - The type of checked exception that can be thrown.
        Returns:
        A function that always returns its input argument.
      • unchecked

        static <T,​R> Function<T,​R> unchecked​(ThrowingFunction<? super T,​? extends R,​?> function)
        Returns a function that applies the function function to its input. Any checked exception thrown by the function function is wrapped in an UncheckedException.
        Type Parameters:
        T - The type of the input to the function.
        R - The type of the result of the function.
        Parameters:
        function - The function to apply when the returned function is applied.
        Returns:
        A function that wraps any checked exception in an UncheckedException.
        Throws:
        NullPointerException - If function is null.
      • checked

        static <T,​R,​X extends ThrowableThrowingFunction<T,​R,​X> checked​(Function<? super T,​? extends R> function)
        Returns a function that applies the function function to its input. Any unchecked exception thrown by the function function is relayed to the caller. This method allows existing Function instances to be used where ThrowingFunction is expected.
        Type Parameters:
        T - The type of the input to the function.
        R - The type of the result of the function.
        X - The type of checked exception that can be thrown.
        Parameters:
        function - The function to apply when the returned function is applied.
        Returns:
        A function that wraps any checked exception in an UncheckedException.
        Throws:
        NullPointerException - If function is null.
      • checked

        static <T,​R,​X extends ThrowableThrowingFunction<T,​R,​X> checked​(Function<? super T,​? extends R> function,
                                                                                                 Class<X> errorType)
        Returns a function that applies the function function to its input. Any UncheckedException thrown by the function function is unwrapped if its cause is an instance of errorType, otherwise it is relayed to the caller.
        Type Parameters:
        T - The type of the input to the function.
        R - The type of the result of the function.
        X - The type of checked exception that can be thrown.
        Parameters:
        function - The function to apply when the returned function is applied.
        errorType - The type of checked exception that can be thrown.
        Returns:
        A function that wraps any checked exception in an UncheckedException.
        Throws:
        NullPointerException - If function or errorType is null.