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

fj.TryEffect Maven / Gradle / Ivy

Go to download

Functional Java is an open source library that supports closures for the Java programming language

There is a newer version: 5.0
Show newest version
package fj;

import fj.data.IO;
import fj.data.IOFunctions;
import fj.data.Validation;
import fj.function.*;

import java.io.IOException;

/**
 * Created by mperry on 29/08/2014.
 */
public class TryEffect {

    private TryEffect(){}

    public static  P1> f(TryEffect0 t) {
        return P.lazy(() -> {
            try {
                t.f();
                return Validation.success(Unit.unit());
            } catch (Exception e) {
                return Validation.fail((Z) e);
            }
        });
    }

    public static  F> f(TryEffect1 t) {
        return a -> {
            try {
                t.f(a);
                return Validation.success(Unit.unit());
            } catch (Exception e) {
                return Validation.fail((Z) e);
            }
        };

    }

    public static  F2> f(TryEffect2 t) {
        return (a, b) -> {
            try {
                t.f(a, b);
                return Validation.success(Unit.unit());
            } catch (Exception e) {
                return Validation.fail((Z) e);
            }
        };

    }

    public static  F3> f(TryEffect3 t) {
        return (a, b, c) -> {
            try {
                t.f(a, b, c);
                return Validation.success(Unit.unit());
            } catch (Exception e) {
                return Validation.fail((Z) e);
            }
        };
    }

    public static  F4> f(TryEffect4 t) {
        return (a, b, c, d) -> {
            try {
                t.f(a, b, c, d);
                return Validation.success(Unit.unit());
            } catch (Exception e) {
                return Validation.fail((Z) e);
            }
        };
    }

    public static  F5> f(TryEffect5 t) {
        return (a, b, c, d, e) -> {
            try {
                t.f(a, b, c, d, e);
                return Validation.success(Unit.unit());
            } catch (Exception z) {
                return Validation.fail((Z) z);
            }
        };
    }

    public static  F6> f(TryEffect6 t) {
        return (a, b, c, d, e, f) -> {
            try {
                t.f(a, b, c, d, e, f);
                return Validation.success(Unit.unit());
            } catch (Exception z) {
                return Validation.fail((Z) z);
            }
        };
    }

    public static  F7> f(TryEffect7 t) {
        return (a, b, c, d, e, f, g) -> {
            try {
                t.f(a, b, c, d, e, f, g);
                return Validation.success(Unit.unit());
            } catch (Exception z) {
                return Validation.fail((Z) z);
            }
        };
    }

    public static  F8> f(TryEffect8 t) {
        return (a, b, c, d, e, f, g, h) -> {
            try {
                t.f(a, b, c, d, e, f, g, h);
                return Validation.success(Unit.unit());
            } catch (Exception z) {
                return Validation.fail((Z) z);
            }
        };
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy