All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.olib963.javatest.fixtures.Try Maven / Gradle / Ivy

The newest version!
package io.github.olib963.javatest.fixtures;

import io.github.olib963.javatest.CheckedSupplier;
import io.github.olib963.javatest.fixtures.internal.Failure;
import io.github.olib963.javatest.fixtures.internal.Success;

import java.util.function.Function;

public interface Try {

    Try mapError(Function f);

     Try map(Function f);

     Try flatMap(Function> f);

    A recoverWith(Function f);

    static  Try Try(CheckedSupplier function) {
        try {
            return new Success<>(function.get());
        } catch (Exception e) {
            return new Failure<>(e);
        }
    }

    static  Try Try(CheckedConsumer function, T value) {
        try {
            function.accept(value);
            return Success();
        } catch (Exception e) {
            return new Failure<>(e);
        }
    }

    static Try Success() {
        return new Success<>(null);
    }

    static  Try Success(T value) {
        return new Success<>(value);
    }

    static  Try Failure(String reason) {
        return new Failure<>(new Exception(reason));
    }

}